From fe7351a7dc1b9d07b0526b7436893d3fdd5df576 Mon Sep 17 00:00:00 2001 From: unfunny Date: Sun, 13 Sep 2026 14:14:38 -0400 Subject: [PATCH] feat: complete Ancestor quote bot with production-ready Docker support --- .env | 8 +- .env.example | 6 +- Dockerfile | 10 +- README.md | 38 +- index.js | 116 +- node_modules/.package-lock.json | 163 +- node_modules/@babel/runtime/package.json | 1557 +- .../matrix-sdk-crypto-wasm/README.md | 80 +- .../matrix-sdk-crypto-wasm/index-wasm-esm.mjs | 77 - .../matrix-sdk-crypto-wasm/index.cjs | 81 - .../matrix-sdk-crypto-wasm/index.d.ts | 49 - .../matrix-sdk-crypto-wasm/index.mjs | 83 - .../matrix-sdk-crypto-wasm/node.cjs | 128 - .../matrix-sdk-crypto-wasm/node.mjs | 125 - .../matrix-sdk-crypto-wasm/package.json | 76 +- .../pkg/matrix_sdk_crypto_wasm.d.ts | 8195 ++++------ .../pkg/matrix_sdk_crypto_wasm_bg.cjs | 12809 ---------------- .../pkg/matrix_sdk_crypto_wasm_bg.js | 12182 --------------- .../pkg/matrix_sdk_crypto_wasm_bg.wasm | Bin 7833454 -> 0 bytes .../pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts | 1098 +- node_modules/base-x/README.md | 3 +- node_modules/base-x/package.json | 28 +- node_modules/base-x/src/cjs/index.cjs | 126 - node_modules/base-x/src/cjs/index.d.ts | 9 - node_modules/base-x/src/esm/index.js | 124 - node_modules/bs58/README.md | 6 +- node_modules/bs58/package.json | 33 +- node_modules/bs58/src/cjs/index.cjs | 8 - node_modules/bs58/src/cjs/index.d.ts | 3 - node_modules/bs58/src/esm/index.js | 3 - node_modules/content-type/README.md | 91 +- node_modules/content-type/dist/index.d.ts | 46 - node_modules/content-type/dist/index.js | 176 - node_modules/content-type/dist/index.js.map | 1 - node_modules/content-type/package.json | 62 +- node_modules/is-network-error/index.d.ts | 26 - node_modules/is-network-error/index.js | 47 - node_modules/is-network-error/license | 9 - node_modules/is-network-error/package.json | 43 - node_modules/is-network-error/readme.md | 44 - node_modules/matrix-js-sdk/CHANGELOG.md | 1280 -- node_modules/matrix-js-sdk/README.md | 361 +- .../AESEncryptedSecretStoragePayload.d.ts | 14 - .../AESEncryptedSecretStoragePayload.d.ts.map | 1 - .../AESEncryptedSecretStoragePayload.js | 3 - .../AESEncryptedSecretStoragePayload.js.map | 1 - .../lib/@types/IIdentityServerProvider.js | 7 +- .../lib/@types/IIdentityServerProvider.js.map | 2 +- .../lib/@types/PushRules.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/PushRules.js | 39 +- .../matrix-js-sdk/lib/@types/PushRules.js.map | 2 +- .../lib/@types/another-json.d.js | 1 + .../lib/@types/another-json.d.js.map | 2 +- .../matrix-js-sdk/lib/@types/auth.d.ts | 25 +- .../matrix-js-sdk/lib/@types/auth.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/@types/auth.js | 36 +- .../matrix-js-sdk/lib/@types/auth.js.map | 2 +- .../matrix-js-sdk/lib/@types/beacon.d.ts | 8 +- .../matrix-js-sdk/lib/@types/beacon.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/beacon.js | 16 +- .../matrix-js-sdk/lib/@types/beacon.js.map | 2 +- .../matrix-js-sdk/lib/@types/common.d.ts | 10 - .../matrix-js-sdk/lib/@types/common.d.ts.map | 1 - .../matrix-js-sdk/lib/@types/common.js | 3 - .../matrix-js-sdk/lib/@types/common.js.map | 1 - .../matrix-js-sdk/lib/@types/crypto.d.ts | 41 +- .../matrix-js-sdk/lib/@types/crypto.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/crypto.js | 7 +- .../matrix-js-sdk/lib/@types/crypto.js.map | 2 +- .../matrix-js-sdk/lib/@types/event.d.ts | 204 +- .../matrix-js-sdk/lib/@types/event.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/event.js | 135 +- .../matrix-js-sdk/lib/@types/event.js.map | 2 +- .../matrix-js-sdk/lib/@types/events.d.ts | 92 - .../matrix-js-sdk/lib/@types/events.d.ts.map | 1 - .../matrix-js-sdk/lib/@types/events.js | 3 - .../matrix-js-sdk/lib/@types/events.js.map | 1 - .../lib/@types/extensible_events.d.ts | 8 +- .../lib/@types/extensible_events.d.ts.map | 2 +- .../lib/@types/extensible_events.js | 32 +- .../lib/@types/extensible_events.js.map | 2 +- .../matrix-js-sdk/lib/@types/global.d.js | 21 +- .../matrix-js-sdk/lib/@types/global.d.js.map | 2 +- .../matrix-js-sdk/lib/@types/json.d.ts | 7 - .../matrix-js-sdk/lib/@types/json.d.ts.map | 1 - node_modules/matrix-js-sdk/lib/@types/json.js | 3 - .../matrix-js-sdk/lib/@types/json.js.map | 1 - .../lib/@types/local_notifications.js | 7 +- .../lib/@types/local_notifications.js.map | 2 +- .../matrix-js-sdk/lib/@types/location.d.ts | 6 +- .../lib/@types/location.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/location.js | 25 +- .../matrix-js-sdk/lib/@types/location.js.map | 2 +- .../lib/@types/matrix-sdk-crypto-wasm.d.js | 3 - .../@types/matrix-sdk-crypto-wasm.d.js.map | 1 - .../matrix-js-sdk/lib/@types/media.d.ts | 220 - .../matrix-js-sdk/lib/@types/media.d.ts.map | 1 - .../matrix-js-sdk/lib/@types/media.js | 3 - .../matrix-js-sdk/lib/@types/media.js.map | 1 - .../matrix-js-sdk/lib/@types/membership.d.ts | 41 - .../lib/@types/membership.d.ts.map | 1 - .../matrix-js-sdk/lib/@types/membership.js | 58 - .../lib/@types/membership.js.map | 1 - .../matrix-js-sdk/lib/@types/partials.d.ts | 52 +- .../lib/@types/partials.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/partials.js | 43 +- .../matrix-js-sdk/lib/@types/partials.js.map | 2 +- .../matrix-js-sdk/lib/@types/polls.d.ts | 9 +- .../matrix-js-sdk/lib/@types/polls.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/polls.js | 26 +- .../matrix-js-sdk/lib/@types/polls.js.map | 2 +- .../matrix-js-sdk/lib/@types/read_receipts.js | 13 +- .../lib/@types/read_receipts.js.map | 2 +- .../lib/@types/registration.d.ts | 26 +- .../lib/@types/registration.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/registration.js | 7 +- .../lib/@types/registration.js.map | 2 +- .../matrix-js-sdk/lib/@types/requests.d.ts | 127 +- .../lib/@types/requests.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/requests.js | 39 +- .../matrix-js-sdk/lib/@types/requests.js.map | 2 +- .../matrix-js-sdk/lib/@types/retention.d.ts | 15 - .../lib/@types/retention.d.ts.map | 1 - .../matrix-js-sdk/lib/@types/retention.js | 13 - .../matrix-js-sdk/lib/@types/retention.js.map | 1 - .../matrix-js-sdk/lib/@types/search.d.ts | 12 +- .../matrix-js-sdk/lib/@types/search.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/search.js | 11 +- .../matrix-js-sdk/lib/@types/search.js.map | 2 +- .../matrix-js-sdk/lib/@types/signed.js | 7 +- .../matrix-js-sdk/lib/@types/signed.js.map | 2 +- .../matrix-js-sdk/lib/@types/spaces.d.ts | 6 +- .../matrix-js-sdk/lib/@types/spaces.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/spaces.js | 7 +- .../matrix-js-sdk/lib/@types/spaces.js.map | 2 +- .../lib/@types/state_events.d.ts | 121 - .../lib/@types/state_events.d.ts.map | 1 - .../matrix-js-sdk/lib/@types/state_events.js | 3 - .../lib/@types/state_events.js.map | 1 - .../matrix-js-sdk/lib/@types/synapse.d.ts | 2 +- .../matrix-js-sdk/lib/@types/synapse.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/synapse.js | 7 +- .../matrix-js-sdk/lib/@types/synapse.js.map | 2 +- .../matrix-js-sdk/lib/@types/sync.d.ts | 2 +- .../matrix-js-sdk/lib/@types/sync.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/@types/sync.js | 12 +- .../matrix-js-sdk/lib/@types/sync.js.map | 2 +- .../matrix-js-sdk/lib/@types/threepids.js | 14 +- .../matrix-js-sdk/lib/@types/threepids.js.map | 2 +- .../matrix-js-sdk/lib/@types/topic.d.ts | 31 +- .../matrix-js-sdk/lib/@types/topic.d.ts.map | 2 +- .../matrix-js-sdk/lib/@types/topic.js | 18 +- .../matrix-js-sdk/lib/@types/topic.js.map | 2 +- .../matrix-js-sdk/lib/@types/type-guards.d.ts | 43 - .../lib/@types/type-guards.d.ts.map | 1 - .../matrix-js-sdk/lib/@types/type-guards.js | 104 - .../lib/@types/type-guards.js.map | 1 - .../matrix-js-sdk/lib/@types/uia.d.ts | 8 +- .../matrix-js-sdk/lib/@types/uia.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/@types/uia.js | 7 +- .../matrix-js-sdk/lib/@types/uia.js.map | 2 +- .../matrix-js-sdk/lib/NamespacedValue.d.ts | 11 +- .../lib/NamespacedValue.d.ts.map | 2 +- .../matrix-js-sdk/lib/NamespacedValue.js | 24 +- .../matrix-js-sdk/lib/NamespacedValue.js.map | 2 +- node_modules/matrix-js-sdk/lib/ReEmitter.d.ts | 5 +- .../matrix-js-sdk/lib/ReEmitter.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/ReEmitter.js | 19 +- .../matrix-js-sdk/lib/ReEmitter.js.map | 2 +- .../lib/ToDeviceMessageQueue.d.ts | 8 +- .../lib/ToDeviceMessageQueue.d.ts.map | 2 +- .../matrix-js-sdk/lib/ToDeviceMessageQueue.js | 74 +- .../lib/ToDeviceMessageQueue.js.map | 2 +- .../matrix-js-sdk/lib/autodiscovery.d.ts | 57 +- .../matrix-js-sdk/lib/autodiscovery.d.ts.map | 2 +- .../matrix-js-sdk/lib/autodiscovery.js | 241 +- .../matrix-js-sdk/lib/autodiscovery.js.map | 2 +- node_modules/matrix-js-sdk/lib/base64.d.ts | 25 - .../matrix-js-sdk/lib/base64.d.ts.map | 1 - node_modules/matrix-js-sdk/lib/base64.js | 95 - node_modules/matrix-js-sdk/lib/base64.js.map | 1 - .../matrix-js-sdk/lib/browser-index.d.ts | 7 +- .../matrix-js-sdk/lib/browser-index.d.ts.map | 2 +- .../matrix-js-sdk/lib/browser-index.js | 42 +- .../matrix-js-sdk/lib/browser-index.js.map | 2 +- .../matrix-js-sdk/lib/capabilityPoller.d.ts | 38 - .../lib/capabilityPoller.d.ts.map | 1 - .../matrix-js-sdk/lib/capabilityPoller.js | 93 - .../matrix-js-sdk/lib/capabilityPoller.js.map | 1 - node_modules/matrix-js-sdk/lib/client.d.ts | 2073 ++- .../matrix-js-sdk/lib/client.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/client.js | 5135 ++++--- node_modules/matrix-js-sdk/lib/client.js.map | 2 +- .../lib/common-crypto/CryptoBackend.d.ts | 167 +- .../lib/common-crypto/CryptoBackend.d.ts.map | 2 +- .../lib/common-crypto/CryptoBackend.js | 71 +- .../lib/common-crypto/CryptoBackend.js.map | 2 +- .../lib/common-crypto/key-passphrase.d.ts | 14 - .../lib/common-crypto/key-passphrase.d.ts.map | 1 - .../lib/common-crypto/key-passphrase.js | 30 - .../lib/common-crypto/key-passphrase.js.map | 1 - .../matrix-js-sdk/lib/content-helpers.d.ts | 24 +- .../lib/content-helpers.d.ts.map | 2 +- .../matrix-js-sdk/lib/content-helpers.js | 205 +- .../matrix-js-sdk/lib/content-helpers.js.map | 2 +- .../matrix-js-sdk/lib/content-repo.d.ts | 13 +- .../matrix-js-sdk/lib/content-repo.d.ts.map | 2 +- .../matrix-js-sdk/lib/content-repo.js | 86 +- .../matrix-js-sdk/lib/content-repo.js.map | 2 +- .../lib/crypto-api/CryptoEvent.d.ts | 120 - .../lib/crypto-api/CryptoEvent.d.ts.map | 1 - .../lib/crypto-api/CryptoEvent.js | 137 - .../lib/crypto-api/CryptoEvent.js.map | 1 - .../lib/crypto-api/CryptoEventHandlerMap.d.ts | 26 - .../crypto-api/CryptoEventHandlerMap.d.ts.map | 1 - .../lib/crypto-api/CryptoEventHandlerMap.js | 3 - .../crypto-api/CryptoEventHandlerMap.js.map | 1 - .../matrix-js-sdk/lib/crypto-api/index.d.ts | 1190 -- .../lib/crypto-api/index.d.ts.map | 1 - .../matrix-js-sdk/lib/crypto-api/index.js | 435 - .../matrix-js-sdk/lib/crypto-api/index.js.map | 1 - .../lib/crypto-api/key-passphrase.d.ts | 11 - .../lib/crypto-api/key-passphrase.d.ts.map | 1 - .../lib/crypto-api/key-passphrase.js | 43 - .../lib/crypto-api/key-passphrase.js.map | 1 - .../lib/crypto-api/keybackup.d.ts | 82 +- .../lib/crypto-api/keybackup.d.ts.map | 2 +- .../matrix-js-sdk/lib/crypto-api/keybackup.js | 7 +- .../lib/crypto-api/keybackup.js.map | 2 +- .../lib/crypto-api/recovery-key.d.ts | 11 - .../lib/crypto-api/recovery-key.d.ts.map | 1 - .../lib/crypto-api/recovery-key.js | 64 - .../lib/crypto-api/recovery-key.js.map | 1 - .../lib/crypto-api/verification.d.ts | 86 +- .../lib/crypto-api/verification.d.ts.map | 2 +- .../lib/crypto-api/verification.js | 69 +- .../lib/crypto-api/verification.js.map | 2 +- .../matrix-js-sdk/lib/crypto/store/base.d.ts | 274 +- .../lib/crypto/store/base.d.ts.map | 2 +- .../matrix-js-sdk/lib/crypto/store/base.js | 138 +- .../lib/crypto/store/base.js.map | 2 +- .../store/indexeddb-crypto-store-backend.d.ts | 148 +- .../indexeddb-crypto-store-backend.d.ts.map | 2 +- .../store/indexeddb-crypto-store-backend.js | 705 +- .../indexeddb-crypto-store-backend.js.map | 2 +- .../crypto/store/indexeddb-crypto-store.d.ts | 241 +- .../store/indexeddb-crypto-store.d.ts.map | 2 +- .../crypto/store/indexeddb-crypto-store.js | 419 +- .../store/indexeddb-crypto-store.js.map | 2 +- .../store/localStorage-crypto-store.d.ts | 97 +- .../store/localStorage-crypto-store.d.ts.map | 2 +- .../crypto/store/localStorage-crypto-store.js | 313 +- .../store/localStorage-crypto-store.js.map | 2 +- .../lib/crypto/store/memory-crypto-store.d.ts | 157 +- .../crypto/store/memory-crypto-store.d.ts.map | 2 +- .../lib/crypto/store/memory-crypto-store.js | 493 +- .../crypto/store/memory-crypto-store.js.map | 2 +- node_modules/matrix-js-sdk/lib/digest.d.ts | 10 - .../matrix-js-sdk/lib/digest.d.ts.map | 1 - node_modules/matrix-js-sdk/lib/digest.js | 33 - node_modules/matrix-js-sdk/lib/digest.js.map | 1 - node_modules/matrix-js-sdk/lib/embedded.d.ts | 138 +- .../matrix-js-sdk/lib/embedded.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/embedded.js | 593 +- .../matrix-js-sdk/lib/embedded.js.map | 2 +- node_modules/matrix-js-sdk/lib/errors.d.ts | 34 +- .../matrix-js-sdk/lib/errors.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/errors.js | 73 +- node_modules/matrix-js-sdk/lib/errors.js.map | 2 +- .../matrix-js-sdk/lib/event-mapper.d.ts | 5 +- .../matrix-js-sdk/lib/event-mapper.d.ts.map | 2 +- .../matrix-js-sdk/lib/event-mapper.js | 66 +- .../matrix-js-sdk/lib/event-mapper.js.map | 2 +- .../extensible_events_v1/ExtensibleEvent.d.ts | 2 +- .../ExtensibleEvent.d.ts.map | 2 +- .../extensible_events_v1/ExtensibleEvent.js | 9 +- .../ExtensibleEvent.js.map | 2 +- .../InvalidEventError.d.ts.map | 2 +- .../extensible_events_v1/InvalidEventError.js | 9 +- .../InvalidEventError.js.map | 2 +- .../extensible_events_v1/MessageEvent.d.ts | 7 +- .../MessageEvent.d.ts.map | 2 +- .../lib/extensible_events_v1/MessageEvent.js | 95 +- .../extensible_events_v1/MessageEvent.js.map | 2 +- .../extensible_events_v1/PollEndEvent.d.ts | 8 +- .../PollEndEvent.d.ts.map | 2 +- .../lib/extensible_events_v1/PollEndEvent.js | 80 +- .../extensible_events_v1/PollEndEvent.js.map | 2 +- .../PollResponseEvent.d.ts | 8 +- .../PollResponseEvent.d.ts.map | 2 +- .../extensible_events_v1/PollResponseEvent.js | 51 +- .../PollResponseEvent.js.map | 2 +- .../extensible_events_v1/PollStartEvent.d.ts | 8 +- .../PollStartEvent.d.ts.map | 2 +- .../extensible_events_v1/PollStartEvent.js | 114 +- .../PollStartEvent.js.map | 2 +- .../lib/extensible_events_v1/utilities.d.ts | 4 +- .../extensible_events_v1/utilities.d.ts.map | 2 +- .../lib/extensible_events_v1/utilities.js | 11 +- .../lib/extensible_events_v1/utilities.js.map | 2 +- node_modules/matrix-js-sdk/lib/feature.d.ts | 2 +- .../matrix-js-sdk/lib/feature.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/feature.js | 35 +- node_modules/matrix-js-sdk/lib/feature.js.map | 2 +- .../matrix-js-sdk/lib/filter-component.d.ts | 8 +- .../lib/filter-component.d.ts.map | 2 +- .../matrix-js-sdk/lib/filter-component.js | 53 +- .../matrix-js-sdk/lib/filter-component.js.map | 2 +- node_modules/matrix-js-sdk/lib/filter.d.ts | 31 +- .../matrix-js-sdk/lib/filter.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/filter.js | 88 +- node_modules/matrix-js-sdk/lib/filter.js.map | 2 +- .../matrix-js-sdk/lib/http-api/errors.d.ts | 92 +- .../lib/http-api/errors.d.ts.map | 2 +- .../matrix-js-sdk/lib/http-api/errors.js | 209 +- .../matrix-js-sdk/lib/http-api/errors.js.map | 2 +- .../matrix-js-sdk/lib/http-api/fetch.d.ts | 65 +- .../matrix-js-sdk/lib/http-api/fetch.d.ts.map | 2 +- .../matrix-js-sdk/lib/http-api/fetch.js | 207 +- .../matrix-js-sdk/lib/http-api/fetch.js.map | 2 +- .../matrix-js-sdk/lib/http-api/index.d.ts | 26 +- .../matrix-js-sdk/lib/http-api/index.d.ts.map | 2 +- .../matrix-js-sdk/lib/http-api/index.js | 166 +- .../matrix-js-sdk/lib/http-api/index.js.map | 2 +- .../matrix-js-sdk/lib/http-api/interface.d.ts | 105 +- .../lib/http-api/interface.d.ts.map | 2 +- .../matrix-js-sdk/lib/http-api/interface.js | 25 +- .../lib/http-api/interface.js.map | 2 +- .../matrix-js-sdk/lib/http-api/method.d.ts | 5 +- .../lib/http-api/method.d.ts.map | 2 +- .../matrix-js-sdk/lib/http-api/method.js | 13 +- .../matrix-js-sdk/lib/http-api/method.js.map | 2 +- .../matrix-js-sdk/lib/http-api/prefix.d.ts | 14 +- .../lib/http-api/prefix.d.ts.map | 2 +- .../matrix-js-sdk/lib/http-api/prefix.js | 38 +- .../matrix-js-sdk/lib/http-api/prefix.js.map | 2 +- .../matrix-js-sdk/lib/http-api/refresh.d.ts | 53 - .../lib/http-api/refresh.d.ts.map | 1 - .../matrix-js-sdk/lib/http-api/refresh.js | 150 - .../matrix-js-sdk/lib/http-api/refresh.js.map | 1 - .../matrix-js-sdk/lib/http-api/utils.d.ts | 14 +- .../matrix-js-sdk/lib/http-api/utils.d.ts.map | 2 +- .../matrix-js-sdk/lib/http-api/utils.js | 109 +- .../matrix-js-sdk/lib/http-api/utils.js.map | 2 +- node_modules/matrix-js-sdk/lib/index.d.ts | 4 +- node_modules/matrix-js-sdk/lib/index.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/index.js | 30 +- node_modules/matrix-js-sdk/lib/index.js.map | 2 +- .../matrix-js-sdk/lib/indexeddb-helpers.js | 8 +- .../lib/indexeddb-helpers.js.map | 2 +- .../matrix-js-sdk/lib/indexeddb-worker.d.ts | 2 +- .../lib/indexeddb-worker.d.ts.map | 2 +- .../matrix-js-sdk/lib/indexeddb-worker.js | 34 +- .../matrix-js-sdk/lib/indexeddb-worker.js.map | 2 +- .../matrix-js-sdk/lib/interactive-auth.d.ts | 35 +- .../lib/interactive-auth.d.ts.map | 2 +- .../matrix-js-sdk/lib/interactive-auth.js | 167 +- .../matrix-js-sdk/lib/interactive-auth.js.map | 2 +- node_modules/matrix-js-sdk/lib/logger.d.ts | 123 +- .../matrix-js-sdk/lib/logger.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/logger.js | 169 +- node_modules/matrix-js-sdk/lib/logger.js.map | 2 +- node_modules/matrix-js-sdk/lib/matrix.d.ts | 174 +- .../matrix-js-sdk/lib/matrix.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/matrix.js | 679 +- node_modules/matrix-js-sdk/lib/matrix.js.map | 2 +- .../lib/matrixrtc/CallMembership.d.ts | 154 - .../lib/matrixrtc/CallMembership.d.ts.map | 1 - .../lib/matrixrtc/CallMembership.js | 462 - .../lib/matrixrtc/CallMembership.js.map | 1 - .../lib/matrixrtc/EncryptionManager.d.ts | 44 - .../lib/matrixrtc/EncryptionManager.d.ts.map | 1 - .../lib/matrixrtc/EncryptionManager.js | 13 - .../lib/matrixrtc/EncryptionManager.js.map | 1 - .../lib/matrixrtc/IKeyTransport.d.ts | 37 - .../lib/matrixrtc/IKeyTransport.d.ts.map | 1 - .../lib/matrixrtc/IKeyTransport.js | 27 - .../lib/matrixrtc/IKeyTransport.js.map | 1 - .../lib/matrixrtc/IMembershipManager.d.ts | 94 - .../lib/matrixrtc/IMembershipManager.d.ts.map | 1 - .../lib/matrixrtc/IMembershipManager.js | 40 - .../lib/matrixrtc/IMembershipManager.js.map | 1 - .../lib/matrixrtc/LivekitTransport.d.ts | 23 - .../lib/matrixrtc/LivekitTransport.d.ts.map | 1 - .../lib/matrixrtc/LivekitTransport.js | 29 - .../lib/matrixrtc/LivekitTransport.js.map | 1 - .../lib/matrixrtc/MatrixRTCSession.d.ts | 365 - .../lib/matrixrtc/MatrixRTCSession.d.ts.map | 1 - .../lib/matrixrtc/MatrixRTCSession.js | 632 - .../lib/matrixrtc/MatrixRTCSession.js.map | 1 - .../matrixrtc/MatrixRTCSessionManager.d.ts | 59 - .../MatrixRTCSessionManager.d.ts.map | 1 - .../lib/matrixrtc/MatrixRTCSessionManager.js | 163 - .../matrixrtc/MatrixRTCSessionManager.js.map | 1 - .../lib/matrixrtc/MembershipManager.d.ts | 212 - .../lib/matrixrtc/MembershipManager.d.ts.map | 1 - .../lib/matrixrtc/MembershipManager.js | 936 -- .../lib/matrixrtc/MembershipManager.js.map | 1 - .../MembershipManagerActionScheduler.d.ts | 59 - .../MembershipManagerActionScheduler.d.ts.map | 1 - .../MembershipManagerActionScheduler.js | 119 - .../MembershipManagerActionScheduler.js.map | 1 - .../lib/matrixrtc/RTCEncryptionManager.d.ts | 110 - .../matrixrtc/RTCEncryptionManager.d.ts.map | 1 - .../lib/matrixrtc/RTCEncryptionManager.js | 351 - .../lib/matrixrtc/RTCEncryptionManager.js.map | 1 - .../lib/matrixrtc/ToDeviceKeyTransport.d.ts | 30 - .../matrixrtc/ToDeviceKeyTransport.d.ts.map | 1 - .../lib/matrixrtc/ToDeviceKeyTransport.js | 159 - .../lib/matrixrtc/ToDeviceKeyTransport.js.map | 1 - .../matrix-js-sdk/lib/matrixrtc/index.d.ts | 9 - .../lib/matrixrtc/index.d.ts.map | 1 - .../matrix-js-sdk/lib/matrixrtc/index.js | 23 - .../matrix-js-sdk/lib/matrixrtc/index.js.map | 1 - .../lib/matrixrtc/membershipData/common.d.ts | 8 - .../matrixrtc/membershipData/common.d.ts.map | 1 - .../lib/matrixrtc/membershipData/common.js | 26 - .../matrixrtc/membershipData/common.js.map | 1 - .../lib/matrixrtc/membershipData/index.d.ts | 4 - .../matrixrtc/membershipData/index.d.ts.map | 1 - .../lib/matrixrtc/membershipData/index.js | 20 - .../lib/matrixrtc/membershipData/index.js.map | 1 - .../lib/matrixrtc/membershipData/rtc.d.ts | 36 - .../lib/matrixrtc/membershipData/rtc.d.ts.map | 1 - .../lib/matrixrtc/membershipData/rtc.js | 133 - .../lib/matrixrtc/membershipData/rtc.js.map | 1 - .../lib/matrixrtc/membershipData/session.d.ts | 77 - .../matrixrtc/membershipData/session.d.ts.map | 1 - .../lib/matrixrtc/membershipData/session.js | 61 - .../matrixrtc/membershipData/session.js.map | 1 - .../matrix-js-sdk/lib/matrixrtc/types.d.ts | 182 - .../lib/matrixrtc/types.d.ts.map | 1 - .../matrix-js-sdk/lib/matrixrtc/types.js | 125 - .../matrix-js-sdk/lib/matrixrtc/types.js.map | 1 - .../matrix-js-sdk/lib/matrixrtc/utils.d.ts | 26 - .../lib/matrixrtc/utils.d.ts.map | 1 - .../matrix-js-sdk/lib/matrixrtc/utils.js | 70 - .../matrix-js-sdk/lib/matrixrtc/utils.js.map | 1 - .../lib/models/MSC3089Branch.d.ts | 28 +- .../lib/models/MSC3089Branch.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/MSC3089Branch.js | 73 +- .../lib/models/MSC3089Branch.js.map | 2 +- .../lib/models/MSC3089TreeSpace.d.ts | 34 +- .../lib/models/MSC3089TreeSpace.d.ts.map | 2 +- .../lib/models/MSC3089TreeSpace.js | 237 +- .../lib/models/MSC3089TreeSpace.js.map | 2 +- .../lib/models/ToDeviceMessage.js | 7 +- .../lib/models/ToDeviceMessage.js.map | 2 +- .../matrix-js-sdk/lib/models/beacon.d.ts | 7 +- .../matrix-js-sdk/lib/models/beacon.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/beacon.js | 52 +- .../matrix-js-sdk/lib/models/beacon.js.map | 2 +- .../lib/models/compare-event-ordering.d.ts | 24 - .../models/compare-event-ordering.d.ts.map | 1 - .../lib/models/compare-event-ordering.js | 120 - .../lib/models/compare-event-ordering.js.map | 1 - .../matrix-js-sdk/lib/models/device.d.ts | 4 +- .../matrix-js-sdk/lib/models/device.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/device.js | 37 +- .../matrix-js-sdk/lib/models/device.js.map | 2 +- .../lib/models/event-context.d.ts | 2 +- .../lib/models/event-context.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/event-context.js | 30 +- .../lib/models/event-context.js.map | 2 +- .../matrix-js-sdk/lib/models/event-status.js | 16 +- .../lib/models/event-status.js.map | 2 +- .../lib/models/event-timeline-set.d.ts | 55 +- .../lib/models/event-timeline-set.d.ts.map | 2 +- .../lib/models/event-timeline-set.js | 218 +- .../lib/models/event-timeline-set.js.map | 2 +- .../lib/models/event-timeline.d.ts | 23 +- .../lib/models/event-timeline.d.ts.map | 2 +- .../lib/models/event-timeline.js | 131 +- .../lib/models/event-timeline.js.map | 2 +- .../matrix-js-sdk/lib/models/event.d.ts | 250 +- .../matrix-js-sdk/lib/models/event.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/event.js | 601 +- .../matrix-js-sdk/lib/models/event.js.map | 2 +- .../lib/models/invites-ignorer-types.d.ts | 27 - .../lib/models/invites-ignorer-types.d.ts.map | 1 - .../lib/models/invites-ignorer-types.js | 56 - .../lib/models/invites-ignorer-types.js.map | 1 - .../lib/models/invites-ignorer.d.ts | 36 +- .../lib/models/invites-ignorer.d.ts.map | 2 +- .../lib/models/invites-ignorer.js | 75 +- .../lib/models/invites-ignorer.js.map | 2 +- .../matrix-js-sdk/lib/models/poll.d.ts | 12 +- .../matrix-js-sdk/lib/models/poll.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/models/poll.js | 76 +- .../matrix-js-sdk/lib/models/poll.js.map | 2 +- .../lib/models/profile-keys.d.ts | 17 - .../lib/models/profile-keys.d.ts.map | 1 - .../matrix-js-sdk/lib/models/profile-keys.js | 34 - .../lib/models/profile-keys.js.map | 1 - .../lib/models/read-receipt.d.ts | 58 +- .../lib/models/read-receipt.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/read-receipt.js | 234 +- .../lib/models/read-receipt.js.map | 2 +- .../lib/models/related-relations.d.ts | 6 +- .../lib/models/related-relations.d.ts.map | 2 +- .../lib/models/related-relations.js | 14 +- .../lib/models/related-relations.js.map | 2 +- .../lib/models/relations-container.d.ts | 22 +- .../lib/models/relations-container.d.ts.map | 2 +- .../lib/models/relations-container.js | 91 +- .../lib/models/relations-container.js.map | 2 +- .../matrix-js-sdk/lib/models/relations.d.ts | 19 +- .../lib/models/relations.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/relations.js | 155 +- .../matrix-js-sdk/lib/models/relations.js.map | 2 +- .../matrix-js-sdk/lib/models/room-member.d.ts | 52 +- .../lib/models/room-member.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/room-member.js | 172 +- .../lib/models/room-member.js.map | 2 +- .../lib/models/room-receipts.d.ts | 39 - .../lib/models/room-receipts.d.ts.map | 1 - .../matrix-js-sdk/lib/models/room-receipts.js | 388 - .../lib/models/room-receipts.js.map | 1 - .../lib/models/room-retention.d.ts | 28 - .../lib/models/room-retention.d.ts.map | 1 - .../lib/models/room-retention.js | 192 - .../lib/models/room-retention.js.map | 1 - .../matrix-js-sdk/lib/models/room-state.d.ts | 47 +- .../lib/models/room-state.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/room-state.js | 338 +- .../lib/models/room-state.js.map | 2 +- .../lib/models/room-sticky-events.d.ts | 111 - .../lib/models/room-sticky-events.d.ts.map | 1 - .../lib/models/room-sticky-events.js | 349 - .../lib/models/room-sticky-events.js.map | 1 - .../lib/models/room-summary.d.ts | 30 - .../lib/models/room-summary.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/room-summary.js | 20 +- .../lib/models/room-summary.js.map | 2 +- .../matrix-js-sdk/lib/models/room.d.ts | 285 +- .../matrix-js-sdk/lib/models/room.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/models/room.js | 1457 +- .../matrix-js-sdk/lib/models/room.js.map | 2 +- .../lib/models/search-result.d.ts | 6 +- .../lib/models/search-result.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/search-result.js | 13 +- .../lib/models/search-result.js.map | 2 +- .../matrix-js-sdk/lib/models/thread.d.ts | 87 +- .../matrix-js-sdk/lib/models/thread.d.ts.map | 2 +- .../matrix-js-sdk/lib/models/thread.js | 548 +- .../matrix-js-sdk/lib/models/thread.js.map | 2 +- .../lib/models/typed-event-emitter.d.ts | 13 +- .../lib/models/typed-event-emitter.d.ts.map | 2 +- .../lib/models/typed-event-emitter.js | 27 +- .../lib/models/typed-event-emitter.js.map | 2 +- .../matrix-js-sdk/lib/models/user.d.ts | 19 +- .../matrix-js-sdk/lib/models/user.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/models/user.js | 59 +- .../matrix-js-sdk/lib/models/user.js.map | 2 +- .../matrix-js-sdk/lib/oauth/authorize.d.ts | 131 - .../lib/oauth/authorize.d.ts.map | 1 - .../matrix-js-sdk/lib/oauth/authorize.js | 193 - .../matrix-js-sdk/lib/oauth/authorize.js.map | 1 - .../matrix-js-sdk/lib/oauth/discover.d.ts | 58 - .../matrix-js-sdk/lib/oauth/discover.d.ts.map | 1 - .../matrix-js-sdk/lib/oauth/discover.js | 35 - .../matrix-js-sdk/lib/oauth/discover.js.map | 1 - .../matrix-js-sdk/lib/oauth/error.d.ts | 63 - .../matrix-js-sdk/lib/oauth/error.d.ts.map | 1 - node_modules/matrix-js-sdk/lib/oauth/error.js | 89 - .../matrix-js-sdk/lib/oauth/error.js.map | 1 - .../matrix-js-sdk/lib/oauth/index.d.ts | 87 - .../matrix-js-sdk/lib/oauth/index.d.ts.map | 1 - node_modules/matrix-js-sdk/lib/oauth/index.js | 253 - .../matrix-js-sdk/lib/oauth/index.js.map | 1 - .../matrix-js-sdk/lib/oauth/register.d.ts | 136 - .../matrix-js-sdk/lib/oauth/register.d.ts.map | 1 - .../matrix-js-sdk/lib/oauth/register.js | 73 - .../matrix-js-sdk/lib/oauth/register.js.map | 1 - .../lib/oauth/tokenRefresher.d.ts | 21 - .../lib/oauth/tokenRefresher.d.ts.map | 1 - .../matrix-js-sdk/lib/oauth/tokenRefresher.js | 70 - .../lib/oauth/tokenRefresher.js.map | 1 - .../matrix-js-sdk/lib/pollingCachedValue.d.ts | 77 - .../lib/pollingCachedValue.d.ts.map | 1 - .../matrix-js-sdk/lib/pollingCachedValue.js | 160 - .../lib/pollingCachedValue.js.map | 1 - .../matrix-js-sdk/lib/pushprocessor.d.ts | 22 +- .../matrix-js-sdk/lib/pushprocessor.d.ts.map | 2 +- .../matrix-js-sdk/lib/pushprocessor.js | 393 +- .../matrix-js-sdk/lib/pushprocessor.js.map | 2 +- .../matrix-js-sdk/lib/randomstring.d.ts | 34 +- .../matrix-js-sdk/lib/randomstring.d.ts.map | 2 +- .../matrix-js-sdk/lib/randomstring.js | 98 +- .../matrix-js-sdk/lib/randomstring.js.map | 2 +- .../matrix-js-sdk/lib/realtime-callbacks.js | 27 +- .../lib/realtime-callbacks.js.map | 2 +- .../lib/receipt-accumulator.d.ts | 4 +- .../lib/receipt-accumulator.d.ts.map | 2 +- .../matrix-js-sdk/lib/receipt-accumulator.js | 34 +- .../lib/receipt-accumulator.js.map | 2 +- .../lib/rendezvous/MSC4108SignInWithQR.d.ts | 129 - .../rendezvous/MSC4108SignInWithQR.d.ts.map | 1 - .../lib/rendezvous/MSC4108SignInWithQR.js | 439 - .../lib/rendezvous/MSC4108SignInWithQR.js.map | 1 - .../lib/rendezvous/RendezvousChannel.d.ts | 2 +- .../lib/rendezvous/RendezvousChannel.d.ts.map | 2 +- .../lib/rendezvous/RendezvousChannel.js | 7 +- .../lib/rendezvous/RendezvousChannel.js.map | 2 +- .../lib/rendezvous/RendezvousCode.d.ts | 2 +- .../lib/rendezvous/RendezvousCode.d.ts.map | 2 +- .../lib/rendezvous/RendezvousCode.js | 7 +- .../lib/rendezvous/RendezvousCode.js.map | 2 +- .../lib/rendezvous/RendezvousError.d.ts | 2 +- .../lib/rendezvous/RendezvousError.d.ts.map | 2 +- .../lib/rendezvous/RendezvousError.js | 9 +- .../lib/rendezvous/RendezvousError.js.map | 2 +- .../rendezvous/RendezvousFailureReason.d.ts | 38 +- .../RendezvousFailureReason.d.ts.map | 2 +- .../lib/rendezvous/RendezvousFailureReason.js | 50 +- .../rendezvous/RendezvousFailureReason.js.map | 2 +- .../lib/rendezvous/RendezvousIntent.js | 10 +- .../lib/rendezvous/RendezvousIntent.js.map | 2 +- .../lib/rendezvous/RendezvousTransport.d.ts | 2 +- .../rendezvous/RendezvousTransport.d.ts.map | 2 +- .../lib/rendezvous/RendezvousTransport.js | 7 +- .../lib/rendezvous/RendezvousTransport.js.map | 2 +- .../channels/MSC4108SecureChannel.d.ts | 58 - .../channels/MSC4108SecureChannel.d.ts.map | 1 - .../channels/MSC4108SecureChannel.js | 221 - .../channels/MSC4108SecureChannel.js.map | 1 - .../lib/rendezvous/channels/index.d.ts | 2 +- .../lib/rendezvous/channels/index.d.ts.map | 2 +- .../lib/rendezvous/channels/index.js | 31 +- .../lib/rendezvous/channels/index.js.map | 2 +- .../matrix-js-sdk/lib/rendezvous/index.d.ts | 52 +- .../lib/rendezvous/index.d.ts.map | 2 +- .../matrix-js-sdk/lib/rendezvous/index.js | 190 +- .../matrix-js-sdk/lib/rendezvous/index.js.map | 2 +- .../transports/MSC4108RendezvousSession.d.ts | 61 - .../MSC4108RendezvousSession.d.ts.map | 1 - .../transports/MSC4108RendezvousSession.js | 234 - .../MSC4108RendezvousSession.js.map | 1 - .../lib/rendezvous/transports/index.d.ts | 2 +- .../lib/rendezvous/transports/index.d.ts.map | 2 +- .../lib/rendezvous/transports/index.js | 31 +- .../lib/rendezvous/transports/index.js.map | 2 +- .../matrix-js-sdk/lib/retentionPolicy.d.ts | 33 - .../lib/retentionPolicy.d.ts.map | 1 - .../matrix-js-sdk/lib/retentionPolicy.js | 39 - .../matrix-js-sdk/lib/retentionPolicy.js.map | 1 - .../matrix-js-sdk/lib/room-hierarchy.d.ts | 4 +- .../matrix-js-sdk/lib/room-hierarchy.d.ts.map | 2 +- .../matrix-js-sdk/lib/room-hierarchy.js | 46 +- .../matrix-js-sdk/lib/room-hierarchy.js.map | 2 +- .../lib/rtcTransportsCachedValue.d.ts | 9 - .../lib/rtcTransportsCachedValue.d.ts.map | 1 - .../lib/rtcTransportsCachedValue.js | 38 - .../lib/rtcTransportsCachedValue.js.map | 1 - .../lib/rust-crypto/CrossSigningIdentity.d.ts | 16 +- .../rust-crypto/CrossSigningIdentity.d.ts.map | 2 +- .../lib/rust-crypto/CrossSigningIdentity.js | 109 +- .../rust-crypto/CrossSigningIdentity.js.map | 2 +- .../rust-crypto/DehydratedDeviceManager.d.ts | 118 - .../DehydratedDeviceManager.d.ts.map | 1 - .../rust-crypto/DehydratedDeviceManager.js | 326 - .../DehydratedDeviceManager.js.map | 1 - .../lib/rust-crypto/KeyClaimManager.d.ts | 9 +- .../lib/rust-crypto/KeyClaimManager.d.ts.map | 2 +- .../lib/rust-crypto/KeyClaimManager.js | 32 +- .../lib/rust-crypto/KeyClaimManager.js.map | 2 +- .../rust-crypto/OutgoingRequestProcessor.d.ts | 29 +- .../OutgoingRequestProcessor.d.ts.map | 2 +- .../rust-crypto/OutgoingRequestProcessor.js | 177 +- .../OutgoingRequestProcessor.js.map | 2 +- .../rust-crypto/OutgoingRequestsManager.d.ts | 47 - .../OutgoingRequestsManager.d.ts.map | 1 - .../rust-crypto/OutgoingRequestsManager.js | 161 - .../OutgoingRequestsManager.js.map | 1 - .../PerSessionKeyBackupDownloader.d.ts | 120 - .../PerSessionKeyBackupDownloader.d.ts.map | 1 - .../PerSessionKeyBackupDownloader.js | 441 - .../PerSessionKeyBackupDownloader.js.map | 1 - .../lib/rust-crypto/RoomEncryptor.d.ts | 79 +- .../lib/rust-crypto/RoomEncryptor.d.ts.map | 2 +- .../lib/rust-crypto/RoomEncryptor.js | 258 +- .../lib/rust-crypto/RoomEncryptor.js.map | 2 +- .../matrix-js-sdk/lib/rust-crypto/backup.d.ts | 306 - .../lib/rust-crypto/backup.d.ts.map | 1 - .../matrix-js-sdk/lib/rust-crypto/backup.js | 880 -- .../lib/rust-crypto/backup.js.map | 1 - .../lib/rust-crypto/constants.js | 9 +- .../lib/rust-crypto/constants.js.map | 2 +- .../lib/rust-crypto/device-converter.d.ts | 4 +- .../lib/rust-crypto/device-converter.d.ts.map | 2 +- .../lib/rust-crypto/device-converter.js | 39 +- .../lib/rust-crypto/device-converter.js.map | 2 +- .../matrix-js-sdk/lib/rust-crypto/index.d.ts | 88 +- .../lib/rust-crypto/index.d.ts.map | 2 +- .../matrix-js-sdk/lib/rust-crypto/index.js | 156 +- .../lib/rust-crypto/index.js.map | 2 +- .../lib/rust-crypto/libolm_migration.d.ts | 81 - .../lib/rust-crypto/libolm_migration.d.ts.map | 1 - .../lib/rust-crypto/libolm_migration.js | 390 - .../lib/rust-crypto/libolm_migration.js.map | 1 - .../lib/rust-crypto/rust-crypto.d.ts | 418 +- .../lib/rust-crypto/rust-crypto.d.ts.map | 2 +- .../lib/rust-crypto/rust-crypto.js | 1874 +-- .../lib/rust-crypto/rust-crypto.js.map | 2 +- .../lib/rust-crypto/secret-storage.d.ts | 15 +- .../lib/rust-crypto/secret-storage.d.ts.map | 2 +- .../lib/rust-crypto/secret-storage.js | 44 +- .../lib/rust-crypto/secret-storage.js.map | 2 +- .../lib/rust-crypto/verification.d.ts | 62 +- .../lib/rust-crypto/verification.d.ts.map | 2 +- .../lib/rust-crypto/verification.js | 346 +- .../lib/rust-crypto/verification.js.map | 2 +- node_modules/matrix-js-sdk/lib/scheduler.d.ts | 11 +- .../matrix-js-sdk/lib/scheduler.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/scheduler.js | 89 +- .../matrix-js-sdk/lib/scheduler.js.map | 2 +- .../matrix-js-sdk/lib/secret-storage.d.ts | 86 +- .../matrix-js-sdk/lib/secret-storage.d.ts.map | 2 +- .../matrix-js-sdk/lib/secret-storage.js | 134 +- .../matrix-js-sdk/lib/secret-storage.js.map | 2 +- .../matrix-js-sdk/lib/serverCapabilities.d.ts | 59 - .../lib/serverCapabilities.d.ts.map | 1 - .../matrix-js-sdk/lib/serverCapabilities.js | 48 - .../lib/serverCapabilities.js.map | 1 - .../matrix-js-sdk/lib/service-types.d.ts | 2 +- .../matrix-js-sdk/lib/service-types.d.ts.map | 2 +- .../matrix-js-sdk/lib/service-types.js | 15 +- .../matrix-js-sdk/lib/service-types.js.map | 2 +- .../matrix-js-sdk/lib/sliding-sync-sdk.d.ts | 16 +- .../lib/sliding-sync-sdk.d.ts.map | 2 +- .../matrix-js-sdk/lib/sliding-sync-sdk.js | 384 +- .../matrix-js-sdk/lib/sliding-sync-sdk.js.map | 2 +- .../matrix-js-sdk/lib/sliding-sync.d.ts | 93 +- .../matrix-js-sdk/lib/sliding-sync.d.ts.map | 2 +- .../matrix-js-sdk/lib/sliding-sync.js | 484 +- .../matrix-js-sdk/lib/sliding-sync.js.map | 2 +- .../matrix-js-sdk/lib/store/index.d.ts | 51 +- .../matrix-js-sdk/lib/store/index.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/store/index.js | 7 +- .../matrix-js-sdk/lib/store/index.js.map | 2 +- .../lib/store/indexeddb-backend.d.ts | 10 +- .../lib/store/indexeddb-backend.d.ts.map | 2 +- .../lib/store/indexeddb-backend.js | 7 +- .../lib/store/indexeddb-backend.js.map | 2 +- .../lib/store/indexeddb-local-backend.d.ts | 14 +- .../store/indexeddb-local-backend.d.ts.map | 2 +- .../lib/store/indexeddb-local-backend.js | 167 +- .../lib/store/indexeddb-local-backend.js.map | 2 +- .../lib/store/indexeddb-remote-backend.d.ts | 18 +- .../store/indexeddb-remote-backend.d.ts.map | 2 +- .../lib/store/indexeddb-remote-backend.js | 81 +- .../lib/store/indexeddb-remote-backend.js.map | 2 +- .../lib/store/indexeddb-store-worker.d.ts.map | 2 +- .../lib/store/indexeddb-store-worker.js | 71 +- .../lib/store/indexeddb-store-worker.js.map | 2 +- .../matrix-js-sdk/lib/store/indexeddb.d.ts | 45 +- .../lib/store/indexeddb.d.ts.map | 2 +- .../matrix-js-sdk/lib/store/indexeddb.js | 142 +- .../matrix-js-sdk/lib/store/indexeddb.js.map | 2 +- .../store/local-storage-events-emitter.d.ts | 2 +- .../local-storage-events-emitter.d.ts.map | 2 +- .../lib/store/local-storage-events-emitter.js | 17 +- .../store/local-storage-events-emitter.js.map | 2 +- .../matrix-js-sdk/lib/store/memory.d.ts | 29 +- .../matrix-js-sdk/lib/store/memory.d.ts.map | 2 +- .../matrix-js-sdk/lib/store/memory.js | 93 +- .../matrix-js-sdk/lib/store/memory.js.map | 2 +- .../matrix-js-sdk/lib/store/stub.d.ts | 30 +- .../matrix-js-sdk/lib/store/stub.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/store/stub.js | 35 +- .../matrix-js-sdk/lib/store/stub.js.map | 2 +- .../matrix-js-sdk/lib/sync-accumulator.d.ts | 79 +- .../lib/sync-accumulator.d.ts.map | 2 +- .../matrix-js-sdk/lib/sync-accumulator.js | 203 +- .../matrix-js-sdk/lib/sync-accumulator.js.map | 2 +- node_modules/matrix-js-sdk/lib/sync.d.ts | 66 +- node_modules/matrix-js-sdk/lib/sync.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/sync.js | 903 +- node_modules/matrix-js-sdk/lib/sync.js.map | 2 +- node_modules/matrix-js-sdk/lib/testing.d.ts | 90 - .../matrix-js-sdk/lib/testing.d.ts.map | 1 - node_modules/matrix-js-sdk/lib/testing.js | 148 - node_modules/matrix-js-sdk/lib/testing.js.map | 1 - .../matrix-js-sdk/lib/thread-utils.d.ts | 10 - .../matrix-js-sdk/lib/thread-utils.d.ts.map | 1 - .../matrix-js-sdk/lib/thread-utils.js | 28 - .../matrix-js-sdk/lib/thread-utils.js.map | 1 - .../matrix-js-sdk/lib/timeline-window.d.ts | 18 +- .../lib/timeline-window.d.ts.map | 2 +- .../matrix-js-sdk/lib/timeline-window.js | 91 +- .../matrix-js-sdk/lib/timeline-window.js.map | 2 +- node_modules/matrix-js-sdk/lib/types.d.ts | 33 - node_modules/matrix-js-sdk/lib/types.d.ts.map | 1 - node_modules/matrix-js-sdk/lib/types.js | 52 - node_modules/matrix-js-sdk/lib/types.js.map | 1 - node_modules/matrix-js-sdk/lib/utils.d.ts | 43 +- node_modules/matrix-js-sdk/lib/utils.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/utils.js | 277 +- node_modules/matrix-js-sdk/lib/utils.js.map | 2 +- .../utils/decryptAESSecretStorageItem.d.ts | 12 - .../decryptAESSecretStorageItem.d.ts.map | 1 - .../lib/utils/decryptAESSecretStorageItem.js | 43 - .../utils/decryptAESSecretStorageItem.js.map | 1 - .../utils/encryptAESSecretStorageItem.d.ts | 16 - .../encryptAESSecretStorageItem.d.ts.map | 1 - .../lib/utils/encryptAESSecretStorageItem.js | 61 - .../utils/encryptAESSecretStorageItem.js.map | 1 - .../lib/utils/internal/deriveKeys.d.ts | 10 - .../lib/utils/internal/deriveKeys.d.ts.map | 1 - .../lib/utils/internal/deriveKeys.js | 52 - .../lib/utils/internal/deriveKeys.js.map | 1 - .../matrix-js-sdk/lib/utils/roomVersion.d.ts | 13 - .../lib/utils/roomVersion.d.ts.map | 1 - .../matrix-js-sdk/lib/utils/roomVersion.js | 36 - .../lib/utils/roomVersion.js.map | 1 - .../matrix-js-sdk/lib/version-support.d.ts | 19 - .../lib/version-support.d.ts.map | 1 - .../matrix-js-sdk/lib/version-support.js | 37 - .../matrix-js-sdk/lib/version-support.js.map | 1 - .../matrix-js-sdk/lib/webrtc/audioContext.js | 15 +- .../lib/webrtc/audioContext.js.map | 2 +- .../matrix-js-sdk/lib/webrtc/call.d.ts | 27 +- .../matrix-js-sdk/lib/webrtc/call.d.ts.map | 2 +- node_modules/matrix-js-sdk/lib/webrtc/call.js | 874 +- .../matrix-js-sdk/lib/webrtc/call.js.map | 2 +- .../lib/webrtc/callEventHandler.d.ts | 6 +- .../lib/webrtc/callEventHandler.d.ts.map | 2 +- .../lib/webrtc/callEventHandler.js | 152 +- .../lib/webrtc/callEventHandler.js.map | 2 +- .../lib/webrtc/callEventTypes.d.ts | 37 +- .../lib/webrtc/callEventTypes.d.ts.map | 2 +- .../lib/webrtc/callEventTypes.js | 18 +- .../lib/webrtc/callEventTypes.js.map | 2 +- .../matrix-js-sdk/lib/webrtc/callFeed.d.ts | 10 +- .../lib/webrtc/callFeed.d.ts.map | 2 +- .../matrix-js-sdk/lib/webrtc/callFeed.js | 99 +- .../matrix-js-sdk/lib/webrtc/callFeed.js.map | 2 +- .../matrix-js-sdk/lib/webrtc/groupCall.d.ts | 31 +- .../lib/webrtc/groupCall.d.ts.map | 2 +- .../matrix-js-sdk/lib/webrtc/groupCall.js | 487 +- .../matrix-js-sdk/lib/webrtc/groupCall.js.map | 2 +- .../lib/webrtc/groupCallEventHandler.d.ts | 6 +- .../lib/webrtc/groupCallEventHandler.d.ts.map | 2 +- .../lib/webrtc/groupCallEventHandler.js | 82 +- .../lib/webrtc/groupCallEventHandler.js.map | 2 +- .../lib/webrtc/mediaHandler.d.ts | 9 +- .../lib/webrtc/mediaHandler.d.ts.map | 2 +- .../matrix-js-sdk/lib/webrtc/mediaHandler.js | 186 +- .../lib/webrtc/mediaHandler.js.map | 2 +- .../webrtc/stats/callFeedStatsReporter.d.ts | 4 +- .../stats/callFeedStatsReporter.d.ts.map | 2 +- .../lib/webrtc/stats/callFeedStatsReporter.js | 24 +- .../webrtc/stats/callFeedStatsReporter.js.map | 2 +- .../webrtc/stats/callStatsReportGatherer.d.ts | 4 +- .../stats/callStatsReportGatherer.d.ts.map | 2 +- .../webrtc/stats/callStatsReportGatherer.js | 123 +- .../stats/callStatsReportGatherer.js.map | 2 +- .../webrtc/stats/callStatsReportSummary.d.ts | 2 +- .../webrtc/stats/callStatsReportSummary.js | 7 +- .../stats/callStatsReportSummary.js.map | 2 +- .../lib/webrtc/stats/connectionStats.d.ts | 4 +- .../lib/webrtc/stats/connectionStats.d.ts.map | 2 +- .../lib/webrtc/stats/connectionStats.js | 20 +- .../lib/webrtc/stats/connectionStats.js.map | 2 +- .../webrtc/stats/connectionStatsBuilder.d.ts | 2 +- .../stats/connectionStatsBuilder.d.ts.map | 2 +- .../webrtc/stats/connectionStatsBuilder.js | 9 +- .../stats/connectionStatsBuilder.js.map | 2 +- .../stats/connectionStatsReportBuilder.d.ts | 4 +- .../connectionStatsReportBuilder.d.ts.map | 2 +- .../stats/connectionStatsReportBuilder.js | 9 +- .../stats/connectionStatsReportBuilder.js.map | 2 +- .../lib/webrtc/stats/groupCallStats.d.ts | 4 +- .../lib/webrtc/stats/groupCallStats.d.ts.map | 2 +- .../lib/webrtc/stats/groupCallStats.js | 36 +- .../lib/webrtc/stats/groupCallStats.js.map | 2 +- .../stats/media/mediaSsrcHandler.d.ts.map | 2 +- .../webrtc/stats/media/mediaSsrcHandler.js | 21 +- .../stats/media/mediaSsrcHandler.js.map | 2 +- .../stats/media/mediaTrackHandler.d.ts.map | 2 +- .../webrtc/stats/media/mediaTrackHandler.js | 23 +- .../stats/media/mediaTrackHandler.js.map | 2 +- .../webrtc/stats/media/mediaTrackStats.d.ts | 4 +- .../stats/media/mediaTrackStats.d.ts.map | 2 +- .../lib/webrtc/stats/media/mediaTrackStats.js | 38 +- .../webrtc/stats/media/mediaTrackStats.js.map | 2 +- .../stats/media/mediaTrackStatsHandler.d.ts | 8 +- .../media/mediaTrackStatsHandler.d.ts.map | 2 +- .../stats/media/mediaTrackStatsHandler.js | 18 +- .../stats/media/mediaTrackStatsHandler.js.map | 2 +- .../lib/webrtc/stats/statsReport.d.ts | 6 +- .../lib/webrtc/stats/statsReport.d.ts.map | 2 +- .../lib/webrtc/stats/statsReport.js | 17 +- .../lib/webrtc/stats/statsReport.js.map | 2 +- .../lib/webrtc/stats/statsReportEmitter.d.ts | 4 +- .../webrtc/stats/statsReportEmitter.d.ts.map | 2 +- .../lib/webrtc/stats/statsReportEmitter.js | 21 +- .../webrtc/stats/statsReportEmitter.js.map | 2 +- .../stats/summaryStatsReportGatherer.d.ts | 10 +- .../stats/summaryStatsReportGatherer.d.ts.map | 2 +- .../stats/summaryStatsReportGatherer.js | 9 +- .../stats/summaryStatsReportGatherer.js.map | 2 +- .../lib/webrtc/stats/trackStatsBuilder.d.ts | 4 +- .../webrtc/stats/trackStatsBuilder.d.ts.map | 2 +- .../lib/webrtc/stats/trackStatsBuilder.js | 43 +- .../lib/webrtc/stats/trackStatsBuilder.js.map | 2 +- .../lib/webrtc/stats/transportStats.js | 7 +- .../lib/webrtc/stats/transportStats.js.map | 2 +- .../webrtc/stats/transportStatsBuilder.d.ts | 2 +- .../stats/transportStatsBuilder.d.ts.map | 2 +- .../lib/webrtc/stats/transportStatsBuilder.js | 13 +- .../webrtc/stats/transportStatsBuilder.js.map | 2 +- .../lib/webrtc/stats/valueFormatter.d.ts.map | 2 +- .../lib/webrtc/stats/valueFormatter.js | 9 +- .../lib/webrtc/stats/valueFormatter.js.map | 2 +- .../lib/wellKnownCachedValue.d.ts | 8 - .../lib/wellKnownCachedValue.d.ts.map | 1 - .../matrix-js-sdk/lib/wellKnownCachedValue.js | 34 - .../lib/wellKnownCachedValue.js.map | 1 - node_modules/matrix-js-sdk/package.json | 268 +- .../AESEncryptedSecretStoragePayload.ts | 29 - .../matrix-js-sdk/src/@types/PushRules.ts | 8 +- node_modules/matrix-js-sdk/src/@types/auth.ts | 33 +- .../matrix-js-sdk/src/@types/beacon.ts | 8 +- .../matrix-js-sdk/src/@types/common.ts | 24 - .../matrix-js-sdk/src/@types/crypto.ts | 50 +- .../matrix-js-sdk/src/@types/event.ts | 243 +- .../matrix-js-sdk/src/@types/events.ts | 119 - .../src/@types/extensible_events.ts | 29 +- .../matrix-js-sdk/src/@types/global.d.ts | 92 +- node_modules/matrix-js-sdk/src/@types/json.ts | 16 - .../matrix-js-sdk/src/@types/location.ts | 6 +- .../src/@types/matrix-sdk-crypto-wasm.d.ts | 38 - .../matrix-js-sdk/src/@types/media.ts | 245 - .../matrix-js-sdk/src/@types/membership.ts | 57 - .../matrix-js-sdk/src/@types/partials.ts | 60 +- .../matrix-js-sdk/src/@types/polls.ts | 15 +- .../matrix-js-sdk/src/@types/registration.ts | 26 +- .../matrix-js-sdk/src/@types/requests.ts | 156 +- .../matrix-js-sdk/src/@types/retention.ts | 16 - .../matrix-js-sdk/src/@types/search.ts | 14 +- .../matrix-js-sdk/src/@types/spaces.ts | 8 +- .../matrix-js-sdk/src/@types/state_events.ts | 153 - .../matrix-js-sdk/src/@types/synapse.ts | 4 +- node_modules/matrix-js-sdk/src/@types/sync.ts | 2 +- .../matrix-js-sdk/src/@types/threepids.ts | 4 +- .../matrix-js-sdk/src/@types/topic.ts | 24 +- .../matrix-js-sdk/src/@types/type-guards.ts | 126 - node_modules/matrix-js-sdk/src/@types/uia.ts | 9 +- .../matrix-js-sdk/src/NamespacedValue.ts | 15 +- node_modules/matrix-js-sdk/src/ReEmitter.ts | 4 +- .../matrix-js-sdk/src/ToDeviceMessageQueue.ts | 48 +- .../matrix-js-sdk/src/autodiscovery.ts | 179 +- node_modules/matrix-js-sdk/src/base64.ts | 86 - .../matrix-js-sdk/src/browser-index.ts | 25 +- .../matrix-js-sdk/src/capabilityPoller.ts | 102 - node_modules/matrix-js-sdk/src/client.ts | 5584 ++++--- .../src/common-crypto/CryptoBackend.ts | 206 +- .../src/common-crypto/key-passphrase.ts | 42 - .../matrix-js-sdk/src/content-helpers.ts | 62 +- .../matrix-js-sdk/src/content-repo.ts | 85 +- .../src/crypto-api/CryptoEvent.ts | 152 - .../src/crypto-api/CryptoEventHandlerMap.ts | 42 - .../matrix-js-sdk/src/crypto-api/index.ts | 1390 -- .../src/crypto-api/key-passphrase.ts | 58 - .../matrix-js-sdk/src/crypto-api/keybackup.ts | 91 +- .../src/crypto-api/recovery-key.ts | 69 - .../src/crypto-api/verification.ts | 90 +- .../matrix-js-sdk/src/crypto/store/base.ts | 317 +- .../store/indexeddb-crypto-store-backend.ts | 774 +- .../crypto/store/indexeddb-crypto-store.ts | 435 +- .../crypto/store/localStorage-crypto-store.ts | 343 +- .../src/crypto/store/memory-crypto-store.ts | 500 +- node_modules/matrix-js-sdk/src/digest.ts | 34 - node_modules/matrix-js-sdk/src/embedded.ts | 683 +- node_modules/matrix-js-sdk/src/errors.ts | 68 +- .../matrix-js-sdk/src/event-mapper.ts | 15 +- .../extensible_events_v1/ExtensibleEvent.ts | 2 +- .../src/extensible_events_v1/MessageEvent.ts | 22 +- .../src/extensible_events_v1/PollEndEvent.ts | 14 +- .../extensible_events_v1/PollResponseEvent.ts | 15 +- .../extensible_events_v1/PollStartEvent.ts | 18 +- .../src/extensible_events_v1/utilities.ts | 4 +- node_modules/matrix-js-sdk/src/feature.ts | 6 +- .../matrix-js-sdk/src/filter-component.ts | 39 +- node_modules/matrix-js-sdk/src/filter.ts | 50 +- .../matrix-js-sdk/src/http-api/errors.ts | 205 +- .../matrix-js-sdk/src/http-api/fetch.ts | 219 +- .../matrix-js-sdk/src/http-api/index.ts | 81 +- .../matrix-js-sdk/src/http-api/interface.ts | 118 +- .../matrix-js-sdk/src/http-api/method.ts | 3 - .../matrix-js-sdk/src/http-api/prefix.ts | 14 +- .../matrix-js-sdk/src/http-api/refresh.ts | 166 - .../matrix-js-sdk/src/http-api/utils.ts | 115 +- node_modules/matrix-js-sdk/src/index.ts | 8 +- .../matrix-js-sdk/src/indexeddb-worker.ts | 2 +- .../matrix-js-sdk/src/interactive-auth.ts | 90 +- node_modules/matrix-js-sdk/src/logger.ts | 239 +- node_modules/matrix-js-sdk/src/matrix.ts | 186 +- .../src/matrixrtc/CallMembership.ts | 438 - .../src/matrixrtc/EncryptionManager.ts | 54 - .../src/matrixrtc/IKeyTransport.ts | 63 - .../src/matrixrtc/IMembershipManager.ts | 120 - .../src/matrixrtc/LivekitTransport.ts | 46 - .../src/matrixrtc/MatrixRTCSession.ts | 1010 -- .../src/matrixrtc/MatrixRTCSessionManager.ts | 189 - .../src/matrixrtc/MembershipManager.ts | 1127 -- .../MembershipManagerActionScheduler.ts | 138 - .../src/matrixrtc/RTCEncryptionManager.ts | 459 - .../src/matrixrtc/ToDeviceKeyTransport.ts | 197 - .../matrix-js-sdk/src/matrixrtc/index.ts | 24 - .../src/matrixrtc/membershipData/common.ts | 27 - .../src/matrixrtc/membershipData/index.ts | 19 - .../src/matrixrtc/membershipData/rtc.ts | 168 - .../src/matrixrtc/membershipData/session.ts | 146 - .../matrix-js-sdk/src/matrixrtc/types.ts | 244 - .../matrix-js-sdk/src/matrixrtc/utils.ts | 69 - .../matrix-js-sdk/src/models/MSC3089Branch.ts | 40 +- .../src/models/MSC3089TreeSpace.ts | 95 +- .../matrix-js-sdk/src/models/beacon.ts | 16 +- .../src/models/compare-event-ordering.ts | 139 - .../matrix-js-sdk/src/models/device.ts | 6 +- .../matrix-js-sdk/src/models/event-context.ts | 4 +- .../src/models/event-timeline-set.ts | 157 +- .../src/models/event-timeline.ts | 68 +- .../matrix-js-sdk/src/models/event.ts | 528 +- .../src/models/invites-ignorer-types.ts | 58 - .../src/models/invites-ignorer.ts | 79 +- node_modules/matrix-js-sdk/src/models/poll.ts | 22 +- .../matrix-js-sdk/src/models/profile-keys.ts | 33 - .../matrix-js-sdk/src/models/read-receipt.ts | 203 +- .../src/models/related-relations.ts | 6 +- .../src/models/relations-container.ts | 91 +- .../matrix-js-sdk/src/models/relations.ts | 74 +- .../matrix-js-sdk/src/models/room-member.ts | 149 +- .../matrix-js-sdk/src/models/room-receipts.ts | 439 - .../src/models/room-retention.ts | 230 - .../matrix-js-sdk/src/models/room-state.ts | 228 +- .../src/models/room-sticky-events.ts | 384 - .../matrix-js-sdk/src/models/room-summary.ts | 36 +- node_modules/matrix-js-sdk/src/models/room.ts | 1134 +- .../matrix-js-sdk/src/models/search-result.ts | 11 +- .../matrix-js-sdk/src/models/thread.ts | 376 +- .../src/models/typed-event-emitter.ts | 16 +- node_modules/matrix-js-sdk/src/models/user.ts | 31 +- .../matrix-js-sdk/src/oauth/authorize.ts | 271 - .../matrix-js-sdk/src/oauth/discover.ts | 102 - node_modules/matrix-js-sdk/src/oauth/error.ts | 103 - node_modules/matrix-js-sdk/src/oauth/index.ts | 314 - .../matrix-js-sdk/src/oauth/register.ts | 166 - .../matrix-js-sdk/src/oauth/tokenRefresher.ts | 84 - .../matrix-js-sdk/src/pollingCachedValue.ts | 184 - .../matrix-js-sdk/src/pushprocessor.ts | 313 +- .../matrix-js-sdk/src/randomstring.ts | 99 +- .../matrix-js-sdk/src/realtime-callbacks.ts | 13 +- .../matrix-js-sdk/src/receipt-accumulator.ts | 13 +- .../src/rendezvous/MSC4108SignInWithQR.ts | 555 - .../src/rendezvous/RendezvousChannel.ts | 2 +- .../src/rendezvous/RendezvousCode.ts | 2 +- .../src/rendezvous/RendezvousError.ts | 7 +- .../src/rendezvous/RendezvousFailureReason.ts | 40 +- .../src/rendezvous/RendezvousTransport.ts | 2 +- .../channels/MSC4108SecureChannel.ts | 278 - .../src/rendezvous/channels/index.ts | 2 +- .../matrix-js-sdk/src/rendezvous/index.ts | 131 +- .../transports/MSC4108RendezvousSession.ts | 271 - .../src/rendezvous/transports/index.ts | 2 +- .../matrix-js-sdk/src/retentionPolicy.ts | 65 - .../matrix-js-sdk/src/room-hierarchy.ts | 10 +- .../src/rtcTransportsCachedValue.ts | 40 - .../src/rust-crypto/CrossSigningIdentity.ts | 153 +- .../rust-crypto/DehydratedDeviceManager.ts | 393 - .../src/rust-crypto/KeyClaimManager.ts | 21 +- .../rust-crypto/OutgoingRequestProcessor.ts | 162 +- .../rust-crypto/OutgoingRequestsManager.ts | 170 - .../PerSessionKeyBackupDownloader.ts | 501 - .../src/rust-crypto/RoomEncryptor.ts | 301 +- .../matrix-js-sdk/src/rust-crypto/backup.ts | 1008 -- .../src/rust-crypto/device-converter.ts | 6 +- .../matrix-js-sdk/src/rust-crypto/index.ts | 266 +- .../src/rust-crypto/libolm_migration.ts | 530 - .../src/rust-crypto/rust-crypto.ts | 2250 +-- .../src/rust-crypto/secret-storage.ts | 52 +- .../src/rust-crypto/verification.ts | 293 +- node_modules/matrix-js-sdk/src/scheduler.ts | 58 +- .../matrix-js-sdk/src/secret-storage.ts | 189 +- .../matrix-js-sdk/src/serverCapabilities.ts | 87 - .../matrix-js-sdk/src/sliding-sync-sdk.ts | 318 +- .../matrix-js-sdk/src/sliding-sync.ts | 427 +- node_modules/matrix-js-sdk/src/store/index.ts | 57 +- .../src/store/indexeddb-backend.ts | 10 +- .../src/store/indexeddb-local-backend.ts | 74 +- .../src/store/indexeddb-remote-backend.ts | 64 +- .../src/store/indexeddb-store-worker.ts | 14 +- .../matrix-js-sdk/src/store/indexeddb.ts | 100 +- .../src/store/local-storage-events-emitter.ts | 2 +- .../matrix-js-sdk/src/store/memory.ts | 71 +- node_modules/matrix-js-sdk/src/store/stub.ts | 44 +- .../matrix-js-sdk/src/sync-accumulator.ts | 238 +- node_modules/matrix-js-sdk/src/sync.ts | 1113 +- node_modules/matrix-js-sdk/src/testing.ts | 212 - .../matrix-js-sdk/src/thread-utils.ts | 31 - .../matrix-js-sdk/src/timeline-window.ts | 48 +- node_modules/matrix-js-sdk/src/types.ts | 59 - node_modules/matrix-js-sdk/src/utils.ts | 113 +- .../src/utils/decryptAESSecretStorageItem.ts | 54 - .../src/utils/encryptAESSecretStorageItem.ts | 73 - .../src/utils/internal/deriveKeys.ts | 62 - .../matrix-js-sdk/src/utils/roomVersion.ts | 35 - .../matrix-js-sdk/src/version-support.ts | 50 - node_modules/matrix-js-sdk/src/webrtc/call.ts | 255 +- .../src/webrtc/callEventHandler.ts | 16 +- .../src/webrtc/callEventTypes.ts | 46 +- .../matrix-js-sdk/src/webrtc/callFeed.ts | 16 +- .../matrix-js-sdk/src/webrtc/groupCall.ts | 152 +- .../src/webrtc/groupCallEventHandler.ts | 22 +- .../matrix-js-sdk/src/webrtc/mediaHandler.ts | 80 +- .../src/webrtc/stats/callFeedStatsReporter.ts | 11 +- .../webrtc/stats/callStatsReportGatherer.ts | 32 +- .../webrtc/stats/callStatsReportSummary.ts | 2 +- .../src/webrtc/stats/connectionStats.ts | 4 +- .../webrtc/stats/connectionStatsBuilder.ts | 2 +- .../stats/connectionStatsReportBuilder.ts | 11 +- .../src/webrtc/stats/groupCallStats.ts | 16 +- .../webrtc/stats/media/mediaTrackHandler.ts | 10 +- .../src/webrtc/stats/media/mediaTrackStats.ts | 4 +- .../stats/media/mediaTrackStatsHandler.ts | 8 +- .../src/webrtc/stats/statsReport.ts | 6 +- .../src/webrtc/stats/statsReportEmitter.ts | 12 +- .../stats/summaryStatsReportGatherer.ts | 10 +- .../src/webrtc/stats/trackStatsBuilder.ts | 8 +- .../src/webrtc/stats/transportStatsBuilder.ts | 4 +- .../matrix-js-sdk/src/wellKnownCachedValue.ts | 34 - node_modules/p-retry/index.d.ts | 309 +- node_modules/p-retry/index.js | 298 +- node_modules/p-retry/license | 2 +- node_modules/p-retry/package.json | 30 +- node_modules/p-retry/readme.md | 271 +- .../sdp-transform/.github/FUNDING.yml | 12 - .../sdp-transform/.github/dependabot.yml | 15 - node_modules/sdp-transform/CHANGELOG.md | 3 - node_modules/sdp-transform/lib/grammar.js | 7 +- node_modules/sdp-transform/package.json | 2 +- package-lock.json | 61 +- package.json | 10 +- 1145 files changed, 30890 insertions(+), 97684 deletions(-) delete mode 100644 node_modules/@matrix-org/matrix-sdk-crypto-wasm/index-wasm-esm.mjs delete mode 100644 node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.cjs delete mode 100644 node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.d.ts delete mode 100644 node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.mjs delete mode 100644 node_modules/@matrix-org/matrix-sdk-crypto-wasm/node.cjs delete mode 100644 node_modules/@matrix-org/matrix-sdk-crypto-wasm/node.mjs delete mode 100644 node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.cjs delete mode 100644 node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js delete mode 100644 node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm delete mode 100644 node_modules/base-x/src/cjs/index.cjs delete mode 100644 node_modules/base-x/src/cjs/index.d.ts delete mode 100644 node_modules/base-x/src/esm/index.js delete mode 100644 node_modules/bs58/src/cjs/index.cjs delete mode 100644 node_modules/bs58/src/cjs/index.d.ts delete mode 100644 node_modules/bs58/src/esm/index.js delete mode 100644 node_modules/content-type/dist/index.d.ts delete mode 100644 node_modules/content-type/dist/index.js delete mode 100644 node_modules/content-type/dist/index.js.map delete mode 100644 node_modules/is-network-error/index.d.ts delete mode 100644 node_modules/is-network-error/index.js delete mode 100644 node_modules/is-network-error/license delete mode 100644 node_modules/is-network-error/package.json delete mode 100644 node_modules/is-network-error/readme.md delete mode 100644 node_modules/matrix-js-sdk/lib/@types/AESEncryptedSecretStoragePayload.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/AESEncryptedSecretStoragePayload.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/AESEncryptedSecretStoragePayload.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/common.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/@types/common.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/common.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/common.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/events.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/@types/events.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/events.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/events.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/json.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/@types/json.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/json.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/json.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/matrix-sdk-crypto-wasm.d.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/matrix-sdk-crypto-wasm.d.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/media.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/@types/media.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/media.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/media.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/membership.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/@types/membership.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/membership.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/membership.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/retention.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/@types/retention.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/retention.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/retention.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/state_events.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/@types/state_events.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/state_events.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/state_events.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/type-guards.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/@types/type-guards.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/@types/type-guards.js delete mode 100644 node_modules/matrix-js-sdk/lib/@types/type-guards.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/base64.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/base64.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/base64.js delete mode 100644 node_modules/matrix-js-sdk/lib/base64.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/capabilityPoller.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/capabilityPoller.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/capabilityPoller.js delete mode 100644 node_modules/matrix-js-sdk/lib/capabilityPoller.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/common-crypto/key-passphrase.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/common-crypto/key-passphrase.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/common-crypto/key-passphrase.js delete mode 100644 node_modules/matrix-js-sdk/lib/common-crypto/key-passphrase.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/CryptoEvent.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/CryptoEvent.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/CryptoEvent.js delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/CryptoEvent.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/CryptoEventHandlerMap.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/CryptoEventHandlerMap.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/CryptoEventHandlerMap.js delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/CryptoEventHandlerMap.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/index.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/index.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/index.js delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/index.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/key-passphrase.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/key-passphrase.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/key-passphrase.js delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/key-passphrase.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/recovery-key.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/recovery-key.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/recovery-key.js delete mode 100644 node_modules/matrix-js-sdk/lib/crypto-api/recovery-key.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/digest.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/digest.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/digest.js delete mode 100644 node_modules/matrix-js-sdk/lib/digest.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/http-api/refresh.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/http-api/refresh.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/http-api/refresh.js delete mode 100644 node_modules/matrix-js-sdk/lib/http-api/refresh.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/CallMembership.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/CallMembership.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/CallMembership.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/CallMembership.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/EncryptionManager.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/EncryptionManager.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/EncryptionManager.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/EncryptionManager.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/IKeyTransport.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/IKeyTransport.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/IKeyTransport.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/IKeyTransport.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/IMembershipManager.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/IMembershipManager.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/IMembershipManager.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/IMembershipManager.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/LivekitTransport.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/LivekitTransport.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/LivekitTransport.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/LivekitTransport.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSessionManager.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSessionManager.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSessionManager.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MembershipManager.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MembershipManager.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MembershipManager.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MembershipManager.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MembershipManagerActionScheduler.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MembershipManagerActionScheduler.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MembershipManagerActionScheduler.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/MembershipManagerActionScheduler.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/RTCEncryptionManager.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/RTCEncryptionManager.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/RTCEncryptionManager.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/RTCEncryptionManager.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/ToDeviceKeyTransport.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/ToDeviceKeyTransport.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/ToDeviceKeyTransport.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/ToDeviceKeyTransport.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/index.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/index.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/index.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/index.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/common.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/common.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/common.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/common.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/index.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/index.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/index.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/index.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/rtc.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/rtc.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/rtc.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/rtc.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/session.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/session.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/session.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/membershipData/session.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/types.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/types.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/types.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/types.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/utils.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/utils.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/utils.js delete mode 100644 node_modules/matrix-js-sdk/lib/matrixrtc/utils.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/compare-event-ordering.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/models/compare-event-ordering.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/compare-event-ordering.js delete mode 100644 node_modules/matrix-js-sdk/lib/models/compare-event-ordering.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/invites-ignorer-types.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/models/invites-ignorer-types.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/invites-ignorer-types.js delete mode 100644 node_modules/matrix-js-sdk/lib/models/invites-ignorer-types.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/profile-keys.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/models/profile-keys.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/profile-keys.js delete mode 100644 node_modules/matrix-js-sdk/lib/models/profile-keys.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-receipts.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-receipts.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-receipts.js delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-receipts.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-retention.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-retention.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-retention.js delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-retention.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-sticky-events.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-sticky-events.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-sticky-events.js delete mode 100644 node_modules/matrix-js-sdk/lib/models/room-sticky-events.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/authorize.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/authorize.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/authorize.js delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/authorize.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/discover.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/discover.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/discover.js delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/discover.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/error.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/error.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/error.js delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/error.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/index.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/index.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/index.js delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/index.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/register.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/register.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/register.js delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/register.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.js delete mode 100644 node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/pollingCachedValue.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/pollingCachedValue.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/pollingCachedValue.js delete mode 100644 node_modules/matrix-js-sdk/lib/pollingCachedValue.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/MSC4108SignInWithQR.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/MSC4108SignInWithQR.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/MSC4108SignInWithQR.js delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/MSC4108SignInWithQR.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/channels/MSC4108SecureChannel.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/channels/MSC4108SecureChannel.js delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/channels/MSC4108SecureChannel.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/transports/MSC4108RendezvousSession.js delete mode 100644 node_modules/matrix-js-sdk/lib/rendezvous/transports/MSC4108RendezvousSession.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/retentionPolicy.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/retentionPolicy.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/retentionPolicy.js delete mode 100644 node_modules/matrix-js-sdk/lib/retentionPolicy.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/rtcTransportsCachedValue.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/rtcTransportsCachedValue.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/rtcTransportsCachedValue.js delete mode 100644 node_modules/matrix-js-sdk/lib/rtcTransportsCachedValue.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/DehydratedDeviceManager.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/DehydratedDeviceManager.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/DehydratedDeviceManager.js delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/DehydratedDeviceManager.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/OutgoingRequestsManager.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/OutgoingRequestsManager.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/OutgoingRequestsManager.js delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/OutgoingRequestsManager.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/PerSessionKeyBackupDownloader.js delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/backup.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/backup.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/backup.js delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/backup.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/libolm_migration.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/libolm_migration.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/libolm_migration.js delete mode 100644 node_modules/matrix-js-sdk/lib/rust-crypto/libolm_migration.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/serverCapabilities.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/serverCapabilities.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/serverCapabilities.js delete mode 100644 node_modules/matrix-js-sdk/lib/serverCapabilities.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/testing.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/testing.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/testing.js delete mode 100644 node_modules/matrix-js-sdk/lib/testing.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/thread-utils.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/thread-utils.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/thread-utils.js delete mode 100644 node_modules/matrix-js-sdk/lib/thread-utils.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/types.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/types.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/types.js delete mode 100644 node_modules/matrix-js-sdk/lib/types.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/utils/decryptAESSecretStorageItem.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/utils/decryptAESSecretStorageItem.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/utils/decryptAESSecretStorageItem.js delete mode 100644 node_modules/matrix-js-sdk/lib/utils/decryptAESSecretStorageItem.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/utils/encryptAESSecretStorageItem.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/utils/encryptAESSecretStorageItem.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/utils/encryptAESSecretStorageItem.js delete mode 100644 node_modules/matrix-js-sdk/lib/utils/encryptAESSecretStorageItem.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/utils/internal/deriveKeys.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/utils/internal/deriveKeys.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/utils/internal/deriveKeys.js delete mode 100644 node_modules/matrix-js-sdk/lib/utils/internal/deriveKeys.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/utils/roomVersion.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/utils/roomVersion.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/utils/roomVersion.js delete mode 100644 node_modules/matrix-js-sdk/lib/utils/roomVersion.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/version-support.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/version-support.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/version-support.js delete mode 100644 node_modules/matrix-js-sdk/lib/version-support.js.map delete mode 100644 node_modules/matrix-js-sdk/lib/wellKnownCachedValue.d.ts delete mode 100644 node_modules/matrix-js-sdk/lib/wellKnownCachedValue.d.ts.map delete mode 100644 node_modules/matrix-js-sdk/lib/wellKnownCachedValue.js delete mode 100644 node_modules/matrix-js-sdk/lib/wellKnownCachedValue.js.map delete mode 100644 node_modules/matrix-js-sdk/src/@types/AESEncryptedSecretStoragePayload.ts delete mode 100644 node_modules/matrix-js-sdk/src/@types/common.ts delete mode 100644 node_modules/matrix-js-sdk/src/@types/events.ts delete mode 100644 node_modules/matrix-js-sdk/src/@types/json.ts delete mode 100644 node_modules/matrix-js-sdk/src/@types/matrix-sdk-crypto-wasm.d.ts delete mode 100644 node_modules/matrix-js-sdk/src/@types/media.ts delete mode 100644 node_modules/matrix-js-sdk/src/@types/membership.ts delete mode 100644 node_modules/matrix-js-sdk/src/@types/retention.ts delete mode 100644 node_modules/matrix-js-sdk/src/@types/state_events.ts delete mode 100644 node_modules/matrix-js-sdk/src/@types/type-guards.ts delete mode 100644 node_modules/matrix-js-sdk/src/base64.ts delete mode 100644 node_modules/matrix-js-sdk/src/capabilityPoller.ts delete mode 100644 node_modules/matrix-js-sdk/src/common-crypto/key-passphrase.ts delete mode 100644 node_modules/matrix-js-sdk/src/crypto-api/CryptoEvent.ts delete mode 100644 node_modules/matrix-js-sdk/src/crypto-api/CryptoEventHandlerMap.ts delete mode 100644 node_modules/matrix-js-sdk/src/crypto-api/index.ts delete mode 100644 node_modules/matrix-js-sdk/src/crypto-api/key-passphrase.ts delete mode 100644 node_modules/matrix-js-sdk/src/crypto-api/recovery-key.ts delete mode 100644 node_modules/matrix-js-sdk/src/digest.ts delete mode 100644 node_modules/matrix-js-sdk/src/http-api/refresh.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/CallMembership.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/EncryptionManager.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/IKeyTransport.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/IMembershipManager.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/LivekitTransport.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/MatrixRTCSession.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/MatrixRTCSessionManager.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/MembershipManager.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/MembershipManagerActionScheduler.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/RTCEncryptionManager.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/ToDeviceKeyTransport.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/index.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/membershipData/common.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/membershipData/index.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/membershipData/rtc.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/membershipData/session.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/types.ts delete mode 100644 node_modules/matrix-js-sdk/src/matrixrtc/utils.ts delete mode 100644 node_modules/matrix-js-sdk/src/models/compare-event-ordering.ts delete mode 100644 node_modules/matrix-js-sdk/src/models/invites-ignorer-types.ts delete mode 100644 node_modules/matrix-js-sdk/src/models/profile-keys.ts delete mode 100644 node_modules/matrix-js-sdk/src/models/room-receipts.ts delete mode 100644 node_modules/matrix-js-sdk/src/models/room-retention.ts delete mode 100644 node_modules/matrix-js-sdk/src/models/room-sticky-events.ts delete mode 100644 node_modules/matrix-js-sdk/src/oauth/authorize.ts delete mode 100644 node_modules/matrix-js-sdk/src/oauth/discover.ts delete mode 100644 node_modules/matrix-js-sdk/src/oauth/error.ts delete mode 100644 node_modules/matrix-js-sdk/src/oauth/index.ts delete mode 100644 node_modules/matrix-js-sdk/src/oauth/register.ts delete mode 100644 node_modules/matrix-js-sdk/src/oauth/tokenRefresher.ts delete mode 100644 node_modules/matrix-js-sdk/src/pollingCachedValue.ts delete mode 100644 node_modules/matrix-js-sdk/src/rendezvous/MSC4108SignInWithQR.ts delete mode 100644 node_modules/matrix-js-sdk/src/rendezvous/channels/MSC4108SecureChannel.ts delete mode 100644 node_modules/matrix-js-sdk/src/rendezvous/transports/MSC4108RendezvousSession.ts delete mode 100644 node_modules/matrix-js-sdk/src/retentionPolicy.ts delete mode 100644 node_modules/matrix-js-sdk/src/rtcTransportsCachedValue.ts delete mode 100644 node_modules/matrix-js-sdk/src/rust-crypto/DehydratedDeviceManager.ts delete mode 100644 node_modules/matrix-js-sdk/src/rust-crypto/OutgoingRequestsManager.ts delete mode 100644 node_modules/matrix-js-sdk/src/rust-crypto/PerSessionKeyBackupDownloader.ts delete mode 100644 node_modules/matrix-js-sdk/src/rust-crypto/backup.ts delete mode 100644 node_modules/matrix-js-sdk/src/rust-crypto/libolm_migration.ts delete mode 100644 node_modules/matrix-js-sdk/src/serverCapabilities.ts delete mode 100644 node_modules/matrix-js-sdk/src/testing.ts delete mode 100644 node_modules/matrix-js-sdk/src/thread-utils.ts delete mode 100644 node_modules/matrix-js-sdk/src/types.ts delete mode 100644 node_modules/matrix-js-sdk/src/utils/decryptAESSecretStorageItem.ts delete mode 100644 node_modules/matrix-js-sdk/src/utils/encryptAESSecretStorageItem.ts delete mode 100644 node_modules/matrix-js-sdk/src/utils/internal/deriveKeys.ts delete mode 100644 node_modules/matrix-js-sdk/src/utils/roomVersion.ts delete mode 100644 node_modules/matrix-js-sdk/src/version-support.ts delete mode 100644 node_modules/matrix-js-sdk/src/wellKnownCachedValue.ts delete mode 100644 node_modules/sdp-transform/.github/FUNDING.yml delete mode 100644 node_modules/sdp-transform/.github/dependabot.yml diff --git a/.env b/.env index 3bf12f9..6ba43f6 100644 --- a/.env +++ b/.env @@ -1,3 +1,9 @@ +# Matrix Ancestor Quote Bot Configuration + +# IMPORTANT: Replace these values with your own! MATRIX_HOME_SERVER=https://matrix.org -MATRIX_ACCESS_TOKEN=YOUR_ACCESS_TOKEN_HERE +MATRIX_ACCESS_TOKEN=your_real_access_token_here BOT_COMMAND=!quote +DEBUG=false + +# If you want debug logging, set DEBUG=true diff --git a/.env.example b/.env.example index 4ae0de7..8992157 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,9 @@ # Matrix Ancestor Quote Bot Configuration -# Replace these values with your own: +# IMPORTANT: Replace these values with your own! MATRIX_HOME_SERVER=https://matrix.org -MATRIX_ACCESS_TOKEN=your_access_token_here +MATRIX_ACCESS_TOKEN=your_real_access_token_here BOT_COMMAND=!quote -# Optional: Enable debug logging (set to false in production) +# If you want debug logging, set DEBUG=true DEBUG=false diff --git a/Dockerfile b/Dockerfile index d5d6b7b..d9523f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,10 @@ -FROM node:18-alpine +FROM node:20-alpine WORKDIR /app -# Copy package files first for better layer caching COPY package*.json ./ - -# Install dependencies (including dotenv) RUN npm install -# Copy application source code COPY . . -# Expose port if needed (optional, Matrix uses websocket) -# EXPOSE 3000 - -# Run the bot (dotenv will auto-load from /app/.env or environment variables) CMD ["node", "index.js"] diff --git a/README.md b/README.md index d9ec583..30527ee 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Ancestor Quote Bot 🎃 +# 🎃 Ancestor Quote Bot A Matrix chatbot that responds to `!quote` commands with random quotes from Darkest Dungeons. @@ -7,7 +7,7 @@ A Matrix chatbot that responds to `!quote` commands with random quotes from Dark ```bash # 1. Update .env file (create from template) cp .env.example .env -# Edit .env with your MATRIX_ACCESS_TOKEN and MATRIX_HOME_SERVER +nano .env # Edit MATRIX_ACCESS_TOKEN and MATRIX_HOME_SERVER # 2. Build Docker image docker build -t ancestor-quote-bot . @@ -15,13 +15,13 @@ docker build -t ancestor-quote-bot . # 3. Run the bot docker run --rm \ -e MATRIX_HOME_SERVER=https://matrix.org \ - -e MATRIX_ACCESS_TOKEN=your_token_here \ + -e MATRIX_ACCESS_TOKEN=your_access_token_here \ ancestor-quote-bot ``` ## Deployment Options -### Option 1: Pass env vars via `docker run` (Recommended for Docker) +### Option A: Pass env vars via `docker run` (Recommended) ```bash docker run --rm \ -e MATRIX_HOME_SERVER=https://matrix.org \ @@ -30,22 +30,13 @@ docker run --rm \ ancestor-quote-bot ``` -### Option 2: Mount .env file directly +### Option B: Mount .env file directly ```bash docker run --rm \ -v $(pwd)/.env:/app/.env \ ancestor-quote-bot ``` -### Option 3: Use docker-compose.yml (Production) -```bash -docker compose up -d -# Or with custom env: -docker compose up -d \ - -e MATRIX_HOME_SERVER=https://matrix.org \ - -e MATRIX_ACCESS_TOKEN=your_access_token_here -``` - ## Configuration | Variable | Description | Default | @@ -54,15 +45,30 @@ docker compose up -d \ | `MATRIX_ACCESS_TOKEN` | Bot access token for authentication | REQUIRED | | `BOT_COMMAND` | Command trigger to request a quote | !quote | +## Getting an Access Token + +1. Go to [Matrix Registration API](https://matrix.org/docs/projects/registration/matrix-registration-api) +2. Or use your Matrix admin panel to create a bot account +3. Get the access token from your Matrix settings + ## How It Works 1. The bot connects to your Matrix homeserver using the provided access token 2. Once joined to a room, it listens for messages containing the trigger command 3. When triggered, it selects a random quote from `quotes.json` and replies instantly -## Getting an Access Token +## Usage -Use [this](https://matrix.org/docs/projects/registration/matrix-registration-api) or your Matrix admin panel to register a bot account. +```bash +# Invite the bot to a room: +# @ancestor-quote-bot:matrix.org (or your custom username) + +# In any Matrix room, type: +!quote + +# Bot responds with: +"Dispatch this thug in brutal fashion, that all may hear of your arrival!" +``` ## License diff --git a/index.js b/index.js index 115f638..1af2587 100644 --- a/index.js +++ b/index.js @@ -4,75 +4,79 @@ import fs from 'fs'; dotenv.config(); +console.log('🚀 Starting Ancestor Quote Bot...\n'); + const client = new MatrixClient({ accessToken: process.env.MATRIX_ACCESS_TOKEN, - matrix_homeserver: { - baseUrl: process.env.MATRIX_HOME_SERVER, - }, + baseUrl: process.env.MATRIX_HOME_SERVER, }); function loadQuotes() { - return new Promise((resolve) => { - setTimeout(() => { - const quotesFile = './quotes.json'; - if (fs.existsSync(quotesFile)) { - try { - resolve(JSON.parse(fs.readFileSync(quotesFile, 'utf8'))); - } catch (err) { - resolve([]); - } - } else { - resolve([]); - } - }, 0); - }); + try { + const quotesFile = './quotes.json'; + if (fs.existsSync(quotesFile)) { + return JSON.parse(fs.readFileSync(quotesFile, 'utf8')); + } + } catch (err) { + console.error('Error loading quotes:', err.message); + } + return []; } -loadQuotes().then((quotes) => { +(async () => { + const quotes = loadQuotes(); + if (quotes.length === 0) { - console.error('No quotes found! Please ensure quotes.json is present.'); + console.error('❌ No quotes found! Please ensure quotes.json is present.'); process.exit(1); } - console.log('Bot initialized successfully'); + console.log(`✅ Loaded ${quotes.length} Ancestor quotes`); - let joinedRooms = new Set(); + try { + await client.startClient(); + console.log('✅ Client initialized\n'); + + let joinedRooms = new Set(); + let lastSentMessage = null; - client.on('RoomMember#joined', (member) => { - const room = member.room; - if (!joinedRooms.has(room.roomId)) { - joinedRooms.add(room.roomId); - console.log(`Joined room: ${room.roomId}`); - - room.on('EventMessage', async (event) => { - const messageContent = event.getContent(); + client.on('RoomMember#joined', (member) => { + const room = member.room; + if (!joinedRooms.has(room.roomId)) { + joinedRooms.add(room.roomId); + console.log(`✅ Joined: ${room.roomId}`); - if (!messageContent || !messageContent.body) return; - - const body = messageContent.body.toLowerCase(); - const botCommand = (process.env.BOT_COMMAND || '!quote').toLowerCase(); - - if (body.includes(botCommand)) { - const randomQuote = quotes[Math.floor(Math.random() * quotes.length)]; - try { - await room.sendMessage(randomQuote); - console.log(`Sent quote to ${room.roomId}`); - } catch (err) { - console.error('Failed to send message:', err.message); + room.on('EventMessage', async (event) => { + const content = event.getContent(); + if (!content || !content.body) return; + + const body = content.body.toLowerCase(); + const cmd = (process.env.BOT_COMMAND || '!quote').toLowerCase(); + + if (body.includes(cmd)) { + if (!lastSentMessage || Date.now() - lastSentMessage > 300) { + const quote = quotes[Math.floor(Math.random() * quotes.length)]; + await room.sendMessage(quote); + console.log(`🎃 Quote: ${quote}`); + lastSentMessage = Date.now(); + } } - } - }); - - room.on('RoomMember#left', () => { - joinedRooms.delete(room.roomId); - console.log(`Left room: ${room.roomId}`); - }); - } - }); + }); - // Keep process alive with periodic heartbeat - setInterval(() => {}, 1000 * 60); // Heartbeat every minute - console.log('Bot is running. Press Ctrl+C to exit.'); -}).catch(err => { - console.error('Failed to load quotes:', err.message); -}); + room.on('RoomMember#left', () => { + joinedRooms.delete(room.roomId); + console.log(`ℹ️ Left: ${room.roomId}`); + }); + } + }); + + console.log('🤖 Bot is running!'); + console.log(' Invite to a Matrix room and type !quote to get an Ancestor quote.\n'); + + } catch (err) { + console.error('Fatal error:', err.message); + process.exit(1); + } + + setInterval(() => {}, 60000); +})(); diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 6952f46..991e772 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,22 +1,25 @@ { - "name": "ancestor-bot", + "name": "ancestor-quote-bot", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "node_modules/@babel/runtime": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-8.0.5.tgz", - "integrity": "sha512-7NK+Lz3spQ52XsUGTxIEVU4jYN2/dIaX8sTxRFAUtYmttYZnVh3aehiihv+/Gb7+duMNHl2OrFcBQRyOHScxpg==", - "license": "MIT" + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@matrix-org/matrix-sdk-crypto-wasm": { - "version": "18.8.0", - "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-18.8.0.tgz", - "integrity": "sha512-J+bYzUqtkYSrIUbDT8Razf9F1gzlpC94qeC5LQlr9QmjrzyaErwlV9v7S+gtSOeDvJCdfP8ebEDaANHiVLCYQg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-1.3.0.tgz", + "integrity": "sha512-vQ5PVppKu1PY7xy7QDw+RJLYLGFKhJyxLqjXHr0uEUJwfvz2IH2njTLXzrz77dOo9qacxJ9/YNOTe0Hl+98N0A==", "license": "Apache-2.0", "engines": { - "node": ">= 18" + "node": ">= 10" } }, "node_modules/@types/events": { @@ -25,6 +28,12 @@ "integrity": "sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==", "license": "MIT" }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, "node_modules/another-json": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz", @@ -32,33 +41,36 @@ "license": "Apache-2.0" }, "node_modules/base-x": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", - "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==", "license": "MIT" }, "node_modules/bs58": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", - "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", "license": "MIT", "dependencies": { - "base-x": "^5.0.0" + "base-x": "^4.0.0" } }, "node_modules/content-type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", - "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "license": "MIT", "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "node": ">= 0.6" } }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "deprecated": "Active development of CryptoJS has been discontinued. This library is no longer maintained.", + "license": "MIT" + }, "node_modules/dotenv": { "version": "17.4.2", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", @@ -80,17 +92,11 @@ "node": ">=0.8.x" } }, - "node_modules/is-network-error": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.2.tgz", - "integrity": "sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", + "license": "MIT" }, "node_modules/loglevel": { "version": "1.9.2", @@ -112,25 +118,28 @@ "license": "Apache-2.0" }, "node_modules/matrix-js-sdk": { - "version": "42.3.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-42.3.0.tgz", - "integrity": "sha512-jXXFLlaA25zQ2oxXCgbAEubGC8KpF8OabSf387W0RXfkwqhNXEbU+veeUaZMT+bCbyE5nDxkN3iBy038VbntQg==", + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-27.1.0.tgz", + "integrity": "sha512-ge1P1iNit0demKA11YzXt4QdsBHObrPdIVdecutFX7OwOBat6BC1F6AxsvPZQPDqnT5oelJt55ym4U7i8G9IRg==", "license": "Apache-2.0", "dependencies": { - "@babel/runtime": "^8.0.0", - "@matrix-org/matrix-sdk-crypto-wasm": "^18.4.0", + "@babel/runtime": "^7.12.5", + "@matrix-org/matrix-sdk-crypto-wasm": "^1.1.0", "another-json": "^0.2.0", - "bs58": "^6.0.0", - "content-type": "^2.0.0", - "loglevel": "^1.9.2", + "bs58": "^5.0.0", + "content-type": "^1.0.4", + "jwt-decode": "^3.1.2", + "loglevel": "^1.7.1", "matrix-events-sdk": "0.0.1", - "matrix-widget-api": "^1.18.0", - "p-retry": "8", - "sdp-transform": "^3.0.0", - "unhomoglyph": "^1.0.6" + "matrix-widget-api": "^1.3.1", + "oidc-client-ts": "^2.2.4", + "p-retry": "4", + "sdp-transform": "^2.14.1", + "unhomoglyph": "^1.0.6", + "uuid": "9" }, "engines": { - "node": ">=22.0.0" + "node": ">=18.0.0" } }, "node_modules/matrix-widget-api": { @@ -143,25 +152,45 @@ "events": "^3.2.0" } }, - "node_modules/p-retry": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-8.0.1.tgz", - "integrity": "sha512-NAigyu8hfvJe7MsS18mnc4is0MZtau3QMdBklaJKK23oBQb6occO3UPM3vHmTckW8KhfyjMZaUOqdTFEYliHgg==", - "license": "MIT", + "node_modules/oidc-client-ts": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/oidc-client-ts/-/oidc-client-ts-2.5.0.tgz", + "integrity": "sha512-JZ/Sp+AoML4sBWCn8ShAjnIMKx3GXwU/8sQY2btRPOUS8kBZltC2dFqOdN5Mimc4g7oVGSTC/bVDBviYcuud9g==", + "license": "Apache-2.0", "dependencies": { - "is-network-error": "^1.3.0" + "crypto-js": "^4.2.0", + "jwt-decode": "^3.1.2" }, "engines": { - "node": ">=22" + "node": ">=12.13.0" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/sdp-transform": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-3.0.0.tgz", - "integrity": "sha512-gfYVRGxjHkGF2NPeUWHw5u6T/KGFtS5/drPms73gaSuMaVHKCY3lpLnGDfswVQO0kddeePoti09AwhYP4zA8dQ==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.15.0.tgz", + "integrity": "sha512-KrOH82c/W+GYQ0LHqtr3caRpM3ITglq3ljGUIb8LTki7ByacJZ9z+piSGiwZDsRyhQbYBOBJgr2k6X4BZXi3Kw==", "license": "MIT", "bin": { "sdp-verify": "checker.js" @@ -172,6 +201,20 @@ "resolved": "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz", "integrity": "sha512-7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==", "license": "MIT" + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } } } } diff --git a/node_modules/@babel/runtime/package.json b/node_modules/@babel/runtime/package.json index 150389b..0f7db7f 100644 --- a/node_modules/@babel/runtime/package.json +++ b/node_modules/@babel/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@babel/runtime", - "version": "8.0.5", + "version": "7.29.7", "description": "babel's modular runtime helpers", "license": "MIT", "publishConfig": { @@ -13,474 +13,1095 @@ }, "homepage": "https://babel.dev/docs/en/next/babel-runtime", "author": "The Babel Team (https://babel.dev/team)", - "sideEffects": false, "exports": { - "./helpers/OverloadYield": { - "node": "./helpers/OverloadYield.js", - "import": "./helpers/esm/OverloadYield.js", - "default": "./helpers/OverloadYield.js" - }, - "./helpers/applyDecoratedDescriptor": { - "node": "./helpers/applyDecoratedDescriptor.js", - "import": "./helpers/esm/applyDecoratedDescriptor.js", - "default": "./helpers/applyDecoratedDescriptor.js" - }, - "./helpers/applyDecs2311": { - "node": "./helpers/applyDecs2311.js", - "import": "./helpers/esm/applyDecs2311.js", - "default": "./helpers/applyDecs2311.js" - }, - "./helpers/arrayLikeToArray": { - "node": "./helpers/arrayLikeToArray.js", - "import": "./helpers/esm/arrayLikeToArray.js", - "default": "./helpers/arrayLikeToArray.js" - }, - "./helpers/arrayWithHoles": { - "node": "./helpers/arrayWithHoles.js", - "import": "./helpers/esm/arrayWithHoles.js", - "default": "./helpers/arrayWithHoles.js" - }, - "./helpers/arrayWithoutHoles": { - "node": "./helpers/arrayWithoutHoles.js", - "import": "./helpers/esm/arrayWithoutHoles.js", - "default": "./helpers/arrayWithoutHoles.js" - }, - "./helpers/assertClassBrand": { - "node": "./helpers/assertClassBrand.js", - "import": "./helpers/esm/assertClassBrand.js", - "default": "./helpers/assertClassBrand.js" - }, - "./helpers/assertThisInitialized": { - "node": "./helpers/assertThisInitialized.js", - "import": "./helpers/esm/assertThisInitialized.js", - "default": "./helpers/assertThisInitialized.js" - }, - "./helpers/asyncGeneratorDelegate": { - "node": "./helpers/asyncGeneratorDelegate.js", - "import": "./helpers/esm/asyncGeneratorDelegate.js", - "default": "./helpers/asyncGeneratorDelegate.js" - }, - "./helpers/asyncIterator": { - "node": "./helpers/asyncIterator.js", - "import": "./helpers/esm/asyncIterator.js", - "default": "./helpers/asyncIterator.js" - }, - "./helpers/asyncToGenerator": { - "node": "./helpers/asyncToGenerator.js", - "import": "./helpers/esm/asyncToGenerator.js", - "default": "./helpers/asyncToGenerator.js" - }, - "./helpers/awaitAsyncGenerator": { - "node": "./helpers/awaitAsyncGenerator.js", - "import": "./helpers/esm/awaitAsyncGenerator.js", - "default": "./helpers/awaitAsyncGenerator.js" - }, - "./helpers/callSuper": { - "node": "./helpers/callSuper.js", - "import": "./helpers/esm/callSuper.js", - "default": "./helpers/callSuper.js" - }, - "./helpers/checkInRHS": { - "node": "./helpers/checkInRHS.js", - "import": "./helpers/esm/checkInRHS.js", - "default": "./helpers/checkInRHS.js" - }, - "./helpers/checkPrivateRedeclaration": { - "node": "./helpers/checkPrivateRedeclaration.js", - "import": "./helpers/esm/checkPrivateRedeclaration.js", - "default": "./helpers/checkPrivateRedeclaration.js" - }, - "./helpers/classCallCheck": { - "node": "./helpers/classCallCheck.js", - "import": "./helpers/esm/classCallCheck.js", - "default": "./helpers/classCallCheck.js" - }, - "./helpers/classNameTDZError": { - "node": "./helpers/classNameTDZError.js", - "import": "./helpers/esm/classNameTDZError.js", - "default": "./helpers/classNameTDZError.js" - }, - "./helpers/classPrivateFieldGet2": { - "node": "./helpers/classPrivateFieldGet2.js", - "import": "./helpers/esm/classPrivateFieldGet2.js", - "default": "./helpers/classPrivateFieldGet2.js" - }, - "./helpers/classPrivateFieldInitSpec": { - "node": "./helpers/classPrivateFieldInitSpec.js", - "import": "./helpers/esm/classPrivateFieldInitSpec.js", - "default": "./helpers/classPrivateFieldInitSpec.js" - }, - "./helpers/classPrivateFieldLooseBase": { - "node": "./helpers/classPrivateFieldLooseBase.js", - "import": "./helpers/esm/classPrivateFieldLooseBase.js", - "default": "./helpers/classPrivateFieldLooseBase.js" - }, - "./helpers/classPrivateFieldLooseKey": { - "node": "./helpers/classPrivateFieldLooseKey.js", - "import": "./helpers/esm/classPrivateFieldLooseKey.js", - "default": "./helpers/classPrivateFieldLooseKey.js" - }, - "./helpers/classPrivateFieldSet2": { - "node": "./helpers/classPrivateFieldSet2.js", - "import": "./helpers/esm/classPrivateFieldSet2.js", - "default": "./helpers/classPrivateFieldSet2.js" - }, - "./helpers/classPrivateGetter": { - "node": "./helpers/classPrivateGetter.js", - "import": "./helpers/esm/classPrivateGetter.js", - "default": "./helpers/classPrivateGetter.js" - }, - "./helpers/classPrivateMethodInitSpec": { - "node": "./helpers/classPrivateMethodInitSpec.js", - "import": "./helpers/esm/classPrivateMethodInitSpec.js", - "default": "./helpers/classPrivateMethodInitSpec.js" - }, - "./helpers/classPrivateSetter": { - "node": "./helpers/classPrivateSetter.js", - "import": "./helpers/esm/classPrivateSetter.js", - "default": "./helpers/classPrivateSetter.js" - }, - "./helpers/classStaticPrivateMethodGet": { - "node": "./helpers/classStaticPrivateMethodGet.js", - "import": "./helpers/esm/classStaticPrivateMethodGet.js", - "default": "./helpers/classStaticPrivateMethodGet.js" - }, - "./helpers/construct": { - "node": "./helpers/construct.js", - "import": "./helpers/esm/construct.js", - "default": "./helpers/construct.js" - }, - "./helpers/createClass": { - "node": "./helpers/createClass.js", - "import": "./helpers/esm/createClass.js", - "default": "./helpers/createClass.js" - }, - "./helpers/createForOfIteratorHelper": { - "node": "./helpers/createForOfIteratorHelper.js", - "import": "./helpers/esm/createForOfIteratorHelper.js", - "default": "./helpers/createForOfIteratorHelper.js" - }, - "./helpers/createForOfIteratorHelperLoose": { - "node": "./helpers/createForOfIteratorHelperLoose.js", - "import": "./helpers/esm/createForOfIteratorHelperLoose.js", - "default": "./helpers/createForOfIteratorHelperLoose.js" - }, - "./helpers/createSuper": { - "node": "./helpers/createSuper.js", - "import": "./helpers/esm/createSuper.js", - "default": "./helpers/createSuper.js" - }, - "./helpers/defaults": { - "node": "./helpers/defaults.js", - "import": "./helpers/esm/defaults.js", - "default": "./helpers/defaults.js" - }, - "./helpers/defineAccessor": { - "node": "./helpers/defineAccessor.js", - "import": "./helpers/esm/defineAccessor.js", - "default": "./helpers/defineAccessor.js" - }, - "./helpers/defineProperty": { - "node": "./helpers/defineProperty.js", - "import": "./helpers/esm/defineProperty.js", - "default": "./helpers/defineProperty.js" - }, - "./helpers/extends": { - "node": "./helpers/extends.js", - "import": "./helpers/esm/extends.js", - "default": "./helpers/extends.js" - }, - "./helpers/get": { - "node": "./helpers/get.js", - "import": "./helpers/esm/get.js", - "default": "./helpers/get.js" - }, - "./helpers/getPrototypeOf": { - "node": "./helpers/getPrototypeOf.js", - "import": "./helpers/esm/getPrototypeOf.js", - "default": "./helpers/getPrototypeOf.js" - }, - "./helpers/identity": { - "node": "./helpers/identity.js", - "import": "./helpers/esm/identity.js", - "default": "./helpers/identity.js" - }, - "./helpers/importDeferProxy": { - "node": "./helpers/importDeferProxy.js", - "import": "./helpers/esm/importDeferProxy.js", - "default": "./helpers/importDeferProxy.js" - }, - "./helpers/inherits": { - "node": "./helpers/inherits.js", - "import": "./helpers/esm/inherits.js", - "default": "./helpers/inherits.js" - }, - "./helpers/inheritsLoose": { - "node": "./helpers/inheritsLoose.js", - "import": "./helpers/esm/inheritsLoose.js", - "default": "./helpers/inheritsLoose.js" - }, - "./helpers/initializerDefineProperty": { - "node": "./helpers/initializerDefineProperty.js", - "import": "./helpers/esm/initializerDefineProperty.js", - "default": "./helpers/initializerDefineProperty.js" - }, - "./helpers/initializerWarningHelper": { - "node": "./helpers/initializerWarningHelper.js", - "import": "./helpers/esm/initializerWarningHelper.js", - "default": "./helpers/initializerWarningHelper.js" - }, - "./helpers/instanceof": { - "node": "./helpers/instanceof.js", - "import": "./helpers/esm/instanceof.js", - "default": "./helpers/instanceof.js" - }, - "./helpers/interopRequireDefault": { - "node": "./helpers/interopRequireDefault.js", - "import": "./helpers/esm/interopRequireDefault.js", - "default": "./helpers/interopRequireDefault.js" - }, - "./helpers/interopRequireWildcard": { - "node": "./helpers/interopRequireWildcard.js", - "import": "./helpers/esm/interopRequireWildcard.js", - "default": "./helpers/interopRequireWildcard.js" - }, - "./helpers/isNativeFunction": { - "node": "./helpers/isNativeFunction.js", - "import": "./helpers/esm/isNativeFunction.js", - "default": "./helpers/isNativeFunction.js" - }, - "./helpers/isNativeReflectConstruct": { - "node": "./helpers/isNativeReflectConstruct.js", - "import": "./helpers/esm/isNativeReflectConstruct.js", - "default": "./helpers/isNativeReflectConstruct.js" - }, - "./helpers/iterableToArray": { - "node": "./helpers/iterableToArray.js", - "import": "./helpers/esm/iterableToArray.js", - "default": "./helpers/iterableToArray.js" - }, - "./helpers/iterableToArrayLimit": { - "node": "./helpers/iterableToArrayLimit.js", - "import": "./helpers/esm/iterableToArrayLimit.js", - "default": "./helpers/iterableToArrayLimit.js" - }, - "./helpers/jsx": { - "node": "./helpers/jsx.js", - "import": "./helpers/esm/jsx.js", - "default": "./helpers/jsx.js" - }, - "./helpers/maybeArrayLike": { - "node": "./helpers/maybeArrayLike.js", - "import": "./helpers/esm/maybeArrayLike.js", - "default": "./helpers/maybeArrayLike.js" - }, - "./helpers/newArrowCheck": { - "node": "./helpers/newArrowCheck.js", - "import": "./helpers/esm/newArrowCheck.js", - "default": "./helpers/newArrowCheck.js" - }, - "./helpers/nonIterableRest": { - "node": "./helpers/nonIterableRest.js", - "import": "./helpers/esm/nonIterableRest.js", - "default": "./helpers/nonIterableRest.js" - }, - "./helpers/nonIterableSpread": { - "node": "./helpers/nonIterableSpread.js", - "import": "./helpers/esm/nonIterableSpread.js", - "default": "./helpers/nonIterableSpread.js" - }, - "./helpers/nullishReceiverError": { - "node": "./helpers/nullishReceiverError.js", - "import": "./helpers/esm/nullishReceiverError.js", - "default": "./helpers/nullishReceiverError.js" - }, - "./helpers/objectDestructuringEmpty": { - "node": "./helpers/objectDestructuringEmpty.js", - "import": "./helpers/esm/objectDestructuringEmpty.js", - "default": "./helpers/objectDestructuringEmpty.js" - }, - "./helpers/objectSpread2": { - "node": "./helpers/objectSpread2.js", - "import": "./helpers/esm/objectSpread2.js", - "default": "./helpers/objectSpread2.js" - }, - "./helpers/objectWithoutProperties": { - "node": "./helpers/objectWithoutProperties.js", - "import": "./helpers/esm/objectWithoutProperties.js", - "default": "./helpers/objectWithoutProperties.js" - }, - "./helpers/objectWithoutPropertiesLoose": { - "node": "./helpers/objectWithoutPropertiesLoose.js", - "import": "./helpers/esm/objectWithoutPropertiesLoose.js", - "default": "./helpers/objectWithoutPropertiesLoose.js" - }, - "./helpers/possibleConstructorReturn": { - "node": "./helpers/possibleConstructorReturn.js", - "import": "./helpers/esm/possibleConstructorReturn.js", - "default": "./helpers/possibleConstructorReturn.js" - }, - "./helpers/readOnlyError": { - "node": "./helpers/readOnlyError.js", - "import": "./helpers/esm/readOnlyError.js", - "default": "./helpers/readOnlyError.js" - }, - "./helpers/regenerator": { - "node": "./helpers/regenerator.js", - "import": "./helpers/esm/regenerator.js", - "default": "./helpers/regenerator.js" - }, - "./helpers/regeneratorAsync": { - "node": "./helpers/regeneratorAsync.js", - "import": "./helpers/esm/regeneratorAsync.js", - "default": "./helpers/regeneratorAsync.js" - }, - "./helpers/regeneratorAsyncGen": { - "node": "./helpers/regeneratorAsyncGen.js", - "import": "./helpers/esm/regeneratorAsyncGen.js", - "default": "./helpers/regeneratorAsyncGen.js" - }, - "./helpers/regeneratorKeys": { - "node": "./helpers/regeneratorKeys.js", - "import": "./helpers/esm/regeneratorKeys.js", - "default": "./helpers/regeneratorKeys.js" - }, - "./helpers/regeneratorValues": { - "node": "./helpers/regeneratorValues.js", - "import": "./helpers/esm/regeneratorValues.js", - "default": "./helpers/regeneratorValues.js" - }, - "./helpers/set": { - "node": "./helpers/set.js", - "import": "./helpers/esm/set.js", - "default": "./helpers/set.js" - }, - "./helpers/setFunctionName": { - "node": "./helpers/setFunctionName.js", - "import": "./helpers/esm/setFunctionName.js", - "default": "./helpers/setFunctionName.js" - }, - "./helpers/setPrototypeOf": { - "node": "./helpers/setPrototypeOf.js", - "import": "./helpers/esm/setPrototypeOf.js", - "default": "./helpers/setPrototypeOf.js" - }, - "./helpers/skipFirstGeneratorNext": { - "node": "./helpers/skipFirstGeneratorNext.js", - "import": "./helpers/esm/skipFirstGeneratorNext.js", - "default": "./helpers/skipFirstGeneratorNext.js" - }, - "./helpers/slicedToArray": { - "node": "./helpers/slicedToArray.js", - "import": "./helpers/esm/slicedToArray.js", - "default": "./helpers/slicedToArray.js" - }, - "./helpers/superPropBase": { - "node": "./helpers/superPropBase.js", - "import": "./helpers/esm/superPropBase.js", - "default": "./helpers/superPropBase.js" - }, - "./helpers/superPropGet": { - "node": "./helpers/superPropGet.js", - "import": "./helpers/esm/superPropGet.js", - "default": "./helpers/superPropGet.js" - }, - "./helpers/superPropSet": { - "node": "./helpers/superPropSet.js", - "import": "./helpers/esm/superPropSet.js", - "default": "./helpers/superPropSet.js" - }, - "./helpers/taggedTemplateLiteral": { - "node": "./helpers/taggedTemplateLiteral.js", - "import": "./helpers/esm/taggedTemplateLiteral.js", - "default": "./helpers/taggedTemplateLiteral.js" - }, - "./helpers/taggedTemplateLiteralLoose": { - "node": "./helpers/taggedTemplateLiteralLoose.js", - "import": "./helpers/esm/taggedTemplateLiteralLoose.js", - "default": "./helpers/taggedTemplateLiteralLoose.js" - }, - "./helpers/tdz": { - "node": "./helpers/tdz.js", - "import": "./helpers/esm/tdz.js", - "default": "./helpers/tdz.js" - }, - "./helpers/temporalRef": { - "node": "./helpers/temporalRef.js", - "import": "./helpers/esm/temporalRef.js", - "default": "./helpers/temporalRef.js" - }, - "./helpers/temporalUndefined": { - "node": "./helpers/temporalUndefined.js", - "import": "./helpers/esm/temporalUndefined.js", - "default": "./helpers/temporalUndefined.js" - }, - "./helpers/toArray": { - "node": "./helpers/toArray.js", - "import": "./helpers/esm/toArray.js", - "default": "./helpers/toArray.js" - }, - "./helpers/toConsumableArray": { - "node": "./helpers/toConsumableArray.js", - "import": "./helpers/esm/toConsumableArray.js", - "default": "./helpers/toConsumableArray.js" - }, - "./helpers/toPrimitive": { - "node": "./helpers/toPrimitive.js", - "import": "./helpers/esm/toPrimitive.js", - "default": "./helpers/toPrimitive.js" - }, - "./helpers/toPropertyKey": { - "node": "./helpers/toPropertyKey.js", - "import": "./helpers/esm/toPropertyKey.js", - "default": "./helpers/toPropertyKey.js" - }, - "./helpers/toSetter": { - "node": "./helpers/toSetter.js", - "import": "./helpers/esm/toSetter.js", - "default": "./helpers/toSetter.js" - }, - "./helpers/tsRewriteRelativeImportExtensions": { - "node": "./helpers/tsRewriteRelativeImportExtensions.js", - "import": "./helpers/esm/tsRewriteRelativeImportExtensions.js", - "default": "./helpers/tsRewriteRelativeImportExtensions.js" - }, - "./helpers/typeof": { - "node": "./helpers/typeof.js", - "import": "./helpers/esm/typeof.js", - "default": "./helpers/typeof.js" - }, - "./helpers/unsupportedIterableToArray": { - "node": "./helpers/unsupportedIterableToArray.js", - "import": "./helpers/esm/unsupportedIterableToArray.js", - "default": "./helpers/unsupportedIterableToArray.js" - }, - "./helpers/usingCtx": { - "node": "./helpers/usingCtx.js", - "import": "./helpers/esm/usingCtx.js", - "default": "./helpers/usingCtx.js" - }, - "./helpers/wrapAsyncGenerator": { - "node": "./helpers/wrapAsyncGenerator.js", - "import": "./helpers/esm/wrapAsyncGenerator.js", - "default": "./helpers/wrapAsyncGenerator.js" - }, - "./helpers/wrapNativeSuper": { - "node": "./helpers/wrapNativeSuper.js", - "import": "./helpers/esm/wrapNativeSuper.js", - "default": "./helpers/wrapNativeSuper.js" - }, - "./helpers/wrapRegExp": { - "node": "./helpers/wrapRegExp.js", - "import": "./helpers/esm/wrapRegExp.js", - "default": "./helpers/wrapRegExp.js" - }, - "./helpers/writeOnlyError": { - "node": "./helpers/writeOnlyError.js", - "import": "./helpers/esm/writeOnlyError.js", - "default": "./helpers/writeOnlyError.js" - }, - "./package.json": "./package.json" + "./helpers/OverloadYield": [ + { + "node": "./helpers/OverloadYield.js", + "import": "./helpers/esm/OverloadYield.js", + "default": "./helpers/OverloadYield.js" + }, + "./helpers/OverloadYield.js" + ], + "./helpers/esm/OverloadYield": "./helpers/esm/OverloadYield.js", + "./helpers/applyDecoratedDescriptor": [ + { + "node": "./helpers/applyDecoratedDescriptor.js", + "import": "./helpers/esm/applyDecoratedDescriptor.js", + "default": "./helpers/applyDecoratedDescriptor.js" + }, + "./helpers/applyDecoratedDescriptor.js" + ], + "./helpers/esm/applyDecoratedDescriptor": "./helpers/esm/applyDecoratedDescriptor.js", + "./helpers/applyDecs2311": [ + { + "node": "./helpers/applyDecs2311.js", + "import": "./helpers/esm/applyDecs2311.js", + "default": "./helpers/applyDecs2311.js" + }, + "./helpers/applyDecs2311.js" + ], + "./helpers/esm/applyDecs2311": "./helpers/esm/applyDecs2311.js", + "./helpers/arrayLikeToArray": [ + { + "node": "./helpers/arrayLikeToArray.js", + "import": "./helpers/esm/arrayLikeToArray.js", + "default": "./helpers/arrayLikeToArray.js" + }, + "./helpers/arrayLikeToArray.js" + ], + "./helpers/esm/arrayLikeToArray": "./helpers/esm/arrayLikeToArray.js", + "./helpers/arrayWithHoles": [ + { + "node": "./helpers/arrayWithHoles.js", + "import": "./helpers/esm/arrayWithHoles.js", + "default": "./helpers/arrayWithHoles.js" + }, + "./helpers/arrayWithHoles.js" + ], + "./helpers/esm/arrayWithHoles": "./helpers/esm/arrayWithHoles.js", + "./helpers/arrayWithoutHoles": [ + { + "node": "./helpers/arrayWithoutHoles.js", + "import": "./helpers/esm/arrayWithoutHoles.js", + "default": "./helpers/arrayWithoutHoles.js" + }, + "./helpers/arrayWithoutHoles.js" + ], + "./helpers/esm/arrayWithoutHoles": "./helpers/esm/arrayWithoutHoles.js", + "./helpers/assertClassBrand": [ + { + "node": "./helpers/assertClassBrand.js", + "import": "./helpers/esm/assertClassBrand.js", + "default": "./helpers/assertClassBrand.js" + }, + "./helpers/assertClassBrand.js" + ], + "./helpers/esm/assertClassBrand": "./helpers/esm/assertClassBrand.js", + "./helpers/assertThisInitialized": [ + { + "node": "./helpers/assertThisInitialized.js", + "import": "./helpers/esm/assertThisInitialized.js", + "default": "./helpers/assertThisInitialized.js" + }, + "./helpers/assertThisInitialized.js" + ], + "./helpers/esm/assertThisInitialized": "./helpers/esm/assertThisInitialized.js", + "./helpers/asyncGeneratorDelegate": [ + { + "node": "./helpers/asyncGeneratorDelegate.js", + "import": "./helpers/esm/asyncGeneratorDelegate.js", + "default": "./helpers/asyncGeneratorDelegate.js" + }, + "./helpers/asyncGeneratorDelegate.js" + ], + "./helpers/esm/asyncGeneratorDelegate": "./helpers/esm/asyncGeneratorDelegate.js", + "./helpers/asyncIterator": [ + { + "node": "./helpers/asyncIterator.js", + "import": "./helpers/esm/asyncIterator.js", + "default": "./helpers/asyncIterator.js" + }, + "./helpers/asyncIterator.js" + ], + "./helpers/esm/asyncIterator": "./helpers/esm/asyncIterator.js", + "./helpers/asyncToGenerator": [ + { + "node": "./helpers/asyncToGenerator.js", + "import": "./helpers/esm/asyncToGenerator.js", + "default": "./helpers/asyncToGenerator.js" + }, + "./helpers/asyncToGenerator.js" + ], + "./helpers/esm/asyncToGenerator": "./helpers/esm/asyncToGenerator.js", + "./helpers/awaitAsyncGenerator": [ + { + "node": "./helpers/awaitAsyncGenerator.js", + "import": "./helpers/esm/awaitAsyncGenerator.js", + "default": "./helpers/awaitAsyncGenerator.js" + }, + "./helpers/awaitAsyncGenerator.js" + ], + "./helpers/esm/awaitAsyncGenerator": "./helpers/esm/awaitAsyncGenerator.js", + "./helpers/callSuper": [ + { + "node": "./helpers/callSuper.js", + "import": "./helpers/esm/callSuper.js", + "default": "./helpers/callSuper.js" + }, + "./helpers/callSuper.js" + ], + "./helpers/esm/callSuper": "./helpers/esm/callSuper.js", + "./helpers/checkInRHS": [ + { + "node": "./helpers/checkInRHS.js", + "import": "./helpers/esm/checkInRHS.js", + "default": "./helpers/checkInRHS.js" + }, + "./helpers/checkInRHS.js" + ], + "./helpers/esm/checkInRHS": "./helpers/esm/checkInRHS.js", + "./helpers/checkPrivateRedeclaration": [ + { + "node": "./helpers/checkPrivateRedeclaration.js", + "import": "./helpers/esm/checkPrivateRedeclaration.js", + "default": "./helpers/checkPrivateRedeclaration.js" + }, + "./helpers/checkPrivateRedeclaration.js" + ], + "./helpers/esm/checkPrivateRedeclaration": "./helpers/esm/checkPrivateRedeclaration.js", + "./helpers/classCallCheck": [ + { + "node": "./helpers/classCallCheck.js", + "import": "./helpers/esm/classCallCheck.js", + "default": "./helpers/classCallCheck.js" + }, + "./helpers/classCallCheck.js" + ], + "./helpers/esm/classCallCheck": "./helpers/esm/classCallCheck.js", + "./helpers/classNameTDZError": [ + { + "node": "./helpers/classNameTDZError.js", + "import": "./helpers/esm/classNameTDZError.js", + "default": "./helpers/classNameTDZError.js" + }, + "./helpers/classNameTDZError.js" + ], + "./helpers/esm/classNameTDZError": "./helpers/esm/classNameTDZError.js", + "./helpers/classPrivateFieldGet2": [ + { + "node": "./helpers/classPrivateFieldGet2.js", + "import": "./helpers/esm/classPrivateFieldGet2.js", + "default": "./helpers/classPrivateFieldGet2.js" + }, + "./helpers/classPrivateFieldGet2.js" + ], + "./helpers/esm/classPrivateFieldGet2": "./helpers/esm/classPrivateFieldGet2.js", + "./helpers/classPrivateFieldInitSpec": [ + { + "node": "./helpers/classPrivateFieldInitSpec.js", + "import": "./helpers/esm/classPrivateFieldInitSpec.js", + "default": "./helpers/classPrivateFieldInitSpec.js" + }, + "./helpers/classPrivateFieldInitSpec.js" + ], + "./helpers/esm/classPrivateFieldInitSpec": "./helpers/esm/classPrivateFieldInitSpec.js", + "./helpers/classPrivateFieldLooseBase": [ + { + "node": "./helpers/classPrivateFieldLooseBase.js", + "import": "./helpers/esm/classPrivateFieldLooseBase.js", + "default": "./helpers/classPrivateFieldLooseBase.js" + }, + "./helpers/classPrivateFieldLooseBase.js" + ], + "./helpers/esm/classPrivateFieldLooseBase": "./helpers/esm/classPrivateFieldLooseBase.js", + "./helpers/classPrivateFieldLooseKey": [ + { + "node": "./helpers/classPrivateFieldLooseKey.js", + "import": "./helpers/esm/classPrivateFieldLooseKey.js", + "default": "./helpers/classPrivateFieldLooseKey.js" + }, + "./helpers/classPrivateFieldLooseKey.js" + ], + "./helpers/esm/classPrivateFieldLooseKey": "./helpers/esm/classPrivateFieldLooseKey.js", + "./helpers/classPrivateFieldSet2": [ + { + "node": "./helpers/classPrivateFieldSet2.js", + "import": "./helpers/esm/classPrivateFieldSet2.js", + "default": "./helpers/classPrivateFieldSet2.js" + }, + "./helpers/classPrivateFieldSet2.js" + ], + "./helpers/esm/classPrivateFieldSet2": "./helpers/esm/classPrivateFieldSet2.js", + "./helpers/classPrivateGetter": [ + { + "node": "./helpers/classPrivateGetter.js", + "import": "./helpers/esm/classPrivateGetter.js", + "default": "./helpers/classPrivateGetter.js" + }, + "./helpers/classPrivateGetter.js" + ], + "./helpers/esm/classPrivateGetter": "./helpers/esm/classPrivateGetter.js", + "./helpers/classPrivateMethodInitSpec": [ + { + "node": "./helpers/classPrivateMethodInitSpec.js", + "import": "./helpers/esm/classPrivateMethodInitSpec.js", + "default": "./helpers/classPrivateMethodInitSpec.js" + }, + "./helpers/classPrivateMethodInitSpec.js" + ], + "./helpers/esm/classPrivateMethodInitSpec": "./helpers/esm/classPrivateMethodInitSpec.js", + "./helpers/classPrivateSetter": [ + { + "node": "./helpers/classPrivateSetter.js", + "import": "./helpers/esm/classPrivateSetter.js", + "default": "./helpers/classPrivateSetter.js" + }, + "./helpers/classPrivateSetter.js" + ], + "./helpers/esm/classPrivateSetter": "./helpers/esm/classPrivateSetter.js", + "./helpers/classStaticPrivateMethodGet": [ + { + "node": "./helpers/classStaticPrivateMethodGet.js", + "import": "./helpers/esm/classStaticPrivateMethodGet.js", + "default": "./helpers/classStaticPrivateMethodGet.js" + }, + "./helpers/classStaticPrivateMethodGet.js" + ], + "./helpers/esm/classStaticPrivateMethodGet": "./helpers/esm/classStaticPrivateMethodGet.js", + "./helpers/construct": [ + { + "node": "./helpers/construct.js", + "import": "./helpers/esm/construct.js", + "default": "./helpers/construct.js" + }, + "./helpers/construct.js" + ], + "./helpers/esm/construct": "./helpers/esm/construct.js", + "./helpers/createClass": [ + { + "node": "./helpers/createClass.js", + "import": "./helpers/esm/createClass.js", + "default": "./helpers/createClass.js" + }, + "./helpers/createClass.js" + ], + "./helpers/esm/createClass": "./helpers/esm/createClass.js", + "./helpers/createForOfIteratorHelper": [ + { + "node": "./helpers/createForOfIteratorHelper.js", + "import": "./helpers/esm/createForOfIteratorHelper.js", + "default": "./helpers/createForOfIteratorHelper.js" + }, + "./helpers/createForOfIteratorHelper.js" + ], + "./helpers/esm/createForOfIteratorHelper": "./helpers/esm/createForOfIteratorHelper.js", + "./helpers/createForOfIteratorHelperLoose": [ + { + "node": "./helpers/createForOfIteratorHelperLoose.js", + "import": "./helpers/esm/createForOfIteratorHelperLoose.js", + "default": "./helpers/createForOfIteratorHelperLoose.js" + }, + "./helpers/createForOfIteratorHelperLoose.js" + ], + "./helpers/esm/createForOfIteratorHelperLoose": "./helpers/esm/createForOfIteratorHelperLoose.js", + "./helpers/createSuper": [ + { + "node": "./helpers/createSuper.js", + "import": "./helpers/esm/createSuper.js", + "default": "./helpers/createSuper.js" + }, + "./helpers/createSuper.js" + ], + "./helpers/esm/createSuper": "./helpers/esm/createSuper.js", + "./helpers/decorate": [ + { + "node": "./helpers/decorate.js", + "import": "./helpers/esm/decorate.js", + "default": "./helpers/decorate.js" + }, + "./helpers/decorate.js" + ], + "./helpers/esm/decorate": "./helpers/esm/decorate.js", + "./helpers/defaults": [ + { + "node": "./helpers/defaults.js", + "import": "./helpers/esm/defaults.js", + "default": "./helpers/defaults.js" + }, + "./helpers/defaults.js" + ], + "./helpers/esm/defaults": "./helpers/esm/defaults.js", + "./helpers/defineAccessor": [ + { + "node": "./helpers/defineAccessor.js", + "import": "./helpers/esm/defineAccessor.js", + "default": "./helpers/defineAccessor.js" + }, + "./helpers/defineAccessor.js" + ], + "./helpers/esm/defineAccessor": "./helpers/esm/defineAccessor.js", + "./helpers/defineProperty": [ + { + "node": "./helpers/defineProperty.js", + "import": "./helpers/esm/defineProperty.js", + "default": "./helpers/defineProperty.js" + }, + "./helpers/defineProperty.js" + ], + "./helpers/esm/defineProperty": "./helpers/esm/defineProperty.js", + "./helpers/extends": [ + { + "node": "./helpers/extends.js", + "import": "./helpers/esm/extends.js", + "default": "./helpers/extends.js" + }, + "./helpers/extends.js" + ], + "./helpers/esm/extends": "./helpers/esm/extends.js", + "./helpers/get": [ + { + "node": "./helpers/get.js", + "import": "./helpers/esm/get.js", + "default": "./helpers/get.js" + }, + "./helpers/get.js" + ], + "./helpers/esm/get": "./helpers/esm/get.js", + "./helpers/getPrototypeOf": [ + { + "node": "./helpers/getPrototypeOf.js", + "import": "./helpers/esm/getPrototypeOf.js", + "default": "./helpers/getPrototypeOf.js" + }, + "./helpers/getPrototypeOf.js" + ], + "./helpers/esm/getPrototypeOf": "./helpers/esm/getPrototypeOf.js", + "./helpers/identity": [ + { + "node": "./helpers/identity.js", + "import": "./helpers/esm/identity.js", + "default": "./helpers/identity.js" + }, + "./helpers/identity.js" + ], + "./helpers/esm/identity": "./helpers/esm/identity.js", + "./helpers/importDeferProxy": [ + { + "node": "./helpers/importDeferProxy.js", + "import": "./helpers/esm/importDeferProxy.js", + "default": "./helpers/importDeferProxy.js" + }, + "./helpers/importDeferProxy.js" + ], + "./helpers/esm/importDeferProxy": "./helpers/esm/importDeferProxy.js", + "./helpers/inherits": [ + { + "node": "./helpers/inherits.js", + "import": "./helpers/esm/inherits.js", + "default": "./helpers/inherits.js" + }, + "./helpers/inherits.js" + ], + "./helpers/esm/inherits": "./helpers/esm/inherits.js", + "./helpers/inheritsLoose": [ + { + "node": "./helpers/inheritsLoose.js", + "import": "./helpers/esm/inheritsLoose.js", + "default": "./helpers/inheritsLoose.js" + }, + "./helpers/inheritsLoose.js" + ], + "./helpers/esm/inheritsLoose": "./helpers/esm/inheritsLoose.js", + "./helpers/initializerDefineProperty": [ + { + "node": "./helpers/initializerDefineProperty.js", + "import": "./helpers/esm/initializerDefineProperty.js", + "default": "./helpers/initializerDefineProperty.js" + }, + "./helpers/initializerDefineProperty.js" + ], + "./helpers/esm/initializerDefineProperty": "./helpers/esm/initializerDefineProperty.js", + "./helpers/initializerWarningHelper": [ + { + "node": "./helpers/initializerWarningHelper.js", + "import": "./helpers/esm/initializerWarningHelper.js", + "default": "./helpers/initializerWarningHelper.js" + }, + "./helpers/initializerWarningHelper.js" + ], + "./helpers/esm/initializerWarningHelper": "./helpers/esm/initializerWarningHelper.js", + "./helpers/instanceof": [ + { + "node": "./helpers/instanceof.js", + "import": "./helpers/esm/instanceof.js", + "default": "./helpers/instanceof.js" + }, + "./helpers/instanceof.js" + ], + "./helpers/esm/instanceof": "./helpers/esm/instanceof.js", + "./helpers/interopRequireDefault": [ + { + "node": "./helpers/interopRequireDefault.js", + "import": "./helpers/esm/interopRequireDefault.js", + "default": "./helpers/interopRequireDefault.js" + }, + "./helpers/interopRequireDefault.js" + ], + "./helpers/esm/interopRequireDefault": "./helpers/esm/interopRequireDefault.js", + "./helpers/interopRequireWildcard": [ + { + "node": "./helpers/interopRequireWildcard.js", + "import": "./helpers/esm/interopRequireWildcard.js", + "default": "./helpers/interopRequireWildcard.js" + }, + "./helpers/interopRequireWildcard.js" + ], + "./helpers/esm/interopRequireWildcard": "./helpers/esm/interopRequireWildcard.js", + "./helpers/isNativeFunction": [ + { + "node": "./helpers/isNativeFunction.js", + "import": "./helpers/esm/isNativeFunction.js", + "default": "./helpers/isNativeFunction.js" + }, + "./helpers/isNativeFunction.js" + ], + "./helpers/esm/isNativeFunction": "./helpers/esm/isNativeFunction.js", + "./helpers/isNativeReflectConstruct": [ + { + "node": "./helpers/isNativeReflectConstruct.js", + "import": "./helpers/esm/isNativeReflectConstruct.js", + "default": "./helpers/isNativeReflectConstruct.js" + }, + "./helpers/isNativeReflectConstruct.js" + ], + "./helpers/esm/isNativeReflectConstruct": "./helpers/esm/isNativeReflectConstruct.js", + "./helpers/iterableToArray": [ + { + "node": "./helpers/iterableToArray.js", + "import": "./helpers/esm/iterableToArray.js", + "default": "./helpers/iterableToArray.js" + }, + "./helpers/iterableToArray.js" + ], + "./helpers/esm/iterableToArray": "./helpers/esm/iterableToArray.js", + "./helpers/iterableToArrayLimit": [ + { + "node": "./helpers/iterableToArrayLimit.js", + "import": "./helpers/esm/iterableToArrayLimit.js", + "default": "./helpers/iterableToArrayLimit.js" + }, + "./helpers/iterableToArrayLimit.js" + ], + "./helpers/esm/iterableToArrayLimit": "./helpers/esm/iterableToArrayLimit.js", + "./helpers/jsx": [ + { + "node": "./helpers/jsx.js", + "import": "./helpers/esm/jsx.js", + "default": "./helpers/jsx.js" + }, + "./helpers/jsx.js" + ], + "./helpers/esm/jsx": "./helpers/esm/jsx.js", + "./helpers/maybeArrayLike": [ + { + "node": "./helpers/maybeArrayLike.js", + "import": "./helpers/esm/maybeArrayLike.js", + "default": "./helpers/maybeArrayLike.js" + }, + "./helpers/maybeArrayLike.js" + ], + "./helpers/esm/maybeArrayLike": "./helpers/esm/maybeArrayLike.js", + "./helpers/newArrowCheck": [ + { + "node": "./helpers/newArrowCheck.js", + "import": "./helpers/esm/newArrowCheck.js", + "default": "./helpers/newArrowCheck.js" + }, + "./helpers/newArrowCheck.js" + ], + "./helpers/esm/newArrowCheck": "./helpers/esm/newArrowCheck.js", + "./helpers/nonIterableRest": [ + { + "node": "./helpers/nonIterableRest.js", + "import": "./helpers/esm/nonIterableRest.js", + "default": "./helpers/nonIterableRest.js" + }, + "./helpers/nonIterableRest.js" + ], + "./helpers/esm/nonIterableRest": "./helpers/esm/nonIterableRest.js", + "./helpers/nonIterableSpread": [ + { + "node": "./helpers/nonIterableSpread.js", + "import": "./helpers/esm/nonIterableSpread.js", + "default": "./helpers/nonIterableSpread.js" + }, + "./helpers/nonIterableSpread.js" + ], + "./helpers/esm/nonIterableSpread": "./helpers/esm/nonIterableSpread.js", + "./helpers/nullishReceiverError": [ + { + "node": "./helpers/nullishReceiverError.js", + "import": "./helpers/esm/nullishReceiverError.js", + "default": "./helpers/nullishReceiverError.js" + }, + "./helpers/nullishReceiverError.js" + ], + "./helpers/esm/nullishReceiverError": "./helpers/esm/nullishReceiverError.js", + "./helpers/objectDestructuringEmpty": [ + { + "node": "./helpers/objectDestructuringEmpty.js", + "import": "./helpers/esm/objectDestructuringEmpty.js", + "default": "./helpers/objectDestructuringEmpty.js" + }, + "./helpers/objectDestructuringEmpty.js" + ], + "./helpers/esm/objectDestructuringEmpty": "./helpers/esm/objectDestructuringEmpty.js", + "./helpers/objectSpread2": [ + { + "node": "./helpers/objectSpread2.js", + "import": "./helpers/esm/objectSpread2.js", + "default": "./helpers/objectSpread2.js" + }, + "./helpers/objectSpread2.js" + ], + "./helpers/esm/objectSpread2": "./helpers/esm/objectSpread2.js", + "./helpers/objectWithoutProperties": [ + { + "node": "./helpers/objectWithoutProperties.js", + "import": "./helpers/esm/objectWithoutProperties.js", + "default": "./helpers/objectWithoutProperties.js" + }, + "./helpers/objectWithoutProperties.js" + ], + "./helpers/esm/objectWithoutProperties": "./helpers/esm/objectWithoutProperties.js", + "./helpers/objectWithoutPropertiesLoose": [ + { + "node": "./helpers/objectWithoutPropertiesLoose.js", + "import": "./helpers/esm/objectWithoutPropertiesLoose.js", + "default": "./helpers/objectWithoutPropertiesLoose.js" + }, + "./helpers/objectWithoutPropertiesLoose.js" + ], + "./helpers/esm/objectWithoutPropertiesLoose": "./helpers/esm/objectWithoutPropertiesLoose.js", + "./helpers/possibleConstructorReturn": [ + { + "node": "./helpers/possibleConstructorReturn.js", + "import": "./helpers/esm/possibleConstructorReturn.js", + "default": "./helpers/possibleConstructorReturn.js" + }, + "./helpers/possibleConstructorReturn.js" + ], + "./helpers/esm/possibleConstructorReturn": "./helpers/esm/possibleConstructorReturn.js", + "./helpers/readOnlyError": [ + { + "node": "./helpers/readOnlyError.js", + "import": "./helpers/esm/readOnlyError.js", + "default": "./helpers/readOnlyError.js" + }, + "./helpers/readOnlyError.js" + ], + "./helpers/esm/readOnlyError": "./helpers/esm/readOnlyError.js", + "./helpers/regenerator": [ + { + "node": "./helpers/regenerator.js", + "import": "./helpers/esm/regenerator.js", + "default": "./helpers/regenerator.js" + }, + "./helpers/regenerator.js" + ], + "./helpers/esm/regenerator": "./helpers/esm/regenerator.js", + "./helpers/regeneratorAsync": [ + { + "node": "./helpers/regeneratorAsync.js", + "import": "./helpers/esm/regeneratorAsync.js", + "default": "./helpers/regeneratorAsync.js" + }, + "./helpers/regeneratorAsync.js" + ], + "./helpers/esm/regeneratorAsync": "./helpers/esm/regeneratorAsync.js", + "./helpers/regeneratorAsyncGen": [ + { + "node": "./helpers/regeneratorAsyncGen.js", + "import": "./helpers/esm/regeneratorAsyncGen.js", + "default": "./helpers/regeneratorAsyncGen.js" + }, + "./helpers/regeneratorAsyncGen.js" + ], + "./helpers/esm/regeneratorAsyncGen": "./helpers/esm/regeneratorAsyncGen.js", + "./helpers/regeneratorKeys": [ + { + "node": "./helpers/regeneratorKeys.js", + "import": "./helpers/esm/regeneratorKeys.js", + "default": "./helpers/regeneratorKeys.js" + }, + "./helpers/regeneratorKeys.js" + ], + "./helpers/esm/regeneratorKeys": "./helpers/esm/regeneratorKeys.js", + "./helpers/regeneratorValues": [ + { + "node": "./helpers/regeneratorValues.js", + "import": "./helpers/esm/regeneratorValues.js", + "default": "./helpers/regeneratorValues.js" + }, + "./helpers/regeneratorValues.js" + ], + "./helpers/esm/regeneratorValues": "./helpers/esm/regeneratorValues.js", + "./helpers/set": [ + { + "node": "./helpers/set.js", + "import": "./helpers/esm/set.js", + "default": "./helpers/set.js" + }, + "./helpers/set.js" + ], + "./helpers/esm/set": "./helpers/esm/set.js", + "./helpers/setFunctionName": [ + { + "node": "./helpers/setFunctionName.js", + "import": "./helpers/esm/setFunctionName.js", + "default": "./helpers/setFunctionName.js" + }, + "./helpers/setFunctionName.js" + ], + "./helpers/esm/setFunctionName": "./helpers/esm/setFunctionName.js", + "./helpers/setPrototypeOf": [ + { + "node": "./helpers/setPrototypeOf.js", + "import": "./helpers/esm/setPrototypeOf.js", + "default": "./helpers/setPrototypeOf.js" + }, + "./helpers/setPrototypeOf.js" + ], + "./helpers/esm/setPrototypeOf": "./helpers/esm/setPrototypeOf.js", + "./helpers/skipFirstGeneratorNext": [ + { + "node": "./helpers/skipFirstGeneratorNext.js", + "import": "./helpers/esm/skipFirstGeneratorNext.js", + "default": "./helpers/skipFirstGeneratorNext.js" + }, + "./helpers/skipFirstGeneratorNext.js" + ], + "./helpers/esm/skipFirstGeneratorNext": "./helpers/esm/skipFirstGeneratorNext.js", + "./helpers/slicedToArray": [ + { + "node": "./helpers/slicedToArray.js", + "import": "./helpers/esm/slicedToArray.js", + "default": "./helpers/slicedToArray.js" + }, + "./helpers/slicedToArray.js" + ], + "./helpers/esm/slicedToArray": "./helpers/esm/slicedToArray.js", + "./helpers/superPropBase": [ + { + "node": "./helpers/superPropBase.js", + "import": "./helpers/esm/superPropBase.js", + "default": "./helpers/superPropBase.js" + }, + "./helpers/superPropBase.js" + ], + "./helpers/esm/superPropBase": "./helpers/esm/superPropBase.js", + "./helpers/superPropGet": [ + { + "node": "./helpers/superPropGet.js", + "import": "./helpers/esm/superPropGet.js", + "default": "./helpers/superPropGet.js" + }, + "./helpers/superPropGet.js" + ], + "./helpers/esm/superPropGet": "./helpers/esm/superPropGet.js", + "./helpers/superPropSet": [ + { + "node": "./helpers/superPropSet.js", + "import": "./helpers/esm/superPropSet.js", + "default": "./helpers/superPropSet.js" + }, + "./helpers/superPropSet.js" + ], + "./helpers/esm/superPropSet": "./helpers/esm/superPropSet.js", + "./helpers/taggedTemplateLiteral": [ + { + "node": "./helpers/taggedTemplateLiteral.js", + "import": "./helpers/esm/taggedTemplateLiteral.js", + "default": "./helpers/taggedTemplateLiteral.js" + }, + "./helpers/taggedTemplateLiteral.js" + ], + "./helpers/esm/taggedTemplateLiteral": "./helpers/esm/taggedTemplateLiteral.js", + "./helpers/taggedTemplateLiteralLoose": [ + { + "node": "./helpers/taggedTemplateLiteralLoose.js", + "import": "./helpers/esm/taggedTemplateLiteralLoose.js", + "default": "./helpers/taggedTemplateLiteralLoose.js" + }, + "./helpers/taggedTemplateLiteralLoose.js" + ], + "./helpers/esm/taggedTemplateLiteralLoose": "./helpers/esm/taggedTemplateLiteralLoose.js", + "./helpers/tdz": [ + { + "node": "./helpers/tdz.js", + "import": "./helpers/esm/tdz.js", + "default": "./helpers/tdz.js" + }, + "./helpers/tdz.js" + ], + "./helpers/esm/tdz": "./helpers/esm/tdz.js", + "./helpers/temporalRef": [ + { + "node": "./helpers/temporalRef.js", + "import": "./helpers/esm/temporalRef.js", + "default": "./helpers/temporalRef.js" + }, + "./helpers/temporalRef.js" + ], + "./helpers/esm/temporalRef": "./helpers/esm/temporalRef.js", + "./helpers/temporalUndefined": [ + { + "node": "./helpers/temporalUndefined.js", + "import": "./helpers/esm/temporalUndefined.js", + "default": "./helpers/temporalUndefined.js" + }, + "./helpers/temporalUndefined.js" + ], + "./helpers/esm/temporalUndefined": "./helpers/esm/temporalUndefined.js", + "./helpers/toArray": [ + { + "node": "./helpers/toArray.js", + "import": "./helpers/esm/toArray.js", + "default": "./helpers/toArray.js" + }, + "./helpers/toArray.js" + ], + "./helpers/esm/toArray": "./helpers/esm/toArray.js", + "./helpers/toConsumableArray": [ + { + "node": "./helpers/toConsumableArray.js", + "import": "./helpers/esm/toConsumableArray.js", + "default": "./helpers/toConsumableArray.js" + }, + "./helpers/toConsumableArray.js" + ], + "./helpers/esm/toConsumableArray": "./helpers/esm/toConsumableArray.js", + "./helpers/toPrimitive": [ + { + "node": "./helpers/toPrimitive.js", + "import": "./helpers/esm/toPrimitive.js", + "default": "./helpers/toPrimitive.js" + }, + "./helpers/toPrimitive.js" + ], + "./helpers/esm/toPrimitive": "./helpers/esm/toPrimitive.js", + "./helpers/toPropertyKey": [ + { + "node": "./helpers/toPropertyKey.js", + "import": "./helpers/esm/toPropertyKey.js", + "default": "./helpers/toPropertyKey.js" + }, + "./helpers/toPropertyKey.js" + ], + "./helpers/esm/toPropertyKey": "./helpers/esm/toPropertyKey.js", + "./helpers/toSetter": [ + { + "node": "./helpers/toSetter.js", + "import": "./helpers/esm/toSetter.js", + "default": "./helpers/toSetter.js" + }, + "./helpers/toSetter.js" + ], + "./helpers/esm/toSetter": "./helpers/esm/toSetter.js", + "./helpers/tsRewriteRelativeImportExtensions": [ + { + "node": "./helpers/tsRewriteRelativeImportExtensions.js", + "import": "./helpers/esm/tsRewriteRelativeImportExtensions.js", + "default": "./helpers/tsRewriteRelativeImportExtensions.js" + }, + "./helpers/tsRewriteRelativeImportExtensions.js" + ], + "./helpers/esm/tsRewriteRelativeImportExtensions": "./helpers/esm/tsRewriteRelativeImportExtensions.js", + "./helpers/typeof": [ + { + "node": "./helpers/typeof.js", + "import": "./helpers/esm/typeof.js", + "default": "./helpers/typeof.js" + }, + "./helpers/typeof.js" + ], + "./helpers/esm/typeof": "./helpers/esm/typeof.js", + "./helpers/unsupportedIterableToArray": [ + { + "node": "./helpers/unsupportedIterableToArray.js", + "import": "./helpers/esm/unsupportedIterableToArray.js", + "default": "./helpers/unsupportedIterableToArray.js" + }, + "./helpers/unsupportedIterableToArray.js" + ], + "./helpers/esm/unsupportedIterableToArray": "./helpers/esm/unsupportedIterableToArray.js", + "./helpers/usingCtx": [ + { + "node": "./helpers/usingCtx.js", + "import": "./helpers/esm/usingCtx.js", + "default": "./helpers/usingCtx.js" + }, + "./helpers/usingCtx.js" + ], + "./helpers/esm/usingCtx": "./helpers/esm/usingCtx.js", + "./helpers/wrapAsyncGenerator": [ + { + "node": "./helpers/wrapAsyncGenerator.js", + "import": "./helpers/esm/wrapAsyncGenerator.js", + "default": "./helpers/wrapAsyncGenerator.js" + }, + "./helpers/wrapAsyncGenerator.js" + ], + "./helpers/esm/wrapAsyncGenerator": "./helpers/esm/wrapAsyncGenerator.js", + "./helpers/wrapNativeSuper": [ + { + "node": "./helpers/wrapNativeSuper.js", + "import": "./helpers/esm/wrapNativeSuper.js", + "default": "./helpers/wrapNativeSuper.js" + }, + "./helpers/wrapNativeSuper.js" + ], + "./helpers/esm/wrapNativeSuper": "./helpers/esm/wrapNativeSuper.js", + "./helpers/wrapRegExp": [ + { + "node": "./helpers/wrapRegExp.js", + "import": "./helpers/esm/wrapRegExp.js", + "default": "./helpers/wrapRegExp.js" + }, + "./helpers/wrapRegExp.js" + ], + "./helpers/esm/wrapRegExp": "./helpers/esm/wrapRegExp.js", + "./helpers/writeOnlyError": [ + { + "node": "./helpers/writeOnlyError.js", + "import": "./helpers/esm/writeOnlyError.js", + "default": "./helpers/writeOnlyError.js" + }, + "./helpers/writeOnlyError.js" + ], + "./helpers/esm/writeOnlyError": "./helpers/esm/writeOnlyError.js", + "./helpers/AwaitValue": [ + { + "node": "./helpers/AwaitValue.js", + "import": "./helpers/esm/AwaitValue.js", + "default": "./helpers/AwaitValue.js" + }, + "./helpers/AwaitValue.js" + ], + "./helpers/esm/AwaitValue": "./helpers/esm/AwaitValue.js", + "./helpers/applyDecs": [ + { + "node": "./helpers/applyDecs.js", + "import": "./helpers/esm/applyDecs.js", + "default": "./helpers/applyDecs.js" + }, + "./helpers/applyDecs.js" + ], + "./helpers/esm/applyDecs": "./helpers/esm/applyDecs.js", + "./helpers/applyDecs2203": [ + { + "node": "./helpers/applyDecs2203.js", + "import": "./helpers/esm/applyDecs2203.js", + "default": "./helpers/applyDecs2203.js" + }, + "./helpers/applyDecs2203.js" + ], + "./helpers/esm/applyDecs2203": "./helpers/esm/applyDecs2203.js", + "./helpers/applyDecs2203R": [ + { + "node": "./helpers/applyDecs2203R.js", + "import": "./helpers/esm/applyDecs2203R.js", + "default": "./helpers/applyDecs2203R.js" + }, + "./helpers/applyDecs2203R.js" + ], + "./helpers/esm/applyDecs2203R": "./helpers/esm/applyDecs2203R.js", + "./helpers/applyDecs2301": [ + { + "node": "./helpers/applyDecs2301.js", + "import": "./helpers/esm/applyDecs2301.js", + "default": "./helpers/applyDecs2301.js" + }, + "./helpers/applyDecs2301.js" + ], + "./helpers/esm/applyDecs2301": "./helpers/esm/applyDecs2301.js", + "./helpers/applyDecs2305": [ + { + "node": "./helpers/applyDecs2305.js", + "import": "./helpers/esm/applyDecs2305.js", + "default": "./helpers/applyDecs2305.js" + }, + "./helpers/applyDecs2305.js" + ], + "./helpers/esm/applyDecs2305": "./helpers/esm/applyDecs2305.js", + "./helpers/classApplyDescriptorDestructureSet": [ + { + "node": "./helpers/classApplyDescriptorDestructureSet.js", + "import": "./helpers/esm/classApplyDescriptorDestructureSet.js", + "default": "./helpers/classApplyDescriptorDestructureSet.js" + }, + "./helpers/classApplyDescriptorDestructureSet.js" + ], + "./helpers/esm/classApplyDescriptorDestructureSet": "./helpers/esm/classApplyDescriptorDestructureSet.js", + "./helpers/classApplyDescriptorGet": [ + { + "node": "./helpers/classApplyDescriptorGet.js", + "import": "./helpers/esm/classApplyDescriptorGet.js", + "default": "./helpers/classApplyDescriptorGet.js" + }, + "./helpers/classApplyDescriptorGet.js" + ], + "./helpers/esm/classApplyDescriptorGet": "./helpers/esm/classApplyDescriptorGet.js", + "./helpers/classApplyDescriptorSet": [ + { + "node": "./helpers/classApplyDescriptorSet.js", + "import": "./helpers/esm/classApplyDescriptorSet.js", + "default": "./helpers/classApplyDescriptorSet.js" + }, + "./helpers/classApplyDescriptorSet.js" + ], + "./helpers/esm/classApplyDescriptorSet": "./helpers/esm/classApplyDescriptorSet.js", + "./helpers/classCheckPrivateStaticAccess": [ + { + "node": "./helpers/classCheckPrivateStaticAccess.js", + "import": "./helpers/esm/classCheckPrivateStaticAccess.js", + "default": "./helpers/classCheckPrivateStaticAccess.js" + }, + "./helpers/classCheckPrivateStaticAccess.js" + ], + "./helpers/esm/classCheckPrivateStaticAccess": "./helpers/esm/classCheckPrivateStaticAccess.js", + "./helpers/classCheckPrivateStaticFieldDescriptor": [ + { + "node": "./helpers/classCheckPrivateStaticFieldDescriptor.js", + "import": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js", + "default": "./helpers/classCheckPrivateStaticFieldDescriptor.js" + }, + "./helpers/classCheckPrivateStaticFieldDescriptor.js" + ], + "./helpers/esm/classCheckPrivateStaticFieldDescriptor": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js", + "./helpers/classExtractFieldDescriptor": [ + { + "node": "./helpers/classExtractFieldDescriptor.js", + "import": "./helpers/esm/classExtractFieldDescriptor.js", + "default": "./helpers/classExtractFieldDescriptor.js" + }, + "./helpers/classExtractFieldDescriptor.js" + ], + "./helpers/esm/classExtractFieldDescriptor": "./helpers/esm/classExtractFieldDescriptor.js", + "./helpers/classPrivateFieldDestructureSet": [ + { + "node": "./helpers/classPrivateFieldDestructureSet.js", + "import": "./helpers/esm/classPrivateFieldDestructureSet.js", + "default": "./helpers/classPrivateFieldDestructureSet.js" + }, + "./helpers/classPrivateFieldDestructureSet.js" + ], + "./helpers/esm/classPrivateFieldDestructureSet": "./helpers/esm/classPrivateFieldDestructureSet.js", + "./helpers/classPrivateFieldGet": [ + { + "node": "./helpers/classPrivateFieldGet.js", + "import": "./helpers/esm/classPrivateFieldGet.js", + "default": "./helpers/classPrivateFieldGet.js" + }, + "./helpers/classPrivateFieldGet.js" + ], + "./helpers/esm/classPrivateFieldGet": "./helpers/esm/classPrivateFieldGet.js", + "./helpers/classPrivateFieldSet": [ + { + "node": "./helpers/classPrivateFieldSet.js", + "import": "./helpers/esm/classPrivateFieldSet.js", + "default": "./helpers/classPrivateFieldSet.js" + }, + "./helpers/classPrivateFieldSet.js" + ], + "./helpers/esm/classPrivateFieldSet": "./helpers/esm/classPrivateFieldSet.js", + "./helpers/classPrivateMethodGet": [ + { + "node": "./helpers/classPrivateMethodGet.js", + "import": "./helpers/esm/classPrivateMethodGet.js", + "default": "./helpers/classPrivateMethodGet.js" + }, + "./helpers/classPrivateMethodGet.js" + ], + "./helpers/esm/classPrivateMethodGet": "./helpers/esm/classPrivateMethodGet.js", + "./helpers/classPrivateMethodSet": [ + { + "node": "./helpers/classPrivateMethodSet.js", + "import": "./helpers/esm/classPrivateMethodSet.js", + "default": "./helpers/classPrivateMethodSet.js" + }, + "./helpers/classPrivateMethodSet.js" + ], + "./helpers/esm/classPrivateMethodSet": "./helpers/esm/classPrivateMethodSet.js", + "./helpers/classStaticPrivateFieldDestructureSet": [ + { + "node": "./helpers/classStaticPrivateFieldDestructureSet.js", + "import": "./helpers/esm/classStaticPrivateFieldDestructureSet.js", + "default": "./helpers/classStaticPrivateFieldDestructureSet.js" + }, + "./helpers/classStaticPrivateFieldDestructureSet.js" + ], + "./helpers/esm/classStaticPrivateFieldDestructureSet": "./helpers/esm/classStaticPrivateFieldDestructureSet.js", + "./helpers/classStaticPrivateFieldSpecGet": [ + { + "node": "./helpers/classStaticPrivateFieldSpecGet.js", + "import": "./helpers/esm/classStaticPrivateFieldSpecGet.js", + "default": "./helpers/classStaticPrivateFieldSpecGet.js" + }, + "./helpers/classStaticPrivateFieldSpecGet.js" + ], + "./helpers/esm/classStaticPrivateFieldSpecGet": "./helpers/esm/classStaticPrivateFieldSpecGet.js", + "./helpers/classStaticPrivateFieldSpecSet": [ + { + "node": "./helpers/classStaticPrivateFieldSpecSet.js", + "import": "./helpers/esm/classStaticPrivateFieldSpecSet.js", + "default": "./helpers/classStaticPrivateFieldSpecSet.js" + }, + "./helpers/classStaticPrivateFieldSpecSet.js" + ], + "./helpers/esm/classStaticPrivateFieldSpecSet": "./helpers/esm/classStaticPrivateFieldSpecSet.js", + "./helpers/classStaticPrivateMethodSet": [ + { + "node": "./helpers/classStaticPrivateMethodSet.js", + "import": "./helpers/esm/classStaticPrivateMethodSet.js", + "default": "./helpers/classStaticPrivateMethodSet.js" + }, + "./helpers/classStaticPrivateMethodSet.js" + ], + "./helpers/esm/classStaticPrivateMethodSet": "./helpers/esm/classStaticPrivateMethodSet.js", + "./helpers/defineEnumerableProperties": [ + { + "node": "./helpers/defineEnumerableProperties.js", + "import": "./helpers/esm/defineEnumerableProperties.js", + "default": "./helpers/defineEnumerableProperties.js" + }, + "./helpers/defineEnumerableProperties.js" + ], + "./helpers/esm/defineEnumerableProperties": "./helpers/esm/defineEnumerableProperties.js", + "./helpers/dispose": [ + { + "node": "./helpers/dispose.js", + "import": "./helpers/esm/dispose.js", + "default": "./helpers/dispose.js" + }, + "./helpers/dispose.js" + ], + "./helpers/esm/dispose": "./helpers/esm/dispose.js", + "./helpers/objectSpread": [ + { + "node": "./helpers/objectSpread.js", + "import": "./helpers/esm/objectSpread.js", + "default": "./helpers/objectSpread.js" + }, + "./helpers/objectSpread.js" + ], + "./helpers/esm/objectSpread": "./helpers/esm/objectSpread.js", + "./helpers/regeneratorRuntime": [ + { + "node": "./helpers/regeneratorRuntime.js", + "import": "./helpers/esm/regeneratorRuntime.js", + "default": "./helpers/regeneratorRuntime.js" + }, + "./helpers/regeneratorRuntime.js" + ], + "./helpers/esm/regeneratorRuntime": "./helpers/esm/regeneratorRuntime.js", + "./helpers/using": [ + { + "node": "./helpers/using.js", + "import": "./helpers/esm/using.js", + "default": "./helpers/using.js" + }, + "./helpers/using.js" + ], + "./helpers/esm/using": "./helpers/esm/using.js", + "./package": "./package.json", + "./package.json": "./package.json", + "./regenerator": "./regenerator/index.js", + "./regenerator/*.js": "./regenerator/*.js", + "./regenerator/": "./regenerator/" + }, + "engines": { + "node": ">=6.9.0" }, "type": "commonjs" } \ No newline at end of file diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/README.md b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/README.md index 70e4488..540910c 100644 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/README.md +++ b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/README.md @@ -22,102 +22,66 @@ Encryption](https://en.wikipedia.org/wiki/End-to-end_encryption)) for or: ``` - pnpm add @matrix-org/matrix-sdk-crypto-wasm + yarn add @matrix-org/matrix-sdk-crypto-wasm ``` 2. Import the library into your project and initialise it. - On Web platforms, the library must be initialised by calling `initAsync` - before it can be used, else it will throw an error. This is also recommended - on other platforms, as it allows the WebAssembly module to be loaded - asynchronously. + It is recommended that you use a dynamic import, particularly in a Web + environment, because the WASM artifiact is large: ```javascript - import { initAsync, Tracing, LoggerLevel, OlmMachine, UserId, DeviceId } from "@matrix-org/matrix-sdk-crypto-wasm"; - async function loadCrypto(userId, deviceId) { - // Do this before any other calls to the library - await initAsync(); + const matrixSdkCrypto = await import("@matrix-org/matrix-sdk-crypto-wasm"); + await matrixSdkCrypto.initAsync(); // Optional: enable tracing in the rust-sdk - new Tracing(LoggerLevel.Trace).turnOn(); + new matrixSdkCrypto.Tracing(matrixSdkCrypto.LoggerLevel.Trace).turnOn(); // Create a new OlmMachine // // The following will use an in-memory store. It is recommended to use // indexedDB where that is available. - // See https://matrix-org.github.io/matrix-sdk-crypto-wasm/classes/OlmMachine.html#initialize - const olmMachine = await OlmMachine.initialize(new UserId(userId), new DeviceId(deviceId)); + // See https://matrix-org.github.io/matrix-rust-sdk-crypto-wasm/classes/OlmMachine.html#initialize + const olmMachine = await matrixSdkCrypto.OlmMachine.initialize( + new RustSdkCryptoJs.UserId(userId), + new RustSdkCryptoJs.DeviceId(deviceId), + ); return olmMachine; } ``` - See the [API documentation](https://matrix-org.github.io/matrix-sdk-crypto-wasm/) for more information. - -3. Build your project. - - The packaging of this library aims to "just work" the same as any plain-javascript project would: it includes - separate entry points for Node.js-like environments (which read the WASM file via - [`fs.readFile()`](https://nodejs.org/api/fs.html#fsreadfilepath-options-callback)) and web-like environments (which - download the WASM file with [`fetch()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/fetch)). There are - both CommonJS and ES Module entry points for each environment; an appropriate entrypoint should be selected - automatically. - - If your environment supports the experimental [ES Module Integration Proposal for WebAssembly](https://github.com/WebAssembly/esm-integration), - you can instead use that, by setting the `matrix-org:wasm-esm` custom [export condition](https://nodejs.org/api/packages.html#conditional-exports). - This is only supported when the library is imported as an ES Module. For example: - - - In Webpack, set [`experiments.asyncWebAssembly`](https://webpack.js.org/configuration/experiments/#experiments) - to `true` and [`resolve.conditionNames`](https://webpack.js.org/configuration/resolve/#resolveconditionnames) - to `["matrix-org:wasm-esm", "..."]` (the `"..."` preserves default condition names). - - In Node.js, invoke with commandline arguments [`--experimental-wasm-modules`](https://nodejs.org/api/esm.html#wasm-modules) - [`--conditions=wasm-esm`](https://nodejs.org/api/cli.html#-c-condition---conditionscondition). - -## Building matrix-sdk-crypto-wasm +## Building These WebAssembly bindings are written in [Rust]. To build them, you need to install the Rust compiler, see [the Install Rust Page](https://www.rust-lang.org/tools/install). Then, the workflow is -pretty classical by using [pnpm](https://pnpm.io), see [the Downloading and installing +pretty classical by using [yarn](https://yarnpkg.com/), see [the Downloading and installing Node.js and npm -Page](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) and [installing pnpm](https://pnpm.io/installation). +Page](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) and [installing yarn](https://classic.yarnpkg.com/lang/en/docs/install). -Once the Rust compiler, Node.js and pnpm are installed, you can run the +Once the Rust compiler, Node.js and yarn are installed, you can run the following commands: ```sh -$ pnpm install -$ pnpm build # or 'pnpm build:dev' to make an unoptimised build -$ pnpm test +$ yarn install +$ yarn build # or 'yarn build:dev' to make an unoptimised build +$ yarn test ``` The compiled output should be generated in the `pkg/` directory. -## Local development with matrix-rust-sdk - -To build based on a local `matrix-rust-sdk`, add something like this to your -`.cargo/config` file: - -``` -[patch.'https://github.com/matrix-org/matrix-rust-sdk'] -matrix-sdk-base = { path = "../matrix-rust-sdk/crates/matrix-sdk-base" } -matrix-sdk-common = { path = "../matrix-rust-sdk/crates/matrix-sdk-common" } -matrix-sdk-crypto = { path = "../matrix-rust-sdk/crates/matrix-sdk-crypto" } -matrix-sdk-indexeddb = { path = "../matrix-rust-sdk/crates/matrix-sdk-indexeddb" } -matrix-sdk-qrcode = { path = "../matrix-rust-sdk/crates/matrix-sdk-qrcode" } -``` - ## Documentation [The documentation can be found -online](https://matrix-org.github.io/matrix-sdk-crypto-wasm/). +online](https://matrix-org.github.io/matrix-rust-sdk-crypto-wasm/). To generate the documentation locally, please run the following command: ```sh -$ pnpm doc +$ yarn doc ``` The documentation is generated in the `./docs` directory. @@ -128,7 +92,3 @@ The documentation is generated in the `./docs` directory. [Matrix]: https://matrix.org/ [Rust]: https://www.rust-lang.org/ [npm]: https://www.npmjs.com/ - -## Contributing - -Thank you! See the [contributing](CONTRIBUTING.md) doc for more info. diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index-wasm-esm.mjs b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index-wasm-esm.mjs deleted file mode 100644 index 89db517..0000000 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index-wasm-esm.mjs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2024 The Matrix.org Foundation C.I.C. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// @ts-check - -/** - * This is the entry point for ESM environments which support the ES Module Integration Proposal for WebAssembly [1]. - * - * [1]: https://github.com/webassembly/esm-integration - */ - -import * as bindings from "./pkg/matrix_sdk_crypto_wasm_bg.js"; - -// Although we could simply instantiate the WASM at import time with a top-level `await`, -// we avoid that, to make it easier for callers to delay loading the WASM (and instead -// wait until `initAsync` is called). (Also, Safari 14 doesn't support top-level `await`.) -// -// However, having done so, there is no way to synchronously load the WASM if the user ends -// up using the bindings before calling `initAsync` (unlike under Node.js), so we just throw -// an error. -bindings.__wbg_set_wasm( - new Proxy( - {}, - { - get() { - throw new Error( - "@matrix-org/matrix-sdk-crypto-wasm was used before it was initialized. Call `initAsync` first.", - ); - }, - }, - ), -); - -/** - * Stores a promise of the `loadModuleAsync` call - * @type {Promise | null} - */ -let modPromise = null; - -/** - * Loads and instantiates the WASM module asynchronously - * - * @returns {Promise} - */ -async function loadModuleAsync() { - /** @type {typeof import("./pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts")} */ - // @ts-expect-error TSC can't find the definitions file, for some reason. - const wasm = await import("./pkg/matrix_sdk_crypto_wasm_bg.wasm"); - bindings.__wbg_set_wasm(wasm); - wasm.__wbindgen_start(); -} - -/** - * Load the WebAssembly module in the background, if it has not already been loaded. - * - * Returns a promise which will resolve once the other methods are ready. - * - * @returns {Promise} - */ -export async function initAsync() { - if (!modPromise) modPromise = loadModuleAsync(); - await modPromise; -} - -// Re-export everything from the generated javascript wrappers -export * from "./pkg/matrix_sdk_crypto_wasm_bg.js"; diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.cjs b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.cjs deleted file mode 100644 index 4a6cc27..0000000 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.cjs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2024 The Matrix.org Foundation C.I.C. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// @ts-check - -/** - * This is the entrypoint on non-node CommonJS environments. - * `asyncLoad` will load the WASM module using a `fetch` call. - */ - -const bindings = require("./pkg/matrix_sdk_crypto_wasm_bg.cjs"); - -const defaultURL = require.resolve("./pkg/matrix_sdk_crypto_wasm_bg.wasm"); - -// We want to throw an error if the user tries to use the bindings before -// calling `initAsync`. -bindings.__wbg_set_wasm( - new Proxy( - {}, - { - get() { - throw new Error( - "@matrix-org/matrix-sdk-crypto-wasm was used before it was initialized. Call `initAsync` first.", - ); - }, - }, - ), -); - -/** - * Stores a promise of the `loadModule` call - * @type {Promise | null} - */ -let modPromise = null; - -/** - * Loads and instantiates the WASM module asynchronously - * - * @param {URL | string} url - The URL to fetch the WebAssembly module from - * @returns {Promise} - */ -async function loadModuleAsync(url) { - const { instance } = await WebAssembly.instantiateStreaming(fetch(url), { - // @ts-expect-error: The bindings don't exactly match the 'ExportValue' type - "./matrix_sdk_crypto_wasm_bg.js": bindings, - }); - - bindings.__wbg_set_wasm(instance.exports); - // @ts-expect-error: Typescript doesn't know what the module exports are - instance.exports.__wbindgen_start(); -} - -/** - * Load the WebAssembly module in the background, if it has not already been loaded. - * - * Returns a promise which will resolve once the other methods are ready. - * - * @param {URL | string} [url] - The URL to fetch the WebAssembly module from. If not provided, a default URL will be used. - * @returns {Promise} - */ -async function initAsync(url = defaultURL) { - if (!modPromise) modPromise = loadModuleAsync(url); - await modPromise; -} - -module.exports = { - // Re-export everything from the generated javascript wrappers - ...bindings, - initAsync, -}; diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.d.ts b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.d.ts deleted file mode 100644 index 6a968e7..0000000 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2024 The Matrix.org Foundation C.I.C. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* - * Re-export all the type definitions that wasm-bindgen generated for us. - * - * We do this by referring to a non-existent "matrix_sdk_crypto_wasm.js" file. This works because TSC will automatically - * transform this into the correct name "matrix_sdk_crypto_wasm.d.ts" [1]. - * - * Other alternatives don't work: - * - * - `export * from "./pkg/matrix_sdk_crypto_wasm.d.ts"`: You're not allowed to `import from ".d.ts"` - * without `import type`, because normally, that would mean you don't get the runtime definitions that are in - * ".js". This lint rule even applies to ".d.ts" files, which is arguably overzealous, but there you have it. - * - * - `export type * from "./pkg/matrix_sdk_crypto_wasm.d.ts"`: Doing this means you can't call the constructors on any - * of the exported types: `new RoomId(...)` gives a build error. - * - * - `export * from "./pkg/matrix_sdk_crypto_wasm"`: This works in *some* environments, but in others, typescript - * complains [2]. We could maybe get around this by mandating a `moduleResolution` setting of `bundler` or so, but - * that is restrictive on our downstreams. - * - * A final alternative would be just to cat `matrix_sdk_crypto_wasm.d.ts` in here as part of the build script, but - * for now at least we're trying to avoid too much file manipulation. - * - * [1]: https://www.typescriptlang.org/docs/handbook/modules/reference.html#file-extension-substitution - * [2]: https://www.typescriptlang.org/docs/handbook/modules/reference.html#extensionless-relative-paths - */ -export * from "./pkg/matrix_sdk_crypto_wasm.js"; - -/** - * Load the WebAssembly module in the background, if it has not already been loaded. - * - * Returns a promise which will resolve once the other methods are ready. - * @param {URL | string} [url] - The URL to fetch the WebAssembly module from. If not provided, a default URL will be used. - * @returns {Promise} - */ -export declare function initAsync(url?: URL | string): Promise; diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.mjs b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.mjs deleted file mode 100644 index cf58971..0000000 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.mjs +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2024 The Matrix.org Foundation C.I.C. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// @ts-check - -/** - * This is the entrypoint on non-node ESM environments. - * `asyncLoad` will load the WASM module using a `fetch` call. - */ - -import * as bindings from "./pkg/matrix_sdk_crypto_wasm_bg.js"; - -const defaultURL = new URL("./pkg/matrix_sdk_crypto_wasm_bg.wasm", import.meta.url); - -// Although we could simply instantiate the WASM at import time with a top-level `await`, -// we avoid that, to make it easier for callers to delay loading the WASM (and instead -// wait until `initAsync` is called). (Also, Safari 14 doesn't support top-level `await`.) -// -// However, having done so, there is no way to synchronously load the WASM if the user ends -// up using the bindings before calling `initAsync` (unlike under Node.js), so we just throw -// an error. -bindings.__wbg_set_wasm( - new Proxy( - {}, - { - get() { - throw new Error( - "@matrix-org/matrix-sdk-crypto-wasm was used before it was initialized. Call `initAsync` first.", - ); - }, - }, - ), -); - -/** - * Stores a promise of the `loadModuleAsync` call - * @type {Promise | null} - */ -let modPromise = null; - -/** - * Loads and instantiates the WASM module asynchronously - * - * @param {URL | string} url - The URL to fetch the WebAssembly module from - * @returns {Promise} - */ -async function loadModuleAsync(url) { - const { instance } = await WebAssembly.instantiateStreaming(fetch(url), { - // @ts-expect-error: The bindings don't exactly match the 'ExportValue' type - "./matrix_sdk_crypto_wasm_bg.js": bindings, - }); - - bindings.__wbg_set_wasm(instance.exports); - // @ts-expect-error: Typescript doesn't know what the module exports are - instance.exports.__wbindgen_start(); -} - -/** - * Load the WebAssembly module in the background, if it has not already been loaded. - * - * Returns a promise which will resolve once the other methods are ready. - * - * @param {URL | string} [url] - The URL to fetch the WebAssembly module from. If not provided, a default URL will be used. - * @returns {Promise} - */ -export async function initAsync(url = defaultURL) { - if (!modPromise) modPromise = loadModuleAsync(url); - await modPromise; -} - -// Re-export everything from the generated javascript wrappers -export * from "./pkg/matrix_sdk_crypto_wasm_bg.js"; diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/node.cjs b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/node.cjs deleted file mode 100644 index 2e67fb3..0000000 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/node.cjs +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2024 The Matrix.org Foundation C.I.C. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// @ts-check - -/** - * This is the entrypoint on node-compatible CommonJS environments. - * `asyncLoad` will use `fs.readFile` to load the WASM module. - */ - -const { readFileSync } = require("node:fs"); -const { readFile } = require("node:fs/promises"); -const path = require("node:path"); -const bindings = require("./pkg/matrix_sdk_crypto_wasm_bg.cjs"); - -const filename = path.join(__dirname, "pkg/matrix_sdk_crypto_wasm_bg.wasm"); - -// In node environments, we want to automatically load the WASM module -// synchronously if the consumer did not call `initAsync`. To do so, we install -// a `Proxy` that will intercept calls to the WASM module. -bindings.__wbg_set_wasm( - new Proxy( - {}, - { - get(_target, prop) { - const instance = loadModuleSync(); - // @ts-expect-error: This results in an `any` type, which is fine - return instance[prop]; - }, - }, - ), -); - -/** - * Stores a promise which resolves to the WebAssembly module - * @type {Promise | null} - */ -let modPromise = null; - -/** - * Tracks whether the module has been instantiated or not - * @type {boolean} - */ -let initialised = false; - -/** - * Loads and instantiates the WASM module synchronously - * - * It will throw if there is an attempt to load the module asynchronously running - * - * @returns {typeof import("./pkg/matrix_sdk_crypto_wasm_bg.wasm.d", { with: { "resolution-mode": "require" } })} - */ -function loadModuleSync() { - if (modPromise) throw new Error("The WASM module is being loaded asynchronously but hasn't finished"); - const bytes = readFileSync(filename); - const mod = new WebAssembly.Module(bytes); - - const instance = new WebAssembly.Instance(mod, { - // @ts-expect-error: The bindings don't exactly match the 'ExportValue' type - "./matrix_sdk_crypto_wasm_bg.js": bindings, - }); - - initInstance(instance); - - // @ts-expect-error: Typescript doesn't know what the instance exports exactly - return instance.exports; -} - -/** - * Loads and instantiates the WASM module asynchronously - * - * @returns {Promise} - */ -async function loadModuleAsync() { - const bytes = await readFile(filename); - const { instance } = await WebAssembly.instantiate(bytes, { - // @ts-expect-error: The bindings don't exactly match the 'ExportValue' type - "./matrix_sdk_crypto_wasm_bg.js": bindings, - }); - - initInstance(instance); - - // @ts-expect-error: Typescript doesn't know what the instance exports exactly - return instance.exports; -} - -/** - * Initializes the WASM module and returns the exports from the WASM module. - * - * @param {WebAssembly.Instance} instance - */ -function initInstance(instance) { - if (initialised) throw new Error("initInstance called twice"); - bindings.__wbg_set_wasm(instance.exports); - // @ts-expect-error: Typescript doesn't know what the instance exports exactly - instance.exports.__wbindgen_start(); - initialised = true; -} - -/** - * Load the WebAssembly module in the background, if it has not already been loaded. - * - * Returns a promise which will resolve once the other methods are ready. - * - * @returns {Promise} - */ -async function initAsync() { - if (initialised) return; - if (!modPromise) modPromise = loadModuleAsync(); - await modPromise; -} - -module.exports = { - // Re-export everything from the generated javascript wrappers - ...bindings, - initAsync, -}; diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/node.mjs b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/node.mjs deleted file mode 100644 index 65c9cca..0000000 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/node.mjs +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2024 The Matrix.org Foundation C.I.C. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// @ts-check - -/** - * This is the entrypoint on node-compatible ESM environments. - * `asyncLoad` will use `fs.readFile` to load the WASM module. - */ - -import { fileURLToPath } from "node:url"; -import { readFileSync } from "node:fs"; -import { readFile } from "node:fs/promises"; -import * as bindings from "./pkg/matrix_sdk_crypto_wasm_bg.js"; - -const filename = fileURLToPath(new URL("./pkg/matrix_sdk_crypto_wasm_bg.wasm", import.meta.url)); - -// In node environments, we want to automatically load the WASM module -// synchronously if the consumer did not call `initAsync`. To do so, we install -// a `Proxy` that will intercept calls to the WASM module. -bindings.__wbg_set_wasm( - new Proxy( - {}, - { - get(_target, prop) { - const instance = loadModuleSync(); - // @ts-expect-error: This results in an `any` type, which is fine - return instance[prop]; - }, - }, - ), -); - -/** - * Stores a promise which resolves to the WebAssembly module - * @type {Promise | null} - */ -let modPromise = null; - -/** - * Tracks whether the module has been instantiated or not - * @type {boolean} - */ -let initialised = false; - -/** - * Loads and instantiates the WASM module synchronously - * - * It will throw if there is an attempt to load the module asynchronously running - * - * @returns {typeof import("./pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts")} - */ -function loadModuleSync() { - if (modPromise) throw new Error("The WASM module is being loaded asynchronously but hasn't finished"); - const bytes = readFileSync(filename); - const mod = new WebAssembly.Module(bytes); - - const instance = new WebAssembly.Instance(mod, { - // @ts-expect-error: The bindings don't exactly match the 'ExportValue' type - "./matrix_sdk_crypto_wasm_bg.js": bindings, - }); - - initInstance(instance); - - // @ts-expect-error: Typescript doesn't know what the module exports are - return instance.exports; -} - -/** - * Loads and instantiates the WASM module asynchronously - * - * @returns {Promise} - */ -async function loadModuleAsync() { - const bytes = await readFile(filename); - const { instance } = await WebAssembly.instantiate(bytes, { - // @ts-expect-error: The bindings don't exactly match the 'ExportValue' type - "./matrix_sdk_crypto_wasm_bg.js": bindings, - }); - - initInstance(instance); - - // @ts-expect-error: Typescript doesn't know what the module exports are - return instance.exports; -} - -/** - * Initializes the WASM module and returns the exports from the WASM module. - * - * @param {WebAssembly.Instance} instance - */ -function initInstance(instance) { - if (initialised) throw new Error("initInstance called twice"); - bindings.__wbg_set_wasm(instance.exports); - // @ts-expect-error: Typescript doesn't know what the module exports are - instance.exports.__wbindgen_start(); - initialised = true; -} - -/** - * Load the WebAssembly module in the background, if it has not already been loaded. - * - * Returns a promise which will resolve once the other methods are ready. - * - * @returns {Promise} - */ -export async function initAsync() { - if (initialised) return; - if (!modPromise) modPromise = loadModuleAsync(); - await modPromise; -} - -// Re-export everything from the generated javascript wrappers -export * from "./pkg/matrix_sdk_crypto_wasm_bg.js"; diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/package.json b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/package.json index 5d2a4a5..59c6c4b 100644 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/package.json +++ b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/package.json @@ -1,7 +1,7 @@ { "name": "@matrix-org/matrix-sdk-crypto-wasm", - "version": "18.8.0", - "homepage": "https://github.com/matrix-org/matrix-sdk-crypto-wasm", + "version": "1.3.0", + "homepage": "https://github.com/matrix-org/matrix-rust-sdk-wasm", "description": "WebAssembly bindings of the matrix-sdk-crypto encryption library", "license": "Apache-2.0", "collaborators": [ @@ -9,7 +9,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/matrix-org/matrix-sdk-crypto-wasm" + "url": "https://github.com/matrix-org/matrix-rust-sdk-wasm" }, "keywords": [ "matrix", @@ -18,71 +18,33 @@ "ruma", "nio" ], - "type": "module", - "exports": { - ".": { - "matrix-org:wasm-esm": { - "types": "./index.d.ts", - "default": "./index-wasm-esm.mjs" - }, - "require": { - "types": "./index.d.ts", - "node": "./node.cjs", - "default": "./index.cjs" - }, - "import": { - "types": "./index.d.ts", - "node": "./node.mjs", - "default": "./index.mjs" - } - } - }, + "main": "pkg/matrix_sdk_crypto_wasm.js", + "types": "pkg/matrix_sdk_crypto_wasm.d.ts", "files": [ - "index.mjs", - "index.cjs", - "index-wasm-esm.mjs", - "index.d.ts", - "node.mjs", - "node.cjs", - "pkg/matrix_sdk_crypto_wasm.d.ts", - "pkg/matrix_sdk_crypto_wasm_bg.js", - "pkg/matrix_sdk_crypto_wasm_bg.cjs", + "pkg/matrix_sdk_crypto_wasm_bg.wasm.js", "pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts", - "pkg/matrix_sdk_crypto_wasm_bg.wasm" + "pkg/matrix_sdk_crypto_wasm.js", + "pkg/matrix_sdk_crypto_wasm.d.ts" ], "devDependencies": { - "@babel/cli": "^7.28.6", - "@babel/core": "^7.29.0", - "@babel/plugin-transform-modules-commonjs": "^7.28.6", - "@babel/preset-env": "^7.29.0", - "@babel/preset-typescript": "^7.28.5", - "@tsconfig/node18": "^18.2.6", - "@types/jest": "^29.5.14", - "@types/node": "^18.19.130", - "babel-jest": "^29.7.0", "cross-env": "^7.0.3", - "eslint": "^8.57.1", - "fake-indexeddb": "^4.0.2", - "jest": "^28.1.3", - "prettier": "^2.8.8", - "typedoc": "^0.27.9", - "typescript": "5.7.2", - "wasm-pack": "~0.13.1", + "fake-indexeddb": "^4.0", + "jest": "^28.1.0", + "prettier": "^2.8.3", + "typedoc": "^0.22.17", + "typescript": "4.7", + "wasm-pack": "^0.10.2", "yargs-parser": "~21.0.1" }, "engines": { - "node": ">= 18" + "node": ">= 10" }, - "packageManager": "pnpm@10.30.3+sha512.c961d1e0a2d8e354ecaa5166b822516668b7f44cb5bd95122d590dd81922f606f5473b6d23ec4a5be05e7fcd18e8488d47d978bbe981872f1145d06e9a740017", "scripts": { - "lint": "pnpm lint:eslint && pnpm lint:prettier && pnpm lint:types", - "lint:eslint": "eslint --max-warnings 0 tests", - "lint:prettier": "prettier --check .", - "lint:types": "tsc --noEmit", + "lint": "prettier --check .", "build": "WASM_PACK_ARGS=--release ./scripts/build.sh", "build:dev": "WASM_PACK_ARGS=--dev ./scripts/build.sh", - "test": "jest --verbose && pnpm wasm-pack test --node", - "doc": "typedoc --treatWarningsAsErrors --tsconfig .", - "prepack": "pnpm build && pnpm run test" + "test": "jest --verbose", + "doc": "typedoc --tsconfig .", + "prepack": "npm run build && npm run test" } } diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm.d.ts b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm.d.ts index 77466fe..a489f85 100644 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm.d.ts +++ b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm.d.ts @@ -1,5161 +1,3046 @@ /* tslint:disable */ /* eslint-disable */ - -/** The types returned by {@link OlmMachine.outgoingRequests}. */ -type OutgoingRequest = -| KeysUploadRequest -| KeysQueryRequest -| KeysClaimRequest -| ToDeviceRequest -| SignatureUploadRequest -| RoomMessageRequest -| KeysBackupRequest; - - - -/** The types returned by {@link OlmMachine.receiveSyncChanges}. */ -type ProcessedToDeviceEvent = -| DecryptedToDeviceEvent -| PlainTextToDeviceEvent -| InvalidToDeviceEvent -| UTDToDeviceEvent; - - - -interface JsLogger { - debug(data: any): void; - info(data: any): void; - warn(data: any): void; - error(data: any): void; -} - - -type OutgoingVerificationRequest = -| ToDeviceRequest -| RoomMessageRequest; - - - /** - * A type to encrypt and to decrypt anything that can fit in an - * `Uint8Array`, usually big buffer. - */ -export class Attachment { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Decrypt an `EncryptedAttachment`. - * - * The encrypted attachment can be created manually, or from the - * `encrypt` method. - * - * **Warning**: The encrypted attachment can be used only - * **once**! The encrypted data will still be present, but the - * media encryption info (which contain secrets) will be - * destroyed. It is still possible to get a JSON-encoded backup - * by calling `EncryptedAttachment.mediaEncryptionInfo`. - */ - static decrypt(attachment: EncryptedAttachment): Uint8Array; - /** - * Encrypt the content of the `Uint8Array`. - * - * It produces an `EncryptedAttachment`, which can be used to - * retrieve the media encryption information, or the encrypted - * data. - */ - static encrypt(array: Uint8Array): EncryptedAttachment; -} - -/** - * The private part of the backup key, the one used for recovery. - */ -export class BackupDecryptionKey { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Create a new random [`BackupDecryptionKey`]. - */ - static createRandomKey(): BackupDecryptionKey; - /** - * Try to decrypt a message that was encrypted using the public part of the - * backup key. - */ - decryptV1(ephemeral_key: string, mac: string, ciphertext: string): string; - /** - * Try to create a [`BackupDecryptionKey`] from a base 64 encoded string. - */ - static fromBase64(key: string): BackupDecryptionKey; - /** - * Convert the backup decryption key to a base 64 encoded string. - */ - toBase64(): string; - /** - * Get the public part of the backup key. - */ - readonly megolmV1PublicKey: MegolmV1BackupKey; -} - -/** - * Stored versions of the backup keys. - */ -export class BackupKeys { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The key used to decrypt backed up room keys, encoded as base64 - * - * @deprecated Use `BackupKeys.decryptionKey.toBase64()` - */ - readonly decryptionKeyBase64: string | undefined; - /** - * The version that we are using for backups. - */ - get backupVersion(): string | undefined; - /** - * The version that we are using for backups. - */ - set backupVersion(value: string | null | undefined); - /** - * The key used to decrypt backed up room keys - */ - get decryptionKey(): BackupDecryptionKey | undefined; - /** - * The key used to decrypt backed up room keys - */ - set decryptionKey(value: BackupDecryptionKey | null | undefined); -} - -/** - * The backup-specific parts of a secrets bundle. - */ -export class BackupSecretsBundle { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The backup version which this backup decryption key is used with. - */ - backup_version: string; - /** - * The backup decryption key, encoded as unpadded base64. - */ - key: string; -} - -/** - * The base64-encoded variant of a {@link PkMessage}. - * - * This can be useful if the encrypted message should be put into JSON. - */ -export class Base64EncodedPkMessage { - free(): void; - [Symbol.dispose](): void; - /** - * Creates a new base64-encoded encrypted message from its parts. - */ - constructor(ciphertext: string, mac: string, ephemeral_key: string); - /** - * The base64-encoded ciphertext. - */ - ciphertext: string; - /** - * The base64-encoded ephemeral public key. - */ - ephemeralKey: string; - /** - * The base64-encoded message authentication code (MAC). - */ - mac: string; -} - -/** - * The base dataset that is important to migrate to the Rust SDK. - * - * Can be imported into the rust store with {@link Migration::migrateBaseData}. - */ -export class BaseMigrationData { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `BaseMigrationData` with default values. - */ - constructor(); - /** - * The backup recovery key, as a base64-encoded string. - */ - get backupRecoveryKey(): string | undefined; - /** - * The backup recovery key, as a base64-encoded string. - */ - set backupRecoveryKey(value: string | null | undefined); - /** - * The backup version that is currently active. - */ - get backupVersion(): string | undefined; - /** - * The backup version that is currently active. - */ - set backupVersion(value: string | null | undefined); - /** - * The device ID of the account owner. - */ - get deviceId(): DeviceId | undefined; - /** - * The device ID of the account owner. - */ - set deviceId(value: DeviceId | null | undefined); - /** - * The pickle string holding the Olm Account, as returned by - * `olm_pickle_account` in libolm. - */ - pickledAccount: string; - /** - * The private, base64-encoded, master cross-signing key. - */ - get privateCrossSigningMasterKey(): string | undefined; - /** - * The private, base64-encoded, master cross-signing key. - */ - set privateCrossSigningMasterKey(value: string | null | undefined); - /** - * The private, base64-encoded, self-signing key. - */ - get privateCrossSigningSelfSigningKey(): string | undefined; - /** - * The private, base64-encoded, self-signing key. - */ - set privateCrossSigningSelfSigningKey(value: string | null | undefined); - /** - * The private, base64-encoded, user-signing key. - */ - get privateCrossSigningUserSigningKey(): string | undefined; - /** - * The private, base64-encoded, user-signing key. - */ - set privateCrossSigningUserSigningKey(value: string | null | undefined); - /** - * The user id of the account owner. - */ - get userId(): UserId | undefined; - /** - * The user id of the account owner. - */ - set userId(value: UserId | null | undefined); -} - -/** - * Information about the cancellation of a verification request or - * verification flow. - */ -export class CancelInfo { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Get the `code` (e.g. `m.user`) that was used to cancel the - * verification. - */ - cancelCode(): string; - /** - * Was the verification cancelled by us? - */ - cancelledbyUs(): boolean; - /** - * Get the human readable reason of the cancellation. - */ - reason(): string; -} - -/** - * A check code that can be used to confirm that two {@link EstablishedEcies} - * objects share the same secret. This is supposed to be shared out-of-band to - * protect against active Man-in-the-middle (MITM) attacks. - * - * Since the initiator device can always tell whether a MITM attack is in - * progress after channel establishment, this code technically carries only a - * single bit of information, representing whether the initiator has determined - * that the channel is "secure" or "not secure". - * - * However, given this will need to be interactively confirmed by the user, - * there is risk that the user would confirm the dialogue without paying - * attention to its content. By expanding this single bit into a deterministic - * two-digit check code, the user is forced to pay more attention by having to - * enter it instead of just clicking through a dialogue. - */ -export class CheckCode { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Convert the check code to an array of two bytes. - * - * The bytes can be converted to a more user-friendly representation. - * {@link to_digit} and {@link toDigitNoLeadingZero} convert the bytes to a - * two-digit number. - */ - as_bytes(): Uint8Array; - /** - * Convert the check code to two base-10 numbers, with no leading zero. - * - * This corresponds to the way the digits are defined in - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388}. - */ - toDigitNoLeadingZero(): number; - /** - * Convert the check code to two base-10 numbers, allowing a leading zero. - * - * This corresponds to the way the digits were used in the initial version - * of {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4108 MSC4108}. - * See {@link toDigitNoLeadingZero} for a more recent implementation. - * - * The number should be displayed with a leading 0 in case the first digit - * is a 0. - */ - to_digit(): number; -} - -/** - * Strategy to collect the devices that should receive room keys for the - * current discussion. - */ -export class CollectStrategy { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Share with all (unblacklisted) devices. - */ - static allDevices(): CollectStrategy; - /** - * Device based sharing strategy. - * - * @deprecated: use one of {@link allDevices}, {@link - * errorOnUnverifiedUserProblem} or {@link onlyTrustedDevices}. - */ - static deviceBasedStrategy(only_allow_trusted_devices: boolean, error_on_verified_user_problem: boolean): CollectStrategy; - /** - * Tests for equality between two [`CollectStrategy`]s. - */ - eq(other: CollectStrategy): boolean; - /** - * Share with all devices, except that errors for *verified* users cause - * sharing to fail with an error. - * - * In this strategy, if a verified user has an unsigned device, or - * a verified user has replaced their identity, key - * sharing will fail with an error. - * - * Otherwise, keys are shared with unsigned devices as normal. - * - * Once the problematic devices are blacklisted or whitelisted the - * caller can try sharing a second time. - */ - static errorOnUnverifiedUserProblem(): CollectStrategy; - /** - * Share based on identity. Only distribute to devices signed by their - * owner. If a user has no published identity he will not receive - * any room keys. - */ - static identityBasedStrategy(): CollectStrategy; - /** - * Only share keys with devices that we "trust". A device is trusted if any - * of the following is true: - * - It was manually marked as trusted. - * - It was marked as verified via interactive verification. - * - It is signed by its owner identity, and this identity has been - * trusted via interactive verification. - * - It is the current own device of the user. - */ - static onlyTrustedDevices(): CollectStrategy; -} - -/** - * A set of requests to be executed when bootstrapping cross-signing using - * {@link OlmMachine.bootstrapCrossSigning}. - */ -export class CrossSigningBootstrapRequests { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * An optional request to upload a device key. - * - * This will either be `undefined`, or an "outgoing request" as returned by - * {@link OlmMachine.outgoingRequests}. - * - * If it is defined, the request should be sent first, and the result sent - * back with {@link OlmMachine.markRequestAsSent}. - */ - readonly uploadKeysRequest: any; - /** - * Request to upload key signatures, including those for the cross-signing - * keys, and maybe some for the optional uploaded key too. - * - * Should be sent last. - */ - readonly uploadSignaturesRequest: SignatureUploadRequest; - /** - * Request to upload the cross-signing keys. - * - * Should be sent second. - */ - readonly uploadSigningKeysRequest: UploadSigningKeysRequest; -} - -/** - * A struct containing private cross signing keys that can be backed - * up or uploaded to the secret store. - */ -export class CrossSigningKeyExport { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The seed of the master key encoded as unpadded base64. - */ - readonly masterKey: string | undefined; - /** - * The seed of the self signing key encoded as unpadded base64. - */ - readonly self_signing_key: string | undefined; - /** - * The seed of the user signing key encoded as unpadded base64. - */ - readonly userSigningKey: string | undefined; -} - -/** - * Struct representing the state of our private cross signing keys, - * it shows which private cross signing keys we have locally stored. - */ -export class CrossSigningStatus { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Do we have the master key? - */ - readonly hasMaster: boolean; - /** - * Do we have the self signing key? This one is necessary to sign - * our own devices. - */ - readonly hasSelfSigning: boolean; - /** - * Do we have the user signing key? This one is necessary to sign - * other users. - */ - readonly hasUserSigning: boolean; -} - -/** - * A Curve25519 public key. - */ -export class Curve25519PublicKey { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new [`Curve25519PublicKey`] from a base64 encoded string. - */ - constructor(key: string); - /** - * Serialize an Curve25519 public key to an unpadded base64 - * representation. - */ - toBase64(): string; - /** - * The number of bytes a Curve25519 public key has. - */ - readonly length: number; -} - -/** - * A Curve25519 secret key. - */ -export class Curve25519SecretKey { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Creates a `Curve25519SecretKey` from a base64-encoded representation of - * the key. - */ - static fromBase64(string: string): Curve25519SecretKey; - /** - * Creates a `Curve25519SecretKey` from a raw byte slice. - */ - static fromUint8Array(slice: Uint8Array): Curve25519SecretKey; - /** - * Generates a new random Curve25519 secret key. - */ - static new(): Curve25519SecretKey; - /** - * Encodes the secret key into a base64 string. - */ - toBase64(): string; - /** - * Converts the secret key into a raw byte vector. - */ - toUint8Array(): Uint8Array; -} - -/** - * A decrypted room event. - */ -export class DecryptedRoomEvent { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The verification state of the device that sent us the event. - * Note this is the state of the device at the time of - * decryption. It may change in the future if a device gets - * verified or deleted. - */ - shieldState(strict: boolean): ShieldState; - /** - * If the keys for this message were shared-on-invite as part of an - * [MSC4268] key bundle, the ID of the user who sent us the bundle. - * - * [MSC4268]: https://github.com/matrix-org/matrix-spec-proposals/pull/4268 - */ - readonly forwarder: UserId | undefined; - /** - * If the keys for this message were shared-on-invite as part of an - * [MSC4268] key bundle, the ID of the device from which this bundle - * was sent. - * - * [MSC4268]: https://github.com/matrix-org/matrix-spec-proposals/pull/4268 - */ - readonly forwarderDevice: DeviceId | undefined; - /** - * Returns an empty array - * - * Previously, this returned the chain of Curve25519 keys through which - * this session was forwarded, via `m.forwarded_room_key` events. - * However, that is not cryptographically reliable, and clients should not - * be using it. - * - * @see https://github.com/matrix-org/matrix-spec/issues/1089 - */ - readonly forwardingCurve25519KeyChain: string[]; - /** - * The user ID of the event sender, note this is untrusted data - * unless the `verification_state` is as well trusted. - */ - readonly sender: UserId; - /** - * The signing Ed25519 key that have created the megolm key that - * was used to decrypt this session. - */ - readonly senderClaimedEd25519Key: string | undefined; - /** - * The Curve25519 key of the device that created the megolm - * decryption key originally. - */ - readonly senderCurve25519Key: string; - /** - * The device ID of the device that sent us the event, note this - * is untrusted data unless `verification_state` is as well - * trusted. - */ - readonly senderDevice: DeviceId | undefined; - /** - * The JSON-encoded decrypted event. - */ - readonly event: string; -} - -/** - * Represents an encrypted to-device event, after it has been decrypted. - */ -export class DecryptedToDeviceEvent { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.Decrypted} for this type. - */ - readonly type: ProcessedToDeviceEventType; - /** - * The encryption information for the event. - */ - readonly encryptionInfo: ToDeviceEncryptionInfo; - /** - * The decrypted event, as if it had been sent in the clear, encoded as - * JSON. - * - * Typically contains properties `type`, `sender` and `content`. - * - * (For room keys or secrets, some part of the content might have been - * zeroized). - */ - readonly rawEvent: string; -} - -/** - * Decryption error codes - */ -export enum DecryptionErrorCode { - /** - * The room key is not known - */ - MissingRoomKey = 0, - /** - * The room key is known but ratcheted - */ - UnknownMessageIndex = 1, - /** - * Decryption failed because of a mismatch between the identity keys of the - * device we received the room key from and the identity keys recorded in - * the plaintext of the room key to-device message. - */ - MismatchedIdentityKeys = 2, - /** - * We weren't able to link the message back to any known device. - */ - UnknownSenderDevice = 3, - /** - * The sender device is not cross-signed. - */ - UnsignedSenderDevice = 4, - /** - * The sender's identity is unverified, but was previously verified. - */ - SenderIdentityVerificationViolation = 5, - /** - * Other failure. - */ - UnableToDecrypt = 6, - /** - * The `sender` field on the event does not match the owner of the device - * that established the Megolm session. - */ - MismatchedSender = 7, -} - -/** - * Settings for decrypting messages - */ -export class DecryptionSettings { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `DecryptionSettings` with the given trust requirement. - */ - constructor(sender_device_trust_requirement: TrustRequirement); - /** - * The trust level required to decrypt the event - */ - sender_device_trust_requirement: TrustRequirement; -} - -/** - * A dehydrated device that can be uploaded to the server - */ -export class DehydratedDevice { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Create the request to upload the dehydrated device - */ - keysForUpload(initial_device_display_name: string, dehydrated_device_key: DehydratedDeviceKey): Promise; -} - -/** - * Dehydrated device key - */ -export class DehydratedDeviceKey { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Generates a dehydrated device key from a given array. - */ - static createKeyFromArray(array: Uint8Array): DehydratedDeviceKey; - /** - * Generates a new random dehydrated device key. - */ - static createRandomKey(): DehydratedDeviceKey; - /** - * Convert the dehydrated device key to a base64-encoded string. - */ - toBase64(): string; -} - -/** - * Struct collecting methods to create and rehydrate dehydrated devices. - */ -export class DehydratedDevices { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Create a new {@link DehydratedDevice} which can be uploaded to the - * server. - */ - create(): Promise; - /** - * Clear the dehydrated device key saved in the crypto store. - */ - deleteDehydratedDeviceKey(): Promise; - /** - * Get the cached dehydrated device key if any. - * - * `None` if the key was not previously cached (via - * {@link DehydratedDevices.saveDehydratedDeviceKey}). - */ - getDehydratedDeviceKey(): Promise; - /** - * Rehydrate a dehydrated device. - */ - rehydrate(dehydrated_device_key: DehydratedDeviceKey, device_id: DeviceId, device_data: string): Promise; - /** - * Store the dehydrated device key in the crypto store. - */ - saveDehydratedDeviceKey(dehydrated_device_key: DehydratedDeviceKey): Promise; -} - -/** - * A device represents a E2EE capable client of an user. - */ -export class Device { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Encrypt a to-device message to be sent to this device, using Olm - * encryption. - * - * Prior to calling this method you must ensure that an Olm session is - * available for the target device. This can be done by calling - * {@link OlmMachine.getMissingSessions}. - * - * The caller is responsible for sending the encrypted - * event to the target device. If multiple messages are - * encrypted for the same device using this method they should be sent in - * the same order as they are encrypted. - * - * # Returns - * - * Returns a promise for a JSON string containing the `content` of an - * encrypted event, which be used to create the payload for a - * `/sendToDevice` API. - */ - encryptToDeviceEvent(event_type: string, content: any, share_strategy?: CollectStrategy | null): Promise; - /** - * Timestamp representing the first time this device has been seen (in - * milliseconds). - */ - firstTimeSeen(): bigint; - /** - * Get the key of the given key algorithm belonging to this device. - */ - getKey(algorithm: DeviceKeyAlgorithmName): DeviceKey | undefined; - /** - * Is the device locally marked as blacklisted? - * - * Blacklisted devices won’t receive any group sessions. - */ - isBlacklisted(): boolean; - /** - * Is this device cross-signed by its owner? - */ - isCrossSignedByOwner(): boolean; - /** - * Is this device considered to be verified using cross signing. - */ - isCrossSigningTrusted(): boolean; - /** - * Is the device deleted? - */ - isDeleted(): boolean; - /** - * Is the device locally marked as trusted? - */ - isLocallyTrusted(): boolean; - /** - * Is this device considered to be verified. - * - * This method returns true if either the `is_locally_trusted` - * method returns `true` or if the `is_cross_signing_trusted` - * method returns `true`. - */ - isVerified(): boolean; - /** - * Request an interactive verification with this device. - * - * Returns a 2-element array `[VerificationRequest, ToDeviceRequest]`. - */ - requestVerification(methods?: VerificationMethod[]): [VerificationRequest, ToDeviceRequest]; - /** - * Set the local trust state of the device to the given state. - * - * This won’t affect any cross signing trust state, this only - * sets a flag marking to have the given trust state. - * - * `trust_state` represents the new trust state that should be - * set for the device. - */ - setLocalTrust(local_state: LocalTrust): Promise; - /** - * Mark this device as verified. - * Works only if the device is owned by the current user. - * - * Returns a signature upload request that needs to be sent out. - */ - verify(): Promise; - /** - * Get the list of algorithms this device supports. - * - * Returns `Array`. - */ - readonly algorithms: EncryptionAlgorithm[]; - /** - * Get the Curve25519 key of the given device. - */ - readonly curve25519Key: Curve25519PublicKey | undefined; - /** - * The unique ID of the device. - */ - readonly deviceId: DeviceId; - /** - * Get the human readable name of the device. - */ - readonly displayName: string | undefined; - /** - * Get the Ed25519 key of the given device. - */ - readonly ed25519Key: Ed25519PublicKey | undefined; - /** - * Whether or not the device is a dehydrated device. - */ - readonly isDehydrated: boolean; - /** - * Get a map containing all the device keys. - */ - readonly keys: Map; - /** - * Get the trust state of the device. - */ - readonly localTrustState: LocalTrust; - /** - * Get a map containing all the device signatures. - */ - readonly signatures: Signatures; - /** - * The user ID of the device owner. - */ - readonly userId: UserId; -} - -/** - * A Matrix key ID. - * - * Device identifiers in Matrix are completely opaque character - * sequences. This type is provided simply for its semantic value. - */ -export class DeviceId { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `DeviceId`. - */ - constructor(id: string); - /** - * Return the device ID as a string. - */ - toString(): string; -} - -/** - * An enum over the different key types a device can have. - * - * Currently devices have a curve25519 and ed25519 keypair. The keys - * transport format is a base64 encoded string, any unknown key type - * will be left as such a string. - */ -export class DeviceKey { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Convert the `DeviceKey` into a base64 encoded string. - */ - toBase64(): string; - /** - * Get the value associated to the `Curve25519` device key name. - */ - readonly curve25519: Curve25519PublicKey | undefined; - /** - * Get the value associated to the `Ed25519` device key name. - */ - readonly ed25519: Ed25519PublicKey | undefined; - /** - * Get the name of the device key. - */ - readonly name: DeviceKeyName; - /** - * Get the value associated to the `Unknown` device key name. - */ - readonly unknown: string | undefined; -} - -/** - * The basic key algorithms in the specification. - */ -export class DeviceKeyAlgorithm { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Return the device key algorithm as a string. - */ - toString(): string; - /** - * Read the device key algorithm's name. If the name is - * `Unknown`, one may be interested by the `to_string` method to - * read the original name. - */ - readonly name: DeviceKeyAlgorithmName; -} - -/** - * The basic key algorithm names in the specification. - */ -export enum DeviceKeyAlgorithmName { - /** - * The Ed25519 signature algorithm. - */ - Ed25519 = 0, - /** - * The Curve25519 ECDH algorithm. - */ - Curve25519 = 1, - /** - * An unknown device key algorithm. - */ - Unknown = 3, -} - -/** - * A Matrix device key ID. - * - * A key algorithm and a device ID, combined with a ‘:’. - */ -export class DeviceKeyId { - free(): void; - [Symbol.dispose](): void; - /** - * Parse/validate and create a new `DeviceKeyId`. - */ - constructor(id: string); - /** - * Return the device key ID as a string. - */ - toString(): string; - /** - * Returns key algorithm of the device key ID. - */ - readonly algorithm: DeviceKeyAlgorithm; - /** - * Returns device ID of the device key ID. - */ - readonly deviceId: DeviceId; -} - -/** - * An enum over the different key types a device can have. - * - * Currently devices have a curve25519 and ed25519 keypair. The keys - * transport format is a base64 encoded string, any unknown key type - * will be left as such a string. - */ -export enum DeviceKeyName { - /** - * The curve25519 device key. - */ - Curve25519 = 0, - /** - * The ed25519 device key. - */ - Ed25519 = 1, - /** - * An unknown device key. - */ - Unknown = 2, -} - -/** - * Information on E2E device updates. - */ -export class DeviceLists { - free(): void; - [Symbol.dispose](): void; - /** - * Returns true if there are no device list updates. - */ - isEmpty(): boolean; - /** - * Create an empty `DeviceLists`. - * - * `changed` and `left` must be an array of `UserId`. - * - * Items inside `changed` and `left` will be invalidated by this method. Be - * careful not to use the `UserId`s after this method has been called. - */ - constructor(changed?: UserId[] | null, left?: UserId[] | null); - /** - * List of users who have updated their device identity keys or - * who now share an encrypted room with the client since the - * previous sync - */ - readonly changed: UserId[]; - /** - * List of users who no longer share encrypted rooms since the - * previous sync response. - */ - readonly left: UserId[]; -} - -/** - * An unestablished ECIES session. - */ -export class Ecies { - free(): void; - [Symbol.dispose](): void; - /** - * Create a [`EstablishedEcies`] from an initial message encrypted by the - * other side. - */ - establish_inbound_channel(initial_message: string): InboundCreationResult; - /** - * Create an [`EstablishedEcies`] session using the other side's Curve25519 - * public key and an initial plaintext. - * - * After the channel has been established, we can encrypt messages to send - * to the other side. The other side uses the initial message to - * establishes the same channel on its side. - */ - establish_outbound_channel(public_key: Curve25519PublicKey, initial_message: string): OutboundCreationResult; - /** - * Create a new, random, unestablished ECIES session. - * - * This method will use the - * [`MATRIX_QR_CODE_LOGIN`](https://github.com/matrix-org/matrix-spec-proposals/pull/4108) - * info for domain separation when creating the session. - */ - constructor(); - /** - * Get our [`Curve25519PublicKey`]. - * - * This public key needs to be sent to the other side to be able to - * establish an ECIES channel. - */ - public_key(): Curve25519PublicKey; -} - -/** - * An Ed25519 public key, used to verify digital signatures. - */ -export class Ed25519PublicKey { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Serialize an Ed25519 public key to an unpadded base64 - * representation. - */ - toBase64(): string; - /** - * The number of bytes an Ed25519 public key has. - */ - readonly length: number; -} - -/** - * An Ed25519 digital signature, can be used to verify the - * authenticity of a message. - */ -export class Ed25519Signature { - free(): void; - [Symbol.dispose](): void; - /** - * Try to create an Ed25519 signature from an unpadded base64 - * representation. - */ - constructor(signature: string); - /** - * Serialize a Ed25519 signature to an unpadded base64 - * representation. - */ - toBase64(): string; -} - -/** - * An emoji that is used for interactive verification using a short - * auth string. - * - * This will contain a single emoji and description from the list of - * emojis from [the specification]. - * - * [the specification]: https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji - */ -export class Emoji { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The description of the emoji, for example ‘Dog’. - */ - readonly description: string; - /** - * The emoji symbol that represents a part of the short auth - * string, for example: 🐶 - */ - readonly symbol: string; -} - -/** - * An encrypted attachment, usually created from `Attachment.encrypt`. - */ -export class EncryptedAttachment { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new encrypted attachment manually. - * - * It needs encrypted data, stored in an `Uint8Array`, and a - * [media encryption - * information](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/struct.MediaEncryptionInfo.html), - * as a JSON-encoded object. - * - * The media encryption information aren't stored as a string: - * they are parsed, validated and fully deserialized. - * - * See [the specification to learn - * more](https://spec.matrix.org/unstable/client-server-api/#extensions-to-mroommessage-msgtypes). - */ - constructor(encrypted_data: Uint8Array, media_encryption_info: string); - /** - * The actual encrypted data. - * - * **Warning**: It returns a **copy** of the entire encrypted - * data; be nice with your memory. - */ - readonly encryptedData: Uint8Array; - /** - * Check whether the media encryption info has been consumed by - * `Attachment.decrypt` already. - */ - readonly hasMediaEncryptionInfoBeenConsumed: boolean; - /** - * Return the media encryption info as a JSON-encoded object. The - * structure is fully valid. - * - * If the media encryption info have been consumed already, it - * will return `null`. - */ - readonly mediaEncryptionInfo: string | undefined; -} - -/** - * An encryption algorithm to be used to encrypt messages sent to a - * room. - */ -export enum EncryptionAlgorithm { - /** - * Olm version 1 using Curve25519, AES-256, and SHA-256. - */ - OlmV1Curve25519AesSha2 = 0, - /** - * Megolm version 1 using AES-256 and SHA-256. - */ - MegolmV1AesSha2 = 1, - /** - * Unsupported algorithm. - * - * Applications should ignore this value if it is received, and should - * never set it. - */ - Unknown = 2, -} - -/** - * Struct containing information on how a room event was decrypted. - */ -export class EncryptionInfo { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The verification state of the device that sent us the event. - * Note this is the state of the device at the time of - * decryption. It may change in the future if a device gets - * verified or deleted. - * - * # Arguments - * - * * `strict` - whether to enable "strict mode" verification. In non-strict - * mode, unverified users are given no shield, and keys that have been - * forwarded or restored from an insecure backup are given a grey shield - * (both get a red shield in strict mode). - */ - shieldState(strict: boolean): ShieldState; - /** - * The device ID of the user who sent us the keys with which we decrypted - * this event as part of an MSC4268 key bundle, if present. Only applicable - * for room events. - */ - get forwarderDevice(): DeviceId | undefined; - /** - * The device ID of the user who sent us the keys with which we decrypted - * this event as part of an MSC4268 key bundle, if present. Only applicable - * for room events. - */ - set forwarderDevice(value: DeviceId | null | undefined); - /** - * The ID of the user who sent us the keys with which we decrypted this - * event as part of an MSC4268 key bundle, if present. Only applicable for - * room events. - */ - get forwarder(): UserId | undefined; - /** - * The ID of the user who sent us the keys with which we decrypted this - * event as part of an MSC4268 key bundle, if present. Only applicable for - * room events. - */ - set forwarder(value: UserId | null | undefined); - /** - * The signing Ed25519 key that created the megolm key that - * was used to decrypt this session. - */ - get senderClaimedEd25519Key(): string | undefined; - /** - * The signing Ed25519 key that created the megolm key that - * was used to decrypt this session. - */ - set senderClaimedEd25519Key(value: string | null | undefined); - /** - * The base64-encoded public Curve25519 key of the device that created the - * megolm decryption key originally. - */ - senderCurve25519Key: string; - /** - * The device ID of the device that sent us the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - */ - get senderDevice(): DeviceId | undefined; - /** - * The device ID of the device that sent us the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - */ - set senderDevice(value: DeviceId | null | undefined); - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - */ - sender: UserId; -} - -/** - * Settings for an encrypted room. - * - * This determines the algorithm and rotation periods of a group - * session. - */ -export class EncryptionSettings { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `EncryptionSettings` with default values. - */ - constructor(); - /** - * The encryption algorithm that should be used in the room. - */ - algorithm: EncryptionAlgorithm; - /** - * Whether state event encryption is enabled. - */ - encryptStateEvents: boolean; - /** - * The history visibility of the room when the session was - * created. - */ - historyVisibility: HistoryVisibility; - /** - * How many messages should be sent before changing the session. - */ - rotationPeriodMessages: bigint; - /** - * How long the session should be used before changing it, - * expressed in microseconds. - */ - rotationPeriod: bigint; - /** - * Should untrusted devices receive the room key, or should they be - * excluded from the conversation. - */ - sharingStrategy: CollectStrategy; -} - -/** - * An established ECIES session. - * - * This session can be used to encrypt and decrypt messages between the two - * sides of the channel. - */ -export class EstablishedEcies { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Get the [`CheckCode`] which uniquely identifies this - * [`EstablishedEcies`] session. - * - * This check code can be used to verify and confirm that both sides of the - * session are indeed using the same shared secret. - */ - check_code(): CheckCode; - /** - * Decrypt the given message using this [`EstablishedEcies`] session. - */ - decrypt(message: string): string; - /** - * Encrypt the given plaintext using this [`EstablishedEcies`] session. - */ - encrypt(message: string): string; - /** - * Get our [`Curve25519PublicKey`]. - * - * This public key needs to be sent to the other side so that it can - * complete the ECIES channel establishment. - */ - public_key(): Curve25519PublicKey; -} - -/** - * A Matrix [event ID]. - * - * An `EventId` is generated randomly or converted from a string - * slice, and can be converted back into a string as needed. - * - * [event ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids - */ -export class EventId { - free(): void; - [Symbol.dispose](): void; - /** - * Parse/validate and create a new `EventId`. - */ - constructor(id: string); - /** - * Return the event ID as a string. - */ - toString(): string; - /** - * Returns the event's localpart. - */ - readonly localpart: string; - /** - * Returns the server name of the event ID. - */ - readonly serverName: ServerName | undefined; -} - -/** - * Who can see a room's history. - */ -export enum HistoryVisibility { - /** - * Previous events are accessible to newly joined members from - * the point they were invited onwards. - * - * Events stop being accessible when the member's state changes - * to something other than *invite* or *join*. - */ - Invited = 0, - /** - * Previous events are accessible to newly joined members from - * the point they joined the room onwards. - * - * Events stop being accessible when the member's state changes - * to something other than *join*. - */ - Joined = 1, - /** - * Previous events are always accessible to newly joined members. - * - * All events in the room are accessible, even those sent when - * the member was not a part of the room. - */ - Shared = 2, - /** - * All events while this is the `HistoryVisibility` value may be - * shared by any participating homeserver with anyone, regardless - * of whether they have ever joined the room. - */ - WorldReadable = 3, -} - -/** - * Struct holding the two public identity keys of an account. - */ -export class IdentityKeys { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The Curve25519 public key, used for establish shared secrets. - */ - curve25519: Curve25519PublicKey; - /** - * The Ed25519 public key, used for signing. - */ - ed25519: Ed25519PublicKey; -} - -/** - * The result of an inbound ECIES channel establishment. - */ -export class InboundCreationResult { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The established ECIES channel. - */ - channel: EstablishedEcies; - /** - * The plaintext of the initial message. - */ - message: string; -} - -/** - * Inbound group session. - * - * Inbound group sessions are used to exchange room messages between a group of - * participants. Inbound group sessions are used to decrypt the room messages. - */ -export class InboundGroupSession { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Has the session been imported from a file or server-side backup? As - * opposed to being directly received as an `m.room_key` event. - */ - hasBeenImported(): boolean; - /** - * The room where this session is used in. - */ - readonly roomId: RoomId; - /** - * The Curve25519 key of the sender of this session, as a - * [Curve25519PublicKey]. - */ - readonly senderKey: Curve25519PublicKey; - /** - * Returns the unique identifier for this session. - */ - readonly sessionId: string; -} - -/** - * Represents an invalid to-device event that was ignored (because it is - * missing some mandatory fields, for example). - */ -export class InvalidToDeviceEvent { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The original message as received from sync, encoded as JSON. - */ - readonly rawEvent: string; - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.Invalid} for this type. - */ - readonly type: ProcessedToDeviceEventType; -} - -/** - * A request that will back up a batch of room keys to the server - * ([specification]). - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3room_keyskeys - */ -export class KeysBackupRequest { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `KeysBackupRequest`. - */ - constructor(id: string, body: string, version: string); - /** - * A JSON-encoded object containing the rest of the payload: `rooms`. - * - * It represents the body of the HTTP request. - */ - readonly body: string; - /** - * The request ID. - */ - readonly id: string; - /** - * The backup version that these room keys should be part of. - */ - readonly version: string; - /** - * Get its request type. - */ - readonly type: RequestType; -} - -/** - * Data for a request to the `/keys/claim` API endpoint - * ([specification]). - * - * Claims one-time keys that can be used to establish 1-to-1 E2EE - * sessions. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysclaim - */ -export class KeysClaimRequest { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `KeysClaimRequest`. - */ - constructor(id: string, body: string); - /** - * A JSON-encoded object containing the rest of the payload: `timeout`, - * `one_time_keys`. - * - * It represents the body of the HTTP request. - */ - readonly body: string; - /** - * The request ID. - */ - readonly id: string; - /** - * Get its request type. - */ - readonly type: RequestType; -} - -/** - * Data for a request to the `/keys/query` API endpoint - * ([specification]). - * - * Returns the current devices and identity keys for the given users. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysquery - */ -export class KeysQueryRequest { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `KeysQueryRequest`. - */ - constructor(id: string, body: string); - /** - * A JSON-encoded object containing the rest of the payload: `timeout`, - * `device_keys`, `token`. - * - * It represents the body of the HTTP request. - */ - readonly body: string; - /** - * The request ID. - */ - readonly id: string; - /** - * Get its request type. - */ - readonly type: RequestType; -} - -/** - * Data for a request to the `/keys/upload` API endpoint - * ([specification]). - * - * Publishes end-to-end encryption keys for the device. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysupload - */ -export class KeysUploadRequest { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `KeysUploadRequest`. - */ - constructor(id: string, body: string); - /** - * A JSON-encoded object containing the rest of the payload: `device_keys`, - * `one_time_keys`, `fallback_keys`. - * - * It represents the body of the HTTP request. - */ - readonly body: string; - /** - * The request ID. - */ - readonly id: string; - /** - * Get its request type. - */ - readonly type: RequestType; -} - -/** - * The local trust state of a device. - */ -export enum LocalTrust { - /** - * The device has been verified and is trusted. - */ - Verified = 0, - /** - * The device been blacklisted from communicating. - */ - BlackListed = 1, - /** - * The trust state of the device is being ignored. - */ - Ignored = 2, - /** - * The trust state is unset. - */ - Unset = 3, -} - -/** - * Logger level. - */ -export enum LoggerLevel { - /** - * `TRACE` level. - * - * Designate very low priority, often extremely verbose, - * information. - */ - Trace = 0, - /** - * `DEBUG` level. - * - * Designate lower priority information. - */ - Debug = 1, - /** - * `INFO` level. - * - * Designate useful information. - */ - Info = 2, - /** - * `WARN` level. - * - * Designate hazardous situations. - */ - Warn = 3, - /** - * `ERROR` level. - * - * Designate very serious errors. - */ - Error = 4, -} - -/** - * Represents a signature that is either valid _or_ that could not be - * decoded. - */ -export class MaybeSignature { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Check whether the signature could not be successfully decoded. - */ - isInvalid(): boolean; - /** - * Check whether the signature has been successfully decoded. - */ - isValid(): boolean; - /** - * The base64 encoded string that is claimed to contain a - * signature but could not be decoded, if any. - */ - readonly invalidSignatureSource: string | undefined; - /** - * The signature, if successfully decoded. - */ - readonly signature: Signature | undefined; -} - -/** - * Js Decryption error with code. - */ -export class MegolmDecryptionError { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Creates generic error with description - */ - static unable_to_decrypt(desc: string): MegolmDecryptionError; - /** - * Description code for the error. See `DecryptionErrorCode` - */ - readonly code: DecryptionErrorCode; - /** - * detailed description - */ - readonly description: string; - /** - * Textual description of the withheld code, if any. - * - * Example: "The sender has disabled encrypting to unverified devices." - * - * `undefined` if we have not received a withheld code for the megolm - * session. - */ - readonly maybe_withheld: string | undefined; - /** - * The withheld code, if any. - * - * Example: "m.unverified" - * - * `undefined` if we have not received a withheld code for the megolm - * session. - */ - readonly withheldCode: string | undefined; -} - -/** - * The public part of the backup key. - */ -export class MegolmV1BackupKey { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Get the full name of the backup algorithm this backup key supports. - */ - readonly algorithm: string; - /** - * The actual base64 encoded public key. - */ - readonly publicKeyBase64: string; -} - -/** - * Migration routines - * - * The public methods are exposed as static methods on this class, for - * namespacing and to enable easier mocking in unit tests. - */ -export class Migration { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Import the base dataset from a libolm-based setup to a vodozemac-based - * setup stored in IndexedDB. - * - * Populates the user credentials, Olm account, backup data, etc. This is - * the first step in the migration process. Once this base data is - * imported, further data can be imported with {@link - * migrateOlmSessions}, {@link migrateMegolmSessions}, and TODO room - * settings. - * - * # Arguments - * - * * `data` - The data to be migrated - * * `pickle_key` - The libolm pickle key that was used to pickle the olm - * account objects. - * * `store_handle` - A connection to the CryptoStore which will be used to - * store the vodozemac data. - * * `logger` - An optional logger instance to use for writing log messages - * during the migration operation. An instance of `JsLogger`. - */ - static migrateBaseData(data: BaseMigrationData, pickle_key: Uint8Array, store_handle: StoreHandle, logger?: JsLogger): Promise; - /** - * Migrate Megolm sessions of a libolm-based setup to a vodozemac-based - * setup stored in an indexedDB crypto store. - * - * Before this method can be used, {@link migrateBaseData} must be used to - * import the base data into the crypto store. - * - * This method should be called a number of times, with separate batches of - * `sessions`. If a progress display is given, it can be updated after - * each batch is successfully imported. - * - * # Arguments - * - * * `sessions` - An `Array` of {@link PickledInboundGroupSession}s to - * import. Items inside `sessions` will be invalidated by this method. - * * `pickle_key` - The libolm pickle key that was used to pickle the - * megolm session objects. - * * `store_handle` - A connection to the CryptoStore which will be used to - * store the vodozemac data. - * * `logger` - An optional logger instance to use for writing log messages - * during the migration operation. An instance of `JsLogger`. - */ - static migrateMegolmSessions(sessions: PickledInboundGroupSession[], pickle_key: Uint8Array, store_handle: StoreHandle, logger?: JsLogger): Promise; - /** - * Migrate Olm sessions of a libolm-based setup to a vodozemac-based setup - * stored in an indexedDB crypto store. - * - * Before this method can be used, {@link migrateBaseData} must be used to - * import the base data into the crypto store. - * - * This method should be called a number of times, with separate batches of - * `sessions`. If a progress display is given, it can be updated after - * each batch is successfully imported. - * - * # Arguments - * - * * `sessions` - An `Array` of {@link PickledSession}s to import. Items - * inside `sessions` will be invalidated by this method. - * * `pickle_key` - The libolm pickle key that was used to pickle the olm - * session objects. - * * `store_handle` - A connection to the CryptoStore which will be used to - * store the vodozemac data. - * * `logger` - An optional logger instance to use for writing log messages - * during the migration operation. An instance of `JsLogger`. - */ - static migrateOlmSessions(sessions: PickledSession[], pickle_key: Uint8Array, store_handle: StoreHandle, logger?: JsLogger): Promise; -} - -/** - * Intent-specific data in the case the QR code adheres to - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4108 MSC4108} of the QR code - * data format. - */ -export class Msc4108IntentData { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Get the URL of the rendezvous server which will be used to exchange - * messages between the two devices. - */ - rendezvousUrl: string; - /** - * Get the server name of the homeserver which the new device will be - * logged in to. - * - * This will be only available if the existing device has generated the QR - * code and the new device is the one scanning the QR code. - */ - get serverName(): string | undefined; - /** - * Get the server name of the homeserver which the new device will be - * logged in to. - * - * This will be only available if the existing device has generated the QR - * code and the new device is the one scanning the QR code. - */ - set serverName(value: string | null | undefined); -} - -/** - * Intent-specific data in the case the QR code adheres to - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388} of the QR code - * data format. - */ -export class Msc4388IntentData { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The base URL of the homeserver that the device generating the QR is - * using. - */ - baseUrl: string; - /** - * The ID of the rendezvous session, can be used to exchange messages with - * the other device. - */ - rendezvousId: string; -} - -/** - * State machine implementation of the Olm/Megolm encryption protocol - * used for Matrix end to end encryption. - */ -export class OlmMachine { - free(): void; - [Symbol.dispose](): void; - /** - * Encrypt a batch of room keys and return a request that needs to be sent - * out to backup the room keys. - * - * Returns an optional {@link KeysBackupRequest}. - */ - backupRoomKeys(): Promise; - /** - * Create a new cross signing identity and get the upload request - * to push the new public keys to the server. - * - * Warning: This will delete any existing cross signing keys that - * might exist on the server and thus will reset the trust - * between all the devices. - * - * Uploading these keys will require user interactive auth. - * - * # Arguments - * - * * `reset`, whether the method should create a new identity or use the - * existing one during the request. If set to true, the request will - * attempt to upload a new identity. If set to false, the request will - * attempt to upload the existing identity. Since the uploading process - * requires user interactive authentication, which involves sending out - * the same request multiple times, setting this argument to false - * enables you to reuse the same request. - * - * Returns a {@link CrossSigningBootstrapRequests}. - */ - bootstrapCrossSigning(reset: boolean): Promise; - /** - * Assemble, and encrypt, a room key bundle for sharing encrypted history, - * as per {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268}. - * - * Returns `undefined` if there are no keys to share in the given room, - * otherwise an {@link EncryptedAttachment}. - * - * The data should be uploaded to the media server, and the details then - * passed to {@link shareRoomKeyBundleData}. - * - * @experimental - */ - buildRoomKeyBundle(room_id: RoomId): Promise; - /** - * Store the fact that we are no longer waiting for a key bundle in the - * given room. - * - * The counterpart to {@link storeRoomPendingKeyBundle}. Should be called - * when, for example, we leave a room, or have successfully imported a - * bundle. - * - * @experimental - */ - clearRoomPendingKeyBundle(room_id: RoomId): Promise; - /** - * Shut down the `OlmMachine`. - * - * The `OlmMachine` cannot be used after this method has been called. - * - * All associated resources will be closed too, like IndexedDB - * connections. - */ - close(): void; - /** - * Get the status of the private cross signing keys. - * - * This can be used to check which private cross signing keys we - * have stored locally. - */ - crossSigningStatus(): Promise; - /** - * Try to decrypt a reader into a list of exported room keys. - * - * `encrypted_exported_room_keys` is the result from - * `encrypt_exported_room_keys`. `passphrase` is the passphrase that was - * used when calling `encrypt_exported_room_keys`. - */ - static decryptExportedRoomKeys(encrypted_exported_room_keys: string, passphrase: string): string; - /** - * Decrypt an event from a room timeline. - * - * # Arguments - * - * * `event`, the event that should be decrypted. - * * `room_id`, the ID of the room where the event was sent to. - * - * # Returns - * - * A `Promise` which resolves to a {@link DecryptedRoomEvent} instance, or - * rejects with a {@link MegolmDecryptionError} instance. - */ - decryptRoomEvent(event: string, room_id: RoomId, decryption_settings: DecryptionSettings): Promise; - /** - * Manage dehydrated devices - */ - dehydratedDevices(): DehydratedDevices; - /** - * Delete all secrets with the given secret name from the inbox. - * - * Should be called after handling the secrets with - * `get_secrets_from_inbox`. - * - * # Arguments - * - * * `secret_name` - The name of the secret to delete. - */ - deleteSecretsFromInbox(secret_name: string): Promise; - /** - * Disable and reset our backup state. - * - * This will remove any pending backup request, remove the backup key and - * reset the backup state of each room key we have. - * - * Returns `Promise`. - */ - disableBackup(): Promise; - /** - * Activate the given backup key to be used with the given backup version. - * - * **Warning**: The caller needs to make sure that the given `BackupKey` is - * trusted, otherwise we might be encrypting room keys that a malicious - * party could decrypt. - * - * The {@link verifyBackup} method can be used to do so. - * - * Returns `Promise`. - */ - enableBackupV1(public_key_base_64: string, version: string): Promise; - /** - * Encrypt the list of exported room keys using the given passphrase. - * - * `exported_room_keys` is a list of sessions that should be encrypted - * (it's generally returned by `export_room_keys`). `passphrase` is the - * passphrase that will be used to encrypt the exported room keys. And - * `rounds` is the number of rounds that should be used for the key - * derivation when the passphrase gets turned into an AES key. More rounds - * are increasingly computationnally intensive and as such help against - * brute-force attacks. Should be at least `10_000`, while values in the - * `100_000` ranges should be preferred. - */ - static encryptExportedRoomKeys(exported_room_keys: string, passphrase: string, rounds: number): string; - /** - * Encrypt a room message for the given room. - * - * **Note**: A room key needs to be shared with the group of users that are - * members in the given room. If this is not done this method will panic. - * - * The usual flow to encrypt an event using this state machine is as - * follows: - * - * 1. Get the one-time key claim request to establish 1:1 Olm sessions for - * the room members of the room we wish to participate in. This is done - * using the [`get_missing_sessions()`](Self::get_missing_sessions) - * method. This method call should be locked per call. - * - * 2. Share a room key with all the room members using the - * [`share_room_key()`](Self::share_room_key). This method call should - * be locked per room. - * - * 3. Encrypt the event using this method. - * - * 4. Send the encrypted event to the server. - * - * After the room key is shared steps 1 and 2 will become noops, unless - * there's some changes in the room membership or in the list of devices a - * member has. - * - * - * `room_id` is the ID of the room for which the message should - * be encrypted. `event_type` is the type of the event. `content` - * is the plaintext content of the message that should be - * encrypted. - * - * # Panics - * - * Panics if a group session for the given room wasn't shared - * beforehand. - */ - encryptRoomEvent(room_id: RoomId, event_type: string, content: string): Promise; - /** - * Encrypt a state event for the given room. - * - * This method encrypts a state event for the specified room, using the - * current group session. The event will be encrypted so that only - * authorized room members can decrypt it. - * - * **Note**: A room key must have been shared with the group of users in - * the room before calling this method. If not, this method will panic. - * - * The usual flow to encrypt a state event using this machine is identical - * to that outlined for [`OlmMachine::encrypt_room_event`]. - * - * # Arguments - * - * * `room_id` - The ID of the room for which the state event should be - * encrypted. - * * `event_type` - The type of the state event. - * * `state_key` - The state key for the event. - * * `content` - The plaintext JSON content of the event to encrypt. - * - * # Returns - * - * A `Promise` resolving to a JSON string containing the encrypted event. - * - * # Panics - * - * Panics if a group session for the given room was not previously shared. - */ - encryptStateEvent(room_id: RoomId, event_type: string, state_key: string, content: string): Promise; - /** - * Export all the private cross signing keys we have. - * - * The export will contain the seeds for the ed25519 keys as - * unpadded base64 encoded strings. - * - * Returns `undefined` if we don’t have any private cross signing keys; - * otherwise returns a `CrossSigningKeyExport`. - */ - exportCrossSigningKeys(): Promise; - /** - * Export the keys that match the given predicate. - * - * `predicate` is a closure that will be called for every known - * `InboundGroupSession`, which represents a room key. If the closure - * returns `true`, the `InboundGroupSession` will be included in the - * export; otherwise it won't. - * - * Returns a Promise containing a Result containing a String which is a - * JSON-encoded array of ExportedRoomKey objects. - */ - exportRoomKeys(predicate: (session: InboundGroupSession) => boolean): Promise; - /** - * Export all the secrets we have in the store into a {@link - * SecretsBundle}. - * - * This method will export all the private cross-signing keys and, if - * available, the private part of a backup key and its accompanying - * version. - * - * The method will fail if we don't have all three private cross-signing - * keys available. - * - * **Warning**: Only export this and share it with a trusted recipient, - * i.e. if an existing device is sharing this with a new device. - */ - exportSecretsBundle(): Promise>; - /** - * Get a list of all rooms where we are waiting for a key bundle. - * - * @see getPendingKeyBundleDetailsForRoom - * - * @experimental - */ - getAllRoomsPendingKeyBundles(): Promise>; - /** - * Get the backup keys we have saved in our store. - * Returns a `Promise` for {@link BackupKeys}. - */ - getBackupKeys(): Promise; - /** - * Get a specific device of a user. - * - * ### Parameters - * - * * `user_id` - The unique ID of the user that the device belongs to. - * - * * `device_id` - The unique ID of the device. - * - * * `timeout_secs` - The amount of time we should wait for a `/keys/query` - * response before returning if the user's device list has been marked as - * stale. **Note**, this assumes that the requests from {@link - * OlmMachine.outgoingRequests} are being processed and sent out. - * - * If unset, we will return immediately even if the device list is stale. - * - * ### Returns - * - * If the device is known, a {@link Device}. Otherwise, `undefined`. - */ - getDevice(user_id: UserId, device_id: DeviceId, timeout_secs?: number | null): Promise; - /** - * Get the cross signing user identity of a user. - * - * Returns a promise for an {@link OwnUserIdentity}, a - * {@link OtherUserIdentity}, or `undefined`. - */ - getIdentity(user_id: UserId): Promise; - /** - * Get the a key claiming request for the user/device pairs that - * we are missing Olm sessions for. - * - * Returns `null` if no key claiming request needs to be sent - * out, otherwise it returns a `KeysClaimRequest` object. - * - * Sessions need to be established between devices so group - * sessions for a room can be shared with them. - * - * This should be called every time a group session needs to be - * shared as well as between sync calls. After a sync some - * devices may request room keys without us having a valid Olm - * session with them, making it impossible to server the room key - * request, thus it’s necessary to check for missing sessions - * between sync as well. - * - * Note: Care should be taken that only one such request at a - * time is in flight, e.g. using a lock. - * - * The response of a successful key claiming requests needs to be - * passed to the `OlmMachine` with the `mark_request_as_sent`. - * - * `users` represents the list of users that we should check if - * we lack a session with one of their devices. This can be an - * empty iterator when calling this method between sync requests. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - */ - getMissingSessions(users: UserId[]): Promise; - /** - * See if we have recently accepted an invitation to the given room. - * - * If we have accepted an invite to a room without finding an - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268} - * key bundle, we should accept a key bundle once one arrives. - * - * The data returned here is populated by the application, via {@link - * storeRoomPendingKeyBundle}. - * - * @experimental - */ - getPendingKeyBundleDetailsForRoom(room_id: RoomId): Promise; - /** - * See if we have received an {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268} - * room key bundle for the given room from the given user. - * - * Before calling this, the application must make sure that we have an - * up-to-date copy of the inviter's cross-signing keys, so that we can - * verify the device that sent us the key bundle data message. (For - * now, the easiest way to do that is by calling {@link queryKeysForUsers} - * for the inviter, and making the resultant request.) - * - * Returns either `undefined` if no suitable bundle has been received, - * or an {@link StoredRoomKeyBundleData}, in which case, the bundle - * should be downloaded, and then passed to {@link - * receiveRoomKeyBundle}. - * - * @experimental - */ - getReceivedRoomKeyBundleData(room_id: RoomId, inviter: UserId): Promise; - /** - * Get encryption info for a decrypted timeline event. - * - * This recalculates the `EncryptionInfo` data that is returned by - * `decryptRoomEvent`, based on the current - * verification status of the sender, etc. - * - * Returns an error for an unencrypted event. - * - * # Arguments - * - * * `event` - The event to get information for. - * * `room_id` - The ID of the room where the event was sent to. - * - * # Returns - * - * {@link EncryptionInfo} - */ - getRoomEventEncryptionInfo(event: string, room_id: RoomId): Promise; - /** - * Get the stored room settings, such as the encryption algorithm or - * whether to encrypt only for trusted devices. - * - * These settings can be modified via {@link setRoomSettings}. - * - * # Returns - * - * `Promise` - */ - getRoomSettings(room_id: RoomId): Promise>; - /** - * Get all the secrets with the given secret_name we have currently - * stored. - * The only secret this will currently return is the - * `m.megolm_backup.v1` secret. - * - * Usually you would just register a callback with - * [`register_receive_secret_callback`], but if the client is shut down - * before handling them, this method can be used to retrieve them. - * This method should therefore be called at client startup to retrieve any - * secrets received during the previous session. - * - * The secrets are guaranteed to have been received over a 1-to-1 encrypted - * to_device message from one of the user's own verified devices. - * - * Returns a `Promise` for a `Set` of `String` corresponding to the secret - * values. - * - * If the secret is valid and handled, the secret inbox should be cleared - * by calling `delete_secrets_from_inbox`. - */ - getSecretsFromInbox(secret_name: string): Promise>; - /** - * Get a map holding all the devices of a user. - * - * ### Parameters - * - * * `user_id` - The unique ID of the user that the device belongs to. - * - * * `timeout_secs` - The amount of time we should wait for a `/keys/query` - * response before returning if the user's device list has been marked as - * stale. **Note**, this assumes that the requests from {@link - * OlmMachine.outgoingRequests} are being processed and sent out. - * - * If unset, we will return immediately even if the device list is stale. - * - * ### Returns - * - * A {@link UserDevices} object. - */ - getUserDevices(user_id: UserId, timeout_secs?: number | null): Promise; - /** - * Get a verification object for the given user ID with the given - * flow ID (a to-device request ID if the verification has been - * requested by a to-device request, or a room event ID if the - * verification has been requested by a room event). - * - * It returns a “`Verification` object”, which is either a `Sas` - * or `Qr` object. - */ - getVerification(user_id: UserId, flow_id: string): Sas | Qr | undefined; - /** - * Get a verification request object with the given flow ID. - */ - getVerificationRequest(user_id: UserId, flow_id: string): VerificationRequest | undefined; - /** - * Get all the verification requests of a given user. - */ - getVerificationRequests(user_id: UserId): VerificationRequest[]; - /** - * Get whether we have previously downloaded all message keys for a - * particular room from the key backup. Typically called in advance of - * building a room key bundle. - */ - hasDownloadedAllRoomKeys(room_id: RoomId): Promise; - /** - * Import the given room keys into our store. - * - * # Arguments - * - * * `backed_up_room_keys`: keys that were retrieved from backup and that - * should be added to our store (provided they are better than our - * current versions of those keys). Specifically, it should be a Map from - * {@link RoomId}, to a Map from session ID to a (decrypted) session data - * structure. - * - * * `progress_listener`: an optional callback that takes 3 arguments: - * `progress` (the number of keys that have successfully been imported), - * `total` (the total number of keys), and `failures` (the number of keys - * that failed to import), and returns nothing. - * - * # Returns - * - * A {@link RoomKeyImportResult}. - */ - importBackedUpRoomKeys(backed_up_room_keys: Map>, progress_listener: (progress: bigint, total: bigint, failures: bigint) => void | undefined, backup_version: string): Promise; - /** - * Import our private cross signing keys. - * - * The keys should be provided as unpadded-base64-encoded strings. - * - * Returns a `CrossSigningStatus`. - */ - importCrossSigningKeys(master_key?: string | null, self_signing_key?: string | null, user_signing_key?: string | null): Promise; - /** - * Import the given room keys into our store. - * - * `exported_keys` is a JSON-encoded list of previously exported keys that - * should be imported into our store. If we already have a better - * version of a key, the key will _not_ be imported. - * - * `progress_listener` is a closure that takes 2 `BigInt` arguments: - * `progress` and `total`, and returns nothing. - * - * Returns a {@link RoomKeyImportResult}. - */ - importExportedRoomKeys(exported_room_keys: string, progress_listener: (progress: bigint, total: bigint) => void): Promise; - /** - * Import the given room keys into our store. - * - * Mostly, a deprecated alias for `importExportedRoomKeys`, though the - * return type is different. - * - * Returns a String containing a JSON-encoded object, holding three - * properties: - * * `total_count` (the total number of keys found in the export data). - * * `imported_count` (the number of keys that were imported). - * * `keys` (the keys that were imported; a map from room id to a map of - * the sender key to a list of session ids). - * - * @deprecated Use `importExportedRoomKeys` or `importBackedUpRoomKeys`. - */ - importRoomKeys(exported_room_keys: string, progress_listener: (imported: bigint, total: bigint) => void): Promise; - /** - * Import and persists secrets from a {@link SecretsBundle}. - * - * This method will import all the private cross-signing keys and, if - * available, the private part of a backup key and its accompanying - * version into the store. - * - * **Warning**: Only import this from a trusted source, i.e. if an existing - * device is sharing this with a new device. The imported cross-signing - * keys will create a {@link OwnUserIdentity} and mark it as verified. - * - * The backup key will be persisted in the store and can be enabled using - * the BackupMachine. - * - * The provided `SecretsBundle` is freed by this method; be careful not to - * use it once this method has been called. - */ - importSecretsBundle(bundle: SecretsBundle): Promise; - /** - * Create a new `OlmMachine` backed by an existing store. - * - * # Arguments - * - * * `user_id` - represents the unique ID of the user that owns this - * machine. - * - * * `device_id` - represents the unique ID of the device - * that owns this machine. - * - * * `store_handle` - the connection to the crypto store to be used for - * this machine. - * - * * `logger` - Optional logger to use for all operations on this machine. - * An instance of `JsLogger`. - * - * * `ca_certs_pem` - Optional PEM-formatted string that provides CA - * certificates. These will be used to check X.509 signatures on user - * identities. Any user identity that has a valid signature according to - * the supplied CAs will be considered verified, without any manual - * - * * `raw_x509_signer` - Optional async function for signing some data with - * an X.509 certificate. Used to sign the user's identity so compatible - * clients will recognise this user as verified without manual - * verification taking place. If you supply this you must also supply - * raw_x509_validity. - * - * * `raw_x509_validity` - Optional function returning the validity period - * of the X.509 certificate used for signing, as the number of - * milliseconds since the Unix epoch. If you supply this you must also - * supply raw_x509_signer. - */ - static initFromStore(user_id: UserId, device_id: DeviceId, store_handle: StoreHandle, logger?: JsLogger, ca_certs_pem?: String, raw_x509_signer?: (item: Uint8Array) => Promise<{ signature_bytes: Uint8Array, certificate_chain: string }>, raw_x509_validity?: () => number): Promise; - /** - * Create a new `OlmMachine`. - * - * The created machine will keep the encryption keys either in a IndexedDB - * based store, or in a memory store and once the objects is dropped, - * the keys will be lost. - * - * # Arguments - * - * * `user_id` - represents the unique ID of the user that owns this - * machine. - * - * * `device_id` - represents the unique ID of the device - * that owns this machine. - * - * * `store_name` - The name that should be used to open the IndexedDB - * based database. If this isn't provided, a memory-only store will be - * used. *Note* the memory-only store will lose your E2EE keys when the - * `OlmMachine` gets dropped. - * - * * `store_passphrase` - The passphrase that should be used to encrypt the - * IndexedDB-based store. - * - * * `logger` - Optional logger to use for all operations on this machine. - * An instance of `JsLogger`. - * - * * `ca_certs_pem` - Optional PEM-formatted string that provides CA - * certificates. These will be used to check X.509 signatures on user - * identities. Any user identity that has a valid signature according to - * the supplied CAs will be considered verified, without any manual - * verification taking place. A PEM-formatted string. - * - * * `raw_x509_signer` - Optional async function for signing some data with - * an X.509 certificate. Used to sign the user's identity so compatible - * clients will recognise this user as verified without manual - * verification taking place. If you supply this you must also supply - * raw_x509_validity. - * - * * `raw_x509_validity` - Optional function returning the validity period - * of the X.509 certificate used for signing, as the number of - * milliseconds since the Unix epoch. If you supply this you must also - * supply raw_x509_signer. - */ - static initialize(user_id: UserId, device_id: DeviceId, store_name?: string, store_passphrase?: string, logger?: JsLogger, ca_certs_pem?: String, raw_x509_signer?: (item: Uint8Array) => Promise<{ signature_bytes: Uint8Array, certificate_chain: string }>, raw_x509_validity?: () => number): Promise; - /** - * Invalidate the currently active outbound group session for the - * given room. - * - * Returns true if a session was invalidated, false if there was - * no session to invalidate. - */ - invalidateGroupSession(room_id: RoomId): Promise; - /** - * Are we able to encrypt room keys. - * - * This returns true if we have an active `BackupKey` and backup version - * registered with the state machine. - * - * Returns `Promise`. - */ - isBackupEnabled(): Promise; - /** - * Mark all tracked users as dirty. - * - * All users *whose device lists we are tracking* are flagged as needing a - * key query. Users whose devices we are not tracking are ignored. - */ - markAllTrackedUsersAsDirty(): Promise; - /** - * Mark the request with the given request ID as sent (see - * `outgoing_requests`). - * - * Arguments are: - * - * * `request_id` represents the unique ID of the request that was sent - * out. This is needed to couple the response with the now sent out - * request. - * * `response_type` represents the type of the request that was sent out. - * * `response` represents the response that was received from the server - * after the outgoing request was sent out. - */ - markRequestAsSent(request_id: string, request_type: RequestType, response: string): Promise; - /** - * Constructor will always fail. To create a new `OlmMachine`, please use - * the `initialize` method. - * - * Why this pattern? `initialize` returns a `Promise`. Returning a - * `Promise` from a constructor is not idiomatic in JavaScript. - */ - constructor(); - /** - * Get the outgoing requests that need to be sent out. - * - * This returns a list of values, each of which can be any of: - * * {@link KeysUploadRequest}, - * * {@link KeysQueryRequest}, - * * {@link KeysClaimRequest}, - * * {@link ToDeviceRequest}, - * * {@link SignatureUploadRequest}, - * * {@link RoomMessageRequest}, or - * * {@link KeysBackupRequest}. - * - * Those requests need to be sent out to the server and the - * responses need to be passed back to the state machine - * using {@link OlmMachine.markRequestAsSent}. - */ - outgoingRequests(): Promise; - /** - * Push a secret to all of our other verified devices - * - * This function assumes that we already have Olm sessions with the other - * devices. This can be done by calling {@link - * OlmMachine.getMissingSessions}. - * - * # Arguments - * - * * `secret_name` - The name of the secret to push. - */ - pushSecretToVerifiedDevices(name: string): Promise; - /** - * Generate an "out-of-band" key query request for the given set of users. - * - * This can be useful if we need the results from `getIdentity` or - * `getUserDevices` to be as up-to-date as possible. - * - * Returns a `KeysQueryRequest` object. The response of the request should - * be passed to the `OlmMachine` with the `mark_request_as_sent`. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - */ - queryKeysForUsers(users: UserId[]): KeysQueryRequest; - /** - * Import the message keys from a downloaded room key bundle. - * - * After {@link getReceivedRoomKeyBundleData} returns a truthy result, the - * media file should be downloaded and then passed into this method to - * actually do the import. - * - * @experimental - */ - receiveRoomKeyBundle(bundle_data: StoredRoomKeyBundleData, encrypted_bundle: Uint8Array): Promise; - /** - * Handle to-device events and one-time key counts from a sync - * response. - * - * This will decrypt and handle to-device events returning the - * decrypted versions of them. - * - * To decrypt an event from the room timeline call - * `decrypt_room_event`. - * - * # Arguments - * - * * `to_device_events`: the JSON-encoded to-device evens from the `/sync` - * response - * * `changed_devices`: the mapping of changed and left devices, from the - * `/sync` response - * * `one_time_keys_counts`: The number of one-time keys on the server, - * from the `/sync` response. A `Map` from string (encryption algorithm) - * to number (number of keys). Following the sync v2 semantics, a missing - * entry for an algorithm means that there are *zero* keys of that type - * on the server. If the caller has no information about the key counts - * (for example, because it is processing only part of a sync response), - * it should use {@link receiveSyncChangesMsc4186} instead. - * * `unused_fallback_keys`: Optionally, a `Set` of unused fallback keys on - * the server, from the `/sync` response. If this is set, it is used to - * determine if new fallback keys should be uploaded. - * * `decryption_settings`: Optionally, the settings to use when decrypting - * to-device events. If not set, to-device events will be decrypted with - * a {@link TrustRequirement} of `Untrusted`. - * - * # Returns - * - * A list of values, each of which can be any of: - * * {@link DecryptedToDeviceEvent} - * * {@link PlainTextToDeviceEvent} - * * {@link UTDToDeviceEvent} - * * {@link InvalidToDeviceEvent} - */ - receiveSyncChanges(to_device_events: string, changed_devices: DeviceLists, one_time_keys_counts: Map, unused_fallback_keys?: Set, decryption_settings?: DecryptionSettings): Promise; - /** - * Handle the changes to the end-to-end encryption state we received from - * a [MSC4186](https://github.com/matrix-org/matrix-spec-proposals/pull/4186) - * (simplified sliding sync) response. - * - * This behaves exactly like {@link receiveSyncChanges}, except for the - * handling of `one_time_keys_counts`: under MSC4186 semantics, a missing - * entry for an algorithm means that the number of keys on the server is - * *unchanged*, rather than zero. - * - * This is therefore also the method to use when the caller has no - * information about the one-time key counts, for example because it is - * processing only the to-device events or the device list changes from a - * sync response. - * - * # Arguments - * - * * `to_device_events`: the JSON-encoded to-device events from the sync - * response - * * `changed_devices`: the mapping of changed and left devices, from the - * sync response - * * `one_time_keys_counts`: The number of one-time keys on the server, - * from the sync response. A `Map` from string (encryption algorithm) to - * number (number of keys). A missing entry means "unchanged". - * * `unused_fallback_keys`: Optionally, a `Set` of unused fallback keys on - * the server, from the sync response. If this is set, it is used to - * determine if new fallback keys should be uploaded. - * * `decryption_settings`: Optionally, the settings to use when decrypting - * to-device events. If not set, to-device events will be decrypted with - * a {@link TrustRequirement} of `Untrusted`. - * - * # Returns - * - * A list of values, each of which can be any of: - * * {@link DecryptedToDeviceEvent} - * * {@link PlainTextToDeviceEvent} - * * {@link UTDToDeviceEvent} - * * {@link InvalidToDeviceEvent} - */ - receiveSyncChangesMsc4186(to_device_events: string, changed_devices: DeviceLists, one_time_keys_counts: Map, unused_fallback_keys?: Set, decryption_settings?: DecryptionSettings): Promise; - /** - * Receive a verification event. - * - * This method can be used to pass verification events that are happening - * in rooms to the `OlmMachine`. The event should be in the decrypted form. - */ - receiveVerificationEvent(event: string, room_id: RoomId): Promise; - /** - * Register a callback which will be called whenever there is an update to - * a device. - * - * `callback` should be a function that takes a single argument (an array - * of user IDs as strings) and returns a Promise. - */ - registerDevicesUpdatedCallback(callback: (userIds: string[]) => Promise): void; - /** - * Register a callback which will be called whenever a secret - * (`m.secret.send`) is received. - * - * The only secret this will currently broadcast is the - * `m.megolm_backup.v1` (the cross signing secrets are handled internally). - * - * To request a secret from other devices, a client sends an - * `m.secret.request` device event with `action` set to `request` and - * `name` set to the identifier of the secret. A device that wishes to - * share the secret will reply with an `m.secret.send` event, encrypted - * using olm. - * - * The secrets are guaranteed to have been received over a 1-to-1 encrypted - * to_device message from a one of the user's own verified devices. - * - * See https://matrix-org.github.io/matrix-rust-sdk/matrix_sdk_crypto/store/struct.Store.html#method.secrets_stream for more information. - * - * `callback` should be a function that takes 2 arguments: the secret name - * (string) and value (string). - * - * **Note**: if the secret is valid and handled on the javascript side, the - * secret inbox should be cleared by calling - * `delete_secrets_from_inbox`. - */ - registerReceiveSecretCallback(callback: (name: string, value: string) => Promise): void; - /** - * Register a callback which will be called whenever there is an update to - * a room key. - * - * `callback` should be a function that takes a single argument (an array - * of {@link RoomKeyInfo}) and returns a Promise. - */ - registerRoomKeyUpdatedCallback(callback: (info: RoomKeyInfo[]) => Promise): void; - /** - * Register a callback which will be called whenever we receive a - * notification that some room keys have been withheld. - * - * `callback` should be a function that takes a single argument (an array - * of {@link RoomKeyWithheldInfo}) and returns a Promise. - */ - registerRoomKeysWithheldCallback(callback: (info: RoomKeyWithheldInfo[]) => Promise): void; - /** - * Register a callback which will be called whenever there is an update to - * a user identity. - * - * `callback` should be a function that takes a single argument (a {@link - * UserId}) and returns a Promise. - */ - registerUserIdentityUpdatedCallback(callback: (id: UserId) => Promise): void; - /** - * Request missing local secrets from our other trusted devices. - * - * "Local secrets" refers to secrets which can be shared between trusted - * devices, such as private cross-signing keys, and the megolm backup - * decryption key. - * - * This method will cause the sdk to generated outgoing secret requests - * (`m.secret.request`) to get the missing secrets. These requests will - * then be returned by a future call to {@link - * OlmMachine#outgoingRequests}. - * - * # Returns - * - * A `Promise` for a `bool` result, which will be true if secrets were - * missing, and a request was generated. - */ - requestMissingSecretsIfNeeded(): Promise; - /** - * Get the number of backed up room keys and the total number of room keys. - * Returns a {@link RoomKeyCounts}. - */ - roomKeyCounts(): Promise; - /** - * Store the backup decryption key in the crypto store. - * - * This is useful if the client wants to support gossiping of the backup - * key. - * - * Returns `Promise`. - */ - saveBackupDecryptionKey(decryption_key: BackupDecryptionKey, version: string): Promise; - /** - * Record that we have downloaded all message keys for the given room. - */ - setHasDownloadedAllRoomKeys(room_id: RoomId): Promise; - /** - * Store encryption settings for the given room. - * - * This method checks if the new settings are "safe" -- ie, that they do - * not represent a downgrade in encryption security from any previous - * settings. Attempts to downgrade security will result in an error. - * - * If the settings are valid, they will be persisted to the crypto store. - * These settings are not used directly by this library, but the saved - * settings can be retrieved via {@link getRoomSettings}. - */ - setRoomSettings(room_id: RoomId, room_settings: RoomSettings): Promise; - /** - * Get to-device requests to share a room key with users in a room. - * - * `room_id` is the room ID. `users` is an array of `UserId` - * objects. `encryption_settings` are an `EncryptionSettings` - * object. - * - * Note: Care should be taken that only one such request at a - * time is in flight for the same room, e.g. using a lock. - * - * Returns an array of `ToDeviceRequest`s. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - */ - shareRoomKey(room_id: RoomId, users: UserId[], encryption_settings: EncryptionSettings): Promise; - /** - * Collect the devices belonging to the given user, and send the details - * of a room key bundle to those devices. - * - * Returns a list of to-device requests which must be sent. - * - * @experimental - */ - shareRoomKeyBundleData(user: UserId, room: RoomId, url: string, media_encryption_info: string | null | undefined, sharing_strategy: CollectStrategy): Promise; - /** - * Sign the given message using our device key and if available - * cross-signing master key. - */ - sign(message: string): Promise; - /** - * Store the fact that we have accepted an invitation to the given room, so - * should accept a key bundle if one arrives soon. - * - * This should be called whenever we join a room following an invite, but - * it has no effect other than that the room will be returned by a future - * call to {@link getPendingKeyBundleDetailsForRoom}. - * - * @experimental - */ - storeRoomPendingKeyBundle(room_id: RoomId, inviter: UserId): Promise; - /** - * Get the list of users whose devices we are currently tracking. - * - * A user can be marked for tracking using the - * [`update_tracked_users`](#method.update_tracked_users) method. - * - * Returns a `Set`. - */ - trackedUsers(): Promise>; - /** - * Update the list of tracked users. - * - * The OlmMachine maintains a list of users whose devices we are keeping - * track of: these are known as "tracked users". These must be users - * that we share a room with, so that the server sends us updates for - * their device lists. - * - * # Arguments - * - * * `users` - An array of user ids that should be added to the list of - * tracked users - * - * Any users that hadn't been seen before will be flagged for a key query - * immediately, and whenever `receive_sync_changes` receives a - * "changed" notification for that user in the future. - * - * Users that were already in the list are unaffected. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - */ - updateTrackedUsers(users: UserId[]): Promise; - /** - * Check if the given backup has been verified by us or by another of our - * devices that we trust. - * - * The `backup_info` should be a Javascript object with the following - * format: - * - * ```json - * { - * "algorithm": "m.megolm_backup.v1.curve25519-aes-sha2", - * "auth_data": { - * "public_key":"XjhWTCjW7l59pbfx9tlCBQolfnIQWARoKOzjTOPSlWM", - * "signatures": {} - * } - * } - * ``` - * - * Returns a {@link SignatureVerification} object. - */ - verifyBackup(backup_info: any): Promise; - /** - * The time, in milliseconds since the unix epoch, at which the `Account` - * backing this `OlmMachine` was created. - * - * An `Account` is created when an `OlmMachine` is first instantiated - * against a given `Store`, at which point it creates identity keys etc. - * This method returns the timestamp, according to the local clock, at - * which that happened. - */ - readonly deviceCreationTimeMs: number; - /** - * The unique device ID that identifies this `OlmMachine`. - */ - readonly deviceId: DeviceId; - /** - * Get the display name of our own device. - */ - readonly displayName: Promise; - /** - * Get the public parts of our Olm identity keys. - */ - readonly identityKeys: IdentityKeys; - /** - * Whether room key forwarding is enabled. - * - * If room key forwarding is enabled, we will automatically reply to - * incoming `m.room_key_request` messages from verified devices by - * forwarding the requested key (if we have it). - */ - roomKeyForwardingEnabled: boolean; - /** - * Whether automatic transmission of room key requests is enabled. - * - * Room key requests allow the device to request room keys that it might - * have missed in the original share using `m.room_key_request` - * events. - */ - roomKeyRequestsEnabled: boolean; - /** - * The unique user ID that owns this `OlmMachine` instance. - */ - readonly userId: UserId; -} - -/** - * Struct representing a cross signing identity of a user. - * - * This is the user identity of a user that isn't our own. Other users will - * only contain a master key and a self signing key, meaning that only device - * signatures can be checked with this identity. - * - * This struct wraps a read-only version of the struct and allows verifications - * to be requested to verify our own device with the user identity. - */ -export class OtherUserIdentity { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Was this identity verified since initial observation and is not anymore? - * - * Such a violation should be reported to the local user by the - * application, and resolved by - * - * - Verifying the new identity with {@link requestVerification}, or: - * - Withdrawing the verification requirement with {@link - * withdrawVerification}. - */ - hasVerificationViolation(): boolean; - /** - * Has the identity changed in a way that requires approval from the user? - * - * A user identity needs approval if it changed after the crypto machine - * has already observed ("pinned") a different identity for that user, - * unless it is an explicitly verified identity (using for example - * interactive verification). - * - * This situation can be resolved by: - * - * - Verifying the new identity with {@link requestVerification}, or: - * - Updating the pin to the new identity with {@link pinCurrentMasterKey}. - */ - identityNeedsUserApproval(): boolean; - /** - * Is this user identity verified? - */ - isVerified(): boolean; - /** - * Pin the current identity (public part of the master signing key). - */ - pinCurrentMasterKey(): Promise; - /** - * Create a `VerificationRequest` object after the verification - * request content has been sent out. - */ - requestVerification(room_id: RoomId, request_event_id: EventId, methods?: VerificationMethod[]): VerificationRequest; - /** - * Send a verification request to the given user. - * - * The returned content needs to be sent out into a DM room with the given - * user. - * - * After the content has been sent out a VerificationRequest can be started - * with the `request_verification` method. - */ - verificationRequestContent(methods?: VerificationMethod[]): string; - /** - * Manually verify this user. - * - * This method will attempt to sign the user identity using our private - * cross signing key. - * - * This method fails if we don't have the private part of our user-signing - * key. - * - * Returns a request that needs to be sent out for the user to be marked as - * verified. - */ - verify(): Promise; - /** - * True if we verified this identity (with any own identity, at any - * point). - * - * To set this latch back to false, call {@link withdrawVerification}. - */ - wasPreviouslyVerified(): boolean; - /** - * Remove the requirement for this identity to be verified. - * - * If an identity was previously verified and is not anymore it will be - * reported to the user. In order to remove this notice users have to - * verify again or to withdraw the verification requirement. - */ - withdrawVerification(): Promise; - /** - * Get the master key of the identity. - */ - readonly masterKey: string; - /** - * Get the self-signing key of the identity. - */ - readonly selfSigningKey: string; -} - -/** - * The result of an outbound ECIES channel establishment. - */ -export class OutboundCreationResult { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The established ECIES channel. - */ - channel: EstablishedEcies; - /** - * The initial encrypted message. - */ - initial_message: string; -} - -/** - * Struct representing a cross signing identity of a user. - * - * This is the user identity of a user that is our own. - */ -export class OwnUserIdentity { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Was this identity verified since initial observation and is not anymore? - * - * Such a violation should be reported to the local user by the - * application, and resolved by - * - * - Verifying the new identity with {@link requestVerification}, or: - * - Withdrawing the verification requirement with {@link - * withdrawVerification}. - */ - hasVerificationViolation(): boolean; - /** - * Is this user identity verified? - */ - isVerified(): boolean; - /** - * Send a verification request to our other devices. - */ - requestVerification(methods?: VerificationMethod[]): Promise<[VerificationRequest, OutgoingVerificationRequest]>; - /** - * Does our user identity trust our own device, i.e. have we signed our own - * device keys with our self-signing key? - */ - trustsOurOwnDevice(): Promise; - /** - * Mark our user identity as verified. - * - * This will mark the identity locally as verified and sign it with our own - * device. - * - * Returns a signature upload request that needs to be sent out. - */ - verify(): Promise; - /** - * True if we verified our own identity at some point in the past. - * - * To reset this latch back to `false`, call {@link withdrawVerification}. - */ - wasPreviouslyVerified(): boolean; - /** - * Remove the requirement for this identity to be verified. - * - * If an identity was previously verified and is not any longer, it will be - * reported to the user. In order to remove this notice users have to - * verify again or to withdraw the verification requirement. - */ - withdrawVerification(): Promise; - /** - * Get the master key of the identity. - */ - readonly masterKey: string; - /** - * Get the self-signing key of the identity. - */ - readonly selfSigningKey: string; - /** - * Get the user-signing key of the identity. This is only present for our - * own user identity. - */ - readonly userSigningKey: string; -} - -/** - * A pickled version of an `InboundGroupSession`. - * - * Holds all the information that needs to be stored in a database to restore - * an InboundGroupSession. - */ -export class PickledInboundGroupSession { - free(): void; - [Symbol.dispose](): void; - /** - * Construct a new `PickledInboundGroupSession`, with default values. - */ - constructor(); - /** - * Flag remembering if the session has been backed up. - */ - backedUp: boolean; - /** - * Flag remembering if the session was directly sent to us by the sender - * or if it was imported. - */ - imported: boolean; - /** - * The pickle string holding the Megolm Session, as returned by - * `olm_pickle_inbound_group_session` in libolm. - */ - pickle: string; - /** - * The id of the room that the session is used in. - * - * Nullable so that a `PickledInboundGroupSession` can be constructed - * incrementally. Must be populated! - */ - get roomId(): RoomId | undefined; - /** - * The id of the room that the session is used in. - * - * Nullable so that a `PickledInboundGroupSession` can be constructed - * incrementally. Must be populated! - */ - set roomId(value: RoomId | null | undefined); - /** - * The public curve25519 key of the account that sent us the session. - */ - senderKey: string; - /** - * The public ed25519 key of the account that is believed to have initiated - * the session, if known. - * - * If the session was received directly from the creator via an - * Olm-encrypted `m.room_key` event, this value is taken from the `keys` - * property of the plaintext payload of that event (see - * [`m.olm.v1.curve25519-aes-sha2`]). - * - * If the session was forwarded to us using an [`m.forwarded_room_key`], - * this value is a copy of the `sender_claimed_ed25519_key` from the - * content of the event. - * - * [`m.olm.v1.curve25519-aes-sha2`]: https://spec.matrix.org/v1.9/client-server-api/#molmv1curve25519-aes-sha2 - * [`m.forwarded_room_key`]: https://spec.matrix.org/v1.9/client-server-api/#mforwarded_room_key - */ - get senderSigningKey(): string | undefined; - /** - * The public ed25519 key of the account that is believed to have initiated - * the session, if known. - * - * If the session was received directly from the creator via an - * Olm-encrypted `m.room_key` event, this value is taken from the `keys` - * property of the plaintext payload of that event (see - * [`m.olm.v1.curve25519-aes-sha2`]). - * - * If the session was forwarded to us using an [`m.forwarded_room_key`], - * this value is a copy of the `sender_claimed_ed25519_key` from the - * content of the event. - * - * [`m.olm.v1.curve25519-aes-sha2`]: https://spec.matrix.org/v1.9/client-server-api/#molmv1curve25519-aes-sha2 - * [`m.forwarded_room_key`]: https://spec.matrix.org/v1.9/client-server-api/#mforwarded_room_key - */ - set senderSigningKey(value: string | null | undefined); -} - -/** - * A pickled version of a `Session`. - * - * Holds all the information that needs to be stored in a database to restore - * an Olm Session. Can be imported into the rust store with {@link - * Migration::migrateOlmSessions}. - */ -export class PickledSession { - free(): void; - [Symbol.dispose](): void; - /** - * Construct a new `PickledSession`, with default values. - */ - constructor(); - /** - * Was the session created using a fallback key? - */ - createdUsingFallbackKey: boolean; - /** - * When the session was created. - */ - creationTime: Date; - /** - * When the session was last used. - */ - lastUseTime: Date; - /** - * The pickle string holding the Olm Session, as returned by - * `olm_pickle_session` in libolm. - */ - pickle: string; - /** - * The base64-encoded public curve25519 key of the other user that we share - * this session with. - */ - senderKey: string; -} - -/** - * A class representing a public-key decryption instance. - * - * This implements the decryption part of the - * `m.megolm_backup.v1.curve25519-aes-sha2` algorithm described in the Matrix - * {@link https://spec.matrix.org/v1.11/client-server-api/#backup-algorithm-mmegolm_backupv1curve25519-aes-sha2 | spec}. - * - * @see {@link PkEncryption} - * - * More details can be found in the official {@link https://docs.rs/vodozemac/latest/vodozemac/pk_encryption/ | vodozemac documentation}. - */ -export class PkDecryption { - free(): void; - [Symbol.dispose](): void; - /** - * Decrypts an encrypted message and returns the raw `Uint8Array`. - */ - decrypt(message: PkMessage): Uint8Array; - /** - * Decrypts an encrypted message and returns the plaintext as a UTF-8 - * string. - */ - decryptString(message: PkMessage): string; - /** - * Creates a `PkDecryption` instance from a secret key. - */ - static fromKey(key: Curve25519SecretKey): PkDecryption; - /** - * Creates a new `PkDecryption` instance with a newly generated key pair. - */ - constructor(); - /** - * Returns the public key associated with this decryption instance. - * - * This can be used to construct a {@link PkEncryption} object to encrypt a - * message for this `PkDecryption` object. - */ - publicKey(): Curve25519PublicKey; - /** - * Returns the secret key associated with this `PkDecryption` instance. - */ - secretKey(): Curve25519SecretKey; -} - -/** - * A class representing a public-key encryption instance. - * - * This implements the encryption part of the - * `m.megolm_backup.v1.curve25519-aes-sha2` algorithm described in the Matrix - * {@link https://spec.matrix.org/v1.11/client-server-api/#backup-algorithm-mmegolm_backupv1curve25519-aes-sha2 | spec}. - * - * @see {@link PkDecryption} - * - * More details can be found in the official {@link https://docs.rs/vodozemac/latest/vodozemac/pk_encryption/ | vodozemac documentation}. - */ -export class PkEncryption { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Encrypts a byte message and returns an encrypted {@link PkMessage}. - */ - encrypt(message: Uint8Array): PkMessage; - /** - * Encrypts a string message and returns an encrypted {@link PkMessage}. - */ - encryptString(message: string): PkMessage; - /** - * Creates a new `PkEncryption` instance from a public key. - */ - static fromKey(public_key: Curve25519PublicKey): PkEncryption; -} - -/** - * A class representing an encrypted message using {@link PkEncryption}. - */ -export class PkMessage { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Returns the raw ciphertext as a `Uint8Array`. - */ - ciphertext(): Uint8Array; - /** - * Returns the ephemeral public key used during encryption. - */ - ephemeralKey(): Curve25519PublicKey; - /** - * Constructs a `PkMessage` from a base64-encoded representation. - */ - static fromBase64(message: Base64EncodedPkMessage): PkMessage; - /** - * Constructs a `PkMessage` from its parts: ciphertext, MAC, and ephemeral - * key. - */ - static fromParts(ciphertext: Uint8Array, mac: Uint8Array, ephemeral_key: Curve25519PublicKey): PkMessage; - /** - * Returns the raw message authentication code (MAC) as a `Uint8Array`. - */ - mac(): Uint8Array; - /** - * Converts the `PkMessage` into a base64-encoded representation. - */ - toBase64(): Base64EncodedPkMessage; -} - -/** - * Represents a to-device event sent in the clear. - */ -export class PlainTextToDeviceEvent { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The to-device message, containing `type`, `sender` and `content` fields, - * encoded as JSON. - */ - readonly rawEvent: string; - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.PlainText} for this type. - */ - readonly type: ProcessedToDeviceEventType; -} - -/** - * The type of a {@link ProcessedToDeviceEvent}. - */ -export enum ProcessedToDeviceEventType { - /** - * A successfully-decrypted encrypted to-device message. - */ - Decrypted = 0, - /** - * An encrypted to-device message which could not be decrypted. - */ - UnableToDecrypt = 1, - /** - * An unencrypted to-device message (sent in clear). - */ - PlainText = 2, - /** - * An invalid to-device message that was ignored because it is missing some - * required information to be processed (like no event `type` for - * example) - */ - Invalid = 3, -} - -/** - * A request that will upload a dehydrated device to the server. - */ -export class PutDehydratedDeviceRequest { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `PutDehydratedDeviceRequest` - */ - constructor(body: string); - /** - * A JSON-encoded object containing the rest of the payload: `rooms`. - * - * It represents the body of the HTTP request. - */ - readonly body: string; -} - -/** - * QR code based verification. - */ -export class Qr { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Cancel the verification flow. - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - */ - cancel(): OutgoingVerificationRequest | undefined; - /** - * Get info about the cancellation if the verification flow has - * been cancelled. - */ - cancelInfo(): CancelInfo | undefined; - /** - * Cancel the verification. - * - * This cancels the verification with given code (e.g. `m.user`). - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - */ - cancelWithCode(code: string): OutgoingVerificationRequest | undefined; - /** - * Confirm that the other side has scanned our QR code. - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already confirmed. - */ - confirmScanning(): OutgoingVerificationRequest | undefined; - /** - * Has the scanning of the QR code been confirmed by us? - */ - hasBeenConfirmed(): boolean; - /** - * Has the QR verification been scanned by the other side. - * - * When the verification object is in this state it’s required - * that the user confirms that the other side has scanned the QR - * code. - */ - hasBeenScanned(): boolean; - /** - * Has the verification flow been cancelled? - */ - isCancelled(): boolean; - /** - * Has the verification flow completed? - */ - isDone(): boolean; - /** - * Is this a verification that is verifying one of our own devices? - */ - isSelfVerification(): boolean; - /** - * Notify the other side that we have successfully scanned the QR - * code and that the QR verification flow can start. - * - * This will return some OutgoingContent if the object is in the - * correct state to start the verification flow, otherwise None. - */ - reciprocate(): OutgoingVerificationRequest | undefined; - /** - * Have we successfully scanned the QR code and are able to send - * a reciprocation event? - */ - reciprocated(): boolean; - /** - * Register a callback which will be called whenever there is an update to - * the request - * - * The `callback` is called with no parameters. - */ - registerChangesCallback(callback: () => Promise): void; - /** - * Get the current state of this request. - * - * Returns a `QrState`. - */ - state(): QrState; - /** - * Generate a the raw bytes that should be encoded as a QR code - * is representing this verification flow. - * - * The `to_qr_code` method can be used to instead output a QrCode - * object that can be rendered. - */ - toBytes(): Uint8ClampedArray; - /** - * Generate a QR code object that is representing this - * verification flow. - * - * The QrCode can then be rendered as an image or as an unicode - * string. - * - * The `to_bytes` method can be used to instead output the raw - * bytes that should be encoded as a QR code. - * - * Returns a `QrCode`. - */ - toQrCode(): QrCode; - /** - * Did we initiate the verification request? - */ - weStarted(): boolean; - /** - * Get the unique ID that identifies this QR verification flow, - * be either a to-device request ID or a room event ID. - */ - readonly flowId: string; - /** - * Get the device ID of the other side. - */ - readonly otherDeviceId: DeviceId; - /** - * Get the user id of the other user that is participating in - * this verification flow. - */ - readonly otherUserId: UserId; - /** - * Get the room id if the verification is happening inside a - * room. - */ - readonly roomId: RoomId | undefined; - /** - * Get our own user ID. - */ - readonly userId: UserId; -} - -/** - * A QR code. - */ -export class QrCode { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Render the QR code into a `Uint8ClampedArray` where 1 represents a - * dark pixel and 0 a white pixel. - */ - renderIntoBuffer(): Uint8ClampedArray; -} - -/** - * Data for the QR code login mechanism. - * - * The {@link QrCodeData} can be serialized and encoded as a QR code or it can - * be decoded from a QR code. - * - * This type supports both the format originally speicied in - * {link https://github.com/matrix-org/matrix-spec-proposals/pull/4108 MSC4108} as well as the - * updated format found in - * {link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388}. - */ -export class QrCodeData { - free(): void; - [Symbol.dispose](): void; - /** - * Attempt to decode a base64 encoded string into a {@link QrCodeData} - * object. - */ - static fromBase64(data: string): QrCodeData; - /** - * Attempt to decode a slice of bytes into a {@link QrCodeData} object. - * - * The slice of bytes would generally be returned by a QR code decoder. - */ - static fromBytes(bytes: Uint8Array): QrCodeData; - /** - * Create new {@link QrCodeData} from a given public key, a rendezvous URL - * and, optionally, a server name for the homeserver. - * - * If a server name is given, then the {@link QrCodeData} mode will be - * {@link QrCodeIntent.Reciprocate}, i.e. the QR code will contain data for - * the existing device to display the QR code. - * - * If no server name is given, the {@link QrCodeData} mode will be - * {@link QrCodeIntent.Login}, i.e. the QR code will contain data for the - * new device to display the QR code. - */ - constructor(public_key: Curve25519PublicKey, rendezvous_url: string, server_name?: string | null); - /** - * Create new {@link QrCodeData} from a given public key, a rendezvous ID - * and, a base homeserver URL. - * - * This creates a QR code which conforms to - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388} of the data - * format for QR login. - */ - static newMsc4388(public_key: Curve25519PublicKey, rendezvous_id: string, base_url: string, intent: QrCodeIntent): QrCodeData; - /** - * Encode the {@link QrCodeData} into a string using base64. - * - * This format can be used for debugging purposes and the - * [`QrcodeData::from_base64()`] method can be used to parse the string - * again. - */ - toBase64(): string; - /** - * Encode the {@link QrCodeData} into a list of bytes. - * - * The list of bytes can be used by a QR code generator to create an image - * containing a QR code. - */ - toBytes(): Uint8Array; - /** - * Get the intent-specific data embedded in the {@link QrCodeData}. - */ - readonly intentData: QrCodeIntentData; - /** - * Get the mode of this {@link QrCodeData} instance. - */ - readonly mode: QrCodeIntent; - /** - * Get the Curve25519 public key embedded in the {@link QrCodeData}. - * - * This Curve25519 public key should be used to establish an - * [HPKE](https://www.rfc-editor.org/rfc/rfc9180.html) - * (Hybrid Public Key Encryption) channel with the other device. - */ - readonly publicKey: Curve25519PublicKey; - /** - * Get the URL of the rendezvous server which will be used to exchange - * messages between the two devices. - */ - readonly rendezvousUrl: string | undefined; - /** - * Get the server name of the homeserver which the new device will be - * logged in to. - * - * This will be only available if the existing device has generated the QR - * code and the new device is the one scanning the QR code. - */ - readonly serverName: string | undefined; -} - -/** - * The mode of the QR code login. - * - * The QR code login mechanism supports both, the new device, as well as the - * existing device to display the QR code. - * - * The different modes have an explicit one-byte identifier which gets added to - * the QR code data. - */ -export enum QrCodeIntent { - /** - * The new device is displaying the QR code. - */ - Login = 0, - /** - * The existing device is displaying the QR code. - */ - Reciprocate = 1, -} - -/** - * Intent and MSC-specific data class for the QR code login support. - */ -export class QrCodeIntentData { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The MSC4108-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4108. Otherwise it will contain - * MSC4388-specific intent data. - */ - get msc4108(): Msc4108IntentData | undefined; - /** - * The MSC4108-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4108. Otherwise it will contain - * MSC4388-specific intent data. - */ - set msc4108(value: Msc4108IntentData | null | undefined); - /** - * The MSC4833-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4388. Otherwise it will contain - * MSC4108-specific intent data. - */ - get msc4388(): Msc4388IntentData | undefined; - /** - * The MSC4833-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4388. Otherwise it will contain - * MSC4108-specific intent data. - */ - set msc4388(value: Msc4388IntentData | null | undefined); -} - -/** - * A scanned QR code. - */ -export class QrCodeScan { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Parse the decoded payload of a QR code in byte slice form. - * - * This method is useful if you would like to do your own custom QR code - * decoding. - */ - static fromBytes(buffer: Uint8ClampedArray): QrCodeScan; -} - -/** - * List of `Qr` states - */ -export enum QrState { - /** - * We have received the other device's details (from the - * `m.key.verification.request` or `m.key.verification.ready`) and - * established the shared secret, so can - * display the QR code. - */ - Created = 0, - /** - * The other side has scanned our QR code and sent an - * `m.key.verification.start` message with `method: m.reciprocate.v1` with - * matching shared secret. - */ - Scanned = 1, - /** - * Our user has confirmed that the other device scanned successfully. We - * have sent an `m.key.verification.done`. - */ - Confirmed = 2, - /** - * We have scanned the other side's QR code and are able to send a - * `m.key.verification.start` message with `method: m.reciprocate.v1`. - * - * Call `Qr::reciprocate` to build the start message. - * - * Note that, despite the name of this state, we have not necessarily - * yet sent the `m.reciprocate.v1` message. - */ - Reciprocated = 3, - /** - * Verification complete: we have received an `m.key.verification.done` - * from the other side. - */ - Done = 4, - /** - * Verification cancelled or failed. - */ - Cancelled = 5, -} - -/** - * A rehydrated device - * - * This device can receive to-device events to get room keys that were send to - * it. - */ -export class RehydratedDevice { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Receive the to-device events that sent to the dehydrated device - * - * The rehydrated device will decrypt the events and pass the room keys - * into the `OlmMachine`. - * - * # Arguments - * - * * `to_device_events` is a JSON-encoded result of the `events` array from - * `/dehydrated_device/{device_id}/events`. - * * `decryption_settings`: Optionally, the settings to use when decrypting - * to-device events. If not set, to-device events will be decrypted with - * a {@link TrustRequirement} of `Untrusted`. - * - * Returns an array of `RoomKeyInfo`, indicating the room keys that were - * received. - */ - receiveEvents(to_device_events: string, decryption_settings?: DecryptionSettings | null): Promise>; -} - -/** - * Represent the type of a request. - */ -export enum RequestType { - /** - * Represents a `KeysUploadRequest`. - */ - KeysUpload = 0, - /** - * Represents a `KeysQueryRequest`. - */ - KeysQuery = 1, - /** - * Represents a `KeysClaimRequest`. - */ - KeysClaim = 2, - /** - * Represents a `ToDeviceRequest`. - */ - ToDevice = 3, - /** - * Represents a `SignatureUploadRequest`. - */ - SignatureUpload = 4, - /** - * Represents a `RoomMessageRequest`. - */ - RoomMessage = 5, - /** - * Represents a `KeysBackupRequest`. - */ - KeysBackup = 6, -} - -/** - * A Matrix [room ID]. - * - * [room ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids - */ -export class RoomId { - free(): void; - [Symbol.dispose](): void; - /** - * Parse/validate and create a new `RoomId`. - */ - constructor(id: string); - /** - * Return the room ID as a string. - */ - toString(): string; -} - -/** - * Struct holding the number of room keys we have. - */ -export class RoomKeyCounts { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The number of backed up room keys. - */ - backedUp: number; - /** - * The total number of room keys. - */ - total: number; -} - -/** - * The result of a call to {@link OlmMachine.importExportedRoomKeys} or - * {@link OlmMachine.importBackedUpRoomKeys}. - */ -export class RoomKeyImportResult { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The keys that were imported. - * - * A Map from room id to a Map of the sender key to a Set of session ids. - * - * Typescript type: `Map>`. - */ - keys(): Map>>; - /** - * The number of room keys that were imported. - */ - readonly importedCount: number; - /** - * The total number of room keys that were found in the export. - */ - readonly totalCount: number; -} - -/** - * Information on a room key that has been received or imported. - */ -export class RoomKeyInfo { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The {@link EncryptionAlgorithm} that this key is used for. Will be one - * of the `m.megolm.*` algorithms. - */ - readonly algorithm: EncryptionAlgorithm; - /** - * The room where the key is used. - */ - readonly roomId: RoomId; - /** - * The Curve25519 key of the device which initiated the session originally. - */ - readonly senderKey: Curve25519PublicKey; - /** - * The ID of the session that the key is for. - */ - readonly sessionId: string; -} - -/** - * Information on a received `m.room_key.withheld` event. - */ -export class RoomKeyWithheldInfo { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The encryption algorithm of the session that is being withheld. - * - * This may be from an `m.room_key.withheld` event, or from a shared room - * key bundle under MSC4268. - */ - readonly algorithm: EncryptionAlgorithm; - /** - * The room ID of the session that is being withheld. - */ - readonly roomId: RoomId; - /** - * The User ID of the sender of the withheld information. - * - * This may be the sender of an `m.room_key.withheld` event, or the sender - * of a shared room key bundle under MSC4268. - */ - readonly sender: UserId; - /** - * The session ID of the session that is being withheld. - */ - readonly sessionId: string; - /** - * The `code` indicating why the key was withheld, such as `m.unverified`. - * - * This may be from an `m.room_key.withheld` event (such as - * `m.unverified`), or from a shared room key bundle under MSC4268. - */ - readonly withheldCode: string; -} - -/** - * A customized owned request type for sending out room messages - * ([specification]). - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3roomsroomidsendeventtypetxnid - */ -export class RoomMessageRequest { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `RoomMessageRequest`. - */ - constructor(id: string, room_id: string, txn_id: string, event_type: string, content: string); - /** - * A JSON-encoded object containing the message's content. - */ - readonly body: string; - /** - * A string representing the type of event to be sent. - */ - readonly event_type: string; - /** - * The request ID. - */ - readonly id: string; - /** - * A string representing the room to send the event to. - */ - readonly room_id: string; - /** - * A string representing the transaction ID for this event. - * - * Clients should generate an ID unique across requests with the same - * access token; it will be used by the server to ensure idempotency of - * requests. - */ - readonly txn_id: string; - /** - * Get its request type. - */ - readonly type: RequestType; -} - -/** - * Information on a room which is waiting for a key bundle to arrive. - */ -export class RoomPendingKeyBundleDetails { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The time that the invite was accepted. - */ - readonly inviteAcceptedAtMillis: number; - /** - * The ID of the user that invited us - */ - readonly inviterId: UserId; - /** - * The room that is waiting for a key bundle. - */ - readonly roomId: RoomId; -} - -/** - * Room encryption settings which are modified by state events or user options - */ -export class RoomSettings { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `RoomSettings` with default values. - */ - constructor(); - /** - * The encryption algorithm that should be used in the room. - * - * Should be one of the members of {@link EncryptionAlgorithm}. - */ - algorithm: EncryptionAlgorithm; - /** - * Whether state event encryption is enabled. - */ - encryptStateEvents: boolean; - /** - * Whether untrusted devices should receive room keys. If this is `false`, - * they will be excluded from the conversation. - */ - onlyAllowTrustedDevices: boolean; - /** - * The maximum number of messages an encryption session should be used for, - * before it is rotated. - */ - get sessionRotationPeriodMessages(): number | undefined; - /** - * The maximum number of messages an encryption session should be used for, - * before it is rotated. - */ - set sessionRotationPeriodMessages(value: number | null | undefined); - /** - * The maximum time, in milliseconds, that an encryption session should be - * used for, before it is rotated. - */ - get sessionRotationPeriodMs(): number | undefined; - /** - * The maximum time, in milliseconds, that an encryption session should be - * used for, before it is rotated. - */ - set sessionRotationPeriodMs(value: number | null | undefined); -} - -/** - * Short Authentication String (SAS) verification. - */ -export class Sas { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Accept the SAS verification. - * - * This does nothing (and returns `undefined`) if the verification was - * already accepted, otherwise it returns an `OutgoingVerificationRequest` - * that needs to be sent out. - */ - accept(): OutgoingVerificationRequest | undefined; - /** - * Are we in a state where we can show the short auth string? - */ - canBePresented(): boolean; - /** - * Cancel the verification. - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - */ - cancel(): OutgoingVerificationRequest | undefined; - /** - * Get info about the cancellation if the verification flow has - * been cancelled. - */ - cancelInfo(): CancelInfo | undefined; - /** - * Cancel the verification. - * - * This cancels the verification with given code (e.g. `m.user`). - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - */ - cancelWithCode(code: string): OutgoingVerificationRequest | undefined; - /** - * Confirm the SAS verification. - * - * This confirms that the short auth strings match on both sides. - * - * Does nothing if we’re not in a state where we can confirm the - * short auth string. - * - * Returns a `Promise` for an array of `OutgoingVerificationRequest`s. - */ - confirm(): Promise; - /** - * Get the decimal version of the short auth string. - * - * Returns None if we can’t yet present the short auth string, - * otherwise a tuple containing three 4-digit integers that - * represent the short auth string. - */ - decimals(): Uint16Array | undefined; - /** - * Get the emoji version of the short auth string. - * - * Returns `undefined` if we can't yet present the short auth string, - * otherwise an array of seven `Emoji` objects. - */ - emoji(): Emoji[] | undefined; - /** - * Get the index of the emoji representing the short auth string - * - * Returns `undefined` if we can’t yet present the short auth - * string, otherwise seven `u8` numbers in the range from 0 to 63 - * inclusive which can be converted to an emoji using [the - * relevant specification - * entry](https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji). - */ - emojiIndex(): Uint8Array | undefined; - /** - * Has the verification been accepted by both parties? - */ - hasBeenAccepted(): boolean; - /** - * Have we confirmed that the short auth string matches? - */ - haveWeConfirmed(): boolean; - /** - * Is the SAS flow cancelled? - */ - isCancelled(): boolean; - /** - * Is the SAS flow done? - */ - isDone(): boolean; - /** - * Is this a verification that is verifying one of our own - * devices? - */ - isSelfVerification(): boolean; - /** - * Register a callback which will be called whenever there is an update to - * the request. - * - * The `callback` is called with no parameters. - */ - registerChangesCallback(callback: () => Promise): void; - /** - * Did this verification flow start from a verification request? - */ - startedFromRequest(): boolean; - /** - * Does this verification flow support displaying emoji for the - * short authentication string? - */ - supportsEmoji(): boolean; - /** - * Has the SAS verification flow timed out? - */ - timedOut(): boolean; - /** - * True if we initiated the verification flow (ie, we sent the - * `m.key.verification.request`). - */ - weStarted(): boolean; - /** - * Get our own device ID. - */ - readonly deviceId: DeviceId; - /** - * Get the unique ID that identifies this SAS verification flow, - * be either a to-device request ID or a room event ID. - */ - readonly flowId: string; - /** - * Get the device ID of the other side. - */ - readonly otherDeviceId: DeviceId; - /** - * Get the user id of the other side. - */ - readonly otherUserId: UserId; - /** - * Get the room ID if the verification is happening inside a - * room. - */ - readonly roomId: RoomId | undefined; - /** - * Get our own user ID. - */ - readonly userId: UserId; -} - -/** - * Struct containing the bundle of secrets to fully activate a new device for - * end-to-end encryption. - */ -export class SecretsBundle { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Deserialize the [`SecretsBundle`] from a JSON object. - */ - static from_json(json: unknown): SecretsBundle; - /** - * Serialize the [`SecretsBundle`] to a JSON object. - */ - to_json(): unknown; - /** - * The bundle of the backup decryption key and backup version if any. - */ - readonly backupBundle: BackupSecretsBundle | undefined; - /** - * The seed of the master key encoded as unpadded base64. - */ - readonly masterKey: string; - /** - * The seed of the self signing key encoded as unpadded base64. - */ - readonly selfSigningKey: string; - /** - * The seed of the user signing key encoded as unpadded base64. - */ - readonly userSigningKey: string; -} - -/** - * A Matrix-spec compliant [server name]. - * - * It consists of a host and an optional port (separated by a colon if - * present). - * - * [server name]: https://spec.matrix.org/v1.2/appendices/#server-name - */ -export class ServerName { - free(): void; - [Symbol.dispose](): void; - /** - * Returns true if and only if the server name is an IPv4 or IPv6 - * address. - */ - isIpLiteral(): boolean; - /** - * Parse/validate and create a new `ServerName`. - */ - constructor(name: string); - /** - * Returns the host of the server name. - * - * That is: Return the part of the server before `:` or the - * full server name if there is no port. - */ - readonly host: string; - /** - * Returns the port of the server name if any. - */ - readonly port: number | undefined; -} - -/** - * Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`] - * for more info. - */ -export enum ShieldColor { - /** - * Important warning - */ - Red = 0, - /** - * Low warning - */ - Grey = 1, - /** - * No warning - */ - None = 2, -} - -/** - * Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`] - * for more info. - */ -export class ShieldState { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * A machine-readable representation of the authenticity for a - * `ShieldState`. - */ - get code(): ShieldStateCode | undefined; - /** - * A machine-readable representation of the authenticity for a - * `ShieldState`. - */ - set code(value: ShieldStateCode | null | undefined); - /** - * The shield color - */ - color: ShieldColor; - /** - * Error message that can be displayed as a tooltip - */ - readonly message: string | undefined; -} - -/** - * A machine-readable representation of the authenticity for a `ShieldState`. - */ -export enum ShieldStateCode { - /** - * Not enough information available to check the authenticity. - */ - AuthenticityNotGuaranteed = 0, - /** - * The sending device isn't yet known by the Client. - */ - UnknownDevice = 1, - /** - * The sending device hasn't been verified by the sender. - */ - UnsignedDevice = 2, - /** - * The sender hasn't been verified by the Client's user. - */ - UnverifiedIdentity = 3, - /** - * The sender was previously verified but changed their identity. - */ - VerificationViolation = 4, - /** - * The `sender` field on the event does not match the owner of the device - * that established the Megolm session. - */ - MismatchedSender = 5, -} - -/** - * Represents a potentially decoded signature (but not a validated - * one). - */ -export class Signature { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Convert the signature to a base64 encoded string. - */ - toBase64(): string; - /** - * Get the Ed25519 signature, if this is one. - */ - readonly ed25519: Ed25519Signature | undefined; -} - -/** - * The result of a signature check. - */ -export enum SignatureState { - /** - * The signature is missing. - */ - Missing = 0, - /** - * The signature is invalid. - */ - Invalid = 1, - /** - * The signature is valid but the device or user identity that created the - * signature is not trusted. - */ - ValidButNotTrusted = 2, - /** - * The signature is valid and the device or user identity that created the - * signature is trusted. - */ - ValidAndTrusted = 3, -} - -/** - * Data for a request to the `/keys/signatures/upload` API endpoint - * ([specification]). - * - * Publishes cross-signing signatures for the user. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keyssignaturesupload - */ -export class SignatureUploadRequest { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `SignatureUploadRequest`. - */ - constructor(id: string, signed_keys: string); - /** - * A JSON-encoded object containing the payload of the request - * - * It represents the body of the HTTP request. - */ - readonly body: string; - /** - * The request ID. - * Some signature upload will have to an `id` field, some won't. - * They have one when they are created automatically during an interactive - * verification, otherwise they don't. - */ - readonly id: string | undefined; - /** - * Get its request type. - */ - readonly type: RequestType; -} - -/** - * The result of a signature verification of a signed JSON object. - */ -export class SignatureVerification { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Is the result considered to be trusted? - * - * This tells us if the result has a valid signature from any of the - * following: - * - * * Our own device - * * Our own user identity, provided the identity is trusted as well - * * Any of our own devices, provided the device is trusted as well - */ - trusted(): boolean; - /** - * Give the backup signature state from the current device. - * See SignatureState for values - */ - readonly deviceState: SignatureState; - /** - * Give the backup signature state from the current user identity. - * See SignatureState for values - */ - readonly userState: SignatureState; -} - -/** - * A collection of `Signature`. - */ -export class Signatures { - free(): void; - [Symbol.dispose](): void; - /** - * Add the given signature from the given signer and the given key ID to - * the collection. - */ - addSignature(signer: UserId, key_id: DeviceKeyId, signature: Ed25519Signature): MaybeSignature | undefined; - /** - * Get the json with all signatures - */ - asJSON(): string; - /** - * Remove all the signatures we currently hold. - */ - clear(): void; - /** - * Get the map of signatures that belong to the given user. - */ - get(signer: UserId): Map | undefined; - /** - * Try to find an Ed25519 signature from the given signer with - * the given key ID. - */ - getSignature(signer: UserId, key_id: DeviceKeyId): Ed25519Signature | undefined; - /** - * Do we hold any signatures or is our collection completely - * empty. - */ - isEmpty(): boolean; - /** - * Creates a new, empty, signatures collection. - */ - constructor(); - /** - * How many signatures do we currently hold. - */ - readonly count: number; -} - -/** - * A struct containing an open connection to a CryptoStore. - * - * Opening the CryptoStore can take some time, due to the PBKDF calculation - * involved, so if multiple operations are being done on the same store, it is - * more efficient to open it once. - */ -export class StoreHandle { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Open a crypto store. - * - * The created store will be based on IndexedDB if a `store_name` is - * provided; otherwise it will be based on a memory store and once the - * objects is dropped, the keys will be lost. - * - * # Arguments - * - * * `store_name` - The name that should be used to open the IndexedDB - * based database. If this isn't provided, a memory-only store will be - * used. *Note* the memory-only store will lose your E2EE keys when the - * `StoreHandle` gets dropped. - * - * * `store_passphrase` - The passphrase that should be used to encrypt the - * store, for IndexedDB-based stores - * - * * `logger` - An optional logger instance to use for writing log messages - * during the open operation. An instance of `JsLogger`. - */ - static open(store_name: string | null | undefined, store_passphrase: string | null | undefined, logger?: JsLogger): Promise; - /** - * Open a crypto store based on IndexedDB, using the given key for - * encryption. - * - * # Arguments - * - * * `store_name` - The name that should be used to open the IndexedDB - * based database. - * - * * `store_key` - The key that should be used to encrypt the store, for - * IndexedDB-based stores. Must be a 32-byte array. - * - * * `logger` - An optional logger instance to use for writing log messages - * during the open operation. An instance of `JsLogger`. - */ - static openWithKey(store_name: string, store_key: Uint8Array, logger?: JsLogger): Promise; -} - -/** - * Information on a stored room key bundle data event. - */ -export class StoredRoomKeyBundleData { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The JSON-encoded encryption info for the key bundle. - * - * @deprecated Should not be used within applications. - */ - readonly encryptionInfo: string; - /** - * The room that these keys are for. - */ - readonly roomId: RoomId; - /** - * The user that sent us this data. - */ - readonly senderUser: UserId; - /** - * The location of the bundle. - */ - readonly url: string; -} - -/** - * Struct containing information on how a to-device message was decrypted. - */ -export class ToDeviceEncryptionInfo { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Returns whether the sender device is in a verified state. - * This reflects the state at the time of decryption. - */ - isSenderVerified(): boolean; - /** - * The base64-encoded public Curve25519 key of the device that encrypted - * the message. - */ - senderCurve25519Key: string; - /** - * The device ID of the device that sent us the to-device message. - * - * Could be `undefined` in the case where the to-device message sender - * checks are delayed. There is no delay for to-device messages other - * than `m.room_key`, so this will always be truthy for other - * message types (the decryption would fail if the sender device keys - * cannot be found). - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - */ - get senderDevice(): DeviceId | undefined; - /** - * The device ID of the device that sent us the to-device message. - * - * Could be `undefined` in the case where the to-device message sender - * checks are delayed. There is no delay for to-device messages other - * than `m.room_key`, so this will always be truthy for other - * message types (the decryption would fail if the sender device keys - * cannot be found). - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - */ - set senderDevice(value: DeviceId | null | undefined); - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - */ - sender: UserId; -} - -/** - * Data for a request to the `/sendToDevice` API endpoint - * ([specification]). - * - * Send an event to a single device or to a group of devices. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3sendtodeviceeventtypetxnid - */ -export class ToDeviceRequest { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `ToDeviceRequest`. - */ - constructor(id: string, event_type: string, txn_id: string, body: string); - /** - * A JSON-encoded object containing the rest of the payload: `messages`. - * - * It represents the body of the HTTP request. - */ - readonly body: string; - /** - * A string representing the type of event being sent to each devices. - */ - readonly event_type: string; - /** - * The request ID. - * For to-device request this would be the same value as `txn_id`. It is - * exposed also as `id` so that the js bindings are consistent with the - * other request types by using this field to mark as sent. - */ - readonly id: string; - /** - * A string representing a request identifier unique to the access token - * used to send the request. - */ - readonly txn_id: string; - /** - * Get its request type. - */ - readonly type: RequestType; -} - -/** - * Metadata about a to-device event that could not be decrypted. - */ -export class ToDeviceUnableToDecryptInfo { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Reason code for the decryption failure - */ - reason: ToDeviceUnableToDecryptReason; -} - -/** - * Reason code for a to-device decryption failure - */ -export enum ToDeviceUnableToDecryptReason { - /** - * An error occurred while encrypting the event. This covers all - * `OlmError` types. - */ - DecryptionFailure = 0, - /** - * We refused to decrypt the message because the sender's device is not - * verified, or more generally, the sender's identity did not match the - * trust requirement we were asked to provide. - */ - UnverifiedSenderDevice = 1, - /** - * We have no `OlmMachine`. This should not happen unless we forget to set - * things up by calling `OlmMachine::activate()`. - */ - NoOlmMachine = 2, - /** - * The Matrix SDK was compiled without encryption support. - */ - EncryptionIsDisabled = 3, -} - -/** - * Type to install and to manipulate the tracing layer. - */ -export class Tracing { - free(): void; - [Symbol.dispose](): void; - /** - * Check whether the `tracing` feature has been enabled. - * - * @deprecated: `tracing` is now always enabled. - */ - static isAvailable(): boolean; - /** - * Install the tracing layer. - */ - constructor(min_level: LoggerLevel); - /** - * Turn the logger off, i.e. it no longer emits logs. - */ - turnOff(): void; - /** - * Turn the logger on, i.e. it emits logs again if it was turned - * off. - */ - turnOn(): void; - /** - * Re-define the minimum logger level. - */ - set minLevel(value: LoggerLevel); -} - -/** - * The trust level required to decrypt an event - */ -export enum TrustRequirement { - /** - * Decrypt events from everyone regardless of trust - */ - Untrusted = 0, - /** - * Only decrypt events from cross-signed or legacy devices - */ - CrossSignedOrLegacy = 1, - /** - * Only decrypt events from cross-signed devices - */ - CrossSigned = 2, -} - -/** - * Represents an encrypted to-device event that could not be decrypted. - */ -export class UTDToDeviceEvent { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The original message (of type `m.room.encrypted`) that failed to be - * decrypted, encoded as JSON. - */ - readonly rawEvent: string; - /** - * Information on the reason we failed to decrypt - */ - readonly utdInfo: ToDeviceUnableToDecryptInfo; - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.UnableToDecrypt} for this type. - */ - readonly type: ProcessedToDeviceEventType; -} - -/** - * Other Requests * - * Request that will publish a cross signing identity. - * - * This uploads the public cross signing key triplet. - */ -export class UploadSigningKeysRequest { - free(): void; - [Symbol.dispose](): void; - /** - * Create a new `UploadSigningKeysRequest`. - */ - constructor(body: string); - /** - * A JSON-encoded object containing the rest of the payload: `master_key`, - * `self_signing_key`, `user_signing_key`. - * - * It represents the body of the HTTP request. - */ - readonly body: string; -} - -/** - * A read only view over all devices belonging to a user. - */ -export class UserDevices { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Iterator over all the devices of the user devices. - */ - devices(): Device[]; - /** - * Get the specific device with the given device ID. - */ - get(device_id: DeviceId): Device | undefined; - /** - * Returns true if there is at least one devices of this user - * that is considered to be verified, false otherwise. - * - * This won't consider your own device as verified, as your own - * device is always implicitly verified. - */ - isAnyVerified(): boolean; - /** - * Array over all the device IDs of the user devices. - */ - keys(): DeviceId[]; -} - -/** - * A Matrix [user ID]. - * - * [user ID]: https://spec.matrix.org/v1.2/appendices/#user-identifiers - */ -export class UserId { - free(): void; - [Symbol.dispose](): void; - /** - * Create a clone of this `UserId`. - * - * This can be useful when passing a `UserId` instance to methods such as - * {@link OlmMachine.updateTrackedUsers} which destroy the instance. - */ - clone(): UserId; - /** - * Whether this user ID is a historical one. - * - * A historical user ID is one that doesn't conform to the latest - * specification of the user ID grammar but is still accepted - * because it was previously allowed. - */ - isHistorical(): boolean; - /** - * Parse/validate and create a new `UserId`. - */ - constructor(id: string); - /** - * Return the user ID as a string. - */ - toString(): string; - /** - * Returns the user's localpart. - */ - readonly localpart: string; - /** - * Returns the server name of the user ID. - */ - readonly serverName: ServerName; -} - -/** - * List of available verification methods. - */ -export enum VerificationMethod { - /** - * The `m.sas.v1` verification method. - * - * SAS means Short Authentication String. - */ - SasV1 = 0, - /** - * The `m.qr_code.scan.v1` verification method. - */ - QrCodeScanV1 = 1, - /** - * The `m.qr_code.show.v1` verification method. - */ - QrCodeShowV1 = 2, - /** - * The `m.reciprocate.v1` verification method. - */ - ReciprocateV1 = 3, -} - -/** - * An object controlling key verification requests. - * - * Interactive verification flows usually start with a verification - * request, this object lets you send and reply to such a - * verification request. - * - * After the initial handshake the verification flow transitions into - * one of the verification methods. - */ -export class VerificationRequest { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * Accept the verification request. - * - * This method will accept the request and signal that it - * supports the `m.sas.v1`, the `m.qr_code.show.v1`, and - * `m.reciprocate.v1` method. - * - * `m.qr_code.show.v1` will only be signaled if the `qrcode` - * feature is enabled. This feature is disabled by default. If - * it's enabled and QR code scanning should be supported or QR - * code showing shouldn't be supported the `accept_with_methods` - * method should be used instead. - * - * It returns either a `ToDeviceRequest`, a `RoomMessageRequest` - * or `undefined`. - */ - accept(): OutgoingVerificationRequest | undefined; - /** - * Accept the verification request signaling that our client - * supports the given verification methods. - * - * `methods` represents the methods that we should advertise as - * supported by us. - * - * It returns either a `ToDeviceRequest`, a `RoomMessageRequest` - * or `undefined`. - */ - acceptWithMethods(methods: VerificationMethod[]): OutgoingVerificationRequest | undefined; - /** - * Cancel the verification request. - * - * It returns either a `ToDeviceRequest`, a `RoomMessageRequest` - * or `undefined`. - */ - cancel(): OutgoingVerificationRequest | undefined; - /** - * Generate a QR code that can be used by another client to start - * a QR code based verification. - * - * Returns a `Qr` or `undefined`. - */ - generateQrCode(): Promise; - /** - * If this request has transitioned into a concrete verification - * flow (and not yet been completed or cancelled), returns a `Verification` - * object. - * - * Returns: a `Sas`, a `Qr`, or `undefined`. - */ - getVerification(): Sas | Qr | undefined; - /** - * Has the verification flow that was started with this request - * been cancelled? - */ - isCancelled(): boolean; - /** - * Has the verification flow that was started with this request - * finished? - */ - isDone(): boolean; - /** - * Has the verification request been answered by another device? - */ - isPassive(): boolean; - /** - * Is the verification request ready to start a verification flow? - */ - isReady(): boolean; - /** - * Is this a verification that is verifying one of our own - * devices? - */ - isSelfVerification(): boolean; - /** - * Get the current phase of this request. - * - * Returns a `VerificationRequestPhase`. - */ - phase(): VerificationRequestPhase; - /** - * Register a callback which will be called whenever there is an update to - * the request. - * - * The `callback` is called with no parameters. - */ - registerChangesCallback(callback: () => Promise): void; - /** - * Create an event content that can be sent as a room event to - * request verification from the other side. This should be used - * only for verifications of other users and it should be sent to - * a room we consider to be a DM with the other user. - */ - static request(own_user_id: UserId, own_device_id: DeviceId, other_user_id: UserId, methods?: VerificationMethod[]): string; - /** - * Start a QR code verification by providing a scanned QR code - * for this verification flow. - */ - scanQrCode(data: QrCodeScan): Promise; - /** - * Transition from this verification request into a SAS verification flow. - * - * Returns `Promise<[Sas, OutgoingVerificationRequest] | undefined>` - */ - startSas(): Promise<[Sas, OutgoingVerificationRequest] | undefined>; - /** - * The number of milliseconds remaining before this verification flow times - * out. - * - * Returns zero if the time has already passed. - */ - timeRemainingMillis(): number; - /** - * Has the verification flow timed out? - */ - timedOut(): boolean; - /** - * Did we initiate the verification request? - */ - weStarted(): boolean; - /** - * Get info about the cancellation if the verification request - * has been cancelled. - */ - readonly cancelInfo: CancelInfo | undefined; - /** - * Get the unique ID of this verification request. - */ - readonly flowId: string; - /** - * The ID of the other device that is participating in this - * verification. - */ - readonly otherDeviceId: DeviceId | undefined; - /** - * The ID of the other user that is participating in this - * verification request. - */ - readonly otherUserId: UserId; - /** - * Get our own supported verification methods that we advertised. - * - * Will be present only we requested the verification or if we’re - * in the ready state. - */ - readonly ourSupportedMethods: VerificationMethod[] | undefined; - /** - * Our own user id. - */ - readonly ownUserId: UserId; - /** - * Get the room ID if the verification is happening inside a - * room. - */ - readonly roomId: RoomId | undefined; - /** - * Get the supported verification methods of the other side. - * - * Will be present only if the other side requested the - * verification or if we’re in the ready state. - * - * # Returns - * - * `undefined` if we do not yet know the supported methods; otherwise, an - * array of `VerificationMethod`s. - */ - readonly theirSupportedMethods: VerificationMethod[] | undefined; -} - -/** - * List of VerificationRequestState phases - */ -export enum VerificationRequestPhase { - /** - * The verification request has been newly created by us. - */ - Created = 0, - /** - * The verification request was received from the other party. - */ - Requested = 1, - /** - * The verification request is ready to start a verification flow. - */ - Ready = 2, - /** - * The verification request has transitioned into a concrete verification - * flow. For example it transitioned into the emoji based SAS - * verification. - */ - Transitioned = 3, - /** - * The verification flow that was started with this request has finished. - */ - Done = 4, - /** - * The verification process has been cancelled. - */ - Cancelled = 5, -} - -/** - * Object containing the versions of the Rust libraries we are using. - */ -export class Versions { - private constructor(); - free(): void; - [Symbol.dispose](): void; - /** - * The build-time output of the `git describe` command of the source tree - * of crate. - */ - readonly git_description: string; - /** - * The Git commit hash of the crate's source tree at build time. - */ - readonly git_sha: string; - /** - * The version of the matrix-sdk-crypto crate. - */ - readonly matrix_sdk_crypto: string; - /** - * The version of the vodozemac crate. - */ - readonly vodozemac: string; -} - -/** - * Get the versions of the Rust libraries we are using. - */ +* Get the versions of the Rust libraries we are using. +* @returns {Versions} +*/ export function getVersions(): Versions; - /** - * Run some stuff when the Wasm module is instantiated. - * - * Right now, it does the following: - * - * * Redirect Rust panics to JavaScript console. - */ +* Run some stuff when the Wasm module is instantiated. +* +* Right now, it does the following: +* +* * Redirect Rust panics to JavaScript console. +*/ export function start(): void; +/** +* The basic key algorithm names in the specification. +*/ +export enum DeviceKeyAlgorithmName { +/** +* The Ed25519 signature algorithm. +*/ + Ed25519 = 0, +/** +* The Curve25519 ECDH algorithm. +*/ + Curve25519 = 1, +/** +* The Curve25519 ECDH algorithm, but the key also contains +* signatures. +*/ + SignedCurve25519 = 2, +/** +* An unknown device key algorithm. +*/ + Unknown = 3, +} +/** +* The result of a signature check. +*/ +export enum SignatureState { +/** +* The signature is missing. +*/ + Missing = 0, +/** +* The signature is invalid. +*/ + Invalid = 1, +/** +* The signature is valid but the device or user identity that created the +* signature is not trusted. +*/ + ValidButNotTrusted = 2, +/** +* The signature is valid and the device or user identity that created the +* signature is trusted. +*/ + ValidAndTrusted = 3, +} +/** +* List of available verification methods. +*/ +export enum VerificationMethod { +/** +* The `m.sas.v1` verification method. +* +* SAS means Short Authentication String. +*/ + SasV1 = 0, +/** +* The `m.qr_code.scan.v1` verification method. +*/ + QrCodeScanV1 = 1, +/** +* The `m.qr_code.show.v1` verification method. +*/ + QrCodeShowV1 = 2, +/** +* The `m.reciprocate.v1` verification method. +*/ + ReciprocateV1 = 3, +} +/** +* An error code for why the process/request was cancelled by the +* user. +*/ +export enum CancelCode { +/** +* Unknown cancel code. +*/ + Other = 0, +/** +* The user cancelled the verification. +*/ + User = 1, +/** +* The verification process timed out. +* +* Verification processes can define their own timeout +* parameters. +*/ + Timeout = 2, +/** +* The device does not know about the given transaction ID. +*/ + UnknownTransaction = 3, +/** +* The device does not know how to handle the requested method. +* +* Should be sent for `m.key.verification.start` messages and +* messages defined by individual verification processes. +*/ + UnknownMethod = 4, +/** +* The device received an unexpected message. +* +* Typically raised when one of the parties is handling the +* verification out of order. +*/ + UnexpectedMessage = 5, +/** +* The key was not verified. +*/ + KeyMismatch = 6, +/** +* The expected user did not match the user verified. +*/ + UserMismatch = 7, +/** +* The message received was invalid. +*/ + InvalidMessage = 8, +/** +* An `m.key.verification.request` was accepted by a different +* device. +* +* The device receiving this error can ignore the verification +* request. +*/ + Accepted = 9, +/** +* The device receiving this error can ignore the verification +* request. +*/ + MismatchedCommitment = 10, +/** +* The SAS did not match. +*/ + MismatchedSas = 11, +} +/** +* List of `Qr` states +*/ +export enum QrState { +/** +* We have received the other device's details (from the +* `m.key.verification.request` or `m.key.verification.ready`) and +* established the shared secret, so can +* display the QR code. +*/ + Created = 0, +/** +* The other side has scanned our QR code and sent an +* `m.key.verification.start` message with `method: m.reciprocate.v1` with +* matching shared secret. +*/ + Scanned = 1, +/** +* Our user has confirmed that the other device scanned successfully. We +* have sent an `m.key.verification.done`. +*/ + Confirmed = 2, +/** +* We have scanned the other side's QR code and are able to send a +* `m.key.verification.start` message with `method: m.reciprocate.v1`. +* +* Call `Qr::reciprocate` to build the start message. +* +* Note that, despite the name of this state, we have not necessarily +* yet sent the `m.reciprocate.v1` message. +*/ + Reciprocated = 3, +/** +* Verification complete: we have received an `m.key.verification.done` +* from the other side. +*/ + Done = 4, +/** +* Verification cancelled or failed. +*/ + Cancelled = 5, +} +/** +* List of VerificationRequestState phases +*/ +export enum VerificationRequestPhase { +/** +* The verification request has been newly created by us. +*/ + Created = 0, +/** +* The verification request was received from the other party. +*/ + Requested = 1, +/** +* The verification request is ready to start a verification flow. +*/ + Ready = 2, +/** +* The verification request has transitioned into a concrete verification +* flow. For example it transitioned into the emoji based SAS +* verification. +*/ + Transitioned = 3, +/** +* The verification flow that was started with this request has finished. +*/ + Done = 4, +/** +* The verification process has been cancelled. +*/ + Cancelled = 5, +} +/** +* Logger level. +*/ +export enum LoggerLevel { +/** +* `TRACE` level. +* +* Designate very low priority, often extremely verbose, +* information. +*/ + Trace = 0, +/** +* `DEBUG` level. +* +* Designate lower priority information. +*/ + Debug = 1, +/** +* `INFO` level. +* +* Designate useful information. +*/ + Info = 2, +/** +* `WARN` level. +* +* Designate hazardous situations. +*/ + Warn = 3, +/** +* `ERROR` level. +* +* Designate very serious errors. +*/ + Error = 4, +} +/** +* Decryption error codes +*/ +export enum DecryptionErrorCode { +/** +* The room key is not known +*/ + MissingRoomKey = 0, +/** +* The room key is known but ratcheted +*/ + UnknownMessageIndex = 1, +/** +* Decryption failed because of a mismatch between the identity keys of the +* device we received the room key from and the identity keys recorded in +* the plaintext of the room key to-device message. +*/ + MismatchedIdentityKeys = 2, +/** +* Other failuer +*/ + UnableToDecrypt = 3, +} +/** +* An enum over the different key types a device can have. +* +* Currently devices have a curve25519 and ed25519 keypair. The keys +* transport format is a base64 encoded string, any unknown key type +* will be left as such a string. +*/ +export enum DeviceKeyName { +/** +* The curve25519 device key. +*/ + Curve25519 = 0, +/** +* The ed25519 device key. +*/ + Ed25519 = 1, +/** +* An unknown device key. +*/ + Unknown = 2, +} +/** +* The local trust state of a device. +*/ +export enum LocalTrust { +/** +* The device has been verified and is trusted. +*/ + Verified = 0, +/** +* The device been blacklisted from communicating. +*/ + BlackListed = 1, +/** +* The trust state of the device is being ignored. +*/ + Ignored = 2, +/** +* The trust state is unset. +*/ + Unset = 3, +} +/** +* Who can see a room's history. +*/ +export enum HistoryVisibility { +/** +* Previous events are accessible to newly joined members from +* the point they were invited onwards. +* +* Events stop being accessible when the member's state changes +* to something other than *invite* or *join*. +*/ + Invited = 0, +/** +* Previous events are accessible to newly joined members from +* the point they joined the room onwards. +* +* Events stop being accessible when the member's state changes +* to something other than *join*. +*/ + Joined = 1, +/** +* Previous events are always accessible to newly joined members. +* +* All events in the room are accessible, even those sent when +* the member was not a part of the room. +*/ + Shared = 2, +/** +* All events while this is the `HistoryVisibility` value may be +* shared by any participating homeserver with anyone, regardless +* of whether they have ever joined the room. +*/ + WorldReadable = 3, +} +/** +* Represent the type of a request. +*/ +export enum RequestType { +/** +* Represents a `KeysUploadRequest`. +*/ + KeysUpload = 0, +/** +* Represents a `KeysQueryRequest`. +*/ + KeysQuery = 1, +/** +* Represents a `KeysClaimRequest`. +*/ + KeysClaim = 2, +/** +* Represents a `ToDeviceRequest`. +*/ + ToDevice = 3, +/** +* Represents a `SignatureUploadRequest`. +*/ + SignatureUpload = 4, +/** +* Represents a `RoomMessageRequest`. +*/ + RoomMessage = 5, +/** +* Represents a `KeysBackupRequest`. +*/ + KeysBackup = 6, +/** +* Represents a `SigningKeysUploadRequest` +*/ + SigningKeysUpload = 7, +} +/** +* An encryption algorithm to be used to encrypt messages sent to a +* room. +*/ +export enum EncryptionAlgorithm { +/** +* Olm version 1 using Curve25519, AES-256, and SHA-256. +*/ + OlmV1Curve25519AesSha2 = 0, +/** +* Megolm version 1 using AES-256 and SHA-256. +*/ + MegolmV1AesSha2 = 1, +} +/** +* Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`] +* for more info. +*/ +export enum ShieldColor { +/** +* Important warning +*/ + Red = 0, +/** +* Low warning +*/ + Grey = 1, +/** +* No warning +*/ + None = 2, +} +/** +* A type to encrypt and to decrypt anything that can fit in an +* `Uint8Array`, usually big buffer. +*/ +export class Attachment { + free(): void; +/** +* Encrypt the content of the `Uint8Array`. +* +* It produces an `EncryptedAttachment`, which can be used to +* retrieve the media encryption information, or the encrypted +* data. +* @param {Uint8Array} array +* @returns {EncryptedAttachment} +*/ + static encrypt(array: Uint8Array): EncryptedAttachment; +/** +* Decrypt an `EncryptedAttachment`. +* +* The encrypted attachment can be created manually, or from the +* `encrypt` method. +* +* **Warning**: The encrypted attachment can be used only +* **once**! The encrypted data will still be present, but the +* media encryption info (which contain secrets) will be +* destroyed. It is still possible to get a JSON-encoded backup +* by calling `EncryptedAttachment.mediaEncryptionInfo`. +* @param {EncryptedAttachment} attachment +* @returns {Uint8Array} +*/ + static decrypt(attachment: EncryptedAttachment): Uint8Array; +} +/** +* The private part of the backup key, the one used for recovery. +*/ +export class BackupDecryptionKey { + free(): void; +/** +* Create a new random [`BackupDecryptionKey`]. +* @returns {BackupDecryptionKey} +*/ + static createRandomKey(): BackupDecryptionKey; +/** +* Try to create a [`BackupDecryptionKey`] from a base 64 encoded string. +* @param {string} key +* @returns {BackupDecryptionKey} +*/ + static fromBase64(key: string): BackupDecryptionKey; +/** +* Convert the backup decryption key to a base 64 encoded string. +* @returns {string} +*/ + toBase64(): string; +/** +* Try to decrypt a message that was encrypted using the public part of the +* backup key. +* @param {string} ephemeral_key +* @param {string} mac +* @param {string} ciphertext +* @returns {string} +*/ + decryptV1(ephemeral_key: string, mac: string, ciphertext: string): string; +/** +* Get the public part of the backup key. +*/ + readonly megolmV1PublicKey: MegolmV1BackupKey; +} +/** +* Stored versions of the backup keys. +*/ +export class BackupKeys { + free(): void; +/** +* The version that we are using for backups. +*/ + backupVersion?: string; +/** +* The key used to decrypt backed up room keys +*/ + decryptionKey?: BackupDecryptionKey; +/** +* The key used to decrypt backed up room keys, encoded as base64 +* +* @deprecated Use `BackupKeys.decryptionKey.toBase64()` +*/ + readonly decryptionKeyBase64: string | undefined; +} +/** +* Information about the cancellation of a verification request or +* verification flow. +*/ +export class CancelInfo { + free(): void; +/** +* Get the human readable reason of the cancellation. +* @returns {string} +*/ + reason(): string; +/** +* Get the `CancelCode` that cancelled this verification. +* @returns {number} +*/ + cancelCode(): number; +/** +* Was the verification cancelled by us? +* @returns {boolean} +*/ + cancelledbyUs(): boolean; +} +/** +* A struct containing private cross signing keys that can be backed +* up or uploaded to the secret store. +*/ +export class CrossSigningKeyExport { + free(): void; +/** +* The seed of the master key encoded as unpadded base64. +*/ + readonly masterKey: string | undefined; +/** +* The seed of the self signing key encoded as unpadded base64. +*/ + readonly self_signing_key: string | undefined; +/** +* The seed of the user signing key encoded as unpadded base64. +*/ + readonly userSigningKey: string | undefined; +} +/** +* Struct representing the state of our private cross signing keys, +* it shows which private cross signing keys we have locally stored. +*/ +export class CrossSigningStatus { + free(): void; +/** +* Do we have the master key? +*/ + readonly hasMaster: boolean; +/** +* Do we have the self signing key? This one is necessary to sign +* our own devices. +*/ + readonly hasSelfSigning: boolean; +/** +* Do we have the user signing key? This one is necessary to sign +* other users. +*/ + readonly hasUserSigning: boolean; +} +/** +* A Curve25519 public key. +*/ +export class Curve25519PublicKey { + free(): void; +/** +* Serialize an Curve25519 public key to an unpadded base64 +* representation. +* @returns {string} +*/ + toBase64(): string; +/** +* The number of bytes a Curve25519 public key has. +*/ + readonly length: number; +} +/** +* A decrypted room event. +*/ +export class DecryptedRoomEvent { + free(): void; +/** +* The verification state of the device that sent us the event. +* Note this is the state of the device at the time of +* decryption. It may change in the future if a device gets +* verified or deleted. +* @param {boolean} strict +* @returns {ShieldState | undefined} +*/ + shieldState(strict: boolean): ShieldState | undefined; +/** +* The JSON-encoded decrypted event. +*/ + readonly event: string; +/** +* Returns an empty array +* +* Previously, this returned the chain of Curve25519 keys through which +* this session was forwarded, via `m.forwarded_room_key` events. +* However, that is not cryptographically reliable, and clients should not +* be using it. +* +* @see https://github.com/matrix-org/matrix-spec/issues/1089 +*/ + readonly forwardingCurve25519KeyChain: Array; +/** +* The user ID of the event sender, note this is untrusted data +* unless the `verification_state` is as well trusted. +*/ + readonly sender: UserId | undefined; +/** +* The signing Ed25519 key that have created the megolm key that +* was used to decrypt this session. +*/ + readonly senderClaimedEd25519Key: string | undefined; +/** +* The Curve25519 key of the device that created the megolm +* decryption key originally. +*/ + readonly senderCurve25519Key: string | undefined; +/** +* The device ID of the device that sent us the event, note this +* is untrusted data unless `verification_state` is as well +* trusted. +*/ + readonly senderDevice: DeviceId | undefined; +} +/** +* A device represents a E2EE capable client of an user. +*/ +export class Device { + free(): void; +/** +* Request an interactive verification with this device. +* +* Returns a Promise for a 2-element array `[VerificationRequest, +* ToDeviceRequest]`. +* @param {Array | undefined} methods +* @returns {Promise} +*/ + requestVerification(methods?: Array): Promise; +/** +* Is this device considered to be verified. +* +* This method returns true if either the `is_locally_trusted` +* method returns `true` or if the `is_cross_signing_trusted` +* method returns `true`. +* @returns {boolean} +*/ + isVerified(): boolean; +/** +* Is this device considered to be verified using cross signing. +* @returns {boolean} +*/ + isCrossSigningTrusted(): boolean; +/** +* Is this device cross-signed by its owner? +* @returns {boolean} +*/ + isCrossSignedByOwner(): boolean; +/** +* Set the local trust state of the device to the given state. +* +* This won’t affect any cross signing trust state, this only +* sets a flag marking to have the given trust state. +* +* `trust_state` represents the new trust state that should be +* set for the device. +* @param {number} local_state +* @returns {Promise} +*/ + setLocalTrust(local_state: number): Promise; +/** +* Get the key of the given key algorithm belonging to this device. +* @param {number} algorithm +* @returns {DeviceKey | undefined} +*/ + getKey(algorithm: number): DeviceKey | undefined; +/** +* Is the device locally marked as trusted? +* @returns {boolean} +*/ + isLocallyTrusted(): boolean; +/** +* Is the device locally marked as blacklisted? +* +* Blacklisted devices won’t receive any group sessions. +* @returns {boolean} +*/ + isBlacklisted(): boolean; +/** +* Is the device deleted? +* @returns {boolean} +*/ + isDeleted(): boolean; +/** +* Timestamp representing the first time this device has been seen (in +* milliseconds). +* @returns {bigint} +*/ + firstTimeSeen(): bigint; +/** +* Mark this device as verified. +* Works only if the device is owned by the current user. +* +* Returns a signature upload request that needs to be sent out. +* @returns {Promise} +*/ + verify(): Promise; +/** +* Get the list of algorithms this device supports. +* +* Returns `Array`. +*/ + readonly algorithms: Array; +/** +* Get the Curve25519 key of the given device. +*/ + readonly curve25519Key: Curve25519PublicKey | undefined; +/** +* The unique ID of the device. +*/ + readonly deviceId: DeviceId; +/** +* Get the human readable name of the device. +*/ + readonly displayName: string | undefined; +/** +* Get the Ed25519 key of the given device. +*/ + readonly ed25519Key: Ed25519PublicKey | undefined; +/** +* Get a map containing all the device keys. +*/ + readonly keys: Map; +/** +* Get the trust state of the device. +*/ + readonly localTrustState: number; +/** +* Get a map containing all the device signatures. +*/ + readonly signatures: Signatures; +/** +* The user ID of the device owner. +*/ + readonly userId: UserId; +} +/** +* A Matrix key ID. +* +* Device identifiers in Matrix are completely opaque character +* sequences. This type is provided simply for its semantic value. +*/ +export class DeviceId { + free(): void; +/** +* Create a new `DeviceId`. +* @param {string} id +*/ + constructor(id: string); +/** +* Return the device ID as a string. +* @returns {string} +*/ + toString(): string; +} +/** +* An enum over the different key types a device can have. +* +* Currently devices have a curve25519 and ed25519 keypair. The keys +* transport format is a base64 encoded string, any unknown key type +* will be left as such a string. +*/ +export class DeviceKey { + free(): void; +/** +* Convert the `DeviceKey` into a base64 encoded string. +* @returns {string} +*/ + toBase64(): string; +/** +* Get the value associated to the `Curve25519` device key name. +*/ + readonly curve25519: Curve25519PublicKey | undefined; +/** +* Get the value associated to the `Ed25519` device key name. +*/ + readonly ed25519: Ed25519PublicKey | undefined; +/** +* Get the name of the device key. +*/ + readonly name: number; +/** +* Get the value associated to the `Unknown` device key name. +*/ + readonly unknown: string | undefined; +} +/** +* The basic key algorithms in the specification. +*/ +export class DeviceKeyAlgorithm { + free(): void; +/** +* Return the device key algorithm as a string. +* @returns {string} +*/ + toString(): string; +/** +* Read the device key algorithm's name. If the name is +* `Unknown`, one may be interested by the `to_string` method to +* read the original name. +*/ + readonly name: number; +} +/** +* A Matrix device key ID. +* +* A key algorithm and a device ID, combined with a ‘:’. +*/ +export class DeviceKeyId { + free(): void; +/** +* Parse/validate and create a new `DeviceKeyId`. +* @param {string} id +*/ + constructor(id: string); +/** +* Return the device key ID as a string. +* @returns {string} +*/ + toString(): string; +/** +* Returns key algorithm of the device key ID. +*/ + readonly algorithm: DeviceKeyAlgorithm; +/** +* Returns device ID of the device key ID. +*/ + readonly deviceId: DeviceId; +} +/** +* Information on E2E device updates. +*/ +export class DeviceLists { + free(): void; +/** +* Create an empty `DeviceLists`. +* +* `changed` and `left` must be an array of `UserId`. +* @param {Array | undefined} changed +* @param {Array | undefined} left +*/ + constructor(changed?: Array, left?: Array); +/** +* Returns true if there are no device list updates. +* @returns {boolean} +*/ + isEmpty(): boolean; +/** +* List of users who have updated their device identity keys or +* who now share an encrypted room with the client since the +* previous sync +*/ + readonly changed: Array; +/** +* List of users who no longer share encrypted rooms since the +* previous sync response. +*/ + readonly left: Array; +} +/** +* An Ed25519 public key, used to verify digital signatures. +*/ +export class Ed25519PublicKey { + free(): void; +/** +* Serialize an Ed25519 public key to an unpadded base64 +* representation. +* @returns {string} +*/ + toBase64(): string; +/** +* The number of bytes an Ed25519 public key has. +*/ + readonly length: number; +} +/** +* An Ed25519 digital signature, can be used to verify the +* authenticity of a message. +*/ +export class Ed25519Signature { + free(): void; +/** +* Try to create an Ed25519 signature from an unpadded base64 +* representation. +* @param {string} signature +*/ + constructor(signature: string); +/** +* Serialize a Ed25519 signature to an unpadded base64 +* representation. +* @returns {string} +*/ + toBase64(): string; +} +/** +* An emoji that is used for interactive verification using a short +* auth string. +* +* This will contain a single emoji and description from the list of +* emojis from [the specification]. +* +* [the specification]: https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji +*/ +export class Emoji { + free(): void; +/** +* The description of the emoji, for example ‘Dog’. +*/ + readonly description: string; +/** +* The emoji symbol that represents a part of the short auth +* string, for example: 🐶 +*/ + readonly symbol: string; +} +/** +* An encrypted attachment, usually created from `Attachment.encrypt`. +*/ +export class EncryptedAttachment { + free(): void; +/** +* Create a new encrypted attachment manually. +* +* It needs encrypted data, stored in an `Uint8Array`, and a +* [media encryption +* information](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/struct.MediaEncryptionInfo.html), +* as a JSON-encoded string. +* +* The media encryption information aren't stored as a string: +* they are parsed, validated and fully deserialized. +* +* See [the specification to learn +* more](https://spec.matrix.org/unstable/client-server-api/#extensions-to-mroommessage-msgtypes). +* @param {Uint8Array} encrypted_data +* @param {string} media_encryption_info +*/ + constructor(encrypted_data: Uint8Array, media_encryption_info: string); +/** +* The actual encrypted data. +* +* **Warning**: It returns a **copy** of the entire encrypted +* data; be nice with your memory. +*/ + readonly encryptedData: Uint8Array; +/** +* Check whether the media encryption info has been consumed by +* `Attachment.decrypt` already. +*/ + readonly hasMediaEncryptionInfoBeenConsumed: boolean; +/** +* Return the media encryption info as a JSON-encoded string. The +* structure is fully valid. +* +* If the media encryption info have been consumed already, it +* will return `null`. +*/ + readonly mediaEncryptionInfo: string | undefined; +} +/** +* Struct containing information on how an event was decrypted. +*/ +export class EncryptionInfo { + free(): void; +/** +* The verification state of the device that sent us the event. +* Note this is the state of the device at the time of +* decryption. It may change in the future if a device gets +* verified or deleted. +* +* # Arguments +* +* * `strict` - whether to enable "strict mode" verification. In non-strict +* mode, unverified users are given no shield, and keys that have been +* forwarded or restored from an insecure backup are given a grey shield +* (both get a red shield in strict mode). +* @param {boolean} strict +* @returns {ShieldState} +*/ + shieldState(strict: boolean): ShieldState; +/** +* The user ID of the event sender. Note this is untrusted data +* unless `verification_state` is also trusted. +*/ + readonly sender: UserId; +/** +* The signing Ed25519 key that created the megolm key that +* was used to decrypt this session. +*/ + readonly senderClaimedEd25519Key: string | undefined; +/** +* The Curve25519 key of the device that created the megolm +* decryption key originally. +*/ + readonly senderCurve25519Key: string | undefined; +/** +* The device ID of the device that sent us the event. Note this +* is untrusted data unless `verification_state` is also +* trusted. +*/ + readonly senderDevice: DeviceId | undefined; +} +/** +* Settings for an encrypted room. +* +* This determines the algorithm and rotation periods of a group +* session. +*/ +export class EncryptionSettings { + free(): void; +/** +* Create a new `EncryptionSettings` with default values. +*/ + constructor(); +/** +* The encryption algorithm that should be used in the room. +*/ + algorithm: number; +/** +* The history visibility of the room when the session was +* created. +*/ + historyVisibility: number; +/** +* Should untrusted devices receive the room key, or should they be +* excluded from the conversation. +*/ + onlyAllowTrustedDevices: boolean; +/** +* How long the session should be used before changing it, +* expressed in microseconds. +*/ + rotationPeriod: bigint; +/** +* How many messages should be sent before changing the session. +*/ + rotationPeriodMessages: bigint; +} +/** +* A Matrix [event ID]. +* +* An `EventId` is generated randomly or converted from a string +* slice, and can be converted back into a string as needed. +* +* [event ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids +*/ +export class EventId { + free(): void; +/** +* Parse/validate and create a new `EventId`. +* @param {string} id +*/ + constructor(id: string); +/** +* Return the event ID as a string. +* @returns {string} +*/ + toString(): string; +/** +* Returns the event's localpart. +*/ + readonly localpart: string; +/** +* Returns the server name of the event ID. +*/ + readonly serverName: ServerName | undefined; +} +/** +* Struct holding the two public identity keys of an account. +*/ +export class IdentityKeys { + free(): void; +/** +* The Curve25519 public key, used for establish shared secrets. +*/ + curve25519: Curve25519PublicKey; +/** +* The Ed25519 public key, used for signing. +*/ + ed25519: Ed25519PublicKey; +} +/** +* Inbound group session. +* +* Inbound group sessions are used to exchange room messages between a group of +* participants. Inbound group sessions are used to decrypt the room messages. +*/ +export class InboundGroupSession { + free(): void; +/** +* Has the session been imported from a file or server-side backup? As +* opposed to being directly received as an `m.room_key` event. +* @returns {boolean} +*/ + hasBeenImported(): boolean; +/** +* The room where this session is used in. +*/ + readonly roomId: RoomId; +/** +* The Curve25519 key of the sender of this session, as a +* [Curve25519PublicKey]. +*/ + readonly senderKey: Curve25519PublicKey; +/** +* Returns the unique identifier for this session. +*/ + readonly sessionId: string; +} +/** +* A request that will back up a batch of room keys to the server +* ([specification]). +* +* [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3room_keyskeys +*/ +export class KeysBackupRequest { + free(): void; +/** +* Create a new `KeysBackupRequest`. +* @param {string} id +* @param {string} body +* @param {string} version +*/ + constructor(id: string, body: string, version: string); +/** +* A JSON-encoded string containing the rest of the payload: `rooms`. +* +* It represents the body of the HTTP request. +*/ + readonly body: string; +/** +* The request ID. +*/ + readonly id: string | undefined; +/** +* Get its request type. +*/ + readonly type: number; +/** +* The backup version that these room keys should be part of. +*/ + readonly version: string; +} +/** +* Data for a request to the `/keys/claim` API endpoint +* ([specification]). +* +* Claims one-time keys that can be used to establish 1-to-1 E2EE +* sessions. +* +* [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysclaim +*/ +export class KeysClaimRequest { + free(): void; +/** +* Create a new `KeysClaimRequest`. +* @param {string} id +* @param {string} body +*/ + constructor(id: string, body: string); +/** +* A JSON-encoded string containing the rest of the payload: `timeout`, +* `one_time_keys`. +* +* It represents the body of the HTTP request. +*/ + readonly body: string; +/** +* The request ID. +*/ + readonly id: string | undefined; +/** +* Get its request type. +*/ + readonly type: number; +} +/** +* Data for a request to the `/keys/query` API endpoint +* ([specification]). +* +* Returns the current devices and identity keys for the given users. +* +* [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysquery +*/ +export class KeysQueryRequest { + free(): void; +/** +* Create a new `KeysQueryRequest`. +* @param {string} id +* @param {string} body +*/ + constructor(id: string, body: string); +/** +* A JSON-encoded string containing the rest of the payload: `timeout`, +* `device_keys`, `token`. +* +* It represents the body of the HTTP request. +*/ + readonly body: string; +/** +* The request ID. +*/ + readonly id: string | undefined; +/** +* Get its request type. +*/ + readonly type: number; +} +/** +* Outgoing Requests * +* Data for a request to the `/keys/upload` API endpoint +* ([specification]). +* +* Publishes end-to-end encryption keys for the device. +* +* [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysupload +*/ +export class KeysUploadRequest { + free(): void; +/** +* Create a new `KeysUploadRequest`. +* @param {string} id +* @param {string} body +*/ + constructor(id: string, body: string); +/** +* A JSON-encoded string containing the rest of the payload: `device_keys`, +* `one_time_keys`, `fallback_keys`. +* +* It represents the body of the HTTP request. +*/ + readonly body: string; +/** +* The request ID. +*/ + readonly id: string | undefined; +/** +* Get its request type. +*/ + readonly type: number; +} +/** +* Represents a signature that is either valid _or_ that could not be +* decoded. +*/ +export class MaybeSignature { + free(): void; +/** +* Check whether the signature has been successfully decoded. +* @returns {boolean} +*/ + isValid(): boolean; +/** +* Check whether the signature could not be successfully decoded. +* @returns {boolean} +*/ + isInvalid(): boolean; +/** +* The base64 encoded string that is claimed to contain a +* signature but could not be decoded, if any. +*/ + readonly invalidSignatureSource: string | undefined; +/** +* The signature, if successfully decoded. +*/ + readonly signature: Signature | undefined; +} +/** +* Js Decryption error with code. +*/ +export class MegolmDecryptionError { + free(): void; +/** +* Description code for the error. See `DecryptionErrorCode` +*/ + readonly code: number; +/** +* detailed description +*/ + readonly description: string; +/** +* Witheld code if any. Only for `UnknownMessageIndex` error code +*/ + readonly maybe_withheld: string | undefined; +} +/** +* The public part of the backup key. +*/ +export class MegolmV1BackupKey { + free(): void; +/** +* Get the full name of the backup algorithm this backup key supports. +*/ + readonly algorithm: string; +/** +* The actual base64 encoded public key. +*/ + readonly publicKeyBase64: string; +} +/** +* State machine implementation of the Olm/Megolm encryption protocol +* used for Matrix end to end encryption. +*/ +export class OlmMachine { + free(): void; +/** +* Constructor will always fail. To create a new `OlmMachine`, please use +* the `initialize` method. +* +* Why this pattern? `initialize` returns a `Promise`. Returning a +*/ + constructor(); +/** +* Create a new `OlmMachine`. +* +* The created machine will keep the encryption keys either in a IndexedDB +* based store, or in a memory store and once the objects is dropped, +* the keys will be lost. +* +* # Arguments +* +* * `user_id` - represents the unique ID of the user that owns this +* machine. +* +* * `device_id` - represents the unique ID of the device +* that owns this machine. +* +* * `store_name` - The name that should be used to open the IndexedDB +* based database. If this isn't provided, a memory-only store will be +* used. *Note* the memory-only store will lose your E2EE keys when the +* `OlmMachine` gets dropped. +* +* * `store_passphrase` - The passphrase that should be used to encrypt the +* IndexedDB based +* @param {UserId} user_id +* @param {DeviceId} device_id +* @param {string | undefined} store_name +* @param {string | undefined} store_passphrase +* @returns {Promise} +*/ + static initialize(user_id: UserId, device_id: DeviceId, store_name?: string, store_passphrase?: string): Promise; +/** +* Get the list of users whose devices we are currently tracking. +* +* A user can be marked for tracking using the +* [`update_tracked_users`](#method.update_tracked_users) method. +* +* Returns a `Set`. +* @returns {Promise} +*/ + trackedUsers(): Promise; +/** +* Update the list of tracked users. +* +* The OlmMachine maintains a list of users whose devices we are keeping +* track of: these are known as "tracked users". These must be users +* that we share a room with, so that the server sends us updates for +* their device lists. +* +* # Arguments +* +* * `users` - An array of user ids that should be added to the list of +* tracked users +* +* Any users that hadn't been seen before will be flagged for a key query +* immediately, and whenever `receive_sync_changes` receives a +* "changed" notification for that user in the future. +* +* Users that were already in the list are unaffected. +* @param {Array} users +* @returns {Promise} +*/ + updateTrackedUsers(users: Array): Promise; +/** +* Handle to-device events and one-time key counts from a sync +* response. +* +* This will decrypt and handle to-device events returning the +* decrypted versions of them. +* +* To decrypt an event from the room timeline call +* `decrypt_room_event`. +* +* # Arguments +* +* * `to_device_events`: the JSON-encoded to-device evens from the `/sync` +* response +* * `changed_devices`: the mapping of changed and left devices, from the +* `/sync` response +* * `one_time_keys_counts`: The number of one-time keys on the server, +* from the `/sync` response. A `Map` from string (encryption algorithm) +* to number (number of keys). +* * `unused_fallback_keys`: Optionally, a `Set` of unused fallback keys on +* the server, from the `/sync` response. If this is set, it is used to +* determine if new fallback keys should be uploaded. +* +* # Returns +* +* A list of JSON strings, containing the decrypted to-device events. +* @param {string} to_device_events +* @param {DeviceLists} changed_devices +* @param {Map} one_time_keys_counts +* @param {Set | undefined} unused_fallback_keys +* @returns {Promise} +*/ + receiveSyncChanges(to_device_events: string, changed_devices: DeviceLists, one_time_keys_counts: Map, unused_fallback_keys?: Set): Promise; +/** +* Get the outgoing requests that need to be sent out. +* +* This returns a list of `JsValue` to represent either: +* * `KeysUploadRequest`, +* * `KeysQueryRequest`, +* * `KeysClaimRequest`, +* * `ToDeviceRequest`, +* * `SignatureUploadRequest`, +* * `RoomMessageRequest` or +* * `KeysBackupRequest`. +* +* Those requests need to be sent out to the server and the +* responses need to be passed back to the state machine using +* `mark_request_as_sent`. +* @returns {Promise} +*/ + outgoingRequests(): Promise; +/** +* Mark the request with the given request ID as sent (see +* `outgoing_requests`). +* +* Arguments are: +* +* * `request_id` represents the unique ID of the request that was sent +* out. This is needed to couple the response with the now sent out +* request. +* * `response_type` represents the type of the request that was sent out. +* * `response` represents the response that was received from the server +* after the outgoing request was sent out. +* @param {string} request_id +* @param {number} request_type +* @param {string} response +* @returns {Promise} +*/ + markRequestAsSent(request_id: string, request_type: number, response: string): Promise; +/** +* Encrypt a room message for the given room. +* +* Beware that a room key needs to be shared before this +* method can be called using the `share_room_key` method. +* +* `room_id` is the ID of the room for which the message should +* be encrypted. `event_type` is the type of the event. `content` +* is the plaintext content of the message that should be +* encrypted. +* +* # Panics +* +* Panics if a group session for the given room wasn't shared +* beforehand. +* @param {RoomId} room_id +* @param {string} event_type +* @param {string} content +* @returns {Promise} +*/ + encryptRoomEvent(room_id: RoomId, event_type: string, content: string): Promise; +/** +* Decrypt an event from a room timeline. +* +* # Arguments +* +* * `event`, the event that should be decrypted. +* * `room_id`, the ID of the room where the event was sent to. +* +* # Returns +* +* A `Promise` which resolves to a {@link DecryptedRoomEvent} instance, or +* rejects with a {@link MegolmDecryptionError} instance. +* @param {string} event +* @param {RoomId} room_id +* @returns {Promise} +*/ + decryptRoomEvent(event: string, room_id: RoomId): Promise; +/** +* Get encryption info for a decrypted timeline event. +* +* This recalculates the `EncryptionInfo` data that is returned by +* `decryptRoomEvent`, based on the current +* verification status of the sender, etc. +* +* Returns an error for an unencrypted event. +* +* # Arguments +* +* * `event` - The event to get information for. +* * `room_id` - The ID of the room where the event was sent to. +* +* # Returns +* +* {@link EncryptionInfo} +* @param {string} event +* @param {RoomId} room_id +* @returns {Promise} +*/ + getRoomEventEncryptionInfo(event: string, room_id: RoomId): Promise; +/** +* Get the status of the private cross signing keys. +* +* This can be used to check which private cross signing keys we +* have stored locally. +* @returns {Promise} +*/ + crossSigningStatus(): Promise; +/** +* Export all the private cross signing keys we have. +* +* The export will contain the seeds for the ed25519 keys as +* unpadded base64 encoded strings. +* +* Returns `null` if we don’t have any private cross signing keys; +* otherwise returns a `CrossSigningKeyExport`. +* @returns {Promise} +*/ + exportCrossSigningKeys(): Promise; +/** +* Import our private cross signing keys. +* +* The keys should be provided as unpadded-base64-encoded strings. +* +* Returns a `CrossSigningStatus`. +* @param {string | undefined} master_key +* @param {string | undefined} self_signing_key +* @param {string | undefined} user_signing_key +* @returns {Promise} +*/ + importCrossSigningKeys(master_key?: string, self_signing_key?: string, user_signing_key?: string): Promise; +/** +* Create a new cross signing identity and get the upload request +* to push the new public keys to the server. +* +* Warning: This will delete any existing cross signing keys that +* might exist on the server and thus will reset the trust +* between all the devices. +* +* Uploading these keys will require user interactive auth. +* +* # Arguments +* +* * `reset`, whether the method should create a new identity or use the +* existing one during the request. If set to true, the request will +* attempt to upload a new identity. If set to false, the request will +* attempt to upload the existing identity. Since the uploading process +* requires user interactive authentication, which involves sending out +* the same request multiple times, setting this argument to false +* enables you to reuse the same request. +* +* Returns an `Array` of `OutgoingRequest`s +* @param {boolean} reset +* @returns {Promise} +*/ + bootstrapCrossSigning(reset: boolean): Promise; +/** +* Get the cross signing user identity of a user. +* +* Returns a promise for an `OwnUserIdentity`, a `UserIdentity`, or +* `undefined`. +* @param {UserId} user_id +* @returns {Promise} +*/ + getIdentity(user_id: UserId): Promise; +/** +* Sign the given message using our device key and if available +* cross-signing master key. +* @param {string} message +* @returns {Promise} +*/ + sign(message: string): Promise; +/** +* Invalidate the currently active outbound group session for the +* given room. +* +* Returns true if a session was invalidated, false if there was +* no session to invalidate. +* @param {RoomId} room_id +* @returns {Promise} +*/ + invalidateGroupSession(room_id: RoomId): Promise; +/** +* Get to-device requests to share a room key with users in a room. +* +* `room_id` is the room ID. `users` is an array of `UserId` +* objects. `encryption_settings` are an `EncryptionSettings` +* object. +* +* Returns an array of `ToDeviceRequest`s. +* @param {RoomId} room_id +* @param {Array} users +* @param {EncryptionSettings} encryption_settings +* @returns {Promise} +*/ + shareRoomKey(room_id: RoomId, users: Array, encryption_settings: EncryptionSettings): Promise; +/** +* Generate an "out-of-band" key query request for the given set of users. +* +* This can be useful if we need the results from `getIdentity` or +* `getUserDevices` to be as up-to-date as possible. +* +* Returns a `KeysQueryRequest` object. The response of the request should +* be passed to the `OlmMachine` with the `mark_request_as_sent`. +* @param {Array} users +* @returns {KeysQueryRequest} +*/ + queryKeysForUsers(users: Array): KeysQueryRequest; +/** +* Get the a key claiming request for the user/device pairs that +* we are missing Olm sessions for. +* +* Returns `null` if no key claiming request needs to be sent +* out, otherwise it returns a `KeysClaimRequest` object. +* +* Sessions need to be established between devices so group +* sessions for a room can be shared with them. +* +* This should be called every time a group session needs to be +* shared as well as between sync calls. After a sync some +* devices may request room keys without us having a valid Olm +* session with them, making it impossible to server the room key +* request, thus it’s necessary to check for missing sessions +* between sync as well. +* +* Note: Care should be taken that only one such request at a +* time is in flight, e.g. using a lock. +* +* The response of a successful key claiming requests needs to be +* passed to the `OlmMachine` with the `mark_request_as_sent`. +* +* `users` represents the list of users that we should check if +* we lack a session with one of their devices. This can be an +* empty iterator when calling this method between sync requests. +* @param {Array} users +* @returns {Promise} +*/ + getMissingSessions(users: Array): Promise; +/** +* Get a map holding all the devices of a user. +* +* `user_id` represents the unique ID of the user that the +* devices belong to. +* @param {UserId} user_id +* @returns {Promise} +*/ + getUserDevices(user_id: UserId): Promise; +/** +* Get a specific device of a user if one is found and the crypto store +* didn't throw an error. +* +* `user_id` represents the unique ID of the user that the +* identity belongs to. `device_id` represents the unique ID of +* the device. +* @param {UserId} user_id +* @param {DeviceId} device_id +* @returns {Promise} +*/ + getDevice(user_id: UserId, device_id: DeviceId): Promise; +/** +* Get a verification object for the given user ID with the given +* flow ID (a to-device request ID if the verification has been +* requested by a to-device request, or a room event ID if the +* verification has been requested by a room event). +* +* It returns a “`Verification` object”, which is either a `Sas` +* or `Qr` object. +* @param {UserId} user_id +* @param {string} flow_id +* @returns {any} +*/ + getVerification(user_id: UserId, flow_id: string): any; +/** +* Get a verification request object with the given flow ID. +* @param {UserId} user_id +* @param {string} flow_id +* @returns {VerificationRequest | undefined} +*/ + getVerificationRequest(user_id: UserId, flow_id: string): VerificationRequest | undefined; +/** +* Get all the verification requests of a given user. +* @param {UserId} user_id +* @returns {Array} +*/ + getVerificationRequests(user_id: UserId): Array; +/** +* Receive a verification event. +* +* This method can be used to pass verification events that are happening +* in rooms to the `OlmMachine`. The event should be in the decrypted form. +* @param {string} event +* @param {RoomId} room_id +* @returns {Promise} +*/ + receiveVerificationEvent(event: string, room_id: RoomId): Promise; +/** +* Export the keys that match the given predicate. +* +* `predicate` is a closure that will be called for every known +* `InboundGroupSession`, which represents a room key. If the closure +* returns `true`, the `InboundGroupSession` will be included in the +* export, otherwise it won't. +* @param {Function} predicate +* @returns {Promise} +*/ + exportRoomKeys(predicate: Function): Promise; +/** +* Import the given room keys into our store. +* +* `exported_keys` is a list of previously exported keys that should be +* imported into our store. If we already have a better version of a key, +* the key will _not_ be imported. +* +* `progress_listener` is a closure that takes 2 arguments: `progress` and +* `total`, and returns nothing. +* @param {string} exported_room_keys +* @param {Function} progress_listener +* @returns {Promise} +*/ + importRoomKeys(exported_room_keys: string, progress_listener: Function): Promise; +/** +* Store the backup decryption key in the crypto store. +* +* This is useful if the client wants to support gossiping of the backup +* key. +* +* Returns `Promise`. +* @param {BackupDecryptionKey} decryption_key +* @param {string} version +* @returns {Promise} +*/ + saveBackupDecryptionKey(decryption_key: BackupDecryptionKey, version: string): Promise; +/** +* Get the backup keys we have saved in our store. +* Returns a `Promise` for {@link BackupKeys}. +* @returns {Promise} +*/ + getBackupKeys(): Promise; +/** +* Check if the given backup has been verified by us or by another of our +* devices that we trust. +* +* The `backup_info` should be a Javascript object with the following +* format: +* +* ```json +* { +* "algorithm": "m.megolm_backup.v1.curve25519-aes-sha2", +* "auth_data": { +* "public_key":"XjhWTCjW7l59pbfx9tlCBQolfnIQWARoKOzjTOPSlWM", +* "signatures": {} +* } +* } +* ``` +* +* Returns a {@link SignatureVerification} object. +* @param {any} backup_info +* @returns {Promise} +*/ + verifyBackup(backup_info: any): Promise; +/** +* Activate the given backup key to be used with the given backup version. +* +* **Warning**: The caller needs to make sure that the given `BackupKey` is +* trusted, otherwise we might be encrypting room keys that a malicious +* party could decrypt. +* +* The {@link #verifyBackup} method can be used to do so. +* +* Returns `Promise`. +* @param {string} public_key_base_64 +* @param {string} version +* @returns {Promise} +*/ + enableBackupV1(public_key_base_64: string, version: string): Promise; +/** +* Are we able to encrypt room keys. +* +* This returns true if we have an active `BackupKey` and backup version +* registered with the state machine. +* +* Returns `Promise`. +* @returns {Promise} +*/ + isBackupEnabled(): Promise; +/** +* Disable and reset our backup state. +* +* This will remove any pending backup request, remove the backup key and +* reset the backup state of each room key we have. +* +* Returns `Promise`. +* @returns {Promise} +*/ + disableBackup(): Promise; +/** +* Encrypt a batch of room keys and return a request that needs to be sent +* out to backup the room keys. +* +* Returns an optional {@link KeysBackupRequest}. +* @returns {Promise} +*/ + backupRoomKeys(): Promise; +/** +* Get the number of backed up room keys and the total number of room keys. +* Returns a {@link RoomKeyCounts}. +* @returns {Promise} +*/ + roomKeyCounts(): Promise; +/** +* Encrypt the list of exported room keys using the given passphrase. +* +* `exported_room_keys` is a list of sessions that should be encrypted +* (it's generally returned by `export_room_keys`). `passphrase` is the +* passphrase that will be used to encrypt the exported room keys. And +* `rounds` is the number of rounds that should be used for the key +* derivation when the passphrase gets turned into an AES key. More rounds +* are increasingly computationnally intensive and as such help against +* brute-force attacks. Should be at least `10_000`, while values in the +* `100_000` ranges should be preferred. +* @param {string} exported_room_keys +* @param {string} passphrase +* @param {number} rounds +* @returns {string} +*/ + static encryptExportedRoomKeys(exported_room_keys: string, passphrase: string, rounds: number): string; +/** +* Try to decrypt a reader into a list of exported room keys. +* +* `encrypted_exported_room_keys` is the result from +* `encrypt_exported_room_keys`. `passphrase` is the passphrase that was +* used when calling `encrypt_exported_room_keys`. +* @param {string} encrypted_exported_room_keys +* @param {string} passphrase +* @returns {string} +*/ + static decryptExportedRoomKeys(encrypted_exported_room_keys: string, passphrase: string): string; +/** +* Register a callback which will be called whenever there is an update to +* a room key. +* +* `callback` should be a function that takes a single argument (an array +* of {@link RoomKeyInfo}) and returns a Promise. +* @param {Function} callback +* @returns {Promise} +*/ + registerRoomKeyUpdatedCallback(callback: Function): Promise; +/** +* Register a callback which will be called whenever there is an update to +* a user identity. +* +* `callback` should be a function that takes a single argument (a {@link +* UserId}) and returns a Promise. +* @param {Function} callback +* @returns {Promise} +*/ + registerUserIdentityUpdatedCallback(callback: Function): Promise; +/** +* Shut down the `OlmMachine`. +* +* The `OlmMachine` cannot be used after this method has been called. +* +* All associated resources will be closed too, like IndexedDB +* connections. +*/ + close(): void; +/** +* The unique device ID that identifies this `OlmMachine`. +*/ + readonly deviceId: DeviceId; +/** +* Get the display name of our own device. +*/ + readonly displayName: Promise; +/** +* Get the public parts of our Olm identity keys. +*/ + readonly identityKeys: IdentityKeys; +/** +* The unique user ID that owns this `OlmMachine` instance. +*/ + readonly userId: UserId; +} +/** +* Struct representing a cross signing identity of a user. +* +* This is the user identity of a user that is our own. +*/ +export class OwnUserIdentity { + free(): void; +/** +* Is this user identity verified? +* @returns {boolean} +*/ + isVerified(): boolean; +/** +* Mark our user identity as verified. +* +* This will mark the identity locally as verified and sign it with our own +* device. +* +* Returns a signature upload request that needs to be sent out. +* @returns {Promise} +*/ + verify(): Promise; +/** +* Send a verification request to our other devices. +* @param {Array | undefined} methods +* @returns {Promise} +*/ + requestVerification(methods?: Array): Promise; +/** +* Does our user identity trust our own device, i.e. have we signed our own +* device keys with our self-signing key? +* @returns {Promise} +*/ + trustsOurOwnDevice(): Promise; +/** +* Get the master key of the identity. +*/ + readonly masterKey: string; +/** +* Get the self-signing key of the identity. +*/ + readonly selfSigningKey: string; +/** +* Get the user-signing key of the identity, this is only present for our +* own user identity.. +*/ + readonly userSigningKey: string; +} +/** +* QR code based verification. +*/ +export class Qr { + free(): void; +/** +* Get the current state of this request. +* +* Returns a `QrState`. +* @returns {number} +*/ + state(): number; +/** +* Has the QR verification been scanned by the other side. +* +* When the verification object is in this state it’s required +* that the user confirms that the other side has scanned the QR +* code. +* @returns {boolean} +*/ + hasBeenScanned(): boolean; +/** +* Has the scanning of the QR code been confirmed by us? +* @returns {boolean} +*/ + hasBeenConfirmed(): boolean; +/** +* Did we initiate the verification request? +* @returns {boolean} +*/ + weStarted(): boolean; +/** +* Get info about the cancellation if the verification flow has +* been cancelled. +* @returns {CancelInfo | undefined} +*/ + cancelInfo(): CancelInfo | undefined; +/** +* Has the verification flow completed? +* @returns {boolean} +*/ + isDone(): boolean; +/** +* Has the verification flow been cancelled? +* @returns {boolean} +*/ + isCancelled(): boolean; +/** +* Is this a verification that is verifying one of our own devices? +* @returns {boolean} +*/ + isSelfVerification(): boolean; +/** +* Have we successfully scanned the QR code and are able to send +* a reciprocation event? +* @returns {boolean} +*/ + reciprocated(): boolean; +/** +* Generate a QR code object that is representing this +* verification flow. +* +* The QrCode can then be rendered as an image or as an unicode +* string. +* +* The `to_bytes` method can be used to instead output the raw +* bytes that should be encoded as a QR code. +* +* Returns a `QrCode`. +* @returns {QrCode} +*/ + toQrCode(): QrCode; +/** +* Generate a the raw bytes that should be encoded as a QR code +* is representing this verification flow. +* +* The `to_qr_code` method can be used to instead output a QrCode +* object that can be rendered. +* @returns {Uint8ClampedArray} +*/ + toBytes(): Uint8ClampedArray; +/** +* Notify the other side that we have successfully scanned the QR +* code and that the QR verification flow can start. +* +* This will return some OutgoingContent if the object is in the +* correct state to start the verification flow, otherwise None. +* @returns {any} +*/ + reciprocate(): any; +/** +* Confirm that the other side has scanned our QR code. +* +* Returns either an `OutgoingRequest` which should be sent out, or +* `undefined` if the verification is already confirmed. +* @returns {any} +*/ + confirmScanning(): any; +/** +* Cancel the verification flow. +* +* Returns either an `OutgoingRequest` which should be sent out, or +* `undefined` if the verification is already cancelled. +* @returns {any} +*/ + cancel(): any; +/** +* Cancel the verification. +* +* This cancels the verification with given code. +* +* Returns either an `OutgoingRequest` which should be sent out, or +* `undefined` if the verification is already cancelled. +* @param {number} code +* @returns {any} +*/ + cancelWithCode(code: number): any; +/** +* Register a callback which will be called whenever there is an update to +* the request +* +* The `callback` is called with no parameters. +* @param {Function} callback +*/ + registerChangesCallback(callback: Function): void; +/** +* Get the unique ID that identifies this QR verification flow, +* be either a to-device request ID or a room event ID. +*/ + readonly flowId: string; +/** +* Get the device ID of the other side. +*/ + readonly otherDeviceId: DeviceId; +/** +* Get the user id of the other user that is participating in +* this verification flow. +*/ + readonly otherUserId: UserId; +/** +* Get the room id if the verification is happening inside a +* room. +*/ + readonly roomId: RoomId | undefined; +/** +* Get our own user ID. +*/ + readonly userId: UserId; +} +/** +* A QR code. +*/ +export class QrCode { + free(): void; +/** +* Render the QR code into a `Uint8ClampedArray` where 1 represents a +* dark pixel and 0 a white pixel. +* @returns {Uint8ClampedArray} +*/ + renderIntoBuffer(): Uint8ClampedArray; +} +/** +* A scanned QR code. +*/ +export class QrCodeScan { + free(): void; +/** +* Parse the decoded payload of a QR code in byte slice form. +* +* This method is useful if you would like to do your own custom QR code +* decoding. +* @param {Uint8ClampedArray} buffer +* @returns {QrCodeScan} +*/ + static fromBytes(buffer: Uint8ClampedArray): QrCodeScan; +} +/** +* A Matrix [room ID]. +* +* [room ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids +*/ +export class RoomId { + free(): void; +/** +* Parse/validate and create a new `RoomId`. +* @param {string} id +*/ + constructor(id: string); +/** +* Return the room ID as a string. +* @returns {string} +*/ + toString(): string; +/** +* Returns the user's localpart. +*/ + readonly localpart: string; +/** +* Returns the server name of the room ID. +*/ + readonly serverName: ServerName; +} +/** +* Struct holding the number of room keys we have. +*/ +export class RoomKeyCounts { + free(): void; +/** +* The number of backed up room keys. +*/ + backedUp: number; +/** +* The total number of room keys. +*/ + total: number; +} +/** +* Information on a room key that has been received or imported. +*/ +export class RoomKeyInfo { + free(): void; +/** +* The {@link EncryptionAlgorithm} that this key is used for. Will be one +* of the `m.megolm.*` algorithms. +*/ + readonly algorithm: number; +/** +* The room where the key is used. +*/ + readonly roomId: RoomId; +/** +* The Curve25519 key of the device which initiated the session originally. +*/ + readonly senderKey: Curve25519PublicKey; +/** +* The ID of the session that the key is for. +*/ + readonly sessionId: string; +} +/** +* A customized owned request type for sending out room messages +* ([specification]). +* +* [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3roomsroomidsendeventtypetxnid +*/ +export class RoomMessageRequest { + free(): void; +/** +* Create a new `RoomMessageRequest`. +* @param {string} id +* @param {string} room_id +* @param {string} txn_id +* @param {string} event_type +* @param {string} content +*/ + constructor(id: string, room_id: string, txn_id: string, event_type: string, content: string); +/** +* A JSON-encoded string containing the message's content. +*/ + readonly body: string; +/** +* A string representing the type of event to be sent. +*/ + readonly event_type: string; +/** +* The request ID. +*/ + readonly id: string | undefined; +/** +* A string representing the room to send the event to. +*/ + readonly room_id: string; +/** +* A string representing the transaction ID for this event. +* +* Clients should generate an ID unique across requests with the same +* access token; it will be used by the server to ensure idempotency of +* requests. +*/ + readonly txn_id: string; +/** +* Get its request type. +*/ + readonly type: number; +} +/** +* Short Authentication String (SAS) verification. +*/ +export class Sas { + free(): void; +/** +* Does this verification flow support displaying emoji for the +* short authentication string? +* @returns {boolean} +*/ + supportsEmoji(): boolean; +/** +* Did this verification flow start from a verification request? +* @returns {boolean} +*/ + startedFromRequest(): boolean; +/** +* Is this a verification that is verifying one of our own +* devices? +* @returns {boolean} +*/ + isSelfVerification(): boolean; +/** +* Have we confirmed that the short auth string matches? +* @returns {boolean} +*/ + haveWeConfirmed(): boolean; +/** +* Has the verification been accepted by both parties? +* @returns {boolean} +*/ + hasBeenAccepted(): boolean; +/** +* Get info about the cancellation if the verification flow has +* been cancelled. +* @returns {CancelInfo | undefined} +*/ + cancelInfo(): CancelInfo | undefined; +/** +* True if we initiated the verification flow (ie, we sent the +* `m.key.verification.request`). +* @returns {boolean} +*/ + weStarted(): boolean; +/** +* Accept the SAS verification. +* +* This does nothing (and returns `undefined`) if the verification was +* already accepted, otherwise it returns an `OutgoingRequest` +* that needs to be sent out. +* @returns {any} +*/ + accept(): any; +/** +* Confirm the SAS verification. +* +* This confirms that the short auth strings match on both sides. +* +* Does nothing if we’re not in a state where we can confirm the +* short auth string. +* +* Returns a `Promise` for an array of `OutgoingRequest`s. +* @returns {Promise} +*/ + confirm(): Promise; +/** +* Cancel the verification. +* +* Returns either an `OutgoingRequest` which should be sent out, or +* `undefined` if the verification is already cancelled. +* @returns {any} +*/ + cancel(): any; +/** +* Cancel the verification. +* +* This cancels the verification with given code. +* +* Returns either an `OutgoingRequest` which should be sent out, or +* `undefined` if the verification is already cancelled. +* @param {number} code +* @returns {any} +*/ + cancelWithCode(code: number): any; +/** +* Has the SAS verification flow timed out? +* @returns {boolean} +*/ + timedOut(): boolean; +/** +* Are we in a state where we can show the short auth string? +* @returns {boolean} +*/ + canBePresented(): boolean; +/** +* Is the SAS flow done? +* @returns {boolean} +*/ + isDone(): boolean; +/** +* Is the SAS flow cancelled? +* @returns {boolean} +*/ + isCancelled(): boolean; +/** +* Get the emoji version of the short auth string. +* +* Returns `undefined` if we can't yet present the short auth string, +* otherwise an array of seven `Emoji` objects. +* @returns {Array | undefined} +*/ + emoji(): Array | undefined; +/** +* Get the index of the emoji representing the short auth string +* +* Returns `undefined` if we can’t yet present the short auth +* string, otherwise seven `u8` numbers in the range from 0 to 63 +* inclusive which can be converted to an emoji using [the +* relevant specification +* entry](https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji). +* @returns {Array | undefined} +*/ + emojiIndex(): Array | undefined; +/** +* Get the decimal version of the short auth string. +* +* Returns None if we can’t yet present the short auth string, +* otherwise a tuple containing three 4-digit integers that +* represent the short auth string. +* @returns {Array | undefined} +*/ + decimals(): Array | undefined; +/** +* Register a callback which will be called whenever there is an update to +* the request. +* +* The `callback` is called with no parameters. +* @param {Function} callback +*/ + registerChangesCallback(callback: Function): void; +/** +* Get our own device ID. +*/ + readonly deviceId: DeviceId; +/** +* Get the unique ID that identifies this SAS verification flow, +* be either a to-device request ID or a room event ID. +*/ + readonly flowId: string; +/** +* Get the device ID of the other side. +*/ + readonly otherDeviceId: DeviceId; +/** +* Get the user id of the other side. +*/ + readonly otherUserId: UserId; +/** +* Get the room ID if the verification is happening inside a +* room. +*/ + readonly roomId: RoomId | undefined; +/** +* Get our own user ID. +*/ + readonly userId: UserId; +} +/** +* A Matrix-spec compliant [server name]. +* +* It consists of a host and an optional port (separated by a colon if +* present). +* +* [server name]: https://spec.matrix.org/v1.2/appendices/#server-name +*/ +export class ServerName { + free(): void; +/** +* Parse/validate and create a new `ServerName`. +* @param {string} name +*/ + constructor(name: string); +/** +* Returns true if and only if the server name is an IPv4 or IPv6 +* address. +* @returns {boolean} +*/ + isIpLiteral(): boolean; +/** +* Returns the host of the server name. +* +* That is: Return the part of the server before `:` or the +* full server name if there is no port. +*/ + readonly host: string; +/** +* Returns the port of the server name if any. +*/ + readonly port: number | undefined; +} +/** +* Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`] +* for more info. +*/ +export class ShieldState { + free(): void; +/** +* The shield color +*/ + color: number; +/** +* Error message that can be displayed as a tooltip +*/ + readonly message: string | undefined; +} +/** +* Represents a potentially decoded signature (but not a validated +* one). +*/ +export class Signature { + free(): void; +/** +* Convert the signature to a base64 encoded string. +* @returns {string} +*/ + toBase64(): string; +/** +* Get the Ed25519 signature, if this is one. +*/ + readonly ed25519: Ed25519Signature | undefined; +} +/** +* Data for a request to the `/keys/signatures/upload` API endpoint +* ([specification]). +* +* Publishes cross-signing signatures for the user. +* +* [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keyssignaturesupload +*/ +export class SignatureUploadRequest { + free(): void; +/** +* Create a new `SignatureUploadRequest`. +* @param {string} id +* @param {string} signed_keys +*/ + constructor(id: string, signed_keys: string); +/** +* A JSON-encoded string containing the payload of the request +* +* It represents the body of the HTTP request. +*/ + readonly body: string; +/** +* The request ID. +*/ + readonly id: string | undefined; +/** +* Get its request type. +*/ + readonly type: number; +} +/** +* The result of a signature verification of a signed JSON object. +*/ +export class SignatureVerification { + free(): void; +/** +* Is the result considered to be trusted? +* +* This tells us if the result has a valid signature from any of the +* following: +* +* * Our own device +* * Our own user identity, provided the identity is trusted as well +* * Any of our own devices, provided the device is trusted as well +* @returns {boolean} +*/ + trusted(): boolean; +/** +* Give the backup signature state from the current device. +* See SignatureState for values +*/ + readonly deviceState: number; +/** +* Give the backup signature state from the current user identity. +* See SignatureState for values +*/ + readonly userState: number; +} +/** +* A collection of `Signature`. +*/ +export class Signatures { + free(): void; +/** +* Creates a new, empty, signatures collection. +*/ + constructor(); +/** +* Add the given signature from the given signer and the given key ID to +* the collection. +* @param {UserId} signer +* @param {DeviceKeyId} key_id +* @param {Ed25519Signature} signature +* @returns {MaybeSignature | undefined} +*/ + addSignature(signer: UserId, key_id: DeviceKeyId, signature: Ed25519Signature): MaybeSignature | undefined; +/** +* Try to find an Ed25519 signature from the given signer with +* the given key ID. +* @param {UserId} signer +* @param {DeviceKeyId} key_id +* @returns {Ed25519Signature | undefined} +*/ + getSignature(signer: UserId, key_id: DeviceKeyId): Ed25519Signature | undefined; +/** +* Get the map of signatures that belong to the given user. +* @param {UserId} signer +* @returns {Map | undefined} +*/ + get(signer: UserId): Map | undefined; +/** +* Remove all the signatures we currently hold. +*/ + clear(): void; +/** +* Do we hold any signatures or is our collection completely +* empty. +* @returns {boolean} +*/ + isEmpty(): boolean; +/** +* Get the json with all signatures +* @returns {string} +*/ + asJSON(): string; +/** +* How many signatures do we currently hold. +*/ + readonly count: number; +} +/** +* Other Requests * +* Request that will publish a cross signing identity. +* +* This uploads the public cross signing key triplet. +*/ +export class SigningKeysUploadRequest { + free(): void; +/** +* Create a new `SigningKeysUploadRequest`. +* @param {string} id +* @param {string} body +*/ + constructor(id: string, body: string); +/** +* A JSON-encoded string containing the rest of the payload: `master_key`, +* `self_signing_key`, `user_signing_key`. +* +* It represents the body of the HTTP request. +*/ + readonly body: string; +/** +* The request ID. +*/ + readonly id: string | undefined; +/** +* Get its request type. +*/ + readonly type: number; +} +/** +* Data for a request to the `/sendToDevice` API endpoint +* ([specification]). +* +* Send an event to a single device or to a group of devices. +* +* [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3sendtodeviceeventtypetxnid +*/ +export class ToDeviceRequest { + free(): void; +/** +* Create a new `ToDeviceRequest`. +* @param {string} id +* @param {string} event_type +* @param {string} txn_id +* @param {string} body +*/ + constructor(id: string, event_type: string, txn_id: string, body: string); +/** +* A JSON-encoded string containing the rest of the payload: `messages`. +* +* It represents the body of the HTTP request. +*/ + readonly body: string; +/** +* A string representing the type of event being sent to each devices. +*/ + readonly event_type: string; +/** +* The request ID. +*/ + readonly id: string | undefined; +/** +* A string representing a request identifier unique to the access token +* used to send the request. +*/ + readonly txn_id: string; +/** +* Get its request type. +*/ + readonly type: number; +} +/** +* Type to install and to manipulate the tracing layer. +*/ +export class Tracing { + free(): void; +/** +* Check whether the `tracing` feature has been enabled. +* @returns {boolean} +*/ + static isAvailable(): boolean; +/** +* Install the tracing layer. +* +* `Tracing` is a singleton. Once it is installed, +* consecutive calls to the constructor will construct a new +* `Tracing` object but with the exact same inner +* state. Calling the constructor with a new `min_level` will +* just update the `min_level` parameter; in that regard, it +* is similar to calling the `min_level` method on an +* existing `Tracing` object. +* @param {number} min_level +*/ + constructor(min_level: number); +/** +* Turn the logger on, i.e. it emits logs again if it was turned +* off. +*/ + turnOn(): void; +/** +* Turn the logger off, i.e. it no long emits logs. +*/ + turnOff(): void; +/** +* Re-define the minimum logger level. +*/ + minLevel: number; +} +/** +* A read only view over all devices belonging to a user. +*/ +export class UserDevices { + free(): void; +/** +* Get the specific device with the given device ID. +* @param {DeviceId} device_id +* @returns {Device | undefined} +*/ + get(device_id: DeviceId): Device | undefined; +/** +* Returns true if there is at least one devices of this user +* that is considered to be verified, false otherwise. +* +* This won't consider your own device as verified, as your own +* device is always implicitly verified. +* @returns {boolean} +*/ + isAnyVerified(): boolean; +/** +* Array over all the device IDs of the user devices. +* @returns {Array} +*/ + keys(): Array; +/** +* Iterator over all the devices of the user devices. +* @returns {Array} +*/ + devices(): Array; +} +/** +* A Matrix [user ID]. +* +* [user ID]: https://spec.matrix.org/v1.2/appendices/#user-identifiers +*/ +export class UserId { + free(): void; +/** +* Parse/validate and create a new `UserId`. +* @param {string} id +*/ + constructor(id: string); +/** +* Whether this user ID is a historical one. +* +* A historical user ID is one that doesn't conform to the latest +* specification of the user ID grammar but is still accepted +* because it was previously allowed. +* @returns {boolean} +*/ + isHistorical(): boolean; +/** +* Return the user ID as a string. +* @returns {string} +*/ + toString(): string; +/** +* Returns the user's localpart. +*/ + readonly localpart: string; +/** +* Returns the server name of the user ID. +*/ + readonly serverName: ServerName; +} +/** +* Struct representing a cross signing identity of a user. +* +* This is the user identity of a user that isn't our own. Other users will +* only contain a master key and a self signing key, meaning that only device +* signatures can be checked with this identity. +* +* This struct wraps a read-only version of the struct and allows verifications +* to be requested to verify our own device with the user identity. +*/ +export class UserIdentity { + free(): void; +/** +* Is this user identity verified? +* @returns {boolean} +*/ + isVerified(): boolean; +/** +* Manually verify this user. +* +* This method will attempt to sign the user identity using our private +* cross signing key. +* +* This method fails if we don't have the private part of our user-signing +* key. +* +* Returns a request that needs to be sent out for the user to be marked as +* verified. +* @returns {Promise} +*/ + verify(): Promise; +/** +* Create a `VerificationRequest` object after the verification +* request content has been sent out. +* @param {RoomId} room_id +* @param {EventId} request_event_id +* @param {Array | undefined} methods +* @returns {Promise} +*/ + requestVerification(room_id: RoomId, request_event_id: EventId, methods?: Array): Promise; +/** +* Send a verification request to the given user. +* +* The returned content needs to be sent out into a DM room with the given +* user. +* +* After the content has been sent out a VerificationRequest can be started +* with the `request_verification` method. +* @param {Array | undefined} methods +* @returns {Promise} +*/ + verificationRequestContent(methods?: Array): Promise; +/** +* Get the master key of the identity. +*/ + readonly masterKey: string; +/** +* Get the self-signing key of the identity. +*/ + readonly selfSigningKey: string; +} +/** +* An object controlling key verification requests. +* +* Interactive verification flows usually start with a verification +* request, this object lets you send and reply to such a +* verification request. +* +* After the initial handshake the verification flow transitions into +* one of the verification methods. +*/ +export class VerificationRequest { + free(): void; +/** +* Create an event content that can be sent as a room event to +* request verification from the other side. This should be used +* only for verifications of other users and it should be sent to +* a room we consider to be a DM with the other user. +* @param {UserId} own_user_id +* @param {DeviceId} own_device_id +* @param {UserId} other_user_id +* @param {Array | undefined} methods +* @returns {string} +*/ + static request(own_user_id: UserId, own_device_id: DeviceId, other_user_id: UserId, methods?: Array): string; +/** +* Has the verification request been answered by another device? +* @returns {boolean} +*/ + isPassive(): boolean; +/** +* Is the verification request ready to start a verification flow? +* @returns {boolean} +*/ + isReady(): boolean; +/** +* Has the verification flow timed out? +* @returns {boolean} +*/ + timedOut(): boolean; +/** +* The number of milliseconds remaining before this verification flow times +* out. +* +* Returns zero if the time has already passed. +* @returns {number} +*/ + timeRemainingMillis(): number; +/** +* Is this a verification that is verifying one of our own +* devices? +* @returns {boolean} +*/ + isSelfVerification(): boolean; +/** +* Did we initiate the verification request? +* @returns {boolean} +*/ + weStarted(): boolean; +/** +* Has the verification flow that was started with this request +* finished? +* @returns {boolean} +*/ + isDone(): boolean; +/** +* Get the current phase of this request. +* +* Returns a `VerificationRequestPhase`. +* @returns {number} +*/ + phase(): number; +/** +* If this request has transitioned into a concrete verification +* flow (and not yet been completed or cancelled), returns a `Verification` +* object. +* +* Returns: a `Sas`, a `Qr`, or `undefined`. +* @returns {any} +*/ + getVerification(): any; +/** +* Register a callback which will be called whenever there is an update to +* the request. +* +* The `callback` is called with no parameters. +* @param {Function} callback +*/ + registerChangesCallback(callback: Function): void; +/** +* Has the verification flow that was started with this request +* been cancelled? +* @returns {boolean} +*/ + isCancelled(): boolean; +/** +* Accept the verification request signaling that our client +* supports the given verification methods. +* +* `methods` represents the methods that we should advertise as +* supported by us. +* +* It returns either a `ToDeviceRequest`, a `RoomMessageRequest` +* or `undefined`. +* @param {Array} methods +* @returns {any} +*/ + acceptWithMethods(methods: Array): any; +/** +* Accept the verification request. +* +* This method will accept the request and signal that it +* supports the `m.sas.v1`, the `m.qr_code.show.v1`, and +* `m.reciprocate.v1` method. +* +* `m.qr_code.show.v1` will only be signaled if the `qrcode` +* feature is enabled. This feature is disabled by default. If +* it's enabled and QR code scanning should be supported or QR +* code showing shouldn't be supported the `accept_with_methods` +* method should be used instead. +* +* It returns either a `ToDeviceRequest`, a `RoomMessageRequest` +* or `undefined`. +* @returns {any} +*/ + accept(): any; +/** +* Cancel the verification request. +* +* It returns either a `ToDeviceRequest`, a `RoomMessageRequest` +* or `undefined`. +* @returns {any} +*/ + cancel(): any; +/** +* Transition from this verification request into a SAS verification flow. +* +* Returns `Promise<[Sas, RoomMessageRequest|ToDeviceRequest] | undefined>` +* @returns {Promise} +*/ + startSas(): Promise; +/** +* Generate a QR code that can be used by another client to start +* a QR code based verification. +* +* Returns a `Qr`. +* @returns {Promise} +*/ + generateQrCode(): Promise; +/** +* Start a QR code verification by providing a scanned QR code +* for this verification flow. +* @param {QrCodeScan} data +* @returns {Promise} +*/ + scanQrCode(data: QrCodeScan): Promise; +/** +* Get info about the cancellation if the verification request +* has been cancelled. +*/ + readonly cancelInfo: CancelInfo | undefined; +/** +* Get the unique ID of this verification request. +*/ + readonly flowId: string; +/** +* The ID of the other device that is participating in this +* verification. +*/ + readonly otherDeviceId: DeviceId | undefined; +/** +* The ID of the other user that is participating in this +* verification request. +*/ + readonly otherUserId: UserId; +/** +* Get our own supported verification methods that we advertised. +* +* Will be present only we requested the verification or if we’re +* in the ready state. +*/ + readonly ourSupportedMethods: Array | undefined; +/** +* Our own user id. +*/ + readonly ownUserId: UserId; +/** +* Get the room ID if the verification is happening inside a +* room. +*/ + readonly roomId: RoomId | undefined; +/** +* Get the supported verification methods of the other side. +* +* Will be present only if the other side requested the +* verification or if we’re in the ready state. +* +* It return a `Option>`. +*/ + readonly theirSupportedMethods: Array | undefined; +} +/** +* Object containing the versions of the Rust libraries we are using. +*/ +export class Versions { + free(): void; +/** +* The version of the matrix-sdk-crypto crate. +*/ + readonly matrix_sdk_crypto: string; +/** +* The version of the vodozemac crate. +*/ + readonly vodozemac: string; +} +/** + * Load the WebAssembly module in the background, if it has not already been loaded. + * + * Returns a promise which will resolve once the other methods are ready. + * + * @returns {Promise} + */ +export function initAsync(): Promise; diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.cjs b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.cjs deleted file mode 100644 index 3610ce5..0000000 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.cjs +++ /dev/null @@ -1,12809 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.ToDeviceRequest = exports.ToDeviceEncryptionInfo = exports.StoredRoomKeyBundleData = exports.StoreHandle = exports.Signatures = exports.SignatureVerification = exports.SignatureUploadRequest = exports.SignatureState = exports.Signature = exports.ShieldStateCode = exports.ShieldState = exports.ShieldColor = exports.ServerName = exports.SecretsBundle = exports.Sas = exports.RoomSettings = exports.RoomPendingKeyBundleDetails = exports.RoomMessageRequest = exports.RoomKeyWithheldInfo = exports.RoomKeyInfo = exports.RoomKeyImportResult = exports.RoomKeyCounts = exports.RoomId = exports.RequestType = exports.RehydratedDevice = exports.QrState = exports.QrCodeScan = exports.QrCodeIntentData = exports.QrCodeIntent = exports.QrCodeData = exports.QrCode = exports.Qr = exports.PutDehydratedDeviceRequest = exports.ProcessedToDeviceEventType = exports.PlainTextToDeviceEvent = exports.PkMessage = exports.PkEncryption = exports.PkDecryption = exports.PickledSession = exports.PickledInboundGroupSession = exports.OwnUserIdentity = exports.OutboundCreationResult = exports.OtherUserIdentity = exports.OlmMachine = exports.Msc4388IntentData = exports.Msc4108IntentData = exports.Migration = exports.MegolmV1BackupKey = exports.MegolmDecryptionError = exports.MaybeSignature = exports.LoggerLevel = exports.LocalTrust = exports.KeysUploadRequest = exports.KeysQueryRequest = exports.KeysClaimRequest = exports.KeysBackupRequest = exports.InvalidToDeviceEvent = exports.InboundGroupSession = exports.InboundCreationResult = exports.IdentityKeys = exports.HistoryVisibility = exports.EventId = exports.EstablishedEcies = exports.EncryptionSettings = exports.EncryptionInfo = exports.EncryptionAlgorithm = exports.EncryptedAttachment = exports.Emoji = exports.Ed25519Signature = exports.Ed25519PublicKey = exports.Ecies = exports.DeviceLists = exports.DeviceKeyName = exports.DeviceKeyId = exports.DeviceKeyAlgorithmName = exports.DeviceKeyAlgorithm = exports.DeviceKey = exports.DeviceId = exports.Device = exports.DehydratedDevices = exports.DehydratedDeviceKey = exports.DehydratedDevice = exports.DecryptionSettings = exports.DecryptionErrorCode = exports.DecryptedToDeviceEvent = exports.DecryptedRoomEvent = exports.Curve25519SecretKey = exports.Curve25519PublicKey = exports.CrossSigningStatus = exports.CrossSigningKeyExport = exports.CrossSigningBootstrapRequests = exports.CollectStrategy = exports.CheckCode = exports.CancelInfo = exports.BaseMigrationData = exports.Base64EncodedPkMessage = exports.BackupSecretsBundle = exports.BackupKeys = exports.BackupDecryptionKey = exports.Attachment = void 0; -exports.Versions = exports.VerificationRequestPhase = exports.VerificationRequest = exports.VerificationMethod = exports.UserId = exports.UserDevices = exports.UploadSigningKeysRequest = exports.UTDToDeviceEvent = exports.TrustRequirement = exports.Tracing = exports.ToDeviceUnableToDecryptReason = exports.ToDeviceUnableToDecryptInfo = void 0; -exports.__wbg_Error_408e67f47ca7b58b = __wbg_Error_408e67f47ca7b58b; -exports.__wbg_Number_3890faa6d3ff057d = __wbg_Number_3890faa6d3ff057d; -exports.__wbg_String_8564e559799eccda = __wbg_String_8564e559799eccda; -exports.__wbg_Window_241244be8c9776c1 = __wbg_Window_241244be8c9776c1; -exports.__wbg_WorkerGlobalScope_8623a7c9030fbce2 = __wbg_WorkerGlobalScope_8623a7c9030fbce2; -exports.__wbg___wbindgen_bigint_get_as_i64_c4ecf48528083721 = __wbg___wbindgen_bigint_get_as_i64_c4ecf48528083721; -exports.__wbg___wbindgen_boolean_get_c9c83ebd41b34df3 = __wbg___wbindgen_boolean_get_c9c83ebd41b34df3; -exports.__wbg___wbindgen_debug_string_a57024b9c6e4a48b = __wbg___wbindgen_debug_string_a57024b9c6e4a48b; -exports.__wbg___wbindgen_in_ac983077f137f2e6 = __wbg___wbindgen_in_ac983077f137f2e6; -exports.__wbg___wbindgen_is_bigint_8ffbbef442139384 = __wbg___wbindgen_is_bigint_8ffbbef442139384; -exports.__wbg___wbindgen_is_function_5e4570eb24ffa122 = __wbg___wbindgen_is_function_5e4570eb24ffa122; -exports.__wbg___wbindgen_is_null_7d13f41e1a2d5140 = __wbg___wbindgen_is_null_7d13f41e1a2d5140; -exports.__wbg___wbindgen_is_object_a2790eb24c211ea0 = __wbg___wbindgen_is_object_a2790eb24c211ea0; -exports.__wbg___wbindgen_is_string_e6f02f0ea5f20a32 = __wbg___wbindgen_is_string_e6f02f0ea5f20a32; -exports.__wbg___wbindgen_is_undefined_6cff064c44e0d823 = __wbg___wbindgen_is_undefined_6cff064c44e0d823; -exports.__wbg___wbindgen_jsval_eq_0a18949a61670320 = __wbg___wbindgen_jsval_eq_0a18949a61670320; -exports.__wbg___wbindgen_jsval_loose_eq_acf2776254a8d832 = __wbg___wbindgen_jsval_loose_eq_acf2776254a8d832; -exports.__wbg___wbindgen_number_get_136b9679cab35cfb = __wbg___wbindgen_number_get_136b9679cab35cfb; -exports.__wbg___wbindgen_string_get_d154f1e671052120 = __wbg___wbindgen_string_get_d154f1e671052120; -exports.__wbg___wbindgen_throw_bb96b2010945f0bc = __wbg___wbindgen_throw_bb96b2010945f0bc; -exports.__wbg__wbg_cb_unref_be22cc64ae6946a0 = __wbg__wbg_cb_unref_be22cc64ae6946a0; -exports.__wbg_abort_32b500c4f9eab55d = __wbg_abort_32b500c4f9eab55d; -exports.__wbg_add_18ccb6b4b9da9cd9 = __wbg_add_18ccb6b4b9da9cd9; -exports.__wbg_add_2b945856b580d5ab = __wbg_add_2b945856b580d5ab; -exports.__wbg_at_facbe5ae998bba3a = __wbg_at_facbe5ae998bba3a; -exports.__wbg_backupkeys_new = __wbg_backupkeys_new; -exports.__wbg_bound_e48dc2f851c77207 = __wbg_bound_e48dc2f851c77207; -exports.__wbg_call_0f2a9af232c18fd2 = __wbg_call_0f2a9af232c18fd2; -exports.__wbg_call_1c5886ab9c57d1c7 = __wbg_call_1c5886ab9c57d1c7; -exports.__wbg_call_35dba3c747ad7521 = __wbg_call_35dba3c747ad7521; -exports.__wbg_call_39f824e18d9d2414 = __wbg_call_39f824e18d9d2414; -exports.__wbg_clearTimeout_3629d6209dfcc46e = __wbg_clearTimeout_3629d6209dfcc46e; -exports.__wbg_clear_07a20ccd42c66921 = __wbg_clear_07a20ccd42c66921; -exports.__wbg_close_0c1f30aeb9a080a7 = __wbg_close_0c1f30aeb9a080a7; -exports.__wbg_code_5c2c992d8a3afb58 = __wbg_code_5c2c992d8a3afb58; -exports.__wbg_commit_ebd6d9676954e0d2 = __wbg_commit_ebd6d9676954e0d2; -exports.__wbg_continue_cbf53c725c127fe3 = __wbg_continue_cbf53c725c127fe3; -exports.__wbg_count_be9295f0aceb7d6a = __wbg_count_be9295f0aceb7d6a; -exports.__wbg_count_c48ec9dcdccef1d5 = __wbg_count_c48ec9dcdccef1d5; -exports.__wbg_createIndex_9e2beb35a103225a = __wbg_createIndex_9e2beb35a103225a; -exports.__wbg_createIndex_f8a090296c419c6c = __wbg_createIndex_f8a090296c419c6c; -exports.__wbg_createObjectStore_d3884936b845900f = __wbg_createObjectStore_d3884936b845900f; -exports.__wbg_crosssigningbootstraprequests_new = __wbg_crosssigningbootstraprequests_new; -exports.__wbg_crosssigningkeyexport_new = __wbg_crosssigningkeyexport_new; -exports.__wbg_crosssigningstatus_new = __wbg_crosssigningstatus_new; -exports.__wbg_crypto_38df2bab126b63dc = __wbg_crypto_38df2bab126b63dc; -exports.__wbg_debug_1ac2ea5532f70f4c = __wbg_debug_1ac2ea5532f70f4c; -exports.__wbg_debug_3853dbaf0bca30f9 = __wbg_debug_3853dbaf0bca30f9; -exports.__wbg_decryptedroomevent_new = __wbg_decryptedroomevent_new; -exports.__wbg_decryptedtodeviceevent_new = __wbg_decryptedtodeviceevent_new; -exports.__wbg_dehydrateddevice_new = __wbg_dehydrateddevice_new; -exports.__wbg_dehydrateddevicekey_new = __wbg_dehydrateddevicekey_new; -exports.__wbg_deleteObjectStore_ed0e7d0b256bead4 = __wbg_deleteObjectStore_ed0e7d0b256bead4; -exports.__wbg_delete_03ff02bcb1b57138 = __wbg_delete_03ff02bcb1b57138; -exports.__wbg_delete_27b012593b3f623b = __wbg_delete_27b012593b3f623b; -exports.__wbg_device_new = __wbg_device_new; -exports.__wbg_deviceid_new = __wbg_deviceid_new; -exports.__wbg_devicekey_new = __wbg_devicekey_new; -exports.__wbg_devicekeyid_new = __wbg_devicekeyid_new; -exports.__wbg_done_669171204c3dcae2 = __wbg_done_669171204c3dcae2; -exports.__wbg_emoji_new = __wbg_emoji_new; -exports.__wbg_encryptedattachment_new = __wbg_encryptedattachment_new; -exports.__wbg_encryptioninfo_new = __wbg_encryptioninfo_new; -exports.__wbg_entries_71601bcb707d5078 = __wbg_entries_71601bcb707d5078; -exports.__wbg_entries_7774d489e1da5f4f = __wbg_entries_7774d489e1da5f4f; -exports.__wbg_error_24e6ac605d438e54 = __wbg_error_24e6ac605d438e54; -exports.__wbg_error_757e9472f8410341 = __wbg_error_757e9472f8410341; -exports.__wbg_error_dbd3752906405f8d = __wbg_error_dbd3752906405f8d; -exports.__wbg_error_dd408a7b3cb542dd = __wbg_error_dd408a7b3cb542dd; -exports.__wbg_from_74f3d90e0ff11240 = __wbg_from_74f3d90e0ff11240; -exports.__wbg_getAllKeys_1de66542d233a4a5 = __wbg_getAllKeys_1de66542d233a4a5; -exports.__wbg_getAllKeys_65d7deed4f9b2d48 = __wbg_getAllKeys_65d7deed4f9b2d48; -exports.__wbg_getAll_358f5970d9bee84b = __wbg_getAll_358f5970d9bee84b; -exports.__wbg_getAll_6b556cfcbf040afc = __wbg_getAll_6b556cfcbf040afc; -exports.__wbg_getAll_86c18743042fe4ca = __wbg_getAll_86c18743042fe4ca; -exports.__wbg_getAll_edf30bc7f595e7ae = __wbg_getAll_edf30bc7f595e7ae; -exports.__wbg_getRandomValues_26c0cdf963e46393 = __wbg_getRandomValues_26c0cdf963e46393; -exports.__wbg_getRandomValues_436a51d0629d84e1 = __wbg_getRandomValues_436a51d0629d84e1; -exports.__wbg_getRandomValues_c44a50d8cfdaebeb = __wbg_getRandomValues_c44a50d8cfdaebeb; -exports.__wbg_getTime_63fb0332e6c4ec17 = __wbg_getTime_63fb0332e6c4ec17; -exports.__wbg_get_4babbbf9303c1945 = __wbg_get_4babbbf9303c1945; -exports.__wbg_get_94b5ec70e1f04bdd = __wbg_get_94b5ec70e1f04bdd; -exports.__wbg_get_971a0c45d172643f = __wbg_get_971a0c45d172643f; -exports.__wbg_get_c0c8f8d7da0c03dd = __wbg_get_c0c8f8d7da0c03dd; -exports.__wbg_get_d173c0308df22d37 = __wbg_get_d173c0308df22d37; -exports.__wbg_get_unchecked_e20b893aeafc3fca = __wbg_get_unchecked_e20b893aeafc3fca; -exports.__wbg_get_with_ref_key_6412cf3094599694 = __wbg_get_with_ref_key_6412cf3094599694; -exports.__wbg_global_94a489d2e6a0c5fd = __wbg_global_94a489d2e6a0c5fd; -exports.__wbg_inboundgroupsession_new = __wbg_inboundgroupsession_new; -exports.__wbg_index_bed5a9f21dfebeea = __wbg_index_bed5a9f21dfebeea; -exports.__wbg_indexedDB_47c354eb27472a00 = __wbg_indexedDB_47c354eb27472a00; -exports.__wbg_indexedDB_9e20c97c033151f3 = __wbg_indexedDB_9e20c97c033151f3; -exports.__wbg_indexedDB_ced363f3de8fb099 = __wbg_indexedDB_ced363f3de8fb099; -exports.__wbg_info_726982aff9befe16 = __wbg_info_726982aff9befe16; -exports.__wbg_info_929f1b00bd4820a9 = __wbg_info_929f1b00bd4820a9; -exports.__wbg_instanceof_ArrayBuffer_993d02d2d254cad1 = __wbg_instanceof_ArrayBuffer_993d02d2d254cad1; -exports.__wbg_instanceof_CursorSys_383984afc1fa1bbc = __wbg_instanceof_CursorSys_383984afc1fa1bbc; -exports.__wbg_instanceof_DomException_55a5af63fefe4042 = __wbg_instanceof_DomException_55a5af63fefe4042; -exports.__wbg_instanceof_Error_61d8a02a0f3383a1 = __wbg_instanceof_Error_61d8a02a0f3383a1; -exports.__wbg_instanceof_IdbCursor_9bd028886fa2ccf0 = __wbg_instanceof_IdbCursor_9bd028886fa2ccf0; -exports.__wbg_instanceof_IdbDatabase_e9dd9f20c51d8d42 = __wbg_instanceof_IdbDatabase_e9dd9f20c51d8d42; -exports.__wbg_instanceof_IdbOpenDbRequest_b913751ffb9239bb = __wbg_instanceof_IdbOpenDbRequest_b913751ffb9239bb; -exports.__wbg_instanceof_IdbRequest_471b050024626dac = __wbg_instanceof_IdbRequest_471b050024626dac; -exports.__wbg_instanceof_Map_9a4d6ead180ae3a9 = __wbg_instanceof_Map_9a4d6ead180ae3a9; -exports.__wbg_instanceof_Promise_e6e764b945c3128a = __wbg_instanceof_Promise_e6e764b945c3128a; -exports.__wbg_instanceof_Uint8Array_f935dbb0aa7cdeed = __wbg_instanceof_Uint8Array_f935dbb0aa7cdeed; -exports.__wbg_invalidtodeviceevent_new = __wbg_invalidtodeviceevent_new; -exports.__wbg_isArray_291e8fbbc73f8b2e = __wbg_isArray_291e8fbbc73f8b2e; -exports.__wbg_isArray_6339f732981044bf = __wbg_isArray_6339f732981044bf; -exports.__wbg_isSafeInteger_f3d6cd19ccfe4512 = __wbg_isSafeInteger_f3d6cd19ccfe4512; -exports.__wbg_item_754b49ed01198c29 = __wbg_item_754b49ed01198c29; -exports.__wbg_iterator_5cebbb86e33c6dd6 = __wbg_iterator_5cebbb86e33c6dd6; -exports.__wbg_key_18fe06a6310bf3fb = __wbg_key_18fe06a6310bf3fb; -exports.__wbg_keysbackuprequest_new = __wbg_keysbackuprequest_new; -exports.__wbg_keysclaimrequest_new = __wbg_keysclaimrequest_new; -exports.__wbg_keysqueryrequest_new = __wbg_keysqueryrequest_new; -exports.__wbg_keysuploadrequest_new = __wbg_keysuploadrequest_new; -exports.__wbg_length_13032799523c5735 = __wbg_length_13032799523c5735; -exports.__wbg_length_36bd29c6848c2144 = __wbg_length_36bd29c6848c2144; -exports.__wbg_length_ecfa2c63d3d0d82c = __wbg_length_ecfa2c63d3d0d82c; -exports.__wbg_lowerBound_66a1695f45ef6c88 = __wbg_lowerBound_66a1695f45ef6c88; -exports.__wbg_maybesignature_new = __wbg_maybesignature_new; -exports.__wbg_megolmdecryptionerror_new = __wbg_megolmdecryptionerror_new; -exports.__wbg_message_88eda073e68b1d26 = __wbg_message_88eda073e68b1d26; -exports.__wbg_message_c141d5e68716b595 = __wbg_message_c141d5e68716b595; -exports.__wbg_msCrypto_bd5a034af96bcba6 = __wbg_msCrypto_bd5a034af96bcba6; -exports.__wbg_name_facbed56940f0fec = __wbg_name_facbed56940f0fec; -exports.__wbg_new_116be93542d39019 = __wbg_new_116be93542d39019; -exports.__wbg_new_227d7c05414eb861 = __wbg_new_227d7c05414eb861; -exports.__wbg_new_358857d90afd5a2d = __wbg_new_358857d90afd5a2d; -exports.__wbg_new_418fb92a013d5930 = __wbg_new_418fb92a013d5930; -exports.__wbg_new_77cc4f4f472aeb81 = __wbg_new_77cc4f4f472aeb81; -exports.__wbg_new_cdf041679ded4c5f = __wbg_new_cdf041679ded4c5f; -exports.__wbg_new_d29ccbc1854174b3 = __wbg_new_d29ccbc1854174b3; -exports.__wbg_new_ebe3e0f6837f0879 = __wbg_new_ebe3e0f6837f0879; -exports.__wbg_new_f9d6489212f3b2b3 = __wbg_new_f9d6489212f3b2b3; -exports.__wbg_new_from_slice_3eea173078478cfe = __wbg_new_from_slice_3eea173078478cfe; -exports.__wbg_new_typed_cceaf62d8d95e9f2 = __wbg_new_typed_cceaf62d8d95e9f2; -exports.__wbg_new_with_length_3ffc1c56427c525c = __wbg_new_with_length_3ffc1c56427c525c; -exports.__wbg_new_with_length_5d351ffdb6e3397d = __wbg_new_with_length_5d351ffdb6e3397d; -exports.__wbg_next_42cf16ee0dafc9e2 = __wbg_next_42cf16ee0dafc9e2; -exports.__wbg_next_8f26b64fa5e9f64b = __wbg_next_8f26b64fa5e9f64b; -exports.__wbg_node_84ea875411254db1 = __wbg_node_84ea875411254db1; -exports.__wbg_now_8b265300afd5f2b9 = __wbg_now_8b265300afd5f2b9; -exports.__wbg_now_e7c6795a7f81e10f = __wbg_now_e7c6795a7f81e10f; -exports.__wbg_objectStoreNames_94ee5410bc505cae = __wbg_objectStoreNames_94ee5410bc505cae; -exports.__wbg_objectStore_222b7add2b5c2770 = __wbg_objectStore_222b7add2b5c2770; -exports.__wbg_oldVersion_92fccbad82f5635a = __wbg_oldVersion_92fccbad82f5635a; -exports.__wbg_olmmachine_new = __wbg_olmmachine_new; -exports.__wbg_openCursor_1015e5f363cc8494 = __wbg_openCursor_1015e5f363cc8494; -exports.__wbg_openCursor_6dd512fe9cbf9f67 = __wbg_openCursor_6dd512fe9cbf9f67; -exports.__wbg_openCursor_f34b182699875701 = __wbg_openCursor_f34b182699875701; -exports.__wbg_open_66c8b00ee562451f = __wbg_open_66c8b00ee562451f; -exports.__wbg_open_c5ecda93515ce190 = __wbg_open_c5ecda93515ce190; -exports.__wbg_otheruseridentity_new = __wbg_otheruseridentity_new; -exports.__wbg_ownuseridentity_new = __wbg_ownuseridentity_new; -exports.__wbg_parse_1cc93481b0865939 = __wbg_parse_1cc93481b0865939; -exports.__wbg_performance_3fcf6e32a7e1ed0a = __wbg_performance_3fcf6e32a7e1ed0a; -exports.__wbg_pickledinboundgroupsession_unwrap = __wbg_pickledinboundgroupsession_unwrap; -exports.__wbg_pickledsession_unwrap = __wbg_pickledsession_unwrap; -exports.__wbg_plaintexttodeviceevent_new = __wbg_plaintexttodeviceevent_new; -exports.__wbg_process_44c7a14e11e9f69e = __wbg_process_44c7a14e11e9f69e; -exports.__wbg_prototypesetcall_8798824fd302dd72 = __wbg_prototypesetcall_8798824fd302dd72; -exports.__wbg_prototypesetcall_de8e0d9553586985 = __wbg_prototypesetcall_de8e0d9553586985; -exports.__wbg_push_adb0107829f02d75 = __wbg_push_adb0107829f02d75; -exports.__wbg_put_5e0ae8c80bb952a7 = __wbg_put_5e0ae8c80bb952a7; -exports.__wbg_putdehydrateddevicerequest_new = __wbg_putdehydrateddevicerequest_new; -exports.__wbg_qr_new = __wbg_qr_new; -exports.__wbg_queueMicrotask_ac694eae12e92dfb = __wbg_queueMicrotask_ac694eae12e92dfb; -exports.__wbg_queueMicrotask_be5fe34a8f4cad4d = __wbg_queueMicrotask_be5fe34a8f4cad4d; -exports.__wbg_randomFillSync_6c25eac9869eb53c = __wbg_randomFillSync_6c25eac9869eb53c; -exports.__wbg_readyState_599831d0754935af = __wbg_readyState_599831d0754935af; -exports.__wbg_rehydrateddevice_new = __wbg_rehydrateddevice_new; -exports.__wbg_request_64abeba15a72c084 = __wbg_request_64abeba15a72c084; -exports.__wbg_request_72a78988f2edecad = __wbg_request_72a78988f2edecad; -exports.__wbg_require_b4edbdcf3e2a1ef0 = __wbg_require_b4edbdcf3e2a1ef0; -exports.__wbg_resolve_020f95d838c6ef25 = __wbg_resolve_020f95d838c6ef25; -exports.__wbg_result_0501bea148306f01 = __wbg_result_0501bea148306f01; -exports.__wbg_roomid_unwrap = __wbg_roomid_unwrap; -exports.__wbg_roomkeycounts_new = __wbg_roomkeycounts_new; -exports.__wbg_roomkeyimportresult_new = __wbg_roomkeyimportresult_new; -exports.__wbg_roomkeyinfo_new = __wbg_roomkeyinfo_new; -exports.__wbg_roomkeywithheldinfo_new = __wbg_roomkeywithheldinfo_new; -exports.__wbg_roommessagerequest_new = __wbg_roommessagerequest_new; -exports.__wbg_roompendingkeybundledetails_new = __wbg_roompendingkeybundledetails_new; -exports.__wbg_roomsettings_new = __wbg_roomsettings_new; -exports.__wbg_sas_new = __wbg_sas_new; -exports.__wbg_secretsbundle_new = __wbg_secretsbundle_new; -exports.__wbg_setTimeout_56bcdccbad22fd44 = __wbg_setTimeout_56bcdccbad22fd44; -exports.__wbg_set_014226dfeca53178 = __wbg_set_014226dfeca53178; -exports.__wbg_set_5c15d3c5973de97a = __wbg_set_5c15d3c5973de97a; -exports.__wbg_set_6be42768c690e380 = __wbg_set_6be42768c690e380; -exports.__wbg_set_a80955eb93b145c6 = __wbg_set_a80955eb93b145c6; -exports.__wbg_set_onabort_fda794cb1089d6b5 = __wbg_set_onabort_fda794cb1089d6b5; -exports.__wbg_set_oncomplete_ff31bdacaa1b3558 = __wbg_set_oncomplete_ff31bdacaa1b3558; -exports.__wbg_set_onerror_3dff0f2abceea5e9 = __wbg_set_onerror_3dff0f2abceea5e9; -exports.__wbg_set_onerror_41278ace6abe3973 = __wbg_set_onerror_41278ace6abe3973; -exports.__wbg_set_onsuccess_86d76d6974cd57e4 = __wbg_set_onsuccess_86d76d6974cd57e4; -exports.__wbg_set_onupgradeneeded_79b60102909f4a5e = __wbg_set_onupgradeneeded_79b60102909f4a5e; -exports.__wbg_set_unique_c03185d3bf563306 = __wbg_set_unique_c03185d3bf563306; -exports.__wbg_set_wasm = __wbg_set_wasm; -exports.__wbg_signatures_new = __wbg_signatures_new; -exports.__wbg_signatureuploadrequest_new = __wbg_signatureuploadrequest_new; -exports.__wbg_signatureverification_new = __wbg_signatureverification_new; -exports.__wbg_stack_3b0d974bbf31e44f = __wbg_stack_3b0d974bbf31e44f; -exports.__wbg_static_accessor_GLOBAL_THIS_466428f93b4eaa76 = __wbg_static_accessor_GLOBAL_THIS_466428f93b4eaa76; -exports.__wbg_static_accessor_GLOBAL_c7aea38d4de089bc = __wbg_static_accessor_GLOBAL_c7aea38d4de089bc; -exports.__wbg_static_accessor_SELF_42d4fae05e59267a = __wbg_static_accessor_SELF_42d4fae05e59267a; -exports.__wbg_static_accessor_WINDOW_e0db14a0eba6a812 = __wbg_static_accessor_WINDOW_e0db14a0eba6a812; -exports.__wbg_storedroomkeybundledata_new = __wbg_storedroomkeybundledata_new; -exports.__wbg_storehandle_new = __wbg_storehandle_new; -exports.__wbg_stringify_f93a4ebae9231922 = __wbg_stringify_f93a4ebae9231922; -exports.__wbg_subarray_a4cc58201c7359fd = __wbg_subarray_a4cc58201c7359fd; -exports.__wbg_target_13424fe1cdc436ac = __wbg_target_13424fe1cdc436ac; -exports.__wbg_then_7026b513a94278a8 = __wbg_then_7026b513a94278a8; -exports.__wbg_then_72819b8d4e081fb5 = __wbg_then_72819b8d4e081fb5; -exports.__wbg_toString_2f0b0aec069cb718 = __wbg_toString_2f0b0aec069cb718; -exports.__wbg_todevicerequest_new = __wbg_todevicerequest_new; -exports.__wbg_transaction_0458565e8cdfb620 = __wbg_transaction_0458565e8cdfb620; -exports.__wbg_transaction_4c999693e6e601bf = __wbg_transaction_4c999693e6e601bf; -exports.__wbg_transaction_728366e915610cb0 = __wbg_transaction_728366e915610cb0; -exports.__wbg_transaction_77d93778cbec28c3 = __wbg_transaction_77d93778cbec28c3; -exports.__wbg_update_df04b6b83954c5a0 = __wbg_update_df04b6b83954c5a0; -exports.__wbg_upperBound_916ed065b0d6fe6c = __wbg_upperBound_916ed065b0d6fe6c; -exports.__wbg_userdevices_new = __wbg_userdevices_new; -exports.__wbg_userid_new = __wbg_userid_new; -exports.__wbg_userid_unwrap = __wbg_userid_unwrap; -exports.__wbg_utdtodeviceevent_new = __wbg_utdtodeviceevent_new; -exports.__wbg_value_1e2369fab29b420e = __wbg_value_1e2369fab29b420e; -exports.__wbg_value_496e02446340ae74 = __wbg_value_496e02446340ae74; -exports.__wbg_values_d512097b1a1a9459 = __wbg_values_d512097b1a1a9459; -exports.__wbg_verificationrequest_new = __wbg_verificationrequest_new; -exports.__wbg_version_26237923fff15d6e = __wbg_version_26237923fff15d6e; -exports.__wbg_versions_276b2795b1c6a219 = __wbg_versions_276b2795b1c6a219; -exports.__wbg_warn_917d7f727ab78481 = __wbg_warn_917d7f727ab78481; -exports.__wbg_warn_b62de6508e8608cc = __wbg_warn_b62de6508e8608cc; -exports.__wbindgen_cast_0000000000000001 = __wbindgen_cast_0000000000000001; -exports.__wbindgen_cast_0000000000000002 = __wbindgen_cast_0000000000000002; -exports.__wbindgen_cast_0000000000000003 = __wbindgen_cast_0000000000000003; -exports.__wbindgen_cast_0000000000000004 = __wbindgen_cast_0000000000000004; -exports.__wbindgen_cast_0000000000000005 = __wbindgen_cast_0000000000000005; -exports.__wbindgen_cast_0000000000000006 = __wbindgen_cast_0000000000000006; -exports.__wbindgen_cast_0000000000000007 = __wbindgen_cast_0000000000000007; -exports.__wbindgen_cast_0000000000000008 = __wbindgen_cast_0000000000000008; -exports.__wbindgen_cast_0000000000000009 = __wbindgen_cast_0000000000000009; -exports.__wbindgen_cast_000000000000000a = __wbindgen_cast_000000000000000a; -exports.__wbindgen_init_externref_table = __wbindgen_init_externref_table; -exports.getVersions = getVersions; -exports.start = start; -/** - * A type to encrypt and to decrypt anything that can fit in an - * `Uint8Array`, usually big buffer. - */ -class Attachment { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - AttachmentFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_attachment_free(ptr, 0); - } - /** - * Decrypt an `EncryptedAttachment`. - * - * The encrypted attachment can be created manually, or from the - * `encrypt` method. - * - * **Warning**: The encrypted attachment can be used only - * **once**! The encrypted data will still be present, but the - * media encryption info (which contain secrets) will be - * destroyed. It is still possible to get a JSON-encoded backup - * by calling `EncryptedAttachment.mediaEncryptionInfo`. - * @param {EncryptedAttachment} attachment - * @returns {Uint8Array} - */ - static decrypt(attachment) { - _assertClass(attachment, EncryptedAttachment); - const ret = wasm.attachment_decrypt(attachment.__wbg_ptr); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Encrypt the content of the `Uint8Array`. - * - * It produces an `EncryptedAttachment`, which can be used to - * retrieve the media encryption information, or the encrypted - * data. - * @param {Uint8Array} array - * @returns {EncryptedAttachment} - */ - static encrypt(array) { - const ptr0 = passArray8ToWasm0(array, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.attachment_encrypt(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return EncryptedAttachment.__wrap(ret[0]); - } -} -exports.Attachment = Attachment; -if (Symbol.dispose) Attachment.prototype[Symbol.dispose] = Attachment.prototype.free; - -/** - * The private part of the backup key, the one used for recovery. - */ -class BackupDecryptionKey { - static __wrap(ptr) { - const obj = Object.create(BackupDecryptionKey.prototype); - obj.__wbg_ptr = ptr; - BackupDecryptionKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - BackupDecryptionKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_backupdecryptionkey_free(ptr, 0); - } - /** - * Create a new random [`BackupDecryptionKey`]. - * @returns {BackupDecryptionKey} - */ - static createRandomKey() { - const ret = wasm.backupdecryptionkey_createRandomKey(); - return BackupDecryptionKey.__wrap(ret); - } - /** - * Try to decrypt a message that was encrypted using the public part of the - * backup key. - * @param {string} ephemeral_key - * @param {string} mac - * @param {string} ciphertext - * @returns {string} - */ - decryptV1(ephemeral_key, mac, ciphertext) { - let deferred5_0; - let deferred5_1; - try { - const ptr0 = passStringToWasm0(ephemeral_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(mac, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ptr2 = passStringToWasm0(ciphertext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len2 = WASM_VECTOR_LEN; - const ret = wasm.backupdecryptionkey_decryptV1(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2); - var ptr4 = ret[0]; - var len4 = ret[1]; - if (ret[3]) { - ptr4 = 0; - len4 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred5_0 = ptr4; - deferred5_1 = len4; - return getStringFromWasm0(ptr4, len4); - } finally { - wasm.__wbindgen_free(deferred5_0, deferred5_1, 1); - } - } - /** - * Try to create a [`BackupDecryptionKey`] from a base 64 encoded string. - * @param {string} key - * @returns {BackupDecryptionKey} - */ - static fromBase64(key) { - const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.backupdecryptionkey_fromBase64(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return BackupDecryptionKey.__wrap(ret[0]); - } - /** - * Get the public part of the backup key. - * @returns {MegolmV1BackupKey} - */ - get megolmV1PublicKey() { - const ret = wasm.backupdecryptionkey_megolmV1PublicKey(this.__wbg_ptr); - return MegolmV1BackupKey.__wrap(ret); - } - /** - * Convert the backup decryption key to a base 64 encoded string. - * @returns {string} - */ - toBase64() { - const ret = wasm.backupdecryptionkey_toBase64(this.__wbg_ptr); - return ret; - } -} -exports.BackupDecryptionKey = BackupDecryptionKey; -if (Symbol.dispose) BackupDecryptionKey.prototype[Symbol.dispose] = BackupDecryptionKey.prototype.free; - -/** - * Stored versions of the backup keys. - */ -class BackupKeys { - static __wrap(ptr) { - const obj = Object.create(BackupKeys.prototype); - obj.__wbg_ptr = ptr; - BackupKeysFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - BackupKeysFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_backupkeys_free(ptr, 0); - } - /** - * The key used to decrypt backed up room keys, encoded as base64 - * - * @deprecated Use `BackupKeys.decryptionKey.toBase64()` - * @returns {string | undefined} - */ - get decryptionKeyBase64() { - const ret = wasm.backupkeys_decryptionKeyBase64(this.__wbg_ptr); - return ret; - } - /** - * The version that we are using for backups. - * @returns {string | undefined} - */ - get backupVersion() { - const ret = wasm.__wbg_get_backupkeys_backupVersion(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The key used to decrypt backed up room keys - * @returns {BackupDecryptionKey | undefined} - */ - get decryptionKey() { - const ret = wasm.__wbg_get_backupkeys_decryptionKey(this.__wbg_ptr); - return ret === 0 ? undefined : BackupDecryptionKey.__wrap(ret); - } - /** - * The version that we are using for backups. - * @param {string | null} [arg0] - */ - set backupVersion(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_backupkeys_backupVersion(this.__wbg_ptr, ptr0, len0); - } - /** - * The key used to decrypt backed up room keys - * @param {BackupDecryptionKey | null} [arg0] - */ - set decryptionKey(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, BackupDecryptionKey); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_backupkeys_decryptionKey(this.__wbg_ptr, ptr0); - } -} -exports.BackupKeys = BackupKeys; -if (Symbol.dispose) BackupKeys.prototype[Symbol.dispose] = BackupKeys.prototype.free; - -/** - * The backup-specific parts of a secrets bundle. - */ -class BackupSecretsBundle { - static __wrap(ptr) { - const obj = Object.create(BackupSecretsBundle.prototype); - obj.__wbg_ptr = ptr; - BackupSecretsBundleFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - BackupSecretsBundleFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_backupsecretsbundle_free(ptr, 0); - } - /** - * The backup version which this backup decryption key is used with. - * @returns {string} - */ - get backup_version() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_backupsecretsbundle_backup_version(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The backup decryption key, encoded as unpadded base64. - * @returns {string} - */ - get key() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_backupsecretsbundle_key(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The backup version which this backup decryption key is used with. - * @param {string} arg0 - */ - set backup_version(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_backupsecretsbundle_backup_version(this.__wbg_ptr, ptr0, len0); - } - /** - * The backup decryption key, encoded as unpadded base64. - * @param {string} arg0 - */ - set key(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0); - } -} -exports.BackupSecretsBundle = BackupSecretsBundle; -if (Symbol.dispose) BackupSecretsBundle.prototype[Symbol.dispose] = BackupSecretsBundle.prototype.free; - -/** - * The base64-encoded variant of a {@link PkMessage}. - * - * This can be useful if the encrypted message should be put into JSON. - */ -class Base64EncodedPkMessage { - static __wrap(ptr) { - const obj = Object.create(Base64EncodedPkMessage.prototype); - obj.__wbg_ptr = ptr; - Base64EncodedPkMessageFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Base64EncodedPkMessageFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_base64encodedpkmessage_free(ptr, 0); - } - /** - * Creates a new base64-encoded encrypted message from its parts. - * @param {string} ciphertext - * @param {string} mac - * @param {string} ephemeral_key - */ - constructor(ciphertext, mac, ephemeral_key) { - const ptr0 = passStringToWasm0(ciphertext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(mac, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ptr2 = passStringToWasm0(ephemeral_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len2 = WASM_VECTOR_LEN; - const ret = wasm.base64encodedpkmessage_new(ptr0, len0, ptr1, len1, ptr2, len2); - this.__wbg_ptr = ret; - Base64EncodedPkMessageFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The base64-encoded ciphertext. - * @returns {string} - */ - get ciphertext() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_base64encodedpkmessage_ciphertext(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base64-encoded ephemeral public key. - * @returns {string} - */ - get ephemeralKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_base64encodedpkmessage_ephemeralKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base64-encoded message authentication code (MAC). - * @returns {string} - */ - get mac() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_base64encodedpkmessage_mac(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base64-encoded ciphertext. - * @param {string} arg0 - */ - set ciphertext(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_base64encodedpkmessage_ciphertext(this.__wbg_ptr, ptr0, len0); - } - /** - * The base64-encoded ephemeral public key. - * @param {string} arg0 - */ - set ephemeralKey(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_base64encodedpkmessage_ephemeralKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The base64-encoded message authentication code (MAC). - * @param {string} arg0 - */ - set mac(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_base64encodedpkmessage_mac(this.__wbg_ptr, ptr0, len0); - } -} -exports.Base64EncodedPkMessage = Base64EncodedPkMessage; -if (Symbol.dispose) Base64EncodedPkMessage.prototype[Symbol.dispose] = Base64EncodedPkMessage.prototype.free; - -/** - * The base dataset that is important to migrate to the Rust SDK. - * - * Can be imported into the rust store with {@link Migration::migrateBaseData}. - */ -class BaseMigrationData { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - BaseMigrationDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_basemigrationdata_free(ptr, 0); - } - /** - * Create a new `BaseMigrationData` with default values. - */ - constructor() { - const ret = wasm.basemigrationdata_new(); - this.__wbg_ptr = ret; - BaseMigrationDataFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The backup recovery key, as a base64-encoded string. - * @returns {string | undefined} - */ - get backupRecoveryKey() { - const ret = wasm.__wbg_get_basemigrationdata_backupRecoveryKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The backup version that is currently active. - * @returns {string | undefined} - */ - get backupVersion() { - const ret = wasm.__wbg_get_basemigrationdata_backupVersion(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The device ID of the account owner. - * @returns {DeviceId | undefined} - */ - get deviceId() { - const ret = wasm.__wbg_get_basemigrationdata_deviceId(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The pickle string holding the Olm Account, as returned by - * `olm_pickle_account` in libolm. - * @returns {string} - */ - get pickledAccount() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_basemigrationdata_pickledAccount(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The private, base64-encoded, master cross-signing key. - * @returns {string | undefined} - */ - get privateCrossSigningMasterKey() { - const ret = wasm.__wbg_get_basemigrationdata_privateCrossSigningMasterKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The private, base64-encoded, self-signing key. - * @returns {string | undefined} - */ - get privateCrossSigningSelfSigningKey() { - const ret = wasm.__wbg_get_basemigrationdata_privateCrossSigningSelfSigningKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The private, base64-encoded, user-signing key. - * @returns {string | undefined} - */ - get privateCrossSigningUserSigningKey() { - const ret = wasm.__wbg_get_basemigrationdata_privateCrossSigningUserSigningKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The user id of the account owner. - * @returns {UserId | undefined} - */ - get userId() { - const ret = wasm.__wbg_get_basemigrationdata_userId(this.__wbg_ptr); - return ret === 0 ? undefined : UserId.__wrap(ret); - } - /** - * The backup recovery key, as a base64-encoded string. - * @param {string | null} [arg0] - */ - set backupRecoveryKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_backupRecoveryKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The backup version that is currently active. - * @param {string | null} [arg0] - */ - set backupVersion(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_backupVersion(this.__wbg_ptr, ptr0, len0); - } - /** - * The device ID of the account owner. - * @param {DeviceId | null} [arg0] - */ - set deviceId(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, DeviceId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_basemigrationdata_deviceId(this.__wbg_ptr, ptr0); - } - /** - * The pickle string holding the Olm Account, as returned by - * `olm_pickle_account` in libolm. - * @param {string} arg0 - */ - set pickledAccount(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_pickledAccount(this.__wbg_ptr, ptr0, len0); - } - /** - * The private, base64-encoded, master cross-signing key. - * @param {string | null} [arg0] - */ - set privateCrossSigningMasterKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_privateCrossSigningMasterKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The private, base64-encoded, self-signing key. - * @param {string | null} [arg0] - */ - set privateCrossSigningSelfSigningKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_privateCrossSigningSelfSigningKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The private, base64-encoded, user-signing key. - * @param {string | null} [arg0] - */ - set privateCrossSigningUserSigningKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_privateCrossSigningUserSigningKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The user id of the account owner. - * @param {UserId | null} [arg0] - */ - set userId(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, UserId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_basemigrationdata_userId(this.__wbg_ptr, ptr0); - } -} -exports.BaseMigrationData = BaseMigrationData; -if (Symbol.dispose) BaseMigrationData.prototype[Symbol.dispose] = BaseMigrationData.prototype.free; - -/** - * Information about the cancellation of a verification request or - * verification flow. - */ -class CancelInfo { - static __wrap(ptr) { - const obj = Object.create(CancelInfo.prototype); - obj.__wbg_ptr = ptr; - CancelInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CancelInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_cancelinfo_free(ptr, 0); - } - /** - * Get the `code` (e.g. `m.user`) that was used to cancel the - * verification. - * @returns {string} - */ - cancelCode() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.cancelinfo_cancelCode(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Was the verification cancelled by us? - * @returns {boolean} - */ - cancelledbyUs() { - const ret = wasm.cancelinfo_cancelledbyUs(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the human readable reason of the cancellation. - * @returns {string} - */ - reason() { - const ret = wasm.cancelinfo_reason(this.__wbg_ptr); - return ret; - } -} -exports.CancelInfo = CancelInfo; -if (Symbol.dispose) CancelInfo.prototype[Symbol.dispose] = CancelInfo.prototype.free; - -/** - * A check code that can be used to confirm that two {@link EstablishedEcies} - * objects share the same secret. This is supposed to be shared out-of-band to - * protect against active Man-in-the-middle (MITM) attacks. - * - * Since the initiator device can always tell whether a MITM attack is in - * progress after channel establishment, this code technically carries only a - * single bit of information, representing whether the initiator has determined - * that the channel is "secure" or "not secure". - * - * However, given this will need to be interactively confirmed by the user, - * there is risk that the user would confirm the dialogue without paying - * attention to its content. By expanding this single bit into a deterministic - * two-digit check code, the user is forced to pay more attention by having to - * enter it instead of just clicking through a dialogue. - */ -class CheckCode { - static __wrap(ptr) { - const obj = Object.create(CheckCode.prototype); - obj.__wbg_ptr = ptr; - CheckCodeFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CheckCodeFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_checkcode_free(ptr, 0); - } - /** - * Convert the check code to an array of two bytes. - * - * The bytes can be converted to a more user-friendly representation. - * {@link to_digit} and {@link toDigitNoLeadingZero} convert the bytes to a - * two-digit number. - * @returns {Uint8Array} - */ - as_bytes() { - const ret = wasm.checkcode_as_bytes(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Convert the check code to two base-10 numbers, with no leading zero. - * - * This corresponds to the way the digits are defined in - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388}. - * @returns {number} - */ - toDigitNoLeadingZero() { - const ret = wasm.checkcode_toDigitNoLeadingZero(this.__wbg_ptr); - return ret; - } - /** - * Convert the check code to two base-10 numbers, allowing a leading zero. - * - * This corresponds to the way the digits were used in the initial version - * of {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4108 MSC4108}. - * See {@link toDigitNoLeadingZero} for a more recent implementation. - * - * The number should be displayed with a leading 0 in case the first digit - * is a 0. - * @returns {number} - */ - to_digit() { - const ret = wasm.checkcode_to_digit(this.__wbg_ptr); - return ret; - } -} -exports.CheckCode = CheckCode; -if (Symbol.dispose) CheckCode.prototype[Symbol.dispose] = CheckCode.prototype.free; - -/** - * Strategy to collect the devices that should receive room keys for the - * current discussion. - */ -class CollectStrategy { - static __wrap(ptr) { - const obj = Object.create(CollectStrategy.prototype); - obj.__wbg_ptr = ptr; - CollectStrategyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CollectStrategyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_collectstrategy_free(ptr, 0); - } - /** - * Share with all (unblacklisted) devices. - * @returns {CollectStrategy} - */ - static allDevices() { - const ret = wasm.collectstrategy_allDevices(); - return CollectStrategy.__wrap(ret); - } - /** - * Device based sharing strategy. - * - * @deprecated: use one of {@link allDevices}, {@link - * errorOnUnverifiedUserProblem} or {@link onlyTrustedDevices}. - * @param {boolean} only_allow_trusted_devices - * @param {boolean} error_on_verified_user_problem - * @returns {CollectStrategy} - */ - static deviceBasedStrategy(only_allow_trusted_devices, error_on_verified_user_problem) { - const ret = wasm.collectstrategy_deviceBasedStrategy(only_allow_trusted_devices, error_on_verified_user_problem); - return CollectStrategy.__wrap(ret); - } - /** - * Tests for equality between two [`CollectStrategy`]s. - * @param {CollectStrategy} other - * @returns {boolean} - */ - eq(other) { - _assertClass(other, CollectStrategy); - const ret = wasm.collectstrategy_eq(this.__wbg_ptr, other.__wbg_ptr); - return ret !== 0; - } - /** - * Share with all devices, except that errors for *verified* users cause - * sharing to fail with an error. - * - * In this strategy, if a verified user has an unsigned device, or - * a verified user has replaced their identity, key - * sharing will fail with an error. - * - * Otherwise, keys are shared with unsigned devices as normal. - * - * Once the problematic devices are blacklisted or whitelisted the - * caller can try sharing a second time. - * @returns {CollectStrategy} - */ - static errorOnUnverifiedUserProblem() { - const ret = wasm.collectstrategy_errorOnUnverifiedUserProblem(); - return CollectStrategy.__wrap(ret); - } - /** - * Share based on identity. Only distribute to devices signed by their - * owner. If a user has no published identity he will not receive - * any room keys. - * @returns {CollectStrategy} - */ - static identityBasedStrategy() { - const ret = wasm.collectstrategy_identityBasedStrategy(); - return CollectStrategy.__wrap(ret); - } - /** - * Only share keys with devices that we "trust". A device is trusted if any - * of the following is true: - * - It was manually marked as trusted. - * - It was marked as verified via interactive verification. - * - It is signed by its owner identity, and this identity has been - * trusted via interactive verification. - * - It is the current own device of the user. - * @returns {CollectStrategy} - */ - static onlyTrustedDevices() { - const ret = wasm.collectstrategy_onlyTrustedDevices(); - return CollectStrategy.__wrap(ret); - } -} -exports.CollectStrategy = CollectStrategy; -if (Symbol.dispose) CollectStrategy.prototype[Symbol.dispose] = CollectStrategy.prototype.free; - -/** - * A set of requests to be executed when bootstrapping cross-signing using - * {@link OlmMachine.bootstrapCrossSigning}. - */ -class CrossSigningBootstrapRequests { - static __wrap(ptr) { - const obj = Object.create(CrossSigningBootstrapRequests.prototype); - obj.__wbg_ptr = ptr; - CrossSigningBootstrapRequestsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CrossSigningBootstrapRequestsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_crosssigningbootstraprequests_free(ptr, 0); - } - /** - * An optional request to upload a device key. - * - * This will either be `undefined`, or an "outgoing request" as returned by - * {@link OlmMachine.outgoingRequests}. - * - * If it is defined, the request should be sent first, and the result sent - * back with {@link OlmMachine.markRequestAsSent}. - * @returns {any} - */ - get uploadKeysRequest() { - const ret = wasm.__wbg_get_crosssigningbootstraprequests_uploadKeysRequest(this.__wbg_ptr); - return ret; - } - /** - * Request to upload key signatures, including those for the cross-signing - * keys, and maybe some for the optional uploaded key too. - * - * Should be sent last. - * @returns {SignatureUploadRequest} - */ - get uploadSignaturesRequest() { - const ret = wasm.__wbg_get_crosssigningbootstraprequests_uploadSignaturesRequest(this.__wbg_ptr); - return SignatureUploadRequest.__wrap(ret); - } - /** - * Request to upload the cross-signing keys. - * - * Should be sent second. - * @returns {UploadSigningKeysRequest} - */ - get uploadSigningKeysRequest() { - const ret = wasm.__wbg_get_crosssigningbootstraprequests_uploadSigningKeysRequest(this.__wbg_ptr); - return UploadSigningKeysRequest.__wrap(ret); - } -} -exports.CrossSigningBootstrapRequests = CrossSigningBootstrapRequests; -if (Symbol.dispose) CrossSigningBootstrapRequests.prototype[Symbol.dispose] = CrossSigningBootstrapRequests.prototype.free; - -/** - * A struct containing private cross signing keys that can be backed - * up or uploaded to the secret store. - */ -class CrossSigningKeyExport { - static __wrap(ptr) { - const obj = Object.create(CrossSigningKeyExport.prototype); - obj.__wbg_ptr = ptr; - CrossSigningKeyExportFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CrossSigningKeyExportFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_crosssigningkeyexport_free(ptr, 0); - } - /** - * The seed of the master key encoded as unpadded base64. - * @returns {string | undefined} - */ - get masterKey() { - const ret = wasm.crosssigningkeyexport_masterKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The seed of the self signing key encoded as unpadded base64. - * @returns {string | undefined} - */ - get self_signing_key() { - const ret = wasm.crosssigningkeyexport_self_signing_key(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The seed of the user signing key encoded as unpadded base64. - * @returns {string | undefined} - */ - get userSigningKey() { - const ret = wasm.crosssigningkeyexport_userSigningKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } -} -exports.CrossSigningKeyExport = CrossSigningKeyExport; -if (Symbol.dispose) CrossSigningKeyExport.prototype[Symbol.dispose] = CrossSigningKeyExport.prototype.free; - -/** - * Struct representing the state of our private cross signing keys, - * it shows which private cross signing keys we have locally stored. - */ -class CrossSigningStatus { - static __wrap(ptr) { - const obj = Object.create(CrossSigningStatus.prototype); - obj.__wbg_ptr = ptr; - CrossSigningStatusFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CrossSigningStatusFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_crosssigningstatus_free(ptr, 0); - } - /** - * Do we have the master key? - * @returns {boolean} - */ - get hasMaster() { - const ret = wasm.crosssigningstatus_hasMaster(this.__wbg_ptr); - return ret !== 0; - } - /** - * Do we have the self signing key? This one is necessary to sign - * our own devices. - * @returns {boolean} - */ - get hasSelfSigning() { - const ret = wasm.crosssigningstatus_hasSelfSigning(this.__wbg_ptr); - return ret !== 0; - } - /** - * Do we have the user signing key? This one is necessary to sign - * other users. - * @returns {boolean} - */ - get hasUserSigning() { - const ret = wasm.crosssigningstatus_hasUserSigning(this.__wbg_ptr); - return ret !== 0; - } -} -exports.CrossSigningStatus = CrossSigningStatus; -if (Symbol.dispose) CrossSigningStatus.prototype[Symbol.dispose] = CrossSigningStatus.prototype.free; - -/** - * A Curve25519 public key. - */ -class Curve25519PublicKey { - static __wrap(ptr) { - const obj = Object.create(Curve25519PublicKey.prototype); - obj.__wbg_ptr = ptr; - Curve25519PublicKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Curve25519PublicKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_curve25519publickey_free(ptr, 0); - } - /** - * The number of bytes a Curve25519 public key has. - * @returns {number} - */ - get length() { - const ret = wasm.curve25519publickey_length(this.__wbg_ptr); - return ret >>> 0; - } - /** - * Create a new [`Curve25519PublicKey`] from a base64 encoded string. - * @param {string} key - */ - constructor(key) { - const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.curve25519publickey_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - Curve25519PublicKeyFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Serialize an Curve25519 public key to an unpadded base64 - * representation. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.curve25519publickey_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.Curve25519PublicKey = Curve25519PublicKey; -if (Symbol.dispose) Curve25519PublicKey.prototype[Symbol.dispose] = Curve25519PublicKey.prototype.free; - -/** - * A Curve25519 secret key. - */ -class Curve25519SecretKey { - static __wrap(ptr) { - const obj = Object.create(Curve25519SecretKey.prototype); - obj.__wbg_ptr = ptr; - Curve25519SecretKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Curve25519SecretKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_curve25519secretkey_free(ptr, 0); - } - /** - * Creates a `Curve25519SecretKey` from a base64-encoded representation of - * the key. - * @param {string} string - * @returns {Curve25519SecretKey} - */ - static fromBase64(string) { - const ptr0 = passStringToWasm0(string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.curve25519secretkey_fromBase64(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return Curve25519SecretKey.__wrap(ret[0]); - } - /** - * Creates a `Curve25519SecretKey` from a raw byte slice. - * @param {Uint8Array} slice - * @returns {Curve25519SecretKey} - */ - static fromUint8Array(slice) { - const ptr0 = passArray8ToWasm0(slice, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.curve25519secretkey_fromUint8Array(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return Curve25519SecretKey.__wrap(ret[0]); - } - /** - * Generates a new random Curve25519 secret key. - * @returns {Curve25519SecretKey} - */ - static new() { - const ret = wasm.curve25519secretkey_new(); - return Curve25519SecretKey.__wrap(ret); - } - /** - * Encodes the secret key into a base64 string. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.curve25519secretkey_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Converts the secret key into a raw byte vector. - * @returns {Uint8Array} - */ - toUint8Array() { - const ret = wasm.curve25519secretkey_toUint8Array(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } -} -exports.Curve25519SecretKey = Curve25519SecretKey; -if (Symbol.dispose) Curve25519SecretKey.prototype[Symbol.dispose] = Curve25519SecretKey.prototype.free; - -/** - * A decrypted room event. - */ -class DecryptedRoomEvent { - static __wrap(ptr) { - const obj = Object.create(DecryptedRoomEvent.prototype); - obj.__wbg_ptr = ptr; - DecryptedRoomEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DecryptedRoomEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_decryptedroomevent_free(ptr, 0); - } - /** - * If the keys for this message were shared-on-invite as part of an - * [MSC4268] key bundle, the ID of the user who sent us the bundle. - * - * [MSC4268]: https://github.com/matrix-org/matrix-spec-proposals/pull/4268 - * @returns {UserId | undefined} - */ - get forwarder() { - const ret = wasm.decryptedroomevent_forwarder(this.__wbg_ptr); - return ret === 0 ? undefined : UserId.__wrap(ret); - } - /** - * If the keys for this message were shared-on-invite as part of an - * [MSC4268] key bundle, the ID of the device from which this bundle - * was sent. - * - * [MSC4268]: https://github.com/matrix-org/matrix-spec-proposals/pull/4268 - * @returns {DeviceId | undefined} - */ - get forwarderDevice() { - const ret = wasm.decryptedroomevent_forwarderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * Returns an empty array - * - * Previously, this returned the chain of Curve25519 keys through which - * this session was forwarded, via `m.forwarded_room_key` events. - * However, that is not cryptographically reliable, and clients should not - * be using it. - * - * @see https://github.com/matrix-org/matrix-spec/issues/1089 - * @returns {string[]} - */ - get forwardingCurve25519KeyChain() { - const ret = wasm.decryptedroomevent_forwardingCurve25519KeyChain(this.__wbg_ptr); - return ret; - } - /** - * The user ID of the event sender, note this is untrusted data - * unless the `verification_state` is as well trusted. - * @returns {UserId} - */ - get sender() { - const ret = wasm.decryptedroomevent_sender(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The signing Ed25519 key that have created the megolm key that - * was used to decrypt this session. - * @returns {string | undefined} - */ - get senderClaimedEd25519Key() { - const ret = wasm.decryptedroomevent_senderClaimedEd25519Key(this.__wbg_ptr); - return ret; - } - /** - * The Curve25519 key of the device that created the megolm - * decryption key originally. - * @returns {string} - */ - get senderCurve25519Key() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.decryptedroomevent_senderCurve25519Key(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The device ID of the device that sent us the event, note this - * is untrusted data unless `verification_state` is as well - * trusted. - * @returns {DeviceId | undefined} - */ - get senderDevice() { - const ret = wasm.decryptedroomevent_senderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The verification state of the device that sent us the event. - * Note this is the state of the device at the time of - * decryption. It may change in the future if a device gets - * verified or deleted. - * @param {boolean} strict - * @returns {ShieldState} - */ - shieldState(strict) { - const ret = wasm.decryptedroomevent_shieldState(this.__wbg_ptr, strict); - return ShieldState.__wrap(ret); - } - /** - * The JSON-encoded decrypted event. - * @returns {string} - */ - get event() { - const ret = wasm.__wbg_get_decryptedroomevent_event(this.__wbg_ptr); - return ret; - } -} -exports.DecryptedRoomEvent = DecryptedRoomEvent; -if (Symbol.dispose) DecryptedRoomEvent.prototype[Symbol.dispose] = DecryptedRoomEvent.prototype.free; - -/** - * Represents an encrypted to-device event, after it has been decrypted. - */ -class DecryptedToDeviceEvent { - static __wrap(ptr) { - const obj = Object.create(DecryptedToDeviceEvent.prototype); - obj.__wbg_ptr = ptr; - DecryptedToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DecryptedToDeviceEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_decryptedtodeviceevent_free(ptr, 0); - } - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.Decrypted} for this type. - * @returns {ProcessedToDeviceEventType} - */ - get type() { - const ret = wasm.decryptedtodeviceevent_type(this.__wbg_ptr); - return ret; - } - /** - * The encryption information for the event. - * @returns {ToDeviceEncryptionInfo} - */ - get encryptionInfo() { - const ret = wasm.__wbg_get_decryptedtodeviceevent_encryptionInfo(this.__wbg_ptr); - return ToDeviceEncryptionInfo.__wrap(ret); - } - /** - * The decrypted event, as if it had been sent in the clear, encoded as - * JSON. - * - * Typically contains properties `type`, `sender` and `content`. - * - * (For room keys or secrets, some part of the content might have been - * zeroized). - * @returns {string} - */ - get rawEvent() { - const ret = wasm.__wbg_get_decryptedtodeviceevent_rawEvent(this.__wbg_ptr); - return ret; - } -} -exports.DecryptedToDeviceEvent = DecryptedToDeviceEvent; -if (Symbol.dispose) DecryptedToDeviceEvent.prototype[Symbol.dispose] = DecryptedToDeviceEvent.prototype.free; - -/** - * Decryption error codes - * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7} - */ -const DecryptionErrorCode = exports.DecryptionErrorCode = Object.freeze({ - /** - * The room key is not known - */ - MissingRoomKey: 0, - "0": "MissingRoomKey", - /** - * The room key is known but ratcheted - */ - UnknownMessageIndex: 1, - "1": "UnknownMessageIndex", - /** - * Decryption failed because of a mismatch between the identity keys of the - * device we received the room key from and the identity keys recorded in - * the plaintext of the room key to-device message. - */ - MismatchedIdentityKeys: 2, - "2": "MismatchedIdentityKeys", - /** - * We weren't able to link the message back to any known device. - */ - UnknownSenderDevice: 3, - "3": "UnknownSenderDevice", - /** - * The sender device is not cross-signed. - */ - UnsignedSenderDevice: 4, - "4": "UnsignedSenderDevice", - /** - * The sender's identity is unverified, but was previously verified. - */ - SenderIdentityVerificationViolation: 5, - "5": "SenderIdentityVerificationViolation", - /** - * Other failure. - */ - UnableToDecrypt: 6, - "6": "UnableToDecrypt", - /** - * The `sender` field on the event does not match the owner of the device - * that established the Megolm session. - */ - MismatchedSender: 7, - "7": "MismatchedSender" -}); - -/** - * Settings for decrypting messages - */ -class DecryptionSettings { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DecryptionSettingsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_decryptionsettings_free(ptr, 0); - } - /** - * Create a new `DecryptionSettings` with the given trust requirement. - * @param {TrustRequirement} sender_device_trust_requirement - */ - constructor(sender_device_trust_requirement) { - const ret = wasm.decryptionsettings_new(sender_device_trust_requirement); - this.__wbg_ptr = ret; - DecryptionSettingsFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The trust level required to decrypt the event - * @returns {TrustRequirement} - */ - get sender_device_trust_requirement() { - const ret = wasm.__wbg_get_decryptionsettings_sender_device_trust_requirement(this.__wbg_ptr); - return ret; - } - /** - * The trust level required to decrypt the event - * @param {TrustRequirement} arg0 - */ - set sender_device_trust_requirement(arg0) { - wasm.__wbg_set_decryptionsettings_sender_device_trust_requirement(this.__wbg_ptr, arg0); - } -} -exports.DecryptionSettings = DecryptionSettings; -if (Symbol.dispose) DecryptionSettings.prototype[Symbol.dispose] = DecryptionSettings.prototype.free; - -/** - * A dehydrated device that can be uploaded to the server - */ -class DehydratedDevice { - static __wrap(ptr) { - const obj = Object.create(DehydratedDevice.prototype); - obj.__wbg_ptr = ptr; - DehydratedDeviceFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DehydratedDeviceFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_dehydrateddevice_free(ptr, 0); - } - /** - * Create the request to upload the dehydrated device - * @param {string} initial_device_display_name - * @param {DehydratedDeviceKey} dehydrated_device_key - * @returns {Promise} - */ - keysForUpload(initial_device_display_name, dehydrated_device_key) { - _assertClass(dehydrated_device_key, DehydratedDeviceKey); - const ret = wasm.dehydrateddevice_keysForUpload(this.__wbg_ptr, initial_device_display_name, dehydrated_device_key.__wbg_ptr); - return ret; - } -} -exports.DehydratedDevice = DehydratedDevice; -if (Symbol.dispose) DehydratedDevice.prototype[Symbol.dispose] = DehydratedDevice.prototype.free; - -/** - * Dehydrated device key - */ -class DehydratedDeviceKey { - static __wrap(ptr) { - const obj = Object.create(DehydratedDeviceKey.prototype); - obj.__wbg_ptr = ptr; - DehydratedDeviceKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DehydratedDeviceKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_dehydrateddevicekey_free(ptr, 0); - } - /** - * Generates a dehydrated device key from a given array. - * @param {Uint8Array} array - * @returns {DehydratedDeviceKey} - */ - static createKeyFromArray(array) { - const ret = wasm.dehydrateddevicekey_createKeyFromArray(array); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return DehydratedDeviceKey.__wrap(ret[0]); - } - /** - * Generates a new random dehydrated device key. - * @returns {DehydratedDeviceKey} - */ - static createRandomKey() { - const ret = wasm.dehydrateddevicekey_createRandomKey(); - return DehydratedDeviceKey.__wrap(ret); - } - /** - * Convert the dehydrated device key to a base64-encoded string. - * @returns {string} - */ - toBase64() { - const ret = wasm.dehydrateddevicekey_toBase64(this.__wbg_ptr); - return ret; - } -} -exports.DehydratedDeviceKey = DehydratedDeviceKey; -if (Symbol.dispose) DehydratedDeviceKey.prototype[Symbol.dispose] = DehydratedDeviceKey.prototype.free; - -/** - * Struct collecting methods to create and rehydrate dehydrated devices. - */ -class DehydratedDevices { - static __wrap(ptr) { - const obj = Object.create(DehydratedDevices.prototype); - obj.__wbg_ptr = ptr; - DehydratedDevicesFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DehydratedDevicesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_dehydrateddevices_free(ptr, 0); - } - /** - * Create a new {@link DehydratedDevice} which can be uploaded to the - * server. - * @returns {Promise} - */ - create() { - const ret = wasm.dehydrateddevices_create(this.__wbg_ptr); - return ret; - } - /** - * Clear the dehydrated device key saved in the crypto store. - * @returns {Promise} - */ - deleteDehydratedDeviceKey() { - const ret = wasm.dehydrateddevices_deleteDehydratedDeviceKey(this.__wbg_ptr); - return ret; - } - /** - * Get the cached dehydrated device key if any. - * - * `None` if the key was not previously cached (via - * {@link DehydratedDevices.saveDehydratedDeviceKey}). - * @returns {Promise} - */ - getDehydratedDeviceKey() { - const ret = wasm.dehydrateddevices_getDehydratedDeviceKey(this.__wbg_ptr); - return ret; - } - /** - * Rehydrate a dehydrated device. - * @param {DehydratedDeviceKey} dehydrated_device_key - * @param {DeviceId} device_id - * @param {string} device_data - * @returns {Promise} - */ - rehydrate(dehydrated_device_key, device_id, device_data) { - _assertClass(dehydrated_device_key, DehydratedDeviceKey); - _assertClass(device_id, DeviceId); - const ptr0 = passStringToWasm0(device_data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.dehydrateddevices_rehydrate(this.__wbg_ptr, dehydrated_device_key.__wbg_ptr, device_id.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Store the dehydrated device key in the crypto store. - * @param {DehydratedDeviceKey} dehydrated_device_key - * @returns {Promise} - */ - saveDehydratedDeviceKey(dehydrated_device_key) { - _assertClass(dehydrated_device_key, DehydratedDeviceKey); - const ret = wasm.dehydrateddevices_saveDehydratedDeviceKey(this.__wbg_ptr, dehydrated_device_key.__wbg_ptr); - return ret; - } -} -exports.DehydratedDevices = DehydratedDevices; -if (Symbol.dispose) DehydratedDevices.prototype[Symbol.dispose] = DehydratedDevices.prototype.free; - -/** - * A device represents a E2EE capable client of an user. - */ -class Device { - static __wrap(ptr) { - const obj = Object.create(Device.prototype); - obj.__wbg_ptr = ptr; - DeviceFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_device_free(ptr, 0); - } - /** - * Get the list of algorithms this device supports. - * - * Returns `Array`. - * @returns {EncryptionAlgorithm[]} - */ - get algorithms() { - const ret = wasm.device_algorithms(this.__wbg_ptr); - return ret; - } - /** - * Get the Curve25519 key of the given device. - * @returns {Curve25519PublicKey | undefined} - */ - get curve25519Key() { - const ret = wasm.device_curve25519Key(this.__wbg_ptr); - return ret === 0 ? undefined : Curve25519PublicKey.__wrap(ret); - } - /** - * The unique ID of the device. - * @returns {DeviceId} - */ - get deviceId() { - const ret = wasm.device_deviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Get the human readable name of the device. - * @returns {string | undefined} - */ - get displayName() { - const ret = wasm.device_displayName(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Get the Ed25519 key of the given device. - * @returns {Ed25519PublicKey | undefined} - */ - get ed25519Key() { - const ret = wasm.device_ed25519Key(this.__wbg_ptr); - return ret === 0 ? undefined : Ed25519PublicKey.__wrap(ret); - } - /** - * Encrypt a to-device message to be sent to this device, using Olm - * encryption. - * - * Prior to calling this method you must ensure that an Olm session is - * available for the target device. This can be done by calling - * {@link OlmMachine.getMissingSessions}. - * - * The caller is responsible for sending the encrypted - * event to the target device. If multiple messages are - * encrypted for the same device using this method they should be sent in - * the same order as they are encrypted. - * - * # Returns - * - * Returns a promise for a JSON string containing the `content` of an - * encrypted event, which be used to create the payload for a - * `/sendToDevice` API. - * @param {string} event_type - * @param {any} content - * @param {CollectStrategy | null} [share_strategy] - * @returns {Promise} - */ - encryptToDeviceEvent(event_type, content, share_strategy) { - const ptr0 = passStringToWasm0(event_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - let ptr1 = 0; - if (!isLikeNone(share_strategy)) { - _assertClass(share_strategy, CollectStrategy); - ptr1 = share_strategy.__destroy_into_raw(); - } - const ret = wasm.device_encryptToDeviceEvent(this.__wbg_ptr, ptr0, len0, content, ptr1); - return ret; - } - /** - * Timestamp representing the first time this device has been seen (in - * milliseconds). - * @returns {bigint} - */ - firstTimeSeen() { - const ret = wasm.device_firstTimeSeen(this.__wbg_ptr); - return BigInt.asUintN(64, ret); - } - /** - * Get the key of the given key algorithm belonging to this device. - * @param {DeviceKeyAlgorithmName} algorithm - * @returns {DeviceKey | undefined} - */ - getKey(algorithm) { - const ret = wasm.device_getKey(this.__wbg_ptr, algorithm); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return ret[0] === 0 ? undefined : DeviceKey.__wrap(ret[0]); - } - /** - * Is the device locally marked as blacklisted? - * - * Blacklisted devices won’t receive any group sessions. - * @returns {boolean} - */ - isBlacklisted() { - const ret = wasm.device_isBlacklisted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this device cross-signed by its owner? - * @returns {boolean} - */ - isCrossSignedByOwner() { - const ret = wasm.device_isCrossSignedByOwner(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this device considered to be verified using cross signing. - * @returns {boolean} - */ - isCrossSigningTrusted() { - const ret = wasm.device_isCrossSigningTrusted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Whether or not the device is a dehydrated device. - * @returns {boolean} - */ - get isDehydrated() { - const ret = wasm.device_isDehydrated(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the device deleted? - * @returns {boolean} - */ - isDeleted() { - const ret = wasm.device_isDeleted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the device locally marked as trusted? - * @returns {boolean} - */ - isLocallyTrusted() { - const ret = wasm.device_isLocallyTrusted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this device considered to be verified. - * - * This method returns true if either the `is_locally_trusted` - * method returns `true` or if the `is_cross_signing_trusted` - * method returns `true`. - * @returns {boolean} - */ - isVerified() { - const ret = wasm.device_isVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get a map containing all the device keys. - * @returns {Map} - */ - get keys() { - const ret = wasm.device_keys(this.__wbg_ptr); - return ret; - } - /** - * Get the trust state of the device. - * @returns {LocalTrust} - */ - get localTrustState() { - const ret = wasm.device_localTrustState(this.__wbg_ptr); - return ret; - } - /** - * Request an interactive verification with this device. - * - * Returns a 2-element array `[VerificationRequest, ToDeviceRequest]`. - * @param {VerificationMethod[]} [methods] - * @returns {[VerificationRequest, ToDeviceRequest]} - */ - requestVerification(methods) { - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.device_requestVerification(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Set the local trust state of the device to the given state. - * - * This won’t affect any cross signing trust state, this only - * sets a flag marking to have the given trust state. - * - * `trust_state` represents the new trust state that should be - * set for the device. - * @param {LocalTrust} local_state - * @returns {Promise} - */ - setLocalTrust(local_state) { - const ret = wasm.device_setLocalTrust(this.__wbg_ptr, local_state); - return ret; - } - /** - * Get a map containing all the device signatures. - * @returns {Signatures} - */ - get signatures() { - const ret = wasm.device_signatures(this.__wbg_ptr); - return Signatures.__wrap(ret); - } - /** - * The user ID of the device owner. - * @returns {UserId} - */ - get userId() { - const ret = wasm.device_userId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Mark this device as verified. - * Works only if the device is owned by the current user. - * - * Returns a signature upload request that needs to be sent out. - * @returns {Promise} - */ - verify() { - const ret = wasm.device_verify(this.__wbg_ptr); - return ret; - } -} -exports.Device = Device; -if (Symbol.dispose) Device.prototype[Symbol.dispose] = Device.prototype.free; - -/** - * A Matrix key ID. - * - * Device identifiers in Matrix are completely opaque character - * sequences. This type is provided simply for its semantic value. - */ -class DeviceId { - static __wrap(ptr) { - const obj = Object.create(DeviceId.prototype); - obj.__wbg_ptr = ptr; - DeviceIdFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_deviceid_free(ptr, 0); - } - /** - * Create a new `DeviceId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.deviceid_new(ptr0, len0); - this.__wbg_ptr = ret; - DeviceIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Return the device ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.deviceid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.DeviceId = DeviceId; -if (Symbol.dispose) DeviceId.prototype[Symbol.dispose] = DeviceId.prototype.free; - -/** - * An enum over the different key types a device can have. - * - * Currently devices have a curve25519 and ed25519 keypair. The keys - * transport format is a base64 encoded string, any unknown key type - * will be left as such a string. - */ -class DeviceKey { - static __wrap(ptr) { - const obj = Object.create(DeviceKey.prototype); - obj.__wbg_ptr = ptr; - DeviceKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_devicekey_free(ptr, 0); - } - /** - * Get the value associated to the `Curve25519` device key name. - * @returns {Curve25519PublicKey | undefined} - */ - get curve25519() { - const ret = wasm.devicekey_curve25519(this.__wbg_ptr); - return ret === 0 ? undefined : Curve25519PublicKey.__wrap(ret); - } - /** - * Get the value associated to the `Ed25519` device key name. - * @returns {Ed25519PublicKey | undefined} - */ - get ed25519() { - const ret = wasm.devicekey_ed25519(this.__wbg_ptr); - return ret === 0 ? undefined : Ed25519PublicKey.__wrap(ret); - } - /** - * Get the name of the device key. - * @returns {DeviceKeyName} - */ - get name() { - const ret = wasm.devicekey_name(this.__wbg_ptr); - return ret; - } - /** - * Convert the `DeviceKey` into a base64 encoded string. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.devicekey_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Get the value associated to the `Unknown` device key name. - * @returns {string | undefined} - */ - get unknown() { - const ret = wasm.devicekey_unknown(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } -} -exports.DeviceKey = DeviceKey; -if (Symbol.dispose) DeviceKey.prototype[Symbol.dispose] = DeviceKey.prototype.free; - -/** - * The basic key algorithms in the specification. - */ -class DeviceKeyAlgorithm { - static __wrap(ptr) { - const obj = Object.create(DeviceKeyAlgorithm.prototype); - obj.__wbg_ptr = ptr; - DeviceKeyAlgorithmFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceKeyAlgorithmFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_devicekeyalgorithm_free(ptr, 0); - } - /** - * Read the device key algorithm's name. If the name is - * `Unknown`, one may be interested by the `to_string` method to - * read the original name. - * @returns {DeviceKeyAlgorithmName} - */ - get name() { - const ret = wasm.devicekeyalgorithm_name(this.__wbg_ptr); - return ret; - } - /** - * Return the device key algorithm as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.devicekeyalgorithm_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.DeviceKeyAlgorithm = DeviceKeyAlgorithm; -if (Symbol.dispose) DeviceKeyAlgorithm.prototype[Symbol.dispose] = DeviceKeyAlgorithm.prototype.free; - -/** - * The basic key algorithm names in the specification. - * @enum {0 | 1 | 3} - */ -const DeviceKeyAlgorithmName = exports.DeviceKeyAlgorithmName = Object.freeze({ - /** - * The Ed25519 signature algorithm. - */ - Ed25519: 0, - "0": "Ed25519", - /** - * The Curve25519 ECDH algorithm. - */ - Curve25519: 1, - "1": "Curve25519", - /** - * An unknown device key algorithm. - */ - Unknown: 3, - "3": "Unknown" -}); - -/** - * A Matrix device key ID. - * - * A key algorithm and a device ID, combined with a ‘:’. - */ -class DeviceKeyId { - static __wrap(ptr) { - const obj = Object.create(DeviceKeyId.prototype); - obj.__wbg_ptr = ptr; - DeviceKeyIdFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceKeyIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_devicekeyid_free(ptr, 0); - } - /** - * Returns key algorithm of the device key ID. - * @returns {DeviceKeyAlgorithm} - */ - get algorithm() { - const ret = wasm.devicekeyid_algorithm(this.__wbg_ptr); - return DeviceKeyAlgorithm.__wrap(ret); - } - /** - * Returns device ID of the device key ID. - * @returns {DeviceId} - */ - get deviceId() { - const ret = wasm.devicekeyid_deviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Parse/validate and create a new `DeviceKeyId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.devicekeyid_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - DeviceKeyIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Return the device key ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.devicekeyid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.DeviceKeyId = DeviceKeyId; -if (Symbol.dispose) DeviceKeyId.prototype[Symbol.dispose] = DeviceKeyId.prototype.free; - -/** - * An enum over the different key types a device can have. - * - * Currently devices have a curve25519 and ed25519 keypair. The keys - * transport format is a base64 encoded string, any unknown key type - * will be left as such a string. - * @enum {0 | 1 | 2} - */ -const DeviceKeyName = exports.DeviceKeyName = Object.freeze({ - /** - * The curve25519 device key. - */ - Curve25519: 0, - "0": "Curve25519", - /** - * The ed25519 device key. - */ - Ed25519: 1, - "1": "Ed25519", - /** - * An unknown device key. - */ - Unknown: 2, - "2": "Unknown" -}); - -/** - * Information on E2E device updates. - */ -class DeviceLists { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceListsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_devicelists_free(ptr, 0); - } - /** - * List of users who have updated their device identity keys or - * who now share an encrypted room with the client since the - * previous sync - * @returns {UserId[]} - */ - get changed() { - const ret = wasm.devicelists_changed(this.__wbg_ptr); - var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - return v1; - } - /** - * Returns true if there are no device list updates. - * @returns {boolean} - */ - isEmpty() { - const ret = wasm.devicelists_isEmpty(this.__wbg_ptr); - return ret !== 0; - } - /** - * List of users who no longer share encrypted rooms since the - * previous sync response. - * @returns {UserId[]} - */ - get left() { - const ret = wasm.devicelists_left(this.__wbg_ptr); - var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - return v1; - } - /** - * Create an empty `DeviceLists`. - * - * `changed` and `left` must be an array of `UserId`. - * - * Items inside `changed` and `left` will be invalidated by this method. Be - * careful not to use the `UserId`s after this method has been called. - * @param {UserId[] | null} [changed] - * @param {UserId[] | null} [left] - */ - constructor(changed, left) { - var ptr0 = isLikeNone(changed) ? 0 : passArrayJsValueToWasm0(changed, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(left) ? 0 : passArrayJsValueToWasm0(left, wasm.__wbindgen_malloc); - var len1 = WASM_VECTOR_LEN; - const ret = wasm.devicelists_new(ptr0, len0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - DeviceListsFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -exports.DeviceLists = DeviceLists; -if (Symbol.dispose) DeviceLists.prototype[Symbol.dispose] = DeviceLists.prototype.free; - -/** - * An unestablished ECIES session. - */ -class Ecies { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EciesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_ecies_free(ptr, 0); - } - /** - * Create a [`EstablishedEcies`] from an initial message encrypted by the - * other side. - * @param {string} initial_message - * @returns {InboundCreationResult} - */ - establish_inbound_channel(initial_message) { - const ptr0 = passStringToWasm0(initial_message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.ecies_establish_inbound_channel(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return InboundCreationResult.__wrap(ret[0]); - } - /** - * Create an [`EstablishedEcies`] session using the other side's Curve25519 - * public key and an initial plaintext. - * - * After the channel has been established, we can encrypt messages to send - * to the other side. The other side uses the initial message to - * establishes the same channel on its side. - * @param {Curve25519PublicKey} public_key - * @param {string} initial_message - * @returns {OutboundCreationResult} - */ - establish_outbound_channel(public_key, initial_message) { - _assertClass(public_key, Curve25519PublicKey); - const ptr0 = passStringToWasm0(initial_message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.ecies_establish_outbound_channel(this.__wbg_ptr, public_key.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return OutboundCreationResult.__wrap(ret[0]); - } - /** - * Create a new, random, unestablished ECIES session. - * - * This method will use the - * [`MATRIX_QR_CODE_LOGIN`](https://github.com/matrix-org/matrix-spec-proposals/pull/4108) - * info for domain separation when creating the session. - */ - constructor() { - const ret = wasm.ecies_new(); - this.__wbg_ptr = ret; - EciesFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get our [`Curve25519PublicKey`]. - * - * This public key needs to be sent to the other side to be able to - * establish an ECIES channel. - * @returns {Curve25519PublicKey} - */ - public_key() { - const ret = wasm.ecies_public_key(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } -} -exports.Ecies = Ecies; -if (Symbol.dispose) Ecies.prototype[Symbol.dispose] = Ecies.prototype.free; - -/** - * An Ed25519 public key, used to verify digital signatures. - */ -class Ed25519PublicKey { - static __wrap(ptr) { - const obj = Object.create(Ed25519PublicKey.prototype); - obj.__wbg_ptr = ptr; - Ed25519PublicKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Ed25519PublicKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_ed25519publickey_free(ptr, 0); - } - /** - * The number of bytes an Ed25519 public key has. - * @returns {number} - */ - get length() { - const ret = wasm.ed25519publickey_length(this.__wbg_ptr); - return ret >>> 0; - } - /** - * Serialize an Ed25519 public key to an unpadded base64 - * representation. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.ed25519publickey_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.Ed25519PublicKey = Ed25519PublicKey; -if (Symbol.dispose) Ed25519PublicKey.prototype[Symbol.dispose] = Ed25519PublicKey.prototype.free; - -/** - * An Ed25519 digital signature, can be used to verify the - * authenticity of a message. - */ -class Ed25519Signature { - static __wrap(ptr) { - const obj = Object.create(Ed25519Signature.prototype); - obj.__wbg_ptr = ptr; - Ed25519SignatureFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Ed25519SignatureFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_ed25519signature_free(ptr, 0); - } - /** - * Try to create an Ed25519 signature from an unpadded base64 - * representation. - * @param {string} signature - */ - constructor(signature) { - const ptr0 = passStringToWasm0(signature, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.ed25519signature_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - Ed25519SignatureFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Serialize a Ed25519 signature to an unpadded base64 - * representation. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.ed25519signature_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.Ed25519Signature = Ed25519Signature; -if (Symbol.dispose) Ed25519Signature.prototype[Symbol.dispose] = Ed25519Signature.prototype.free; - -/** - * An emoji that is used for interactive verification using a short - * auth string. - * - * This will contain a single emoji and description from the list of - * emojis from [the specification]. - * - * [the specification]: https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji - */ -class Emoji { - static __wrap(ptr) { - const obj = Object.create(Emoji.prototype); - obj.__wbg_ptr = ptr; - EmojiFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EmojiFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_emoji_free(ptr, 0); - } - /** - * The description of the emoji, for example ‘Dog’. - * @returns {string} - */ - get description() { - const ret = wasm.emoji_description(this.__wbg_ptr); - return ret; - } - /** - * The emoji symbol that represents a part of the short auth - * string, for example: 🐶 - * @returns {string} - */ - get symbol() { - const ret = wasm.emoji_symbol(this.__wbg_ptr); - return ret; - } -} -exports.Emoji = Emoji; -if (Symbol.dispose) Emoji.prototype[Symbol.dispose] = Emoji.prototype.free; - -/** - * An encrypted attachment, usually created from `Attachment.encrypt`. - */ -class EncryptedAttachment { - static __wrap(ptr) { - const obj = Object.create(EncryptedAttachment.prototype); - obj.__wbg_ptr = ptr; - EncryptedAttachmentFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EncryptedAttachmentFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_encryptedattachment_free(ptr, 0); - } - /** - * The actual encrypted data. - * - * **Warning**: It returns a **copy** of the entire encrypted - * data; be nice with your memory. - * @returns {Uint8Array} - */ - get encryptedData() { - const ret = wasm.encryptedattachment_encryptedData(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Check whether the media encryption info has been consumed by - * `Attachment.decrypt` already. - * @returns {boolean} - */ - get hasMediaEncryptionInfoBeenConsumed() { - const ret = wasm.encryptedattachment_hasMediaEncryptionInfoBeenConsumed(this.__wbg_ptr); - return ret !== 0; - } - /** - * Return the media encryption info as a JSON-encoded object. The - * structure is fully valid. - * - * If the media encryption info have been consumed already, it - * will return `null`. - * @returns {string | undefined} - */ - get mediaEncryptionInfo() { - const ret = wasm.encryptedattachment_mediaEncryptionInfo(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Create a new encrypted attachment manually. - * - * It needs encrypted data, stored in an `Uint8Array`, and a - * [media encryption - * information](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/struct.MediaEncryptionInfo.html), - * as a JSON-encoded object. - * - * The media encryption information aren't stored as a string: - * they are parsed, validated and fully deserialized. - * - * See [the specification to learn - * more](https://spec.matrix.org/unstable/client-server-api/#extensions-to-mroommessage-msgtypes). - * @param {Uint8Array} encrypted_data - * @param {string} media_encryption_info - */ - constructor(encrypted_data, media_encryption_info) { - const ptr0 = passArray8ToWasm0(encrypted_data, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(media_encryption_info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.encryptedattachment_new(ptr0, len0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - EncryptedAttachmentFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -exports.EncryptedAttachment = EncryptedAttachment; -if (Symbol.dispose) EncryptedAttachment.prototype[Symbol.dispose] = EncryptedAttachment.prototype.free; - -/** - * An encryption algorithm to be used to encrypt messages sent to a - * room. - * @enum {0 | 1 | 2} - */ -const EncryptionAlgorithm = exports.EncryptionAlgorithm = Object.freeze({ - /** - * Olm version 1 using Curve25519, AES-256, and SHA-256. - */ - OlmV1Curve25519AesSha2: 0, - "0": "OlmV1Curve25519AesSha2", - /** - * Megolm version 1 using AES-256 and SHA-256. - */ - MegolmV1AesSha2: 1, - "1": "MegolmV1AesSha2", - /** - * Unsupported algorithm. - * - * Applications should ignore this value if it is received, and should - * never set it. - */ - Unknown: 2, - "2": "Unknown" -}); - -/** - * Struct containing information on how a room event was decrypted. - */ -class EncryptionInfo { - static __wrap(ptr) { - const obj = Object.create(EncryptionInfo.prototype); - obj.__wbg_ptr = ptr; - EncryptionInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EncryptionInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_encryptioninfo_free(ptr, 0); - } - /** - * The verification state of the device that sent us the event. - * Note this is the state of the device at the time of - * decryption. It may change in the future if a device gets - * verified or deleted. - * - * # Arguments - * - * * `strict` - whether to enable "strict mode" verification. In non-strict - * mode, unverified users are given no shield, and keys that have been - * forwarded or restored from an insecure backup are given a grey shield - * (both get a red shield in strict mode). - * @param {boolean} strict - * @returns {ShieldState} - */ - shieldState(strict) { - const ret = wasm.encryptioninfo_shieldState(this.__wbg_ptr, strict); - return ShieldState.__wrap(ret); - } - /** - * The device ID of the user who sent us the keys with which we decrypted - * this event as part of an MSC4268 key bundle, if present. Only applicable - * for room events. - * @returns {DeviceId | undefined} - */ - get forwarderDevice() { - const ret = wasm.__wbg_get_encryptioninfo_forwarderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The ID of the user who sent us the keys with which we decrypted this - * event as part of an MSC4268 key bundle, if present. Only applicable for - * room events. - * @returns {UserId | undefined} - */ - get forwarder() { - const ret = wasm.__wbg_get_encryptioninfo_forwarder(this.__wbg_ptr); - return ret === 0 ? undefined : UserId.__wrap(ret); - } - /** - * The signing Ed25519 key that created the megolm key that - * was used to decrypt this session. - * @returns {string | undefined} - */ - get senderClaimedEd25519Key() { - const ret = wasm.__wbg_get_encryptioninfo_senderClaimedEd25519Key(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The base64-encoded public Curve25519 key of the device that created the - * megolm decryption key originally. - * @returns {string} - */ - get senderCurve25519Key() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_encryptioninfo_senderCurve25519Key(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The device ID of the device that sent us the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - * @returns {DeviceId | undefined} - */ - get senderDevice() { - const ret = wasm.__wbg_get_encryptioninfo_senderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - * @returns {UserId} - */ - get sender() { - const ret = wasm.__wbg_get_encryptioninfo_sender(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The device ID of the user who sent us the keys with which we decrypted - * this event as part of an MSC4268 key bundle, if present. Only applicable - * for room events. - * @param {DeviceId | null} [arg0] - */ - set forwarderDevice(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, DeviceId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_encryptioninfo_forwarderDevice(this.__wbg_ptr, ptr0); - } - /** - * The ID of the user who sent us the keys with which we decrypted this - * event as part of an MSC4268 key bundle, if present. Only applicable for - * room events. - * @param {UserId | null} [arg0] - */ - set forwarder(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, UserId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_encryptioninfo_forwarder(this.__wbg_ptr, ptr0); - } - /** - * The signing Ed25519 key that created the megolm key that - * was used to decrypt this session. - * @param {string | null} [arg0] - */ - set senderClaimedEd25519Key(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_encryptioninfo_senderClaimedEd25519Key(this.__wbg_ptr, ptr0, len0); - } - /** - * The base64-encoded public Curve25519 key of the device that created the - * megolm decryption key originally. - * @param {string} arg0 - */ - set senderCurve25519Key(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_encryptioninfo_senderCurve25519Key(this.__wbg_ptr, ptr0, len0); - } - /** - * The device ID of the device that sent us the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - * @param {DeviceId | null} [arg0] - */ - set senderDevice(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, DeviceId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_encryptioninfo_senderDevice(this.__wbg_ptr, ptr0); - } - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - * @param {UserId} arg0 - */ - set sender(arg0) { - _assertClass(arg0, UserId); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_encryptioninfo_sender(this.__wbg_ptr, ptr0); - } -} -exports.EncryptionInfo = EncryptionInfo; -if (Symbol.dispose) EncryptionInfo.prototype[Symbol.dispose] = EncryptionInfo.prototype.free; - -/** - * Settings for an encrypted room. - * - * This determines the algorithm and rotation periods of a group - * session. - */ -class EncryptionSettings { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EncryptionSettingsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_encryptionsettings_free(ptr, 0); - } - /** - * Create a new `EncryptionSettings` with default values. - */ - constructor() { - const ret = wasm.encryptionsettings_new(); - this.__wbg_ptr = ret; - EncryptionSettingsFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The encryption algorithm that should be used in the room. - * @returns {EncryptionAlgorithm} - */ - get algorithm() { - const ret = wasm.__wbg_get_encryptionsettings_algorithm(this.__wbg_ptr); - return ret; - } - /** - * Whether state event encryption is enabled. - * @returns {boolean} - */ - get encryptStateEvents() { - const ret = wasm.__wbg_get_encryptionsettings_encryptStateEvents(this.__wbg_ptr); - return ret !== 0; - } - /** - * The history visibility of the room when the session was - * created. - * @returns {HistoryVisibility} - */ - get historyVisibility() { - const ret = wasm.__wbg_get_encryptionsettings_historyVisibility(this.__wbg_ptr); - return ret; - } - /** - * How many messages should be sent before changing the session. - * @returns {bigint} - */ - get rotationPeriodMessages() { - const ret = wasm.__wbg_get_encryptionsettings_rotationPeriodMessages(this.__wbg_ptr); - return BigInt.asUintN(64, ret); - } - /** - * How long the session should be used before changing it, - * expressed in microseconds. - * @returns {bigint} - */ - get rotationPeriod() { - const ret = wasm.__wbg_get_encryptionsettings_rotationPeriod(this.__wbg_ptr); - return BigInt.asUintN(64, ret); - } - /** - * Should untrusted devices receive the room key, or should they be - * excluded from the conversation. - * @returns {CollectStrategy} - */ - get sharingStrategy() { - const ret = wasm.__wbg_get_encryptionsettings_sharingStrategy(this.__wbg_ptr); - return CollectStrategy.__wrap(ret); - } - /** - * The encryption algorithm that should be used in the room. - * @param {EncryptionAlgorithm} arg0 - */ - set algorithm(arg0) { - wasm.__wbg_set_encryptionsettings_algorithm(this.__wbg_ptr, arg0); - } - /** - * Whether state event encryption is enabled. - * @param {boolean} arg0 - */ - set encryptStateEvents(arg0) { - wasm.__wbg_set_encryptionsettings_encryptStateEvents(this.__wbg_ptr, arg0); - } - /** - * The history visibility of the room when the session was - * created. - * @param {HistoryVisibility} arg0 - */ - set historyVisibility(arg0) { - wasm.__wbg_set_encryptionsettings_historyVisibility(this.__wbg_ptr, arg0); - } - /** - * How many messages should be sent before changing the session. - * @param {bigint} arg0 - */ - set rotationPeriodMessages(arg0) { - wasm.__wbg_set_encryptionsettings_rotationPeriodMessages(this.__wbg_ptr, arg0); - } - /** - * How long the session should be used before changing it, - * expressed in microseconds. - * @param {bigint} arg0 - */ - set rotationPeriod(arg0) { - wasm.__wbg_set_encryptionsettings_rotationPeriod(this.__wbg_ptr, arg0); - } - /** - * Should untrusted devices receive the room key, or should they be - * excluded from the conversation. - * @param {CollectStrategy} arg0 - */ - set sharingStrategy(arg0) { - _assertClass(arg0, CollectStrategy); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_encryptionsettings_sharingStrategy(this.__wbg_ptr, ptr0); - } -} -exports.EncryptionSettings = EncryptionSettings; -if (Symbol.dispose) EncryptionSettings.prototype[Symbol.dispose] = EncryptionSettings.prototype.free; - -/** - * An established ECIES session. - * - * This session can be used to encrypt and decrypt messages between the two - * sides of the channel. - */ -class EstablishedEcies { - static __wrap(ptr) { - const obj = Object.create(EstablishedEcies.prototype); - obj.__wbg_ptr = ptr; - EstablishedEciesFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EstablishedEciesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_establishedecies_free(ptr, 0); - } - /** - * Get the [`CheckCode`] which uniquely identifies this - * [`EstablishedEcies`] session. - * - * This check code can be used to verify and confirm that both sides of the - * session are indeed using the same shared secret. - * @returns {CheckCode} - */ - check_code() { - const ret = wasm.establishedecies_check_code(this.__wbg_ptr); - return CheckCode.__wrap(ret); - } - /** - * Decrypt the given message using this [`EstablishedEcies`] session. - * @param {string} message - * @returns {string} - */ - decrypt(message) { - let deferred3_0; - let deferred3_1; - try { - const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.establishedecies_decrypt(this.__wbg_ptr, ptr0, len0); - var ptr2 = ret[0]; - var len2 = ret[1]; - if (ret[3]) { - ptr2 = 0; - len2 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred3_0 = ptr2; - deferred3_1 = len2; - return getStringFromWasm0(ptr2, len2); - } finally { - wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); - } - } - /** - * Encrypt the given plaintext using this [`EstablishedEcies`] session. - * @param {string} message - * @returns {string} - */ - encrypt(message) { - let deferred2_0; - let deferred2_1; - try { - const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.establishedecies_encrypt(this.__wbg_ptr, ptr0, len0); - deferred2_0 = ret[0]; - deferred2_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Get our [`Curve25519PublicKey`]. - * - * This public key needs to be sent to the other side so that it can - * complete the ECIES channel establishment. - * @returns {Curve25519PublicKey} - */ - public_key() { - const ret = wasm.establishedecies_public_key(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } -} -exports.EstablishedEcies = EstablishedEcies; -if (Symbol.dispose) EstablishedEcies.prototype[Symbol.dispose] = EstablishedEcies.prototype.free; - -/** - * A Matrix [event ID]. - * - * An `EventId` is generated randomly or converted from a string - * slice, and can be converted back into a string as needed. - * - * [event ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids - */ -class EventId { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EventIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_eventid_free(ptr, 0); - } - /** - * Returns the event's localpart. - * @returns {string} - */ - get localpart() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.eventid_localpart(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Parse/validate and create a new `EventId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.eventid_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - EventIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Returns the server name of the event ID. - * @returns {ServerName | undefined} - */ - get serverName() { - const ret = wasm.eventid_serverName(this.__wbg_ptr); - return ret === 0 ? undefined : ServerName.__wrap(ret); - } - /** - * Return the event ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.eventid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.EventId = EventId; -if (Symbol.dispose) EventId.prototype[Symbol.dispose] = EventId.prototype.free; - -/** - * Who can see a room's history. - * @enum {0 | 1 | 2 | 3} - */ -const HistoryVisibility = exports.HistoryVisibility = Object.freeze({ - /** - * Previous events are accessible to newly joined members from - * the point they were invited onwards. - * - * Events stop being accessible when the member's state changes - * to something other than *invite* or *join*. - */ - Invited: 0, - "0": "Invited", - /** - * Previous events are accessible to newly joined members from - * the point they joined the room onwards. - * - * Events stop being accessible when the member's state changes - * to something other than *join*. - */ - Joined: 1, - "1": "Joined", - /** - * Previous events are always accessible to newly joined members. - * - * All events in the room are accessible, even those sent when - * the member was not a part of the room. - */ - Shared: 2, - "2": "Shared", - /** - * All events while this is the `HistoryVisibility` value may be - * shared by any participating homeserver with anyone, regardless - * of whether they have ever joined the room. - */ - WorldReadable: 3, - "3": "WorldReadable" -}); - -/** - * Struct holding the two public identity keys of an account. - */ -class IdentityKeys { - static __wrap(ptr) { - const obj = Object.create(IdentityKeys.prototype); - obj.__wbg_ptr = ptr; - IdentityKeysFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - IdentityKeysFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_identitykeys_free(ptr, 0); - } - /** - * The Curve25519 public key, used for establish shared secrets. - * @returns {Curve25519PublicKey} - */ - get curve25519() { - const ret = wasm.__wbg_get_identitykeys_curve25519(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * The Ed25519 public key, used for signing. - * @returns {Ed25519PublicKey} - */ - get ed25519() { - const ret = wasm.__wbg_get_identitykeys_ed25519(this.__wbg_ptr); - return Ed25519PublicKey.__wrap(ret); - } - /** - * The Curve25519 public key, used for establish shared secrets. - * @param {Curve25519PublicKey} arg0 - */ - set curve25519(arg0) { - _assertClass(arg0, Curve25519PublicKey); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_identitykeys_curve25519(this.__wbg_ptr, ptr0); - } - /** - * The Ed25519 public key, used for signing. - * @param {Ed25519PublicKey} arg0 - */ - set ed25519(arg0) { - _assertClass(arg0, Ed25519PublicKey); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_identitykeys_ed25519(this.__wbg_ptr, ptr0); - } -} -exports.IdentityKeys = IdentityKeys; -if (Symbol.dispose) IdentityKeys.prototype[Symbol.dispose] = IdentityKeys.prototype.free; - -/** - * The result of an inbound ECIES channel establishment. - */ -class InboundCreationResult { - static __wrap(ptr) { - const obj = Object.create(InboundCreationResult.prototype); - obj.__wbg_ptr = ptr; - InboundCreationResultFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - InboundCreationResultFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_inboundcreationresult_free(ptr, 0); - } - /** - * The established ECIES channel. - * @returns {EstablishedEcies} - */ - get channel() { - const ret = wasm.__wbg_get_inboundcreationresult_channel(this.__wbg_ptr); - return EstablishedEcies.__wrap(ret); - } - /** - * The plaintext of the initial message. - * @returns {string} - */ - get message() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_inboundcreationresult_message(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The established ECIES channel. - * @param {EstablishedEcies} arg0 - */ - set channel(arg0) { - _assertClass(arg0, EstablishedEcies); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_inboundcreationresult_channel(this.__wbg_ptr, ptr0); - } - /** - * The plaintext of the initial message. - * @param {string} arg0 - */ - set message(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_inboundcreationresult_message(this.__wbg_ptr, ptr0, len0); - } -} -exports.InboundCreationResult = InboundCreationResult; -if (Symbol.dispose) InboundCreationResult.prototype[Symbol.dispose] = InboundCreationResult.prototype.free; - -/** - * Inbound group session. - * - * Inbound group sessions are used to exchange room messages between a group of - * participants. Inbound group sessions are used to decrypt the room messages. - */ -class InboundGroupSession { - static __wrap(ptr) { - const obj = Object.create(InboundGroupSession.prototype); - obj.__wbg_ptr = ptr; - InboundGroupSessionFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - InboundGroupSessionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_inboundgroupsession_free(ptr, 0); - } - /** - * Has the session been imported from a file or server-side backup? As - * opposed to being directly received as an `m.room_key` event. - * @returns {boolean} - */ - hasBeenImported() { - const ret = wasm.inboundgroupsession_hasBeenImported(this.__wbg_ptr); - return ret !== 0; - } - /** - * The room where this session is used in. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.inboundgroupsession_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } - /** - * The Curve25519 key of the sender of this session, as a - * [Curve25519PublicKey]. - * @returns {Curve25519PublicKey} - */ - get senderKey() { - const ret = wasm.inboundgroupsession_senderKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * Returns the unique identifier for this session. - * @returns {string} - */ - get sessionId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.inboundgroupsession_sessionId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.InboundGroupSession = InboundGroupSession; -if (Symbol.dispose) InboundGroupSession.prototype[Symbol.dispose] = InboundGroupSession.prototype.free; - -/** - * Represents an invalid to-device event that was ignored (because it is - * missing some mandatory fields, for example). - */ -class InvalidToDeviceEvent { - static __wrap(ptr) { - const obj = Object.create(InvalidToDeviceEvent.prototype); - obj.__wbg_ptr = ptr; - InvalidToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - InvalidToDeviceEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_invalidtodeviceevent_free(ptr, 0); - } - /** - * The original message as received from sync, encoded as JSON. - * @returns {string} - */ - get rawEvent() { - const ret = wasm.__wbg_get_invalidtodeviceevent_rawEvent(this.__wbg_ptr); - return ret; - } - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.Invalid} for this type. - * @returns {ProcessedToDeviceEventType} - */ - get type() { - const ret = wasm.invalidtodeviceevent_type(this.__wbg_ptr); - return ret; - } -} -exports.InvalidToDeviceEvent = InvalidToDeviceEvent; -if (Symbol.dispose) InvalidToDeviceEvent.prototype[Symbol.dispose] = InvalidToDeviceEvent.prototype.free; - -/** - * A request that will back up a batch of room keys to the server - * ([specification]). - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3room_keyskeys - */ -class KeysBackupRequest { - static __wrap(ptr) { - const obj = Object.create(KeysBackupRequest.prototype); - obj.__wbg_ptr = ptr; - KeysBackupRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - KeysBackupRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_keysbackuprequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `rooms`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_keysbackuprequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_keysbackuprequest_id(this.__wbg_ptr); - return ret; - } - /** - * The backup version that these room keys should be part of. - * @returns {string} - */ - get version() { - const ret = wasm.__wbg_get_keysbackuprequest_version(this.__wbg_ptr); - return ret; - } - /** - * Create a new `KeysBackupRequest`. - * @param {string} id - * @param {string} body - * @param {string} version - */ - constructor(id, body, version) { - const ret = wasm.keysbackuprequest_new(id, body, version); - this.__wbg_ptr = ret; - KeysBackupRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.keysbackuprequest_type(this.__wbg_ptr); - return ret; - } -} -exports.KeysBackupRequest = KeysBackupRequest; -if (Symbol.dispose) KeysBackupRequest.prototype[Symbol.dispose] = KeysBackupRequest.prototype.free; - -/** - * Data for a request to the `/keys/claim` API endpoint - * ([specification]). - * - * Claims one-time keys that can be used to establish 1-to-1 E2EE - * sessions. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysclaim - */ -class KeysClaimRequest { - static __wrap(ptr) { - const obj = Object.create(KeysClaimRequest.prototype); - obj.__wbg_ptr = ptr; - KeysClaimRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - KeysClaimRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_keysclaimrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `timeout`, - * `one_time_keys`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_keysclaimrequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_keysclaimrequest_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `KeysClaimRequest`. - * @param {string} id - * @param {string} body - */ - constructor(id, body) { - const ret = wasm.keysclaimrequest_new(id, body); - this.__wbg_ptr = ret; - KeysClaimRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.keysclaimrequest_type(this.__wbg_ptr); - return ret; - } -} -exports.KeysClaimRequest = KeysClaimRequest; -if (Symbol.dispose) KeysClaimRequest.prototype[Symbol.dispose] = KeysClaimRequest.prototype.free; - -/** - * Data for a request to the `/keys/query` API endpoint - * ([specification]). - * - * Returns the current devices and identity keys for the given users. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysquery - */ -class KeysQueryRequest { - static __wrap(ptr) { - const obj = Object.create(KeysQueryRequest.prototype); - obj.__wbg_ptr = ptr; - KeysQueryRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - KeysQueryRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_keysqueryrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `timeout`, - * `device_keys`, `token`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_keysqueryrequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_keysqueryrequest_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `KeysQueryRequest`. - * @param {string} id - * @param {string} body - */ - constructor(id, body) { - const ret = wasm.keysqueryrequest_new(id, body); - this.__wbg_ptr = ret; - KeysQueryRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.keysqueryrequest_type(this.__wbg_ptr); - return ret; - } -} -exports.KeysQueryRequest = KeysQueryRequest; -if (Symbol.dispose) KeysQueryRequest.prototype[Symbol.dispose] = KeysQueryRequest.prototype.free; - -/** - * Data for a request to the `/keys/upload` API endpoint - * ([specification]). - * - * Publishes end-to-end encryption keys for the device. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysupload - */ -class KeysUploadRequest { - static __wrap(ptr) { - const obj = Object.create(KeysUploadRequest.prototype); - obj.__wbg_ptr = ptr; - KeysUploadRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - KeysUploadRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_keysuploadrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `device_keys`, - * `one_time_keys`, `fallback_keys`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_keysuploadrequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_keysuploadrequest_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `KeysUploadRequest`. - * @param {string} id - * @param {string} body - */ - constructor(id, body) { - const ret = wasm.keysuploadrequest_new(id, body); - this.__wbg_ptr = ret; - KeysUploadRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.keysuploadrequest_type(this.__wbg_ptr); - return ret; - } -} -exports.KeysUploadRequest = KeysUploadRequest; -if (Symbol.dispose) KeysUploadRequest.prototype[Symbol.dispose] = KeysUploadRequest.prototype.free; - -/** - * The local trust state of a device. - * @enum {0 | 1 | 2 | 3} - */ -const LocalTrust = exports.LocalTrust = Object.freeze({ - /** - * The device has been verified and is trusted. - */ - Verified: 0, - "0": "Verified", - /** - * The device been blacklisted from communicating. - */ - BlackListed: 1, - "1": "BlackListed", - /** - * The trust state of the device is being ignored. - */ - Ignored: 2, - "2": "Ignored", - /** - * The trust state is unset. - */ - Unset: 3, - "3": "Unset" -}); - -/** - * Logger level. - * @enum {0 | 1 | 2 | 3 | 4} - */ -const LoggerLevel = exports.LoggerLevel = Object.freeze({ - /** - * `TRACE` level. - * - * Designate very low priority, often extremely verbose, - * information. - */ - Trace: 0, - "0": "Trace", - /** - * `DEBUG` level. - * - * Designate lower priority information. - */ - Debug: 1, - "1": "Debug", - /** - * `INFO` level. - * - * Designate useful information. - */ - Info: 2, - "2": "Info", - /** - * `WARN` level. - * - * Designate hazardous situations. - */ - Warn: 3, - "3": "Warn", - /** - * `ERROR` level. - * - * Designate very serious errors. - */ - Error: 4, - "4": "Error" -}); - -/** - * Represents a signature that is either valid _or_ that could not be - * decoded. - */ -class MaybeSignature { - static __wrap(ptr) { - const obj = Object.create(MaybeSignature.prototype); - obj.__wbg_ptr = ptr; - MaybeSignatureFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - MaybeSignatureFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_maybesignature_free(ptr, 0); - } - /** - * The base64 encoded string that is claimed to contain a - * signature but could not be decoded, if any. - * @returns {string | undefined} - */ - get invalidSignatureSource() { - const ret = wasm.maybesignature_invalidSignatureSource(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Check whether the signature could not be successfully decoded. - * @returns {boolean} - */ - isInvalid() { - const ret = wasm.maybesignature_isInvalid(this.__wbg_ptr); - return ret !== 0; - } - /** - * Check whether the signature has been successfully decoded. - * @returns {boolean} - */ - isValid() { - const ret = wasm.maybesignature_isValid(this.__wbg_ptr); - return ret !== 0; - } - /** - * The signature, if successfully decoded. - * @returns {Signature | undefined} - */ - get signature() { - const ret = wasm.maybesignature_signature(this.__wbg_ptr); - return ret === 0 ? undefined : Signature.__wrap(ret); - } -} -exports.MaybeSignature = MaybeSignature; -if (Symbol.dispose) MaybeSignature.prototype[Symbol.dispose] = MaybeSignature.prototype.free; - -/** - * Js Decryption error with code. - */ -class MegolmDecryptionError { - static __wrap(ptr) { - const obj = Object.create(MegolmDecryptionError.prototype); - obj.__wbg_ptr = ptr; - MegolmDecryptionErrorFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - MegolmDecryptionErrorFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_megolmdecryptionerror_free(ptr, 0); - } - /** - * Description code for the error. See `DecryptionErrorCode` - * @returns {DecryptionErrorCode} - */ - get code() { - const ret = wasm.__wbg_get_megolmdecryptionerror_code(this.__wbg_ptr); - return ret; - } - /** - * detailed description - * @returns {string} - */ - get description() { - const ret = wasm.__wbg_get_megolmdecryptionerror_description(this.__wbg_ptr); - return ret; - } - /** - * Textual description of the withheld code, if any. - * - * Example: "The sender has disabled encrypting to unverified devices." - * - * `undefined` if we have not received a withheld code for the megolm - * session. - * @returns {string | undefined} - */ - get maybe_withheld() { - const ret = wasm.megolmdecryptionerror_maybe_withheld(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Creates generic error with description - * @param {string} desc - * @returns {MegolmDecryptionError} - */ - static unable_to_decrypt(desc) { - const ptr0 = passStringToWasm0(desc, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.megolmdecryptionerror_unable_to_decrypt(ptr0, len0); - return MegolmDecryptionError.__wrap(ret); - } - /** - * The withheld code, if any. - * - * Example: "m.unverified" - * - * `undefined` if we have not received a withheld code for the megolm - * session. - * @returns {string | undefined} - */ - get withheldCode() { - const ret = wasm.megolmdecryptionerror_withheldCode(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } -} -exports.MegolmDecryptionError = MegolmDecryptionError; -if (Symbol.dispose) MegolmDecryptionError.prototype[Symbol.dispose] = MegolmDecryptionError.prototype.free; - -/** - * The public part of the backup key. - */ -class MegolmV1BackupKey { - static __wrap(ptr) { - const obj = Object.create(MegolmV1BackupKey.prototype); - obj.__wbg_ptr = ptr; - MegolmV1BackupKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - MegolmV1BackupKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_megolmv1backupkey_free(ptr, 0); - } - /** - * Get the full name of the backup algorithm this backup key supports. - * @returns {string} - */ - get algorithm() { - const ret = wasm.megolmv1backupkey_algorithm(this.__wbg_ptr); - return ret; - } - /** - * The actual base64 encoded public key. - * @returns {string} - */ - get publicKeyBase64() { - const ret = wasm.megolmv1backupkey_publicKeyBase64(this.__wbg_ptr); - return ret; - } -} -exports.MegolmV1BackupKey = MegolmV1BackupKey; -if (Symbol.dispose) MegolmV1BackupKey.prototype[Symbol.dispose] = MegolmV1BackupKey.prototype.free; - -/** - * Migration routines - * - * The public methods are exposed as static methods on this class, for - * namespacing and to enable easier mocking in unit tests. - */ -class Migration { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - MigrationFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_migration_free(ptr, 0); - } - /** - * Import the base dataset from a libolm-based setup to a vodozemac-based - * setup stored in IndexedDB. - * - * Populates the user credentials, Olm account, backup data, etc. This is - * the first step in the migration process. Once this base data is - * imported, further data can be imported with {@link - * migrateOlmSessions}, {@link migrateMegolmSessions}, and TODO room - * settings. - * - * # Arguments - * - * * `data` - The data to be migrated - * * `pickle_key` - The libolm pickle key that was used to pickle the olm - * account objects. - * * `store_handle` - A connection to the CryptoStore which will be used to - * store the vodozemac data. - * * `logger` - An optional logger instance to use for writing log messages - * during the migration operation. An instance of `JsLogger`. - * @param {BaseMigrationData} data - * @param {Uint8Array} pickle_key - * @param {StoreHandle} store_handle - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static migrateBaseData(data, pickle_key, store_handle, logger) { - _assertClass(data, BaseMigrationData); - _assertClass(store_handle, StoreHandle); - const ret = wasm.migration_migrateBaseData(data.__wbg_ptr, pickle_key, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - return ret; - } - /** - * Migrate Megolm sessions of a libolm-based setup to a vodozemac-based - * setup stored in an indexedDB crypto store. - * - * Before this method can be used, {@link migrateBaseData} must be used to - * import the base data into the crypto store. - * - * This method should be called a number of times, with separate batches of - * `sessions`. If a progress display is given, it can be updated after - * each batch is successfully imported. - * - * # Arguments - * - * * `sessions` - An `Array` of {@link PickledInboundGroupSession}s to - * import. Items inside `sessions` will be invalidated by this method. - * * `pickle_key` - The libolm pickle key that was used to pickle the - * megolm session objects. - * * `store_handle` - A connection to the CryptoStore which will be used to - * store the vodozemac data. - * * `logger` - An optional logger instance to use for writing log messages - * during the migration operation. An instance of `JsLogger`. - * @param {PickledInboundGroupSession[]} sessions - * @param {Uint8Array} pickle_key - * @param {StoreHandle} store_handle - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static migrateMegolmSessions(sessions, pickle_key, store_handle, logger) { - const ptr0 = passArrayJsValueToWasm0(sessions, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(store_handle, StoreHandle); - const ret = wasm.migration_migrateMegolmSessions(ptr0, len0, pickle_key, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Migrate Olm sessions of a libolm-based setup to a vodozemac-based setup - * stored in an indexedDB crypto store. - * - * Before this method can be used, {@link migrateBaseData} must be used to - * import the base data into the crypto store. - * - * This method should be called a number of times, with separate batches of - * `sessions`. If a progress display is given, it can be updated after - * each batch is successfully imported. - * - * # Arguments - * - * * `sessions` - An `Array` of {@link PickledSession}s to import. Items - * inside `sessions` will be invalidated by this method. - * * `pickle_key` - The libolm pickle key that was used to pickle the olm - * session objects. - * * `store_handle` - A connection to the CryptoStore which will be used to - * store the vodozemac data. - * * `logger` - An optional logger instance to use for writing log messages - * during the migration operation. An instance of `JsLogger`. - * @param {PickledSession[]} sessions - * @param {Uint8Array} pickle_key - * @param {StoreHandle} store_handle - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static migrateOlmSessions(sessions, pickle_key, store_handle, logger) { - const ptr0 = passArrayJsValueToWasm0(sessions, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(store_handle, StoreHandle); - const ret = wasm.migration_migrateOlmSessions(ptr0, len0, pickle_key, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } -} -exports.Migration = Migration; -if (Symbol.dispose) Migration.prototype[Symbol.dispose] = Migration.prototype.free; - -/** - * Intent-specific data in the case the QR code adheres to - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4108 MSC4108} of the QR code - * data format. - */ -class Msc4108IntentData { - static __wrap(ptr) { - const obj = Object.create(Msc4108IntentData.prototype); - obj.__wbg_ptr = ptr; - Msc4108IntentDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Msc4108IntentDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_msc4108intentdata_free(ptr, 0); - } - /** - * Get the URL of the rendezvous server which will be used to exchange - * messages between the two devices. - * @returns {string} - */ - get rendezvousUrl() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_msc4108intentdata_rendezvousUrl(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Get the server name of the homeserver which the new device will be - * logged in to. - * - * This will be only available if the existing device has generated the QR - * code and the new device is the one scanning the QR code. - * @returns {string | undefined} - */ - get serverName() { - const ret = wasm.__wbg_get_msc4108intentdata_serverName(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Get the URL of the rendezvous server which will be used to exchange - * messages between the two devices. - * @param {string} arg0 - */ - set rendezvousUrl(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_msc4108intentdata_rendezvousUrl(this.__wbg_ptr, ptr0, len0); - } - /** - * Get the server name of the homeserver which the new device will be - * logged in to. - * - * This will be only available if the existing device has generated the QR - * code and the new device is the one scanning the QR code. - * @param {string | null} [arg0] - */ - set serverName(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_msc4108intentdata_serverName(this.__wbg_ptr, ptr0, len0); - } -} -exports.Msc4108IntentData = Msc4108IntentData; -if (Symbol.dispose) Msc4108IntentData.prototype[Symbol.dispose] = Msc4108IntentData.prototype.free; - -/** - * Intent-specific data in the case the QR code adheres to - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388} of the QR code - * data format. - */ -class Msc4388IntentData { - static __wrap(ptr) { - const obj = Object.create(Msc4388IntentData.prototype); - obj.__wbg_ptr = ptr; - Msc4388IntentDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Msc4388IntentDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_msc4388intentdata_free(ptr, 0); - } - /** - * The base URL of the homeserver that the device generating the QR is - * using. - * @returns {string} - */ - get baseUrl() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_msc4388intentdata_baseUrl(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The ID of the rendezvous session, can be used to exchange messages with - * the other device. - * @returns {string} - */ - get rendezvousId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_msc4388intentdata_rendezvousId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base URL of the homeserver that the device generating the QR is - * using. - * @param {string} arg0 - */ - set baseUrl(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_msc4388intentdata_baseUrl(this.__wbg_ptr, ptr0, len0); - } - /** - * The ID of the rendezvous session, can be used to exchange messages with - * the other device. - * @param {string} arg0 - */ - set rendezvousId(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_msc4388intentdata_rendezvousId(this.__wbg_ptr, ptr0, len0); - } -} -exports.Msc4388IntentData = Msc4388IntentData; -if (Symbol.dispose) Msc4388IntentData.prototype[Symbol.dispose] = Msc4388IntentData.prototype.free; - -/** - * State machine implementation of the Olm/Megolm encryption protocol - * used for Matrix end to end encryption. - */ -class OlmMachine { - static __wrap(ptr) { - const obj = Object.create(OlmMachine.prototype); - obj.__wbg_ptr = ptr; - OlmMachineFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - OlmMachineFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_olmmachine_free(ptr, 0); - } - /** - * Encrypt a batch of room keys and return a request that needs to be sent - * out to backup the room keys. - * - * Returns an optional {@link KeysBackupRequest}. - * @returns {Promise} - */ - backupRoomKeys() { - const ret = wasm.olmmachine_backupRoomKeys(this.__wbg_ptr); - return ret; - } - /** - * Create a new cross signing identity and get the upload request - * to push the new public keys to the server. - * - * Warning: This will delete any existing cross signing keys that - * might exist on the server and thus will reset the trust - * between all the devices. - * - * Uploading these keys will require user interactive auth. - * - * # Arguments - * - * * `reset`, whether the method should create a new identity or use the - * existing one during the request. If set to true, the request will - * attempt to upload a new identity. If set to false, the request will - * attempt to upload the existing identity. Since the uploading process - * requires user interactive authentication, which involves sending out - * the same request multiple times, setting this argument to false - * enables you to reuse the same request. - * - * Returns a {@link CrossSigningBootstrapRequests}. - * @param {boolean} reset - * @returns {Promise} - */ - bootstrapCrossSigning(reset) { - const ret = wasm.olmmachine_bootstrapCrossSigning(this.__wbg_ptr, reset); - return ret; - } - /** - * Assemble, and encrypt, a room key bundle for sharing encrypted history, - * as per {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268}. - * - * Returns `undefined` if there are no keys to share in the given room, - * otherwise an {@link EncryptedAttachment}. - * - * The data should be uploaded to the media server, and the details then - * passed to {@link shareRoomKeyBundleData}. - * - * @experimental - * @param {RoomId} room_id - * @returns {Promise} - */ - buildRoomKeyBundle(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_buildRoomKeyBundle(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Store the fact that we are no longer waiting for a key bundle in the - * given room. - * - * The counterpart to {@link storeRoomPendingKeyBundle}. Should be called - * when, for example, we leave a room, or have successfully imported a - * bundle. - * - * @experimental - * @param {RoomId} room_id - * @returns {Promise} - */ - clearRoomPendingKeyBundle(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_clearRoomPendingKeyBundle(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Shut down the `OlmMachine`. - * - * The `OlmMachine` cannot be used after this method has been called. - * - * All associated resources will be closed too, like IndexedDB - * connections. - */ - close() { - const ptr = this.__destroy_into_raw(); - wasm.olmmachine_close(ptr); - } - /** - * Get the status of the private cross signing keys. - * - * This can be used to check which private cross signing keys we - * have stored locally. - * @returns {Promise} - */ - crossSigningStatus() { - const ret = wasm.olmmachine_crossSigningStatus(this.__wbg_ptr); - return ret; - } - /** - * Try to decrypt a reader into a list of exported room keys. - * - * `encrypted_exported_room_keys` is the result from - * `encrypt_exported_room_keys`. `passphrase` is the passphrase that was - * used when calling `encrypt_exported_room_keys`. - * @param {string} encrypted_exported_room_keys - * @param {string} passphrase - * @returns {string} - */ - static decryptExportedRoomKeys(encrypted_exported_room_keys, passphrase) { - let deferred4_0; - let deferred4_1; - try { - const ptr0 = passStringToWasm0(encrypted_exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_decryptExportedRoomKeys(ptr0, len0, ptr1, len1); - var ptr3 = ret[0]; - var len3 = ret[1]; - if (ret[3]) { - ptr3 = 0; - len3 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred4_0 = ptr3; - deferred4_1 = len3; - return getStringFromWasm0(ptr3, len3); - } finally { - wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); - } - } - /** - * Decrypt an event from a room timeline. - * - * # Arguments - * - * * `event`, the event that should be decrypted. - * * `room_id`, the ID of the room where the event was sent to. - * - * # Returns - * - * A `Promise` which resolves to a {@link DecryptedRoomEvent} instance, or - * rejects with a {@link MegolmDecryptionError} instance. - * @param {string} event - * @param {RoomId} room_id - * @param {DecryptionSettings} decryption_settings - * @returns {Promise} - */ - decryptRoomEvent(event, room_id, decryption_settings) { - const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(room_id, RoomId); - _assertClass(decryption_settings, DecryptionSettings); - const ret = wasm.olmmachine_decryptRoomEvent(this.__wbg_ptr, ptr0, len0, room_id.__wbg_ptr, decryption_settings.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Manage dehydrated devices - * @returns {DehydratedDevices} - */ - dehydratedDevices() { - const ret = wasm.olmmachine_dehydratedDevices(this.__wbg_ptr); - return DehydratedDevices.__wrap(ret); - } - /** - * Delete all secrets with the given secret name from the inbox. - * - * Should be called after handling the secrets with - * `get_secrets_from_inbox`. - * - * # Arguments - * - * * `secret_name` - The name of the secret to delete. - * @param {string} secret_name - * @returns {Promise} - */ - deleteSecretsFromInbox(secret_name) { - const ptr0 = passStringToWasm0(secret_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_deleteSecretsFromInbox(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * The time, in milliseconds since the unix epoch, at which the `Account` - * backing this `OlmMachine` was created. - * - * An `Account` is created when an `OlmMachine` is first instantiated - * against a given `Store`, at which point it creates identity keys etc. - * This method returns the timestamp, according to the local clock, at - * which that happened. - * @returns {number} - */ - get deviceCreationTimeMs() { - const ret = wasm.olmmachine_deviceCreationTimeMs(this.__wbg_ptr); - return ret; - } - /** - * The unique device ID that identifies this `OlmMachine`. - * @returns {DeviceId} - */ - get deviceId() { - const ret = wasm.olmmachine_deviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Disable and reset our backup state. - * - * This will remove any pending backup request, remove the backup key and - * reset the backup state of each room key we have. - * - * Returns `Promise`. - * @returns {Promise} - */ - disableBackup() { - const ret = wasm.olmmachine_disableBackup(this.__wbg_ptr); - return ret; - } - /** - * Get the display name of our own device. - * @returns {Promise} - */ - get displayName() { - const ret = wasm.olmmachine_displayName(this.__wbg_ptr); - return ret; - } - /** - * Activate the given backup key to be used with the given backup version. - * - * **Warning**: The caller needs to make sure that the given `BackupKey` is - * trusted, otherwise we might be encrypting room keys that a malicious - * party could decrypt. - * - * The {@link verifyBackup} method can be used to do so. - * - * Returns `Promise`. - * @param {string} public_key_base_64 - * @param {string} version - * @returns {Promise} - */ - enableBackupV1(public_key_base_64, version) { - const ptr0 = passStringToWasm0(public_key_base_64, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_enableBackupV1(this.__wbg_ptr, ptr0, len0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Encrypt the list of exported room keys using the given passphrase. - * - * `exported_room_keys` is a list of sessions that should be encrypted - * (it's generally returned by `export_room_keys`). `passphrase` is the - * passphrase that will be used to encrypt the exported room keys. And - * `rounds` is the number of rounds that should be used for the key - * derivation when the passphrase gets turned into an AES key. More rounds - * are increasingly computationnally intensive and as such help against - * brute-force attacks. Should be at least `10_000`, while values in the - * `100_000` ranges should be preferred. - * @param {string} exported_room_keys - * @param {string} passphrase - * @param {number} rounds - * @returns {string} - */ - static encryptExportedRoomKeys(exported_room_keys, passphrase, rounds) { - let deferred4_0; - let deferred4_1; - try { - const ptr0 = passStringToWasm0(exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_encryptExportedRoomKeys(ptr0, len0, ptr1, len1, rounds); - var ptr3 = ret[0]; - var len3 = ret[1]; - if (ret[3]) { - ptr3 = 0; - len3 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred4_0 = ptr3; - deferred4_1 = len3; - return getStringFromWasm0(ptr3, len3); - } finally { - wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); - } - } - /** - * Encrypt a room message for the given room. - * - * **Note**: A room key needs to be shared with the group of users that are - * members in the given room. If this is not done this method will panic. - * - * The usual flow to encrypt an event using this state machine is as - * follows: - * - * 1. Get the one-time key claim request to establish 1:1 Olm sessions for - * the room members of the room we wish to participate in. This is done - * using the [`get_missing_sessions()`](Self::get_missing_sessions) - * method. This method call should be locked per call. - * - * 2. Share a room key with all the room members using the - * [`share_room_key()`](Self::share_room_key). This method call should - * be locked per room. - * - * 3. Encrypt the event using this method. - * - * 4. Send the encrypted event to the server. - * - * After the room key is shared steps 1 and 2 will become noops, unless - * there's some changes in the room membership or in the list of devices a - * member has. - * - * - * `room_id` is the ID of the room for which the message should - * be encrypted. `event_type` is the type of the event. `content` - * is the plaintext content of the message that should be - * encrypted. - * - * # Panics - * - * Panics if a group session for the given room wasn't shared - * beforehand. - * @param {RoomId} room_id - * @param {string} event_type - * @param {string} content - * @returns {Promise} - */ - encryptRoomEvent(room_id, event_type, content) { - _assertClass(room_id, RoomId); - const ptr0 = passStringToWasm0(event_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_encryptRoomEvent(this.__wbg_ptr, room_id.__wbg_ptr, ptr0, len0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Encrypt a state event for the given room. - * - * This method encrypts a state event for the specified room, using the - * current group session. The event will be encrypted so that only - * authorized room members can decrypt it. - * - * **Note**: A room key must have been shared with the group of users in - * the room before calling this method. If not, this method will panic. - * - * The usual flow to encrypt a state event using this machine is identical - * to that outlined for [`OlmMachine::encrypt_room_event`]. - * - * # Arguments - * - * * `room_id` - The ID of the room for which the state event should be - * encrypted. - * * `event_type` - The type of the state event. - * * `state_key` - The state key for the event. - * * `content` - The plaintext JSON content of the event to encrypt. - * - * # Returns - * - * A `Promise` resolving to a JSON string containing the encrypted event. - * - * # Panics - * - * Panics if a group session for the given room was not previously shared. - * @param {RoomId} room_id - * @param {string} event_type - * @param {string} state_key - * @param {string} content - * @returns {Promise} - */ - encryptStateEvent(room_id, event_type, state_key, content) { - _assertClass(room_id, RoomId); - const ptr0 = passStringToWasm0(event_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(state_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ptr2 = passStringToWasm0(content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len2 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_encryptStateEvent(this.__wbg_ptr, room_id.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Export all the private cross signing keys we have. - * - * The export will contain the seeds for the ed25519 keys as - * unpadded base64 encoded strings. - * - * Returns `undefined` if we don’t have any private cross signing keys; - * otherwise returns a `CrossSigningKeyExport`. - * @returns {Promise} - */ - exportCrossSigningKeys() { - const ret = wasm.olmmachine_exportCrossSigningKeys(this.__wbg_ptr); - return ret; - } - /** - * Export the keys that match the given predicate. - * - * `predicate` is a closure that will be called for every known - * `InboundGroupSession`, which represents a room key. If the closure - * returns `true`, the `InboundGroupSession` will be included in the - * export; otherwise it won't. - * - * Returns a Promise containing a Result containing a String which is a - * JSON-encoded array of ExportedRoomKey objects. - * @param {(session: InboundGroupSession) => boolean} predicate - * @returns {Promise} - */ - exportRoomKeys(predicate) { - const ret = wasm.olmmachine_exportRoomKeys(this.__wbg_ptr, predicate); - return ret; - } - /** - * Export all the secrets we have in the store into a {@link - * SecretsBundle}. - * - * This method will export all the private cross-signing keys and, if - * available, the private part of a backup key and its accompanying - * version. - * - * The method will fail if we don't have all three private cross-signing - * keys available. - * - * **Warning**: Only export this and share it with a trusted recipient, - * i.e. if an existing device is sharing this with a new device. - * @returns {Promise} - */ - exportSecretsBundle() { - const ret = wasm.olmmachine_exportSecretsBundle(this.__wbg_ptr); - return ret; - } - /** - * Get a list of all rooms where we are waiting for a key bundle. - * - * @see getPendingKeyBundleDetailsForRoom - * - * @experimental - * @returns {Promise>} - */ - getAllRoomsPendingKeyBundles() { - const ret = wasm.olmmachine_getAllRoomsPendingKeyBundles(this.__wbg_ptr); - return ret; - } - /** - * Get the backup keys we have saved in our store. - * Returns a `Promise` for {@link BackupKeys}. - * @returns {Promise} - */ - getBackupKeys() { - const ret = wasm.olmmachine_getBackupKeys(this.__wbg_ptr); - return ret; - } - /** - * Get a specific device of a user. - * - * ### Parameters - * - * * `user_id` - The unique ID of the user that the device belongs to. - * - * * `device_id` - The unique ID of the device. - * - * * `timeout_secs` - The amount of time we should wait for a `/keys/query` - * response before returning if the user's device list has been marked as - * stale. **Note**, this assumes that the requests from {@link - * OlmMachine.outgoingRequests} are being processed and sent out. - * - * If unset, we will return immediately even if the device list is stale. - * - * ### Returns - * - * If the device is known, a {@link Device}. Otherwise, `undefined`. - * @param {UserId} user_id - * @param {DeviceId} device_id - * @param {number | null} [timeout_secs] - * @returns {Promise} - */ - getDevice(user_id, device_id, timeout_secs) { - _assertClass(user_id, UserId); - _assertClass(device_id, DeviceId); - const ret = wasm.olmmachine_getDevice(this.__wbg_ptr, user_id.__wbg_ptr, device_id.__wbg_ptr, !isLikeNone(timeout_secs), isLikeNone(timeout_secs) ? 0 : timeout_secs); - return ret; - } - /** - * Get the cross signing user identity of a user. - * - * Returns a promise for an {@link OwnUserIdentity}, a - * {@link OtherUserIdentity}, or `undefined`. - * @param {UserId} user_id - * @returns {Promise} - */ - getIdentity(user_id) { - _assertClass(user_id, UserId); - const ret = wasm.olmmachine_getIdentity(this.__wbg_ptr, user_id.__wbg_ptr); - return ret; - } - /** - * Get the a key claiming request for the user/device pairs that - * we are missing Olm sessions for. - * - * Returns `null` if no key claiming request needs to be sent - * out, otherwise it returns a `KeysClaimRequest` object. - * - * Sessions need to be established between devices so group - * sessions for a room can be shared with them. - * - * This should be called every time a group session needs to be - * shared as well as between sync calls. After a sync some - * devices may request room keys without us having a valid Olm - * session with them, making it impossible to server the room key - * request, thus it’s necessary to check for missing sessions - * between sync as well. - * - * Note: Care should be taken that only one such request at a - * time is in flight, e.g. using a lock. - * - * The response of a successful key claiming requests needs to be - * passed to the `OlmMachine` with the `mark_request_as_sent`. - * - * `users` represents the list of users that we should check if - * we lack a session with one of their devices. This can be an - * empty iterator when calling this method between sync requests. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - * @param {UserId[]} users - * @returns {Promise} - */ - getMissingSessions(users) { - const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_getMissingSessions(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * See if we have recently accepted an invitation to the given room. - * - * If we have accepted an invite to a room without finding an - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268} - * key bundle, we should accept a key bundle once one arrives. - * - * The data returned here is populated by the application, via {@link - * storeRoomPendingKeyBundle}. - * - * @experimental - * @param {RoomId} room_id - * @returns {Promise} - */ - getPendingKeyBundleDetailsForRoom(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_getPendingKeyBundleDetailsForRoom(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * See if we have received an {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268} - * room key bundle for the given room from the given user. - * - * Before calling this, the application must make sure that we have an - * up-to-date copy of the inviter's cross-signing keys, so that we can - * verify the device that sent us the key bundle data message. (For - * now, the easiest way to do that is by calling {@link queryKeysForUsers} - * for the inviter, and making the resultant request.) - * - * Returns either `undefined` if no suitable bundle has been received, - * or an {@link StoredRoomKeyBundleData}, in which case, the bundle - * should be downloaded, and then passed to {@link - * receiveRoomKeyBundle}. - * - * @experimental - * @param {RoomId} room_id - * @param {UserId} inviter - * @returns {Promise} - */ - getReceivedRoomKeyBundleData(room_id, inviter) { - _assertClass(room_id, RoomId); - _assertClass(inviter, UserId); - const ret = wasm.olmmachine_getReceivedRoomKeyBundleData(this.__wbg_ptr, room_id.__wbg_ptr, inviter.__wbg_ptr); - return ret; - } - /** - * Get encryption info for a decrypted timeline event. - * - * This recalculates the `EncryptionInfo` data that is returned by - * `decryptRoomEvent`, based on the current - * verification status of the sender, etc. - * - * Returns an error for an unencrypted event. - * - * # Arguments - * - * * `event` - The event to get information for. - * * `room_id` - The ID of the room where the event was sent to. - * - * # Returns - * - * {@link EncryptionInfo} - * @param {string} event - * @param {RoomId} room_id - * @returns {Promise} - */ - getRoomEventEncryptionInfo(event, room_id) { - const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_getRoomEventEncryptionInfo(this.__wbg_ptr, ptr0, len0, room_id.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get the stored room settings, such as the encryption algorithm or - * whether to encrypt only for trusted devices. - * - * These settings can be modified via {@link setRoomSettings}. - * - * # Returns - * - * `Promise` - * @param {RoomId} room_id - * @returns {Promise} - */ - getRoomSettings(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_getRoomSettings(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Get all the secrets with the given secret_name we have currently - * stored. - * The only secret this will currently return is the - * `m.megolm_backup.v1` secret. - * - * Usually you would just register a callback with - * [`register_receive_secret_callback`], but if the client is shut down - * before handling them, this method can be used to retrieve them. - * This method should therefore be called at client startup to retrieve any - * secrets received during the previous session. - * - * The secrets are guaranteed to have been received over a 1-to-1 encrypted - * to_device message from one of the user's own verified devices. - * - * Returns a `Promise` for a `Set` of `String` corresponding to the secret - * values. - * - * If the secret is valid and handled, the secret inbox should be cleared - * by calling `delete_secrets_from_inbox`. - * @param {string} secret_name - * @returns {Promise>} - */ - getSecretsFromInbox(secret_name) { - const ptr0 = passStringToWasm0(secret_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_getSecretsFromInbox(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Get a map holding all the devices of a user. - * - * ### Parameters - * - * * `user_id` - The unique ID of the user that the device belongs to. - * - * * `timeout_secs` - The amount of time we should wait for a `/keys/query` - * response before returning if the user's device list has been marked as - * stale. **Note**, this assumes that the requests from {@link - * OlmMachine.outgoingRequests} are being processed and sent out. - * - * If unset, we will return immediately even if the device list is stale. - * - * ### Returns - * - * A {@link UserDevices} object. - * @param {UserId} user_id - * @param {number | null} [timeout_secs] - * @returns {Promise} - */ - getUserDevices(user_id, timeout_secs) { - _assertClass(user_id, UserId); - const ret = wasm.olmmachine_getUserDevices(this.__wbg_ptr, user_id.__wbg_ptr, !isLikeNone(timeout_secs), isLikeNone(timeout_secs) ? 0 : timeout_secs); - return ret; - } - /** - * Get a verification object for the given user ID with the given - * flow ID (a to-device request ID if the verification has been - * requested by a to-device request, or a room event ID if the - * verification has been requested by a room event). - * - * It returns a “`Verification` object”, which is either a `Sas` - * or `Qr` object. - * @param {UserId} user_id - * @param {string} flow_id - * @returns {Sas | Qr | undefined} - */ - getVerification(user_id, flow_id) { - _assertClass(user_id, UserId); - const ptr0 = passStringToWasm0(flow_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_getVerification(this.__wbg_ptr, user_id.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get a verification request object with the given flow ID. - * @param {UserId} user_id - * @param {string} flow_id - * @returns {VerificationRequest | undefined} - */ - getVerificationRequest(user_id, flow_id) { - _assertClass(user_id, UserId); - const ptr0 = passStringToWasm0(flow_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_getVerificationRequest(this.__wbg_ptr, user_id.__wbg_ptr, ptr0, len0); - return ret === 0 ? undefined : VerificationRequest.__wrap(ret); - } - /** - * Get all the verification requests of a given user. - * @param {UserId} user_id - * @returns {VerificationRequest[]} - */ - getVerificationRequests(user_id) { - _assertClass(user_id, UserId); - const ret = wasm.olmmachine_getVerificationRequests(this.__wbg_ptr, user_id.__wbg_ptr); - return ret; - } - /** - * Get whether we have previously downloaded all message keys for a - * particular room from the key backup. Typically called in advance of - * building a room key bundle. - * @param {RoomId} room_id - * @returns {Promise} - */ - hasDownloadedAllRoomKeys(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_hasDownloadedAllRoomKeys(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Get the public parts of our Olm identity keys. - * @returns {IdentityKeys} - */ - get identityKeys() { - const ret = wasm.olmmachine_identityKeys(this.__wbg_ptr); - return IdentityKeys.__wrap(ret); - } - /** - * Import the given room keys into our store. - * - * # Arguments - * - * * `backed_up_room_keys`: keys that were retrieved from backup and that - * should be added to our store (provided they are better than our - * current versions of those keys). Specifically, it should be a Map from - * {@link RoomId}, to a Map from session ID to a (decrypted) session data - * structure. - * - * * `progress_listener`: an optional callback that takes 3 arguments: - * `progress` (the number of keys that have successfully been imported), - * `total` (the total number of keys), and `failures` (the number of keys - * that failed to import), and returns nothing. - * - * # Returns - * - * A {@link RoomKeyImportResult}. - * @param {Map>} backed_up_room_keys - * @param {(progress: bigint, total: bigint, failures: bigint) => void | undefined} progress_listener - * @param {string} backup_version - * @returns {Promise} - */ - importBackedUpRoomKeys(backed_up_room_keys, progress_listener, backup_version) { - const ptr0 = passStringToWasm0(backup_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_importBackedUpRoomKeys(this.__wbg_ptr, backed_up_room_keys, isLikeNone(progress_listener) ? 0 : addToExternrefTable0(progress_listener), ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Import our private cross signing keys. - * - * The keys should be provided as unpadded-base64-encoded strings. - * - * Returns a `CrossSigningStatus`. - * @param {string | null} [master_key] - * @param {string | null} [self_signing_key] - * @param {string | null} [user_signing_key] - * @returns {Promise} - */ - importCrossSigningKeys(master_key, self_signing_key, user_signing_key) { - var ptr0 = isLikeNone(master_key) ? 0 : passStringToWasm0(master_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(self_signing_key) ? 0 : passStringToWasm0(self_signing_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - var ptr2 = isLikeNone(user_signing_key) ? 0 : passStringToWasm0(user_signing_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len2 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_importCrossSigningKeys(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2); - return ret; - } - /** - * Import the given room keys into our store. - * - * `exported_keys` is a JSON-encoded list of previously exported keys that - * should be imported into our store. If we already have a better - * version of a key, the key will _not_ be imported. - * - * `progress_listener` is a closure that takes 2 `BigInt` arguments: - * `progress` and `total`, and returns nothing. - * - * Returns a {@link RoomKeyImportResult}. - * @param {string} exported_room_keys - * @param {(progress: bigint, total: bigint) => void} progress_listener - * @returns {Promise} - */ - importExportedRoomKeys(exported_room_keys, progress_listener) { - const ptr0 = passStringToWasm0(exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_importExportedRoomKeys(this.__wbg_ptr, ptr0, len0, progress_listener); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Import the given room keys into our store. - * - * Mostly, a deprecated alias for `importExportedRoomKeys`, though the - * return type is different. - * - * Returns a String containing a JSON-encoded object, holding three - * properties: - * * `total_count` (the total number of keys found in the export data). - * * `imported_count` (the number of keys that were imported). - * * `keys` (the keys that were imported; a map from room id to a map of - * the sender key to a list of session ids). - * - * @deprecated Use `importExportedRoomKeys` or `importBackedUpRoomKeys`. - * @param {string} exported_room_keys - * @param {(imported: bigint, total: bigint) => void} progress_listener - * @returns {Promise} - */ - importRoomKeys(exported_room_keys, progress_listener) { - const ptr0 = passStringToWasm0(exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_importRoomKeys(this.__wbg_ptr, ptr0, len0, progress_listener); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Import and persists secrets from a {@link SecretsBundle}. - * - * This method will import all the private cross-signing keys and, if - * available, the private part of a backup key and its accompanying - * version into the store. - * - * **Warning**: Only import this from a trusted source, i.e. if an existing - * device is sharing this with a new device. The imported cross-signing - * keys will create a {@link OwnUserIdentity} and mark it as verified. - * - * The backup key will be persisted in the store and can be enabled using - * the BackupMachine. - * - * The provided `SecretsBundle` is freed by this method; be careful not to - * use it once this method has been called. - * @param {SecretsBundle} bundle - * @returns {Promise} - */ - importSecretsBundle(bundle) { - _assertClass(bundle, SecretsBundle); - var ptr0 = bundle.__destroy_into_raw(); - const ret = wasm.olmmachine_importSecretsBundle(this.__wbg_ptr, ptr0); - return ret; - } - /** - * Create a new `OlmMachine` backed by an existing store. - * - * # Arguments - * - * * `user_id` - represents the unique ID of the user that owns this - * machine. - * - * * `device_id` - represents the unique ID of the device - * that owns this machine. - * - * * `store_handle` - the connection to the crypto store to be used for - * this machine. - * - * * `logger` - Optional logger to use for all operations on this machine. - * An instance of `JsLogger`. - * - * * `ca_certs_pem` - Optional PEM-formatted string that provides CA - * certificates. These will be used to check X.509 signatures on user - * identities. Any user identity that has a valid signature according to - * the supplied CAs will be considered verified, without any manual - * - * * `raw_x509_signer` - Optional async function for signing some data with - * an X.509 certificate. Used to sign the user's identity so compatible - * clients will recognise this user as verified without manual - * verification taking place. If you supply this you must also supply - * raw_x509_validity. - * - * * `raw_x509_validity` - Optional function returning the validity period - * of the X.509 certificate used for signing, as the number of - * milliseconds since the Unix epoch. If you supply this you must also - * supply raw_x509_signer. - * @param {UserId} user_id - * @param {DeviceId} device_id - * @param {StoreHandle} store_handle - * @param {JsLogger} [logger] - * @param {String} [ca_certs_pem] - * @param {(item: Uint8Array) => Promise<{ signature_bytes: Uint8Array, certificate_chain: string }>} [raw_x509_signer] - * @param {() => number} [raw_x509_validity] - * @returns {Promise} - */ - static initFromStore(user_id, device_id, store_handle, logger, ca_certs_pem, raw_x509_signer, raw_x509_validity) { - _assertClass(user_id, UserId); - _assertClass(device_id, DeviceId); - _assertClass(store_handle, StoreHandle); - var ptr0 = isLikeNone(ca_certs_pem) ? 0 : passStringToWasm0(ca_certs_pem, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_initFromStore(user_id.__wbg_ptr, device_id.__wbg_ptr, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger), ptr0, len0, isLikeNone(raw_x509_signer) ? 0 : addToExternrefTable0(raw_x509_signer), isLikeNone(raw_x509_validity) ? 0 : addToExternrefTable0(raw_x509_validity)); - return ret; - } - /** - * Create a new `OlmMachine`. - * - * The created machine will keep the encryption keys either in a IndexedDB - * based store, or in a memory store and once the objects is dropped, - * the keys will be lost. - * - * # Arguments - * - * * `user_id` - represents the unique ID of the user that owns this - * machine. - * - * * `device_id` - represents the unique ID of the device - * that owns this machine. - * - * * `store_name` - The name that should be used to open the IndexedDB - * based database. If this isn't provided, a memory-only store will be - * used. *Note* the memory-only store will lose your E2EE keys when the - * `OlmMachine` gets dropped. - * - * * `store_passphrase` - The passphrase that should be used to encrypt the - * IndexedDB-based store. - * - * * `logger` - Optional logger to use for all operations on this machine. - * An instance of `JsLogger`. - * - * * `ca_certs_pem` - Optional PEM-formatted string that provides CA - * certificates. These will be used to check X.509 signatures on user - * identities. Any user identity that has a valid signature according to - * the supplied CAs will be considered verified, without any manual - * verification taking place. A PEM-formatted string. - * - * * `raw_x509_signer` - Optional async function for signing some data with - * an X.509 certificate. Used to sign the user's identity so compatible - * clients will recognise this user as verified without manual - * verification taking place. If you supply this you must also supply - * raw_x509_validity. - * - * * `raw_x509_validity` - Optional function returning the validity period - * of the X.509 certificate used for signing, as the number of - * milliseconds since the Unix epoch. If you supply this you must also - * supply raw_x509_signer. - * @param {UserId} user_id - * @param {DeviceId} device_id - * @param {string} [store_name] - * @param {string} [store_passphrase] - * @param {JsLogger} [logger] - * @param {String} [ca_certs_pem] - * @param {(item: Uint8Array) => Promise<{ signature_bytes: Uint8Array, certificate_chain: string }>} [raw_x509_signer] - * @param {() => number} [raw_x509_validity] - * @returns {Promise} - */ - static initialize(user_id, device_id, store_name, store_passphrase, logger, ca_certs_pem, raw_x509_signer, raw_x509_validity) { - _assertClass(user_id, UserId); - _assertClass(device_id, DeviceId); - var ptr0 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(store_passphrase) ? 0 : passStringToWasm0(store_passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - var ptr2 = isLikeNone(ca_certs_pem) ? 0 : passStringToWasm0(ca_certs_pem, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len2 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_initialize(user_id.__wbg_ptr, device_id.__wbg_ptr, ptr0, len0, ptr1, len1, isLikeNone(logger) ? 0 : addToExternrefTable0(logger), ptr2, len2, isLikeNone(raw_x509_signer) ? 0 : addToExternrefTable0(raw_x509_signer), isLikeNone(raw_x509_validity) ? 0 : addToExternrefTable0(raw_x509_validity)); - return ret; - } - /** - * Invalidate the currently active outbound group session for the - * given room. - * - * Returns true if a session was invalidated, false if there was - * no session to invalidate. - * @param {RoomId} room_id - * @returns {Promise} - */ - invalidateGroupSession(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_invalidateGroupSession(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Are we able to encrypt room keys. - * - * This returns true if we have an active `BackupKey` and backup version - * registered with the state machine. - * - * Returns `Promise`. - * @returns {Promise} - */ - isBackupEnabled() { - const ret = wasm.olmmachine_isBackupEnabled(this.__wbg_ptr); - return ret; - } - /** - * Mark all tracked users as dirty. - * - * All users *whose device lists we are tracking* are flagged as needing a - * key query. Users whose devices we are not tracking are ignored. - * @returns {Promise} - */ - markAllTrackedUsersAsDirty() { - const ret = wasm.olmmachine_markAllTrackedUsersAsDirty(this.__wbg_ptr); - return ret; - } - /** - * Mark the request with the given request ID as sent (see - * `outgoing_requests`). - * - * Arguments are: - * - * * `request_id` represents the unique ID of the request that was sent - * out. This is needed to couple the response with the now sent out - * request. - * * `response_type` represents the type of the request that was sent out. - * * `response` represents the response that was received from the server - * after the outgoing request was sent out. - * @param {string} request_id - * @param {RequestType} request_type - * @param {string} response - * @returns {Promise} - */ - markRequestAsSent(request_id, request_type, response) { - const ptr0 = passStringToWasm0(request_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(response, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_markRequestAsSent(this.__wbg_ptr, ptr0, len0, request_type, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Constructor will always fail. To create a new `OlmMachine`, please use - * the `initialize` method. - * - * Why this pattern? `initialize` returns a `Promise`. Returning a - * `Promise` from a constructor is not idiomatic in JavaScript. - */ - constructor() { - const ret = wasm.olmmachine_new(); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - OlmMachineFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get the outgoing requests that need to be sent out. - * - * This returns a list of values, each of which can be any of: - * * {@link KeysUploadRequest}, - * * {@link KeysQueryRequest}, - * * {@link KeysClaimRequest}, - * * {@link ToDeviceRequest}, - * * {@link SignatureUploadRequest}, - * * {@link RoomMessageRequest}, or - * * {@link KeysBackupRequest}. - * - * Those requests need to be sent out to the server and the - * responses need to be passed back to the state machine - * using {@link OlmMachine.markRequestAsSent}. - * @returns {Promise} - */ - outgoingRequests() { - const ret = wasm.olmmachine_outgoingRequests(this.__wbg_ptr); - return ret; - } - /** - * Push a secret to all of our other verified devices - * - * This function assumes that we already have Olm sessions with the other - * devices. This can be done by calling {@link - * OlmMachine.getMissingSessions}. - * - * # Arguments - * - * * `secret_name` - The name of the secret to push. - * @param {string} name - * @returns {Promise} - */ - pushSecretToVerifiedDevices(name) { - const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_pushSecretToVerifiedDevices(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Generate an "out-of-band" key query request for the given set of users. - * - * This can be useful if we need the results from `getIdentity` or - * `getUserDevices` to be as up-to-date as possible. - * - * Returns a `KeysQueryRequest` object. The response of the request should - * be passed to the `OlmMachine` with the `mark_request_as_sent`. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - * @param {UserId[]} users - * @returns {KeysQueryRequest} - */ - queryKeysForUsers(users) { - const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_queryKeysForUsers(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return KeysQueryRequest.__wrap(ret[0]); - } - /** - * Import the message keys from a downloaded room key bundle. - * - * After {@link getReceivedRoomKeyBundleData} returns a truthy result, the - * media file should be downloaded and then passed into this method to - * actually do the import. - * - * @experimental - * @param {StoredRoomKeyBundleData} bundle_data - * @param {Uint8Array} encrypted_bundle - * @returns {Promise} - */ - receiveRoomKeyBundle(bundle_data, encrypted_bundle) { - _assertClass(bundle_data, StoredRoomKeyBundleData); - var ptr0 = bundle_data.__destroy_into_raw(); - const ptr1 = passArray8ToWasm0(encrypted_bundle, wasm.__wbindgen_malloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_receiveRoomKeyBundle(this.__wbg_ptr, ptr0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Handle to-device events and one-time key counts from a sync - * response. - * - * This will decrypt and handle to-device events returning the - * decrypted versions of them. - * - * To decrypt an event from the room timeline call - * `decrypt_room_event`. - * - * # Arguments - * - * * `to_device_events`: the JSON-encoded to-device evens from the `/sync` - * response - * * `changed_devices`: the mapping of changed and left devices, from the - * `/sync` response - * * `one_time_keys_counts`: The number of one-time keys on the server, - * from the `/sync` response. A `Map` from string (encryption algorithm) - * to number (number of keys). Following the sync v2 semantics, a missing - * entry for an algorithm means that there are *zero* keys of that type - * on the server. If the caller has no information about the key counts - * (for example, because it is processing only part of a sync response), - * it should use {@link receiveSyncChangesMsc4186} instead. - * * `unused_fallback_keys`: Optionally, a `Set` of unused fallback keys on - * the server, from the `/sync` response. If this is set, it is used to - * determine if new fallback keys should be uploaded. - * * `decryption_settings`: Optionally, the settings to use when decrypting - * to-device events. If not set, to-device events will be decrypted with - * a {@link TrustRequirement} of `Untrusted`. - * - * # Returns - * - * A list of values, each of which can be any of: - * * {@link DecryptedToDeviceEvent} - * * {@link PlainTextToDeviceEvent} - * * {@link UTDToDeviceEvent} - * * {@link InvalidToDeviceEvent} - * @param {string} to_device_events - * @param {DeviceLists} changed_devices - * @param {Map} one_time_keys_counts - * @param {Set} [unused_fallback_keys] - * @param {DecryptionSettings} [decryption_settings] - * @returns {Promise} - */ - receiveSyncChanges(to_device_events, changed_devices, one_time_keys_counts, unused_fallback_keys, decryption_settings) { - const ptr0 = passStringToWasm0(to_device_events, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(changed_devices, DeviceLists); - let ptr1 = 0; - if (!isLikeNone(decryption_settings)) { - _assertClass(decryption_settings, DecryptionSettings); - ptr1 = decryption_settings.__destroy_into_raw(); - } - const ret = wasm.olmmachine_receiveSyncChanges(this.__wbg_ptr, ptr0, len0, changed_devices.__wbg_ptr, one_time_keys_counts, isLikeNone(unused_fallback_keys) ? 0 : addToExternrefTable0(unused_fallback_keys), ptr1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Handle the changes to the end-to-end encryption state we received from - * a [MSC4186](https://github.com/matrix-org/matrix-spec-proposals/pull/4186) - * (simplified sliding sync) response. - * - * This behaves exactly like {@link receiveSyncChanges}, except for the - * handling of `one_time_keys_counts`: under MSC4186 semantics, a missing - * entry for an algorithm means that the number of keys on the server is - * *unchanged*, rather than zero. - * - * This is therefore also the method to use when the caller has no - * information about the one-time key counts, for example because it is - * processing only the to-device events or the device list changes from a - * sync response. - * - * # Arguments - * - * * `to_device_events`: the JSON-encoded to-device events from the sync - * response - * * `changed_devices`: the mapping of changed and left devices, from the - * sync response - * * `one_time_keys_counts`: The number of one-time keys on the server, - * from the sync response. A `Map` from string (encryption algorithm) to - * number (number of keys). A missing entry means "unchanged". - * * `unused_fallback_keys`: Optionally, a `Set` of unused fallback keys on - * the server, from the sync response. If this is set, it is used to - * determine if new fallback keys should be uploaded. - * * `decryption_settings`: Optionally, the settings to use when decrypting - * to-device events. If not set, to-device events will be decrypted with - * a {@link TrustRequirement} of `Untrusted`. - * - * # Returns - * - * A list of values, each of which can be any of: - * * {@link DecryptedToDeviceEvent} - * * {@link PlainTextToDeviceEvent} - * * {@link UTDToDeviceEvent} - * * {@link InvalidToDeviceEvent} - * @param {string} to_device_events - * @param {DeviceLists} changed_devices - * @param {Map} one_time_keys_counts - * @param {Set} [unused_fallback_keys] - * @param {DecryptionSettings} [decryption_settings] - * @returns {Promise} - */ - receiveSyncChangesMsc4186(to_device_events, changed_devices, one_time_keys_counts, unused_fallback_keys, decryption_settings) { - const ptr0 = passStringToWasm0(to_device_events, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(changed_devices, DeviceLists); - let ptr1 = 0; - if (!isLikeNone(decryption_settings)) { - _assertClass(decryption_settings, DecryptionSettings); - ptr1 = decryption_settings.__destroy_into_raw(); - } - const ret = wasm.olmmachine_receiveSyncChangesMsc4186(this.__wbg_ptr, ptr0, len0, changed_devices.__wbg_ptr, one_time_keys_counts, isLikeNone(unused_fallback_keys) ? 0 : addToExternrefTable0(unused_fallback_keys), ptr1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Receive a verification event. - * - * This method can be used to pass verification events that are happening - * in rooms to the `OlmMachine`. The event should be in the decrypted form. - * @param {string} event - * @param {RoomId} room_id - * @returns {Promise} - */ - receiveVerificationEvent(event, room_id) { - const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_receiveVerificationEvent(this.__wbg_ptr, ptr0, len0, room_id.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Register a callback which will be called whenever there is an update to - * a device. - * - * `callback` should be a function that takes a single argument (an array - * of user IDs as strings) and returns a Promise. - * @param {(userIds: string[]) => Promise} callback - */ - registerDevicesUpdatedCallback(callback) { - wasm.olmmachine_registerDevicesUpdatedCallback(this.__wbg_ptr, callback); - } - /** - * Register a callback which will be called whenever a secret - * (`m.secret.send`) is received. - * - * The only secret this will currently broadcast is the - * `m.megolm_backup.v1` (the cross signing secrets are handled internally). - * - * To request a secret from other devices, a client sends an - * `m.secret.request` device event with `action` set to `request` and - * `name` set to the identifier of the secret. A device that wishes to - * share the secret will reply with an `m.secret.send` event, encrypted - * using olm. - * - * The secrets are guaranteed to have been received over a 1-to-1 encrypted - * to_device message from a one of the user's own verified devices. - * - * See https://matrix-org.github.io/matrix-rust-sdk/matrix_sdk_crypto/store/struct.Store.html#method.secrets_stream for more information. - * - * `callback` should be a function that takes 2 arguments: the secret name - * (string) and value (string). - * - * **Note**: if the secret is valid and handled on the javascript side, the - * secret inbox should be cleared by calling - * `delete_secrets_from_inbox`. - * @param {(name: string, value: string) => Promise} callback - */ - registerReceiveSecretCallback(callback) { - wasm.olmmachine_registerReceiveSecretCallback(this.__wbg_ptr, callback); - } - /** - * Register a callback which will be called whenever there is an update to - * a room key. - * - * `callback` should be a function that takes a single argument (an array - * of {@link RoomKeyInfo}) and returns a Promise. - * @param {(info: RoomKeyInfo[]) => Promise} callback - */ - registerRoomKeyUpdatedCallback(callback) { - wasm.olmmachine_registerRoomKeyUpdatedCallback(this.__wbg_ptr, callback); - } - /** - * Register a callback which will be called whenever we receive a - * notification that some room keys have been withheld. - * - * `callback` should be a function that takes a single argument (an array - * of {@link RoomKeyWithheldInfo}) and returns a Promise. - * @param {(info: RoomKeyWithheldInfo[]) => Promise} callback - */ - registerRoomKeysWithheldCallback(callback) { - wasm.olmmachine_registerRoomKeysWithheldCallback(this.__wbg_ptr, callback); - } - /** - * Register a callback which will be called whenever there is an update to - * a user identity. - * - * `callback` should be a function that takes a single argument (a {@link - * UserId}) and returns a Promise. - * @param {(id: UserId) => Promise} callback - */ - registerUserIdentityUpdatedCallback(callback) { - wasm.olmmachine_registerUserIdentityUpdatedCallback(this.__wbg_ptr, callback); - } - /** - * Request missing local secrets from our other trusted devices. - * - * "Local secrets" refers to secrets which can be shared between trusted - * devices, such as private cross-signing keys, and the megolm backup - * decryption key. - * - * This method will cause the sdk to generated outgoing secret requests - * (`m.secret.request`) to get the missing secrets. These requests will - * then be returned by a future call to {@link - * OlmMachine#outgoingRequests}. - * - * # Returns - * - * A `Promise` for a `bool` result, which will be true if secrets were - * missing, and a request was generated. - * @returns {Promise} - */ - requestMissingSecretsIfNeeded() { - const ret = wasm.olmmachine_requestMissingSecretsIfNeeded(this.__wbg_ptr); - return ret; - } - /** - * Get the number of backed up room keys and the total number of room keys. - * Returns a {@link RoomKeyCounts}. - * @returns {Promise} - */ - roomKeyCounts() { - const ret = wasm.olmmachine_roomKeyCounts(this.__wbg_ptr); - return ret; - } - /** - * Whether room key forwarding is enabled. - * - * If room key forwarding is enabled, we will automatically reply to - * incoming `m.room_key_request` messages from verified devices by - * forwarding the requested key (if we have it). - * @returns {boolean} - */ - get roomKeyForwardingEnabled() { - const ret = wasm.olmmachine_roomKeyForwardingEnabled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Whether automatic transmission of room key requests is enabled. - * - * Room key requests allow the device to request room keys that it might - * have missed in the original share using `m.room_key_request` - * events. - * @returns {boolean} - */ - get roomKeyRequestsEnabled() { - const ret = wasm.olmmachine_roomKeyRequestsEnabled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Store the backup decryption key in the crypto store. - * - * This is useful if the client wants to support gossiping of the backup - * key. - * - * Returns `Promise`. - * @param {BackupDecryptionKey} decryption_key - * @param {string} version - * @returns {Promise} - */ - saveBackupDecryptionKey(decryption_key, version) { - _assertClass(decryption_key, BackupDecryptionKey); - const ptr0 = passStringToWasm0(version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_saveBackupDecryptionKey(this.__wbg_ptr, decryption_key.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Record that we have downloaded all message keys for the given room. - * @param {RoomId} room_id - * @returns {Promise} - */ - setHasDownloadedAllRoomKeys(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_setHasDownloadedAllRoomKeys(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Store encryption settings for the given room. - * - * This method checks if the new settings are "safe" -- ie, that they do - * not represent a downgrade in encryption security from any previous - * settings. Attempts to downgrade security will result in an error. - * - * If the settings are valid, they will be persisted to the crypto store. - * These settings are not used directly by this library, but the saved - * settings can be retrieved via {@link getRoomSettings}. - * @param {RoomId} room_id - * @param {RoomSettings} room_settings - * @returns {Promise} - */ - setRoomSettings(room_id, room_settings) { - _assertClass(room_id, RoomId); - _assertClass(room_settings, RoomSettings); - const ret = wasm.olmmachine_setRoomSettings(this.__wbg_ptr, room_id.__wbg_ptr, room_settings.__wbg_ptr); - return ret; - } - /** - * Enable or disable room key forwarding. - * @param {boolean} enabled - */ - set roomKeyForwardingEnabled(enabled) { - wasm.olmmachine_set_roomKeyForwardingEnabled(this.__wbg_ptr, enabled); - } - /** - * Enable or disable automatic transmission of room key requests. - * @param {boolean} enabled - */ - set roomKeyRequestsEnabled(enabled) { - wasm.olmmachine_set_roomKeyRequestsEnabled(this.__wbg_ptr, enabled); - } - /** - * Get to-device requests to share a room key with users in a room. - * - * `room_id` is the room ID. `users` is an array of `UserId` - * objects. `encryption_settings` are an `EncryptionSettings` - * object. - * - * Note: Care should be taken that only one such request at a - * time is in flight for the same room, e.g. using a lock. - * - * Returns an array of `ToDeviceRequest`s. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - * @param {RoomId} room_id - * @param {UserId[]} users - * @param {EncryptionSettings} encryption_settings - * @returns {Promise} - */ - shareRoomKey(room_id, users, encryption_settings) { - _assertClass(room_id, RoomId); - const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(encryption_settings, EncryptionSettings); - const ret = wasm.olmmachine_shareRoomKey(this.__wbg_ptr, room_id.__wbg_ptr, ptr0, len0, encryption_settings.__wbg_ptr); - return ret; - } - /** - * Collect the devices belonging to the given user, and send the details - * of a room key bundle to those devices. - * - * Returns a list of to-device requests which must be sent. - * - * @experimental - * @param {UserId} user - * @param {RoomId} room - * @param {string} url - * @param {string | null | undefined} media_encryption_info - * @param {CollectStrategy} sharing_strategy - * @returns {Promise} - */ - shareRoomKeyBundleData(user, room, url, media_encryption_info, sharing_strategy) { - _assertClass(user, UserId); - _assertClass(room, RoomId); - const ptr0 = passStringToWasm0(url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(media_encryption_info) ? 0 : passStringToWasm0(media_encryption_info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - _assertClass(sharing_strategy, CollectStrategy); - var ptr2 = sharing_strategy.__destroy_into_raw(); - const ret = wasm.olmmachine_shareRoomKeyBundleData(this.__wbg_ptr, user.__wbg_ptr, room.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Sign the given message using our device key and if available - * cross-signing master key. - * @param {string} message - * @returns {Promise} - */ - sign(message) { - const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_sign(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Store the fact that we have accepted an invitation to the given room, so - * should accept a key bundle if one arrives soon. - * - * This should be called whenever we join a room following an invite, but - * it has no effect other than that the room will be returned by a future - * call to {@link getPendingKeyBundleDetailsForRoom}. - * - * @experimental - * @param {RoomId} room_id - * @param {UserId} inviter - * @returns {Promise} - */ - storeRoomPendingKeyBundle(room_id, inviter) { - _assertClass(room_id, RoomId); - _assertClass(inviter, UserId); - const ret = wasm.olmmachine_storeRoomPendingKeyBundle(this.__wbg_ptr, room_id.__wbg_ptr, inviter.__wbg_ptr); - return ret; - } - /** - * Get the list of users whose devices we are currently tracking. - * - * A user can be marked for tracking using the - * [`update_tracked_users`](#method.update_tracked_users) method. - * - * Returns a `Set`. - * @returns {Promise>} - */ - trackedUsers() { - const ret = wasm.olmmachine_trackedUsers(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Update the list of tracked users. - * - * The OlmMachine maintains a list of users whose devices we are keeping - * track of: these are known as "tracked users". These must be users - * that we share a room with, so that the server sends us updates for - * their device lists. - * - * # Arguments - * - * * `users` - An array of user ids that should be added to the list of - * tracked users - * - * Any users that hadn't been seen before will be flagged for a key query - * immediately, and whenever `receive_sync_changes` receives a - * "changed" notification for that user in the future. - * - * Users that were already in the list are unaffected. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - * @param {UserId[]} users - * @returns {Promise} - */ - updateTrackedUsers(users) { - const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_updateTrackedUsers(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * The unique user ID that owns this `OlmMachine` instance. - * @returns {UserId} - */ - get userId() { - const ret = wasm.olmmachine_userId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Check if the given backup has been verified by us or by another of our - * devices that we trust. - * - * The `backup_info` should be a Javascript object with the following - * format: - * - * ```json - * { - * "algorithm": "m.megolm_backup.v1.curve25519-aes-sha2", - * "auth_data": { - * "public_key":"XjhWTCjW7l59pbfx9tlCBQolfnIQWARoKOzjTOPSlWM", - * "signatures": {} - * } - * } - * ``` - * - * Returns a {@link SignatureVerification} object. - * @param {any} backup_info - * @returns {Promise} - */ - verifyBackup(backup_info) { - const ret = wasm.olmmachine_verifyBackup(this.__wbg_ptr, backup_info); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } -} -exports.OlmMachine = OlmMachine; -if (Symbol.dispose) OlmMachine.prototype[Symbol.dispose] = OlmMachine.prototype.free; - -/** - * Struct representing a cross signing identity of a user. - * - * This is the user identity of a user that isn't our own. Other users will - * only contain a master key and a self signing key, meaning that only device - * signatures can be checked with this identity. - * - * This struct wraps a read-only version of the struct and allows verifications - * to be requested to verify our own device with the user identity. - */ -class OtherUserIdentity { - static __wrap(ptr) { - const obj = Object.create(OtherUserIdentity.prototype); - obj.__wbg_ptr = ptr; - OtherUserIdentityFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - OtherUserIdentityFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_otheruseridentity_free(ptr, 0); - } - /** - * Was this identity verified since initial observation and is not anymore? - * - * Such a violation should be reported to the local user by the - * application, and resolved by - * - * - Verifying the new identity with {@link requestVerification}, or: - * - Withdrawing the verification requirement with {@link - * withdrawVerification}. - * @returns {boolean} - */ - hasVerificationViolation() { - const ret = wasm.otheruseridentity_hasVerificationViolation(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the identity changed in a way that requires approval from the user? - * - * A user identity needs approval if it changed after the crypto machine - * has already observed ("pinned") a different identity for that user, - * unless it is an explicitly verified identity (using for example - * interactive verification). - * - * This situation can be resolved by: - * - * - Verifying the new identity with {@link requestVerification}, or: - * - Updating the pin to the new identity with {@link pinCurrentMasterKey}. - * @returns {boolean} - */ - identityNeedsUserApproval() { - const ret = wasm.otheruseridentity_identityNeedsUserApproval(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this user identity verified? - * @returns {boolean} - */ - isVerified() { - const ret = wasm.otheruseridentity_isVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the master key of the identity. - * @returns {string} - */ - get masterKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.otheruseridentity_masterKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; - len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Pin the current identity (public part of the master signing key). - * @returns {Promise} - */ - pinCurrentMasterKey() { - const ret = wasm.otheruseridentity_pinCurrentMasterKey(this.__wbg_ptr); - return ret; - } - /** - * Create a `VerificationRequest` object after the verification - * request content has been sent out. - * @param {RoomId} room_id - * @param {EventId} request_event_id - * @param {VerificationMethod[]} [methods] - * @returns {VerificationRequest} - */ - requestVerification(room_id, request_event_id, methods) { - _assertClass(room_id, RoomId); - _assertClass(request_event_id, EventId); - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.otheruseridentity_requestVerification(this.__wbg_ptr, room_id.__wbg_ptr, request_event_id.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return VerificationRequest.__wrap(ret[0]); - } - /** - * Get the self-signing key of the identity. - * @returns {string} - */ - get selfSigningKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.otheruseridentity_selfSigningKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; - len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Send a verification request to the given user. - * - * The returned content needs to be sent out into a DM room with the given - * user. - * - * After the content has been sent out a VerificationRequest can be started - * with the `request_verification` method. - * @param {VerificationMethod[]} [methods] - * @returns {string} - */ - verificationRequestContent(methods) { - let deferred3_0; - let deferred3_1; - try { - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.otheruseridentity_verificationRequestContent(this.__wbg_ptr, ptr0, len0); - var ptr2 = ret[0]; - var len2 = ret[1]; - if (ret[3]) { - ptr2 = 0; - len2 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred3_0 = ptr2; - deferred3_1 = len2; - return getStringFromWasm0(ptr2, len2); - } finally { - wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); - } - } - /** - * Manually verify this user. - * - * This method will attempt to sign the user identity using our private - * cross signing key. - * - * This method fails if we don't have the private part of our user-signing - * key. - * - * Returns a request that needs to be sent out for the user to be marked as - * verified. - * @returns {Promise} - */ - verify() { - const ret = wasm.otheruseridentity_verify(this.__wbg_ptr); - return ret; - } - /** - * True if we verified this identity (with any own identity, at any - * point). - * - * To set this latch back to false, call {@link withdrawVerification}. - * @returns {boolean} - */ - wasPreviouslyVerified() { - const ret = wasm.otheruseridentity_wasPreviouslyVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Remove the requirement for this identity to be verified. - * - * If an identity was previously verified and is not anymore it will be - * reported to the user. In order to remove this notice users have to - * verify again or to withdraw the verification requirement. - * @returns {Promise} - */ - withdrawVerification() { - const ret = wasm.otheruseridentity_withdrawVerification(this.__wbg_ptr); - return ret; - } -} -exports.OtherUserIdentity = OtherUserIdentity; -if (Symbol.dispose) OtherUserIdentity.prototype[Symbol.dispose] = OtherUserIdentity.prototype.free; - -/** - * The result of an outbound ECIES channel establishment. - */ -class OutboundCreationResult { - static __wrap(ptr) { - const obj = Object.create(OutboundCreationResult.prototype); - obj.__wbg_ptr = ptr; - OutboundCreationResultFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - OutboundCreationResultFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_outboundcreationresult_free(ptr, 0); - } - /** - * The established ECIES channel. - * @returns {EstablishedEcies} - */ - get channel() { - const ret = wasm.__wbg_get_outboundcreationresult_channel(this.__wbg_ptr); - return EstablishedEcies.__wrap(ret); - } - /** - * The initial encrypted message. - * @returns {string} - */ - get initial_message() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_outboundcreationresult_initial_message(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The established ECIES channel. - * @param {EstablishedEcies} arg0 - */ - set channel(arg0) { - _assertClass(arg0, EstablishedEcies); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_outboundcreationresult_channel(this.__wbg_ptr, ptr0); - } - /** - * The initial encrypted message. - * @param {string} arg0 - */ - set initial_message(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_outboundcreationresult_initial_message(this.__wbg_ptr, ptr0, len0); - } -} -exports.OutboundCreationResult = OutboundCreationResult; -if (Symbol.dispose) OutboundCreationResult.prototype[Symbol.dispose] = OutboundCreationResult.prototype.free; - -/** - * Struct representing a cross signing identity of a user. - * - * This is the user identity of a user that is our own. - */ -class OwnUserIdentity { - static __wrap(ptr) { - const obj = Object.create(OwnUserIdentity.prototype); - obj.__wbg_ptr = ptr; - OwnUserIdentityFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - OwnUserIdentityFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_ownuseridentity_free(ptr, 0); - } - /** - * Was this identity verified since initial observation and is not anymore? - * - * Such a violation should be reported to the local user by the - * application, and resolved by - * - * - Verifying the new identity with {@link requestVerification}, or: - * - Withdrawing the verification requirement with {@link - * withdrawVerification}. - * @returns {boolean} - */ - hasVerificationViolation() { - const ret = wasm.ownuseridentity_hasVerificationViolation(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this user identity verified? - * @returns {boolean} - */ - isVerified() { - const ret = wasm.ownuseridentity_isVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the master key of the identity. - * @returns {string} - */ - get masterKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.ownuseridentity_masterKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; - len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Send a verification request to our other devices. - * @param {VerificationMethod[]} [methods] - * @returns {Promise<[VerificationRequest, OutgoingVerificationRequest]>} - */ - requestVerification(methods) { - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.ownuseridentity_requestVerification(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get the self-signing key of the identity. - * @returns {string} - */ - get selfSigningKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.ownuseridentity_selfSigningKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; - len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Does our user identity trust our own device, i.e. have we signed our own - * device keys with our self-signing key? - * @returns {Promise} - */ - trustsOurOwnDevice() { - const ret = wasm.ownuseridentity_trustsOurOwnDevice(this.__wbg_ptr); - return ret; - } - /** - * Get the user-signing key of the identity. This is only present for our - * own user identity. - * @returns {string} - */ - get userSigningKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.ownuseridentity_userSigningKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; - len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Mark our user identity as verified. - * - * This will mark the identity locally as verified and sign it with our own - * device. - * - * Returns a signature upload request that needs to be sent out. - * @returns {Promise} - */ - verify() { - const ret = wasm.ownuseridentity_verify(this.__wbg_ptr); - return ret; - } - /** - * True if we verified our own identity at some point in the past. - * - * To reset this latch back to `false`, call {@link withdrawVerification}. - * @returns {boolean} - */ - wasPreviouslyVerified() { - const ret = wasm.ownuseridentity_wasPreviouslyVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Remove the requirement for this identity to be verified. - * - * If an identity was previously verified and is not any longer, it will be - * reported to the user. In order to remove this notice users have to - * verify again or to withdraw the verification requirement. - * @returns {Promise} - */ - withdrawVerification() { - const ret = wasm.ownuseridentity_withdrawVerification(this.__wbg_ptr); - return ret; - } -} -exports.OwnUserIdentity = OwnUserIdentity; -if (Symbol.dispose) OwnUserIdentity.prototype[Symbol.dispose] = OwnUserIdentity.prototype.free; - -/** - * A pickled version of an `InboundGroupSession`. - * - * Holds all the information that needs to be stored in a database to restore - * an InboundGroupSession. - */ -class PickledInboundGroupSession { - static __unwrap(jsValue) { - if (!(jsValue instanceof PickledInboundGroupSession)) { - return 0; - } - return jsValue.__destroy_into_raw(); - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PickledInboundGroupSessionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pickledinboundgroupsession_free(ptr, 0); - } - /** - * Flag remembering if the session has been backed up. - * @returns {boolean} - */ - get backedUp() { - const ret = wasm.__wbg_get_pickledinboundgroupsession_backedUp(this.__wbg_ptr); - return ret !== 0; - } - /** - * Flag remembering if the session was directly sent to us by the sender - * or if it was imported. - * @returns {boolean} - */ - get imported() { - const ret = wasm.__wbg_get_pickledinboundgroupsession_imported(this.__wbg_ptr); - return ret !== 0; - } - /** - * The pickle string holding the Megolm Session, as returned by - * `olm_pickle_inbound_group_session` in libolm. - * @returns {string} - */ - get pickle() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_pickledinboundgroupsession_pickle(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The id of the room that the session is used in. - * - * Nullable so that a `PickledInboundGroupSession` can be constructed - * incrementally. Must be populated! - * @returns {RoomId | undefined} - */ - get roomId() { - const ret = wasm.__wbg_get_pickledinboundgroupsession_roomId(this.__wbg_ptr); - return ret === 0 ? undefined : RoomId.__wrap(ret); - } - /** - * The public curve25519 key of the account that sent us the session. - * @returns {string} - */ - get senderKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_pickledinboundgroupsession_senderKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The public ed25519 key of the account that is believed to have initiated - * the session, if known. - * - * If the session was received directly from the creator via an - * Olm-encrypted `m.room_key` event, this value is taken from the `keys` - * property of the plaintext payload of that event (see - * [`m.olm.v1.curve25519-aes-sha2`]). - * - * If the session was forwarded to us using an [`m.forwarded_room_key`], - * this value is a copy of the `sender_claimed_ed25519_key` from the - * content of the event. - * - * [`m.olm.v1.curve25519-aes-sha2`]: https://spec.matrix.org/v1.9/client-server-api/#molmv1curve25519-aes-sha2 - * [`m.forwarded_room_key`]: https://spec.matrix.org/v1.9/client-server-api/#mforwarded_room_key - * @returns {string | undefined} - */ - get senderSigningKey() { - const ret = wasm.__wbg_get_pickledinboundgroupsession_senderSigningKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Construct a new `PickledInboundGroupSession`, with default values. - */ - constructor() { - const ret = wasm.pickledinboundgroupsession_new(); - this.__wbg_ptr = ret; - PickledInboundGroupSessionFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Flag remembering if the session has been backed up. - * @param {boolean} arg0 - */ - set backedUp(arg0) { - wasm.__wbg_set_pickledinboundgroupsession_backedUp(this.__wbg_ptr, arg0); - } - /** - * Flag remembering if the session was directly sent to us by the sender - * or if it was imported. - * @param {boolean} arg0 - */ - set imported(arg0) { - wasm.__wbg_set_pickledinboundgroupsession_imported(this.__wbg_ptr, arg0); - } - /** - * The pickle string holding the Megolm Session, as returned by - * `olm_pickle_inbound_group_session` in libolm. - * @param {string} arg0 - */ - set pickle(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledinboundgroupsession_pickle(this.__wbg_ptr, ptr0, len0); - } - /** - * The id of the room that the session is used in. - * - * Nullable so that a `PickledInboundGroupSession` can be constructed - * incrementally. Must be populated! - * @param {RoomId | null} [arg0] - */ - set roomId(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, RoomId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_pickledinboundgroupsession_roomId(this.__wbg_ptr, ptr0); - } - /** - * The public curve25519 key of the account that sent us the session. - * @param {string} arg0 - */ - set senderKey(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledinboundgroupsession_senderKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The public ed25519 key of the account that is believed to have initiated - * the session, if known. - * - * If the session was received directly from the creator via an - * Olm-encrypted `m.room_key` event, this value is taken from the `keys` - * property of the plaintext payload of that event (see - * [`m.olm.v1.curve25519-aes-sha2`]). - * - * If the session was forwarded to us using an [`m.forwarded_room_key`], - * this value is a copy of the `sender_claimed_ed25519_key` from the - * content of the event. - * - * [`m.olm.v1.curve25519-aes-sha2`]: https://spec.matrix.org/v1.9/client-server-api/#molmv1curve25519-aes-sha2 - * [`m.forwarded_room_key`]: https://spec.matrix.org/v1.9/client-server-api/#mforwarded_room_key - * @param {string | null} [arg0] - */ - set senderSigningKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledinboundgroupsession_senderSigningKey(this.__wbg_ptr, ptr0, len0); - } -} -exports.PickledInboundGroupSession = PickledInboundGroupSession; -if (Symbol.dispose) PickledInboundGroupSession.prototype[Symbol.dispose] = PickledInboundGroupSession.prototype.free; - -/** - * A pickled version of a `Session`. - * - * Holds all the information that needs to be stored in a database to restore - * an Olm Session. Can be imported into the rust store with {@link - * Migration::migrateOlmSessions}. - */ -class PickledSession { - static __unwrap(jsValue) { - if (!(jsValue instanceof PickledSession)) { - return 0; - } - return jsValue.__destroy_into_raw(); - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PickledSessionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pickledsession_free(ptr, 0); - } - /** - * Was the session created using a fallback key? - * @returns {boolean} - */ - get createdUsingFallbackKey() { - const ret = wasm.__wbg_get_pickledsession_createdUsingFallbackKey(this.__wbg_ptr); - return ret !== 0; - } - /** - * When the session was created. - * @returns {Date} - */ - get creationTime() { - const ret = wasm.__wbg_get_pickledsession_creationTime(this.__wbg_ptr); - return ret; - } - /** - * When the session was last used. - * @returns {Date} - */ - get lastUseTime() { - const ret = wasm.__wbg_get_pickledsession_lastUseTime(this.__wbg_ptr); - return ret; - } - /** - * The pickle string holding the Olm Session, as returned by - * `olm_pickle_session` in libolm. - * @returns {string} - */ - get pickle() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_pickledsession_pickle(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base64-encoded public curve25519 key of the other user that we share - * this session with. - * @returns {string} - */ - get senderKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_pickledsession_senderKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Construct a new `PickledSession`, with default values. - */ - constructor() { - const ret = wasm.pickledsession_new(); - this.__wbg_ptr = ret; - PickledSessionFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Was the session created using a fallback key? - * @param {boolean} arg0 - */ - set createdUsingFallbackKey(arg0) { - wasm.__wbg_set_pickledsession_createdUsingFallbackKey(this.__wbg_ptr, arg0); - } - /** - * When the session was created. - * @param {Date} arg0 - */ - set creationTime(arg0) { - wasm.__wbg_set_pickledsession_creationTime(this.__wbg_ptr, arg0); - } - /** - * When the session was last used. - * @param {Date} arg0 - */ - set lastUseTime(arg0) { - wasm.__wbg_set_pickledsession_lastUseTime(this.__wbg_ptr, arg0); - } - /** - * The pickle string holding the Olm Session, as returned by - * `olm_pickle_session` in libolm. - * @param {string} arg0 - */ - set pickle(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledsession_pickle(this.__wbg_ptr, ptr0, len0); - } - /** - * The base64-encoded public curve25519 key of the other user that we share - * this session with. - * @param {string} arg0 - */ - set senderKey(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledsession_senderKey(this.__wbg_ptr, ptr0, len0); - } -} -exports.PickledSession = PickledSession; -if (Symbol.dispose) PickledSession.prototype[Symbol.dispose] = PickledSession.prototype.free; - -/** - * A class representing a public-key decryption instance. - * - * This implements the decryption part of the - * `m.megolm_backup.v1.curve25519-aes-sha2` algorithm described in the Matrix - * {@link https://spec.matrix.org/v1.11/client-server-api/#backup-algorithm-mmegolm_backupv1curve25519-aes-sha2 | spec}. - * - * @see {@link PkEncryption} - * - * More details can be found in the official {@link https://docs.rs/vodozemac/latest/vodozemac/pk_encryption/ | vodozemac documentation}. - */ -class PkDecryption { - static __wrap(ptr) { - const obj = Object.create(PkDecryption.prototype); - obj.__wbg_ptr = ptr; - PkDecryptionFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PkDecryptionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pkdecryption_free(ptr, 0); - } - /** - * Decrypts an encrypted message and returns the raw `Uint8Array`. - * @param {PkMessage} message - * @returns {Uint8Array} - */ - decrypt(message) { - _assertClass(message, PkMessage); - const ret = wasm.pkdecryption_decrypt(this.__wbg_ptr, message.__wbg_ptr); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Decrypts an encrypted message and returns the plaintext as a UTF-8 - * string. - * @param {PkMessage} message - * @returns {string} - */ - decryptString(message) { - let deferred2_0; - let deferred2_1; - try { - _assertClass(message, PkMessage); - const ret = wasm.pkdecryption_decryptString(this.__wbg_ptr, message.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; - len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Creates a `PkDecryption` instance from a secret key. - * @param {Curve25519SecretKey} key - * @returns {PkDecryption} - */ - static fromKey(key) { - _assertClass(key, Curve25519SecretKey); - const ret = wasm.pkdecryption_fromKey(key.__wbg_ptr); - return PkDecryption.__wrap(ret); - } - /** - * Creates a new `PkDecryption` instance with a newly generated key pair. - */ - constructor() { - const ret = wasm.pkdecryption_new(); - this.__wbg_ptr = ret; - PkDecryptionFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Returns the public key associated with this decryption instance. - * - * This can be used to construct a {@link PkEncryption} object to encrypt a - * message for this `PkDecryption` object. - * @returns {Curve25519PublicKey} - */ - publicKey() { - const ret = wasm.pkdecryption_publicKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * Returns the secret key associated with this `PkDecryption` instance. - * @returns {Curve25519SecretKey} - */ - secretKey() { - const ret = wasm.pkdecryption_secretKey(this.__wbg_ptr); - return Curve25519SecretKey.__wrap(ret); - } -} -exports.PkDecryption = PkDecryption; -if (Symbol.dispose) PkDecryption.prototype[Symbol.dispose] = PkDecryption.prototype.free; - -/** - * A class representing a public-key encryption instance. - * - * This implements the encryption part of the - * `m.megolm_backup.v1.curve25519-aes-sha2` algorithm described in the Matrix - * {@link https://spec.matrix.org/v1.11/client-server-api/#backup-algorithm-mmegolm_backupv1curve25519-aes-sha2 | spec}. - * - * @see {@link PkDecryption} - * - * More details can be found in the official {@link https://docs.rs/vodozemac/latest/vodozemac/pk_encryption/ | vodozemac documentation}. - */ -class PkEncryption { - static __wrap(ptr) { - const obj = Object.create(PkEncryption.prototype); - obj.__wbg_ptr = ptr; - PkEncryptionFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PkEncryptionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pkencryption_free(ptr, 0); - } - /** - * Encrypts a byte message and returns an encrypted {@link PkMessage}. - * @param {Uint8Array} message - * @returns {PkMessage} - */ - encrypt(message) { - const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.pkencryption_encrypt(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return PkMessage.__wrap(ret[0]); - } - /** - * Encrypts a string message and returns an encrypted {@link PkMessage}. - * @param {string} message - * @returns {PkMessage} - */ - encryptString(message) { - const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.pkencryption_encryptString(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return PkMessage.__wrap(ret[0]); - } - /** - * Creates a new `PkEncryption` instance from a public key. - * @param {Curve25519PublicKey} public_key - * @returns {PkEncryption} - */ - static fromKey(public_key) { - _assertClass(public_key, Curve25519PublicKey); - const ret = wasm.pkencryption_fromKey(public_key.__wbg_ptr); - return PkEncryption.__wrap(ret); - } -} -exports.PkEncryption = PkEncryption; -if (Symbol.dispose) PkEncryption.prototype[Symbol.dispose] = PkEncryption.prototype.free; - -/** - * A class representing an encrypted message using {@link PkEncryption}. - */ -class PkMessage { - static __wrap(ptr) { - const obj = Object.create(PkMessage.prototype); - obj.__wbg_ptr = ptr; - PkMessageFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PkMessageFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pkmessage_free(ptr, 0); - } - /** - * Returns the raw ciphertext as a `Uint8Array`. - * @returns {Uint8Array} - */ - ciphertext() { - const ret = wasm.pkmessage_ciphertext(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Returns the ephemeral public key used during encryption. - * @returns {Curve25519PublicKey} - */ - ephemeralKey() { - const ret = wasm.pkmessage_ephemeralKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * Constructs a `PkMessage` from a base64-encoded representation. - * @param {Base64EncodedPkMessage} message - * @returns {PkMessage} - */ - static fromBase64(message) { - _assertClass(message, Base64EncodedPkMessage); - const ret = wasm.pkmessage_fromBase64(message.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return PkMessage.__wrap(ret[0]); - } - /** - * Constructs a `PkMessage` from its parts: ciphertext, MAC, and ephemeral - * key. - * @param {Uint8Array} ciphertext - * @param {Uint8Array} mac - * @param {Curve25519PublicKey} ephemeral_key - * @returns {PkMessage} - */ - static fromParts(ciphertext, mac, ephemeral_key) { - const ptr0 = passArray8ToWasm0(ciphertext, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passArray8ToWasm0(mac, wasm.__wbindgen_malloc); - const len1 = WASM_VECTOR_LEN; - _assertClass(ephemeral_key, Curve25519PublicKey); - const ret = wasm.pkmessage_fromParts(ptr0, len0, ptr1, len1, ephemeral_key.__wbg_ptr); - return PkMessage.__wrap(ret); - } - /** - * Returns the raw message authentication code (MAC) as a `Uint8Array`. - * @returns {Uint8Array} - */ - mac() { - const ret = wasm.pkmessage_mac(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Converts the `PkMessage` into a base64-encoded representation. - * @returns {Base64EncodedPkMessage} - */ - toBase64() { - const ret = wasm.pkmessage_toBase64(this.__wbg_ptr); - return Base64EncodedPkMessage.__wrap(ret); - } -} -exports.PkMessage = PkMessage; -if (Symbol.dispose) PkMessage.prototype[Symbol.dispose] = PkMessage.prototype.free; - -/** - * Represents a to-device event sent in the clear. - */ -class PlainTextToDeviceEvent { - static __wrap(ptr) { - const obj = Object.create(PlainTextToDeviceEvent.prototype); - obj.__wbg_ptr = ptr; - PlainTextToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PlainTextToDeviceEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_plaintexttodeviceevent_free(ptr, 0); - } - /** - * The to-device message, containing `type`, `sender` and `content` fields, - * encoded as JSON. - * @returns {string} - */ - get rawEvent() { - const ret = wasm.__wbg_get_plaintexttodeviceevent_rawEvent(this.__wbg_ptr); - return ret; - } - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.PlainText} for this type. - * @returns {ProcessedToDeviceEventType} - */ - get type() { - const ret = wasm.plaintexttodeviceevent_type(this.__wbg_ptr); - return ret; - } -} -exports.PlainTextToDeviceEvent = PlainTextToDeviceEvent; -if (Symbol.dispose) PlainTextToDeviceEvent.prototype[Symbol.dispose] = PlainTextToDeviceEvent.prototype.free; - -/** - * The type of a {@link ProcessedToDeviceEvent}. - * @enum {0 | 1 | 2 | 3} - */ -const ProcessedToDeviceEventType = exports.ProcessedToDeviceEventType = Object.freeze({ - /** - * A successfully-decrypted encrypted to-device message. - */ - Decrypted: 0, - "0": "Decrypted", - /** - * An encrypted to-device message which could not be decrypted. - */ - UnableToDecrypt: 1, - "1": "UnableToDecrypt", - /** - * An unencrypted to-device message (sent in clear). - */ - PlainText: 2, - "2": "PlainText", - /** - * An invalid to-device message that was ignored because it is missing some - * required information to be processed (like no event `type` for - * example) - */ - Invalid: 3, - "3": "Invalid" -}); - -/** - * A request that will upload a dehydrated device to the server. - */ -class PutDehydratedDeviceRequest { - static __wrap(ptr) { - const obj = Object.create(PutDehydratedDeviceRequest.prototype); - obj.__wbg_ptr = ptr; - PutDehydratedDeviceRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PutDehydratedDeviceRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_putdehydrateddevicerequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `rooms`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_putdehydrateddevicerequest_body(this.__wbg_ptr); - return ret; - } - /** - * Create a new `PutDehydratedDeviceRequest` - * @param {string} body - */ - constructor(body) { - const ret = wasm.putdehydrateddevicerequest_new(body); - this.__wbg_ptr = ret; - PutDehydratedDeviceRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -exports.PutDehydratedDeviceRequest = PutDehydratedDeviceRequest; -if (Symbol.dispose) PutDehydratedDeviceRequest.prototype[Symbol.dispose] = PutDehydratedDeviceRequest.prototype.free; - -/** - * QR code based verification. - */ -class Qr { - static __wrap(ptr) { - const obj = Object.create(Qr.prototype); - obj.__wbg_ptr = ptr; - QrFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qr_free(ptr, 0); - } - /** - * Cancel the verification flow. - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - * @returns {OutgoingVerificationRequest | undefined} - */ - cancel() { - const ret = wasm.qr_cancel(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get info about the cancellation if the verification flow has - * been cancelled. - * @returns {CancelInfo | undefined} - */ - cancelInfo() { - const ret = wasm.qr_cancelInfo(this.__wbg_ptr); - return ret === 0 ? undefined : CancelInfo.__wrap(ret); - } - /** - * Cancel the verification. - * - * This cancels the verification with given code (e.g. `m.user`). - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - * @param {string} code - * @returns {OutgoingVerificationRequest | undefined} - */ - cancelWithCode(code) { - const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.qr_cancelWithCode(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Confirm that the other side has scanned our QR code. - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already confirmed. - * @returns {OutgoingVerificationRequest | undefined} - */ - confirmScanning() { - const ret = wasm.qr_confirmScanning(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get the unique ID that identifies this QR verification flow, - * be either a to-device request ID or a room event ID. - * @returns {string} - */ - get flowId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.qr_flowId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Has the scanning of the QR code been confirmed by us? - * @returns {boolean} - */ - hasBeenConfirmed() { - const ret = wasm.qr_hasBeenConfirmed(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the QR verification been scanned by the other side. - * - * When the verification object is in this state it’s required - * that the user confirms that the other side has scanned the QR - * code. - * @returns {boolean} - */ - hasBeenScanned() { - const ret = wasm.qr_hasBeenScanned(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the verification flow been cancelled? - * @returns {boolean} - */ - isCancelled() { - const ret = wasm.qr_isCancelled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the verification flow completed? - * @returns {boolean} - */ - isDone() { - const ret = wasm.qr_isDone(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this a verification that is verifying one of our own devices? - * @returns {boolean} - */ - isSelfVerification() { - const ret = wasm.qr_isSelfVerification(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the device ID of the other side. - * @returns {DeviceId} - */ - get otherDeviceId() { - const ret = wasm.qr_otherDeviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Get the user id of the other user that is participating in - * this verification flow. - * @returns {UserId} - */ - get otherUserId() { - const ret = wasm.qr_otherUserId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Notify the other side that we have successfully scanned the QR - * code and that the QR verification flow can start. - * - * This will return some OutgoingContent if the object is in the - * correct state to start the verification flow, otherwise None. - * @returns {OutgoingVerificationRequest | undefined} - */ - reciprocate() { - const ret = wasm.qr_reciprocate(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Have we successfully scanned the QR code and are able to send - * a reciprocation event? - * @returns {boolean} - */ - reciprocated() { - const ret = wasm.qr_reciprocated(this.__wbg_ptr); - return ret !== 0; - } - /** - * Register a callback which will be called whenever there is an update to - * the request - * - * The `callback` is called with no parameters. - * @param {() => Promise} callback - */ - registerChangesCallback(callback) { - wasm.qr_registerChangesCallback(this.__wbg_ptr, callback); - } - /** - * Get the room id if the verification is happening inside a - * room. - * @returns {RoomId | undefined} - */ - get roomId() { - const ret = wasm.qr_roomId(this.__wbg_ptr); - return ret === 0 ? undefined : RoomId.__wrap(ret); - } - /** - * Get the current state of this request. - * - * Returns a `QrState`. - * @returns {QrState} - */ - state() { - const ret = wasm.qr_state(this.__wbg_ptr); - return ret; - } - /** - * Generate a the raw bytes that should be encoded as a QR code - * is representing this verification flow. - * - * The `to_qr_code` method can be used to instead output a QrCode - * object that can be rendered. - * @returns {Uint8ClampedArray} - */ - toBytes() { - const ret = wasm.qr_toBytes(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Generate a QR code object that is representing this - * verification flow. - * - * The QrCode can then be rendered as an image or as an unicode - * string. - * - * The `to_bytes` method can be used to instead output the raw - * bytes that should be encoded as a QR code. - * - * Returns a `QrCode`. - * @returns {QrCode} - */ - toQrCode() { - const ret = wasm.qr_toQrCode(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCode.__wrap(ret[0]); - } - /** - * Get our own user ID. - * @returns {UserId} - */ - get userId() { - const ret = wasm.qr_userId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Did we initiate the verification request? - * @returns {boolean} - */ - weStarted() { - const ret = wasm.qr_weStarted(this.__wbg_ptr); - return ret !== 0; - } -} -exports.Qr = Qr; -if (Symbol.dispose) Qr.prototype[Symbol.dispose] = Qr.prototype.free; - -/** - * A QR code. - */ -class QrCode { - static __wrap(ptr) { - const obj = Object.create(QrCode.prototype); - obj.__wbg_ptr = ptr; - QrCodeFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrCodeFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qrcode_free(ptr, 0); - } - /** - * Render the QR code into a `Uint8ClampedArray` where 1 represents a - * dark pixel and 0 a white pixel. - * @returns {Uint8ClampedArray} - */ - renderIntoBuffer() { - const ret = wasm.qrcode_renderIntoBuffer(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } -} -exports.QrCode = QrCode; -if (Symbol.dispose) QrCode.prototype[Symbol.dispose] = QrCode.prototype.free; - -/** - * Data for the QR code login mechanism. - * - * The {@link QrCodeData} can be serialized and encoded as a QR code or it can - * be decoded from a QR code. - * - * This type supports both the format originally speicied in - * {link https://github.com/matrix-org/matrix-spec-proposals/pull/4108 MSC4108} as well as the - * updated format found in - * {link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388}. - */ -class QrCodeData { - static __wrap(ptr) { - const obj = Object.create(QrCodeData.prototype); - obj.__wbg_ptr = ptr; - QrCodeDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrCodeDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qrcodedata_free(ptr, 0); - } - /** - * Attempt to decode a base64 encoded string into a {@link QrCodeData} - * object. - * @param {string} data - * @returns {QrCodeData} - */ - static fromBase64(data) { - const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.qrcodedata_fromBase64(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCodeData.__wrap(ret[0]); - } - /** - * Attempt to decode a slice of bytes into a {@link QrCodeData} object. - * - * The slice of bytes would generally be returned by a QR code decoder. - * @param {Uint8Array} bytes - * @returns {QrCodeData} - */ - static fromBytes(bytes) { - const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.qrcodedata_fromBytes(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCodeData.__wrap(ret[0]); - } - /** - * Get the intent-specific data embedded in the {@link QrCodeData}. - * @returns {QrCodeIntentData} - */ - get intentData() { - const ret = wasm.qrcodedata_intentData(this.__wbg_ptr); - return QrCodeIntentData.__wrap(ret); - } - /** - * Get the mode of this {@link QrCodeData} instance. - * @returns {QrCodeIntent} - */ - get mode() { - const ret = wasm.qrcodedata_mode(this.__wbg_ptr); - return ret; - } - /** - * Create new {@link QrCodeData} from a given public key, a rendezvous URL - * and, optionally, a server name for the homeserver. - * - * If a server name is given, then the {@link QrCodeData} mode will be - * {@link QrCodeIntent.Reciprocate}, i.e. the QR code will contain data for - * the existing device to display the QR code. - * - * If no server name is given, the {@link QrCodeData} mode will be - * {@link QrCodeIntent.Login}, i.e. the QR code will contain data for the - * new device to display the QR code. - * @param {Curve25519PublicKey} public_key - * @param {string} rendezvous_url - * @param {string | null} [server_name] - */ - constructor(public_key, rendezvous_url, server_name) { - _assertClass(public_key, Curve25519PublicKey); - var ptr0 = public_key.__destroy_into_raw(); - const ptr1 = passStringToWasm0(rendezvous_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - var ptr2 = isLikeNone(server_name) ? 0 : passStringToWasm0(server_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len2 = WASM_VECTOR_LEN; - const ret = wasm.qrcodedata_new(ptr0, ptr1, len1, ptr2, len2); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - QrCodeDataFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Create new {@link QrCodeData} from a given public key, a rendezvous ID - * and, a base homeserver URL. - * - * This creates a QR code which conforms to - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388} of the data - * format for QR login. - * @param {Curve25519PublicKey} public_key - * @param {string} rendezvous_id - * @param {string} base_url - * @param {QrCodeIntent} intent - * @returns {QrCodeData} - */ - static newMsc4388(public_key, rendezvous_id, base_url, intent) { - _assertClass(public_key, Curve25519PublicKey); - var ptr0 = public_key.__destroy_into_raw(); - const ptr1 = passStringToWasm0(rendezvous_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ptr2 = passStringToWasm0(base_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len2 = WASM_VECTOR_LEN; - const ret = wasm.qrcodedata_newMsc4388(ptr0, ptr1, len1, ptr2, len2, intent); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCodeData.__wrap(ret[0]); - } - /** - * Get the Curve25519 public key embedded in the {@link QrCodeData}. - * - * This Curve25519 public key should be used to establish an - * [HPKE](https://www.rfc-editor.org/rfc/rfc9180.html) - * (Hybrid Public Key Encryption) channel with the other device. - * @returns {Curve25519PublicKey} - */ - get publicKey() { - const ret = wasm.qrcodedata_publicKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * Get the URL of the rendezvous server which will be used to exchange - * messages between the two devices. - * @returns {string | undefined} - */ - get rendezvousUrl() { - const ret = wasm.qrcodedata_rendezvousUrl(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Get the server name of the homeserver which the new device will be - * logged in to. - * - * This will be only available if the existing device has generated the QR - * code and the new device is the one scanning the QR code. - * @returns {string | undefined} - */ - get serverName() { - const ret = wasm.qrcodedata_serverName(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Encode the {@link QrCodeData} into a string using base64. - * - * This format can be used for debugging purposes and the - * [`QrcodeData::from_base64()`] method can be used to parse the string - * again. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.qrcodedata_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Encode the {@link QrCodeData} into a list of bytes. - * - * The list of bytes can be used by a QR code generator to create an image - * containing a QR code. - * @returns {Uint8Array} - */ - toBytes() { - const ret = wasm.qrcodedata_toBytes(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } -} -exports.QrCodeData = QrCodeData; -if (Symbol.dispose) QrCodeData.prototype[Symbol.dispose] = QrCodeData.prototype.free; - -/** - * The mode of the QR code login. - * - * The QR code login mechanism supports both, the new device, as well as the - * existing device to display the QR code. - * - * The different modes have an explicit one-byte identifier which gets added to - * the QR code data. - * @enum {0 | 1} - */ -const QrCodeIntent = exports.QrCodeIntent = Object.freeze({ - /** - * The new device is displaying the QR code. - */ - Login: 0, - "0": "Login", - /** - * The existing device is displaying the QR code. - */ - Reciprocate: 1, - "1": "Reciprocate" -}); - -/** - * Intent and MSC-specific data class for the QR code login support. - */ -class QrCodeIntentData { - static __wrap(ptr) { - const obj = Object.create(QrCodeIntentData.prototype); - obj.__wbg_ptr = ptr; - QrCodeIntentDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrCodeIntentDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qrcodeintentdata_free(ptr, 0); - } - /** - * The MSC4108-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4108. Otherwise it will contain - * MSC4388-specific intent data. - * @returns {Msc4108IntentData | undefined} - */ - get msc4108() { - const ret = wasm.__wbg_get_qrcodeintentdata_msc4108(this.__wbg_ptr); - return ret === 0 ? undefined : Msc4108IntentData.__wrap(ret); - } - /** - * The MSC4833-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4388. Otherwise it will contain - * MSC4108-specific intent data. - * @returns {Msc4388IntentData | undefined} - */ - get msc4388() { - const ret = wasm.__wbg_get_qrcodeintentdata_msc4388(this.__wbg_ptr); - return ret === 0 ? undefined : Msc4388IntentData.__wrap(ret); - } - /** - * The MSC4108-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4108. Otherwise it will contain - * MSC4388-specific intent data. - * @param {Msc4108IntentData | null} [arg0] - */ - set msc4108(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, Msc4108IntentData); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_qrcodeintentdata_msc4108(this.__wbg_ptr, ptr0); - } - /** - * The MSC4833-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4388. Otherwise it will contain - * MSC4108-specific intent data. - * @param {Msc4388IntentData | null} [arg0] - */ - set msc4388(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, Msc4388IntentData); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_qrcodeintentdata_msc4388(this.__wbg_ptr, ptr0); - } -} -exports.QrCodeIntentData = QrCodeIntentData; -if (Symbol.dispose) QrCodeIntentData.prototype[Symbol.dispose] = QrCodeIntentData.prototype.free; - -/** - * A scanned QR code. - */ -class QrCodeScan { - static __wrap(ptr) { - const obj = Object.create(QrCodeScan.prototype); - obj.__wbg_ptr = ptr; - QrCodeScanFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrCodeScanFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qrcodescan_free(ptr, 0); - } - /** - * Parse the decoded payload of a QR code in byte slice form. - * - * This method is useful if you would like to do your own custom QR code - * decoding. - * @param {Uint8ClampedArray} buffer - * @returns {QrCodeScan} - */ - static fromBytes(buffer) { - const ret = wasm.qrcodescan_fromBytes(buffer); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCodeScan.__wrap(ret[0]); - } -} -exports.QrCodeScan = QrCodeScan; -if (Symbol.dispose) QrCodeScan.prototype[Symbol.dispose] = QrCodeScan.prototype.free; - -/** - * List of `Qr` states - * @enum {0 | 1 | 2 | 3 | 4 | 5} - */ -const QrState = exports.QrState = Object.freeze({ - /** - * We have received the other device's details (from the - * `m.key.verification.request` or `m.key.verification.ready`) and - * established the shared secret, so can - * display the QR code. - */ - Created: 0, - "0": "Created", - /** - * The other side has scanned our QR code and sent an - * `m.key.verification.start` message with `method: m.reciprocate.v1` with - * matching shared secret. - */ - Scanned: 1, - "1": "Scanned", - /** - * Our user has confirmed that the other device scanned successfully. We - * have sent an `m.key.verification.done`. - */ - Confirmed: 2, - "2": "Confirmed", - /** - * We have scanned the other side's QR code and are able to send a - * `m.key.verification.start` message with `method: m.reciprocate.v1`. - * - * Call `Qr::reciprocate` to build the start message. - * - * Note that, despite the name of this state, we have not necessarily - * yet sent the `m.reciprocate.v1` message. - */ - Reciprocated: 3, - "3": "Reciprocated", - /** - * Verification complete: we have received an `m.key.verification.done` - * from the other side. - */ - Done: 4, - "4": "Done", - /** - * Verification cancelled or failed. - */ - Cancelled: 5, - "5": "Cancelled" -}); - -/** - * A rehydrated device - * - * This device can receive to-device events to get room keys that were send to - * it. - */ -class RehydratedDevice { - static __wrap(ptr) { - const obj = Object.create(RehydratedDevice.prototype); - obj.__wbg_ptr = ptr; - RehydratedDeviceFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RehydratedDeviceFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_rehydrateddevice_free(ptr, 0); - } - /** - * Receive the to-device events that sent to the dehydrated device - * - * The rehydrated device will decrypt the events and pass the room keys - * into the `OlmMachine`. - * - * # Arguments - * - * * `to_device_events` is a JSON-encoded result of the `events` array from - * `/dehydrated_device/{device_id}/events`. - * * `decryption_settings`: Optionally, the settings to use when decrypting - * to-device events. If not set, to-device events will be decrypted with - * a {@link TrustRequirement} of `Untrusted`. - * - * Returns an array of `RoomKeyInfo`, indicating the room keys that were - * received. - * @param {string} to_device_events - * @param {DecryptionSettings | null} [decryption_settings] - * @returns {Promise} - */ - receiveEvents(to_device_events, decryption_settings) { - const ptr0 = passStringToWasm0(to_device_events, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - let ptr1 = 0; - if (!isLikeNone(decryption_settings)) { - _assertClass(decryption_settings, DecryptionSettings); - ptr1 = decryption_settings.__destroy_into_raw(); - } - const ret = wasm.rehydrateddevice_receiveEvents(this.__wbg_ptr, ptr0, len0, ptr1); - return ret; - } -} -exports.RehydratedDevice = RehydratedDevice; -if (Symbol.dispose) RehydratedDevice.prototype[Symbol.dispose] = RehydratedDevice.prototype.free; - -/** - * Represent the type of a request. - * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6} - */ -const RequestType = exports.RequestType = Object.freeze({ - /** - * Represents a `KeysUploadRequest`. - */ - KeysUpload: 0, - "0": "KeysUpload", - /** - * Represents a `KeysQueryRequest`. - */ - KeysQuery: 1, - "1": "KeysQuery", - /** - * Represents a `KeysClaimRequest`. - */ - KeysClaim: 2, - "2": "KeysClaim", - /** - * Represents a `ToDeviceRequest`. - */ - ToDevice: 3, - "3": "ToDevice", - /** - * Represents a `SignatureUploadRequest`. - */ - SignatureUpload: 4, - "4": "SignatureUpload", - /** - * Represents a `RoomMessageRequest`. - */ - RoomMessage: 5, - "5": "RoomMessage", - /** - * Represents a `KeysBackupRequest`. - */ - KeysBackup: 6, - "6": "KeysBackup" -}); - -/** - * A Matrix [room ID]. - * - * [room ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids - */ -class RoomId { - static __wrap(ptr) { - const obj = Object.create(RoomId.prototype); - obj.__wbg_ptr = ptr; - RoomIdFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - static __unwrap(jsValue) { - if (!(jsValue instanceof RoomId)) { - return 0; - } - return jsValue.__destroy_into_raw(); - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomid_free(ptr, 0); - } - /** - * Parse/validate and create a new `RoomId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.roomid_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - RoomIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Return the room ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.roomid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.RoomId = RoomId; -if (Symbol.dispose) RoomId.prototype[Symbol.dispose] = RoomId.prototype.free; - -/** - * Struct holding the number of room keys we have. - */ -class RoomKeyCounts { - static __wrap(ptr) { - const obj = Object.create(RoomKeyCounts.prototype); - obj.__wbg_ptr = ptr; - RoomKeyCountsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomKeyCountsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomkeycounts_free(ptr, 0); - } - /** - * The number of backed up room keys. - * @returns {number} - */ - get backedUp() { - const ret = wasm.__wbg_get_roomkeycounts_backedUp(this.__wbg_ptr); - return ret; - } - /** - * The total number of room keys. - * @returns {number} - */ - get total() { - const ret = wasm.__wbg_get_roomkeycounts_total(this.__wbg_ptr); - return ret; - } - /** - * The number of backed up room keys. - * @param {number} arg0 - */ - set backedUp(arg0) { - wasm.__wbg_set_roomkeycounts_backedUp(this.__wbg_ptr, arg0); - } - /** - * The total number of room keys. - * @param {number} arg0 - */ - set total(arg0) { - wasm.__wbg_set_roomkeycounts_total(this.__wbg_ptr, arg0); - } -} -exports.RoomKeyCounts = RoomKeyCounts; -if (Symbol.dispose) RoomKeyCounts.prototype[Symbol.dispose] = RoomKeyCounts.prototype.free; - -/** - * The result of a call to {@link OlmMachine.importExportedRoomKeys} or - * {@link OlmMachine.importBackedUpRoomKeys}. - */ -class RoomKeyImportResult { - static __wrap(ptr) { - const obj = Object.create(RoomKeyImportResult.prototype); - obj.__wbg_ptr = ptr; - RoomKeyImportResultFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomKeyImportResultFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomkeyimportresult_free(ptr, 0); - } - /** - * The number of room keys that were imported. - * @returns {number} - */ - get importedCount() { - const ret = wasm.__wbg_get_roomkeyimportresult_importedCount(this.__wbg_ptr); - return ret >>> 0; - } - /** - * The total number of room keys that were found in the export. - * @returns {number} - */ - get totalCount() { - const ret = wasm.__wbg_get_roomkeyimportresult_totalCount(this.__wbg_ptr); - return ret >>> 0; - } - /** - * The keys that were imported. - * - * A Map from room id to a Map of the sender key to a Set of session ids. - * - * Typescript type: `Map>`. - * @returns {Map>>} - */ - keys() { - const ret = wasm.roomkeyimportresult_keys(this.__wbg_ptr); - return ret; - } -} -exports.RoomKeyImportResult = RoomKeyImportResult; -if (Symbol.dispose) RoomKeyImportResult.prototype[Symbol.dispose] = RoomKeyImportResult.prototype.free; - -/** - * Information on a room key that has been received or imported. - */ -class RoomKeyInfo { - static __wrap(ptr) { - const obj = Object.create(RoomKeyInfo.prototype); - obj.__wbg_ptr = ptr; - RoomKeyInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomKeyInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomkeyinfo_free(ptr, 0); - } - /** - * The {@link EncryptionAlgorithm} that this key is used for. Will be one - * of the `m.megolm.*` algorithms. - * @returns {EncryptionAlgorithm} - */ - get algorithm() { - const ret = wasm.roomkeyinfo_algorithm(this.__wbg_ptr); - return ret; - } - /** - * The room where the key is used. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.roomkeyinfo_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } - /** - * The Curve25519 key of the device which initiated the session originally. - * @returns {Curve25519PublicKey} - */ - get senderKey() { - const ret = wasm.roomkeyinfo_senderKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * The ID of the session that the key is for. - * @returns {string} - */ - get sessionId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.roomkeyinfo_sessionId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.RoomKeyInfo = RoomKeyInfo; -if (Symbol.dispose) RoomKeyInfo.prototype[Symbol.dispose] = RoomKeyInfo.prototype.free; - -/** - * Information on a received `m.room_key.withheld` event. - */ -class RoomKeyWithheldInfo { - static __wrap(ptr) { - const obj = Object.create(RoomKeyWithheldInfo.prototype); - obj.__wbg_ptr = ptr; - RoomKeyWithheldInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomKeyWithheldInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomkeywithheldinfo_free(ptr, 0); - } - /** - * The encryption algorithm of the session that is being withheld. - * - * This may be from an `m.room_key.withheld` event, or from a shared room - * key bundle under MSC4268. - * @returns {EncryptionAlgorithm} - */ - get algorithm() { - const ret = wasm.roomkeywithheldinfo_algorithm(this.__wbg_ptr); - return ret; - } - /** - * The room ID of the session that is being withheld. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.roomkeywithheldinfo_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } - /** - * The User ID of the sender of the withheld information. - * - * This may be the sender of an `m.room_key.withheld` event, or the sender - * of a shared room key bundle under MSC4268. - * @returns {UserId} - */ - get sender() { - const ret = wasm.roomkeywithheldinfo_sender(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The session ID of the session that is being withheld. - * @returns {string} - */ - get sessionId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.roomkeywithheldinfo_sessionId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The `code` indicating why the key was withheld, such as `m.unverified`. - * - * This may be from an `m.room_key.withheld` event (such as - * `m.unverified`), or from a shared room key bundle under MSC4268. - * @returns {string} - */ - get withheldCode() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.roomkeywithheldinfo_withheldCode(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.RoomKeyWithheldInfo = RoomKeyWithheldInfo; -if (Symbol.dispose) RoomKeyWithheldInfo.prototype[Symbol.dispose] = RoomKeyWithheldInfo.prototype.free; - -/** - * A customized owned request type for sending out room messages - * ([specification]). - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3roomsroomidsendeventtypetxnid - */ -class RoomMessageRequest { - static __wrap(ptr) { - const obj = Object.create(RoomMessageRequest.prototype); - obj.__wbg_ptr = ptr; - RoomMessageRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomMessageRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roommessagerequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the message's content. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_roommessagerequest_body(this.__wbg_ptr); - return ret; - } - /** - * A string representing the type of event to be sent. - * @returns {string} - */ - get event_type() { - const ret = wasm.__wbg_get_roommessagerequest_event_type(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_roommessagerequest_id(this.__wbg_ptr); - return ret; - } - /** - * A string representing the room to send the event to. - * @returns {string} - */ - get room_id() { - const ret = wasm.__wbg_get_roommessagerequest_room_id(this.__wbg_ptr); - return ret; - } - /** - * A string representing the transaction ID for this event. - * - * Clients should generate an ID unique across requests with the same - * access token; it will be used by the server to ensure idempotency of - * requests. - * @returns {string} - */ - get txn_id() { - const ret = wasm.__wbg_get_roommessagerequest_txn_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `RoomMessageRequest`. - * @param {string} id - * @param {string} room_id - * @param {string} txn_id - * @param {string} event_type - * @param {string} content - */ - constructor(id, room_id, txn_id, event_type, content) { - const ret = wasm.roommessagerequest_new(id, room_id, txn_id, event_type, content); - this.__wbg_ptr = ret; - RoomMessageRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.roommessagerequest_type(this.__wbg_ptr); - return ret; - } -} -exports.RoomMessageRequest = RoomMessageRequest; -if (Symbol.dispose) RoomMessageRequest.prototype[Symbol.dispose] = RoomMessageRequest.prototype.free; - -/** - * Information on a room which is waiting for a key bundle to arrive. - */ -class RoomPendingKeyBundleDetails { - static __wrap(ptr) { - const obj = Object.create(RoomPendingKeyBundleDetails.prototype); - obj.__wbg_ptr = ptr; - RoomPendingKeyBundleDetailsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomPendingKeyBundleDetailsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roompendingkeybundledetails_free(ptr, 0); - } - /** - * The time that the invite was accepted. - * @returns {number} - */ - get inviteAcceptedAtMillis() { - const ret = wasm.roompendingkeybundledetails_inviteAcceptedAtMillis(this.__wbg_ptr); - return ret; - } - /** - * The ID of the user that invited us - * @returns {UserId} - */ - get inviterId() { - const ret = wasm.roompendingkeybundledetails_inviterId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The room that is waiting for a key bundle. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.roompendingkeybundledetails_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } -} -exports.RoomPendingKeyBundleDetails = RoomPendingKeyBundleDetails; -if (Symbol.dispose) RoomPendingKeyBundleDetails.prototype[Symbol.dispose] = RoomPendingKeyBundleDetails.prototype.free; - -/** - * Room encryption settings which are modified by state events or user options - */ -class RoomSettings { - static __wrap(ptr) { - const obj = Object.create(RoomSettings.prototype); - obj.__wbg_ptr = ptr; - RoomSettingsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomSettingsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomsettings_free(ptr, 0); - } - /** - * The encryption algorithm that should be used in the room. - * - * Should be one of the members of {@link EncryptionAlgorithm}. - * @returns {EncryptionAlgorithm} - */ - get algorithm() { - const ret = wasm.__wbg_get_roomsettings_algorithm(this.__wbg_ptr); - return ret; - } - /** - * Whether state event encryption is enabled. - * @returns {boolean} - */ - get encryptStateEvents() { - const ret = wasm.__wbg_get_roomsettings_encryptStateEvents(this.__wbg_ptr); - return ret !== 0; - } - /** - * Whether untrusted devices should receive room keys. If this is `false`, - * they will be excluded from the conversation. - * @returns {boolean} - */ - get onlyAllowTrustedDevices() { - const ret = wasm.__wbg_get_roomsettings_onlyAllowTrustedDevices(this.__wbg_ptr); - return ret !== 0; - } - /** - * The maximum number of messages an encryption session should be used for, - * before it is rotated. - * @returns {number | undefined} - */ - get sessionRotationPeriodMessages() { - const ret = wasm.__wbg_get_roomsettings_sessionRotationPeriodMessages(this.__wbg_ptr); - return ret[0] === 0 ? undefined : ret[1]; - } - /** - * The maximum time, in milliseconds, that an encryption session should be - * used for, before it is rotated. - * @returns {number | undefined} - */ - get sessionRotationPeriodMs() { - const ret = wasm.__wbg_get_roomsettings_sessionRotationPeriodMs(this.__wbg_ptr); - return ret[0] === 0 ? undefined : ret[1]; - } - /** - * Create a new `RoomSettings` with default values. - */ - constructor() { - const ret = wasm.roomsettings_new(); - this.__wbg_ptr = ret; - RoomSettingsFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The encryption algorithm that should be used in the room. - * - * Should be one of the members of {@link EncryptionAlgorithm}. - * @param {EncryptionAlgorithm} arg0 - */ - set algorithm(arg0) { - wasm.__wbg_set_roomsettings_algorithm(this.__wbg_ptr, arg0); - } - /** - * Whether state event encryption is enabled. - * @param {boolean} arg0 - */ - set encryptStateEvents(arg0) { - wasm.__wbg_set_roomsettings_encryptStateEvents(this.__wbg_ptr, arg0); - } - /** - * Whether untrusted devices should receive room keys. If this is `false`, - * they will be excluded from the conversation. - * @param {boolean} arg0 - */ - set onlyAllowTrustedDevices(arg0) { - wasm.__wbg_set_roomsettings_onlyAllowTrustedDevices(this.__wbg_ptr, arg0); - } - /** - * The maximum number of messages an encryption session should be used for, - * before it is rotated. - * @param {number | null} [arg0] - */ - set sessionRotationPeriodMessages(arg0) { - wasm.__wbg_set_roomsettings_sessionRotationPeriodMessages(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0); - } - /** - * The maximum time, in milliseconds, that an encryption session should be - * used for, before it is rotated. - * @param {number | null} [arg0] - */ - set sessionRotationPeriodMs(arg0) { - wasm.__wbg_set_roomsettings_sessionRotationPeriodMs(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0); - } -} -exports.RoomSettings = RoomSettings; -if (Symbol.dispose) RoomSettings.prototype[Symbol.dispose] = RoomSettings.prototype.free; - -/** - * Short Authentication String (SAS) verification. - */ -class Sas { - static __wrap(ptr) { - const obj = Object.create(Sas.prototype); - obj.__wbg_ptr = ptr; - SasFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SasFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_sas_free(ptr, 0); - } - /** - * Accept the SAS verification. - * - * This does nothing (and returns `undefined`) if the verification was - * already accepted, otherwise it returns an `OutgoingVerificationRequest` - * that needs to be sent out. - * @returns {OutgoingVerificationRequest | undefined} - */ - accept() { - const ret = wasm.sas_accept(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Are we in a state where we can show the short auth string? - * @returns {boolean} - */ - canBePresented() { - const ret = wasm.sas_canBePresented(this.__wbg_ptr); - return ret !== 0; - } - /** - * Cancel the verification. - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - * @returns {OutgoingVerificationRequest | undefined} - */ - cancel() { - const ret = wasm.sas_cancel(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get info about the cancellation if the verification flow has - * been cancelled. - * @returns {CancelInfo | undefined} - */ - cancelInfo() { - const ret = wasm.sas_cancelInfo(this.__wbg_ptr); - return ret === 0 ? undefined : CancelInfo.__wrap(ret); - } - /** - * Cancel the verification. - * - * This cancels the verification with given code (e.g. `m.user`). - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - * @param {string} code - * @returns {OutgoingVerificationRequest | undefined} - */ - cancelWithCode(code) { - const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.sas_cancelWithCode(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Confirm the SAS verification. - * - * This confirms that the short auth strings match on both sides. - * - * Does nothing if we’re not in a state where we can confirm the - * short auth string. - * - * Returns a `Promise` for an array of `OutgoingVerificationRequest`s. - * @returns {Promise} - */ - confirm() { - const ret = wasm.sas_confirm(this.__wbg_ptr); - return ret; - } - /** - * Get the decimal version of the short auth string. - * - * Returns None if we can’t yet present the short auth string, - * otherwise a tuple containing three 4-digit integers that - * represent the short auth string. - * @returns {Uint16Array | undefined} - */ - decimals() { - const ret = wasm.sas_decimals(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getArrayU16FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 2, 2); - } - return v1; - } - /** - * Get our own device ID. - * @returns {DeviceId} - */ - get deviceId() { - const ret = wasm.sas_deviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Get the emoji version of the short auth string. - * - * Returns `undefined` if we can't yet present the short auth string, - * otherwise an array of seven `Emoji` objects. - * @returns {Emoji[] | undefined} - */ - emoji() { - const ret = wasm.sas_emoji(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - } - return v1; - } - /** - * Get the index of the emoji representing the short auth string - * - * Returns `undefined` if we can’t yet present the short auth - * string, otherwise seven `u8` numbers in the range from 0 to 63 - * inclusive which can be converted to an emoji using [the - * relevant specification - * entry](https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji). - * @returns {Uint8Array | undefined} - */ - emojiIndex() { - const ret = wasm.sas_emojiIndex(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Get the unique ID that identifies this SAS verification flow, - * be either a to-device request ID or a room event ID. - * @returns {string} - */ - get flowId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.sas_flowId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Has the verification been accepted by both parties? - * @returns {boolean} - */ - hasBeenAccepted() { - const ret = wasm.sas_hasBeenAccepted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Have we confirmed that the short auth string matches? - * @returns {boolean} - */ - haveWeConfirmed() { - const ret = wasm.sas_haveWeConfirmed(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the SAS flow cancelled? - * @returns {boolean} - */ - isCancelled() { - const ret = wasm.sas_isCancelled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the SAS flow done? - * @returns {boolean} - */ - isDone() { - const ret = wasm.sas_isDone(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this a verification that is verifying one of our own - * devices? - * @returns {boolean} - */ - isSelfVerification() { - const ret = wasm.sas_isSelfVerification(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the device ID of the other side. - * @returns {DeviceId} - */ - get otherDeviceId() { - const ret = wasm.sas_otherDeviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Get the user id of the other side. - * @returns {UserId} - */ - get otherUserId() { - const ret = wasm.sas_otherUserId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Register a callback which will be called whenever there is an update to - * the request. - * - * The `callback` is called with no parameters. - * @param {() => Promise} callback - */ - registerChangesCallback(callback) { - wasm.sas_registerChangesCallback(this.__wbg_ptr, callback); - } - /** - * Get the room ID if the verification is happening inside a - * room. - * @returns {RoomId | undefined} - */ - get roomId() { - const ret = wasm.sas_roomId(this.__wbg_ptr); - return ret === 0 ? undefined : RoomId.__wrap(ret); - } - /** - * Did this verification flow start from a verification request? - * @returns {boolean} - */ - startedFromRequest() { - const ret = wasm.sas_startedFromRequest(this.__wbg_ptr); - return ret !== 0; - } - /** - * Does this verification flow support displaying emoji for the - * short authentication string? - * @returns {boolean} - */ - supportsEmoji() { - const ret = wasm.sas_supportsEmoji(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the SAS verification flow timed out? - * @returns {boolean} - */ - timedOut() { - const ret = wasm.sas_timedOut(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get our own user ID. - * @returns {UserId} - */ - get userId() { - const ret = wasm.sas_userId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * True if we initiated the verification flow (ie, we sent the - * `m.key.verification.request`). - * @returns {boolean} - */ - weStarted() { - const ret = wasm.sas_weStarted(this.__wbg_ptr); - return ret !== 0; - } -} -exports.Sas = Sas; -if (Symbol.dispose) Sas.prototype[Symbol.dispose] = Sas.prototype.free; - -/** - * Struct containing the bundle of secrets to fully activate a new device for - * end-to-end encryption. - */ -class SecretsBundle { - static __wrap(ptr) { - const obj = Object.create(SecretsBundle.prototype); - obj.__wbg_ptr = ptr; - SecretsBundleFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SecretsBundleFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_secretsbundle_free(ptr, 0); - } - /** - * The bundle of the backup decryption key and backup version if any. - * @returns {BackupSecretsBundle | undefined} - */ - get backupBundle() { - const ret = wasm.secretsbundle_backupBundle(this.__wbg_ptr); - return ret === 0 ? undefined : BackupSecretsBundle.__wrap(ret); - } - /** - * Deserialize the [`SecretsBundle`] from a JSON object. - * @param {unknown} json - * @returns {SecretsBundle} - */ - static from_json(json) { - const ret = wasm.secretsbundle_from_json(json); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return SecretsBundle.__wrap(ret[0]); - } - /** - * The seed of the master key encoded as unpadded base64. - * @returns {string} - */ - get masterKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.secretsbundle_masterKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The seed of the self signing key encoded as unpadded base64. - * @returns {string} - */ - get selfSigningKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.secretsbundle_selfSigningKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Serialize the [`SecretsBundle`] to a JSON object. - * @returns {unknown} - */ - to_json() { - const ret = wasm.secretsbundle_to_json(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * The seed of the user signing key encoded as unpadded base64. - * @returns {string} - */ - get userSigningKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.secretsbundle_userSigningKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.SecretsBundle = SecretsBundle; -if (Symbol.dispose) SecretsBundle.prototype[Symbol.dispose] = SecretsBundle.prototype.free; - -/** - * A Matrix-spec compliant [server name]. - * - * It consists of a host and an optional port (separated by a colon if - * present). - * - * [server name]: https://spec.matrix.org/v1.2/appendices/#server-name - */ -class ServerName { - static __wrap(ptr) { - const obj = Object.create(ServerName.prototype); - obj.__wbg_ptr = ptr; - ServerNameFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ServerNameFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_servername_free(ptr, 0); - } - /** - * Returns the host of the server name. - * - * That is: Return the part of the server before `:` or the - * full server name if there is no port. - * @returns {string} - */ - get host() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.servername_host(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Returns true if and only if the server name is an IPv4 or IPv6 - * address. - * @returns {boolean} - */ - isIpLiteral() { - const ret = wasm.servername_isIpLiteral(this.__wbg_ptr); - return ret !== 0; - } - /** - * Parse/validate and create a new `ServerName`. - * @param {string} name - */ - constructor(name) { - const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.servername_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - ServerNameFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Returns the port of the server name if any. - * @returns {number | undefined} - */ - get port() { - const ret = wasm.servername_port(this.__wbg_ptr); - return ret === 0xFFFFFF ? undefined : ret; - } -} -exports.ServerName = ServerName; -if (Symbol.dispose) ServerName.prototype[Symbol.dispose] = ServerName.prototype.free; - -/** - * Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`] - * for more info. - * @enum {0 | 1 | 2} - */ -const ShieldColor = exports.ShieldColor = Object.freeze({ - /** - * Important warning - */ - Red: 0, - "0": "Red", - /** - * Low warning - */ - Grey: 1, - "1": "Grey", - /** - * No warning - */ - None: 2, - "2": "None" -}); - -/** - * Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`] - * for more info. - */ -class ShieldState { - static __wrap(ptr) { - const obj = Object.create(ShieldState.prototype); - obj.__wbg_ptr = ptr; - ShieldStateFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ShieldStateFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_shieldstate_free(ptr, 0); - } - /** - * A machine-readable representation of the authenticity for a - * `ShieldState`. - * @returns {ShieldStateCode | undefined} - */ - get code() { - const ret = wasm.__wbg_get_shieldstate_code(this.__wbg_ptr); - return ret === 6 ? undefined : ret; - } - /** - * The shield color - * @returns {ShieldColor} - */ - get color() { - const ret = wasm.__wbg_get_shieldstate_color(this.__wbg_ptr); - return ret; - } - /** - * A machine-readable representation of the authenticity for a - * `ShieldState`. - * @param {ShieldStateCode | null} [arg0] - */ - set code(arg0) { - wasm.__wbg_set_shieldstate_code(this.__wbg_ptr, isLikeNone(arg0) ? 6 : arg0); - } - /** - * The shield color - * @param {ShieldColor} arg0 - */ - set color(arg0) { - wasm.__wbg_set_shieldstate_color(this.__wbg_ptr, arg0); - } - /** - * Error message that can be displayed as a tooltip - * @returns {string | undefined} - */ - get message() { - const ret = wasm.shieldstate_message(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } -} -exports.ShieldState = ShieldState; -if (Symbol.dispose) ShieldState.prototype[Symbol.dispose] = ShieldState.prototype.free; - -/** - * A machine-readable representation of the authenticity for a `ShieldState`. - * @enum {0 | 1 | 2 | 3 | 4 | 5} - */ -const ShieldStateCode = exports.ShieldStateCode = Object.freeze({ - /** - * Not enough information available to check the authenticity. - */ - AuthenticityNotGuaranteed: 0, - "0": "AuthenticityNotGuaranteed", - /** - * The sending device isn't yet known by the Client. - */ - UnknownDevice: 1, - "1": "UnknownDevice", - /** - * The sending device hasn't been verified by the sender. - */ - UnsignedDevice: 2, - "2": "UnsignedDevice", - /** - * The sender hasn't been verified by the Client's user. - */ - UnverifiedIdentity: 3, - "3": "UnverifiedIdentity", - /** - * The sender was previously verified but changed their identity. - */ - VerificationViolation: 4, - "4": "VerificationViolation", - /** - * The `sender` field on the event does not match the owner of the device - * that established the Megolm session. - */ - MismatchedSender: 5, - "5": "MismatchedSender" -}); - -/** - * Represents a potentially decoded signature (but not a validated - * one). - */ -class Signature { - static __wrap(ptr) { - const obj = Object.create(Signature.prototype); - obj.__wbg_ptr = ptr; - SignatureFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SignatureFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_signature_free(ptr, 0); - } - /** - * Get the Ed25519 signature, if this is one. - * @returns {Ed25519Signature | undefined} - */ - get ed25519() { - const ret = wasm.signature_ed25519(this.__wbg_ptr); - return ret === 0 ? undefined : Ed25519Signature.__wrap(ret); - } - /** - * Convert the signature to a base64 encoded string. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.signature_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.Signature = Signature; -if (Symbol.dispose) Signature.prototype[Symbol.dispose] = Signature.prototype.free; - -/** - * The result of a signature check. - * @enum {0 | 1 | 2 | 3} - */ -const SignatureState = exports.SignatureState = Object.freeze({ - /** - * The signature is missing. - */ - Missing: 0, - "0": "Missing", - /** - * The signature is invalid. - */ - Invalid: 1, - "1": "Invalid", - /** - * The signature is valid but the device or user identity that created the - * signature is not trusted. - */ - ValidButNotTrusted: 2, - "2": "ValidButNotTrusted", - /** - * The signature is valid and the device or user identity that created the - * signature is trusted. - */ - ValidAndTrusted: 3, - "3": "ValidAndTrusted" -}); - -/** - * Data for a request to the `/keys/signatures/upload` API endpoint - * ([specification]). - * - * Publishes cross-signing signatures for the user. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keyssignaturesupload - */ -class SignatureUploadRequest { - static __wrap(ptr) { - const obj = Object.create(SignatureUploadRequest.prototype); - obj.__wbg_ptr = ptr; - SignatureUploadRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SignatureUploadRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_signatureuploadrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the payload of the request - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_signatureuploadrequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * Some signature upload will have to an `id` field, some won't. - * They have one when they are created automatically during an interactive - * verification, otherwise they don't. - * @returns {string | undefined} - */ - get id() { - const ret = wasm.__wbg_get_signatureuploadrequest_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `SignatureUploadRequest`. - * @param {string} id - * @param {string} signed_keys - */ - constructor(id, signed_keys) { - const ret = wasm.signatureuploadrequest_new(id, signed_keys); - this.__wbg_ptr = ret; - SignatureUploadRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.signatureuploadrequest_type(this.__wbg_ptr); - return ret; - } -} -exports.SignatureUploadRequest = SignatureUploadRequest; -if (Symbol.dispose) SignatureUploadRequest.prototype[Symbol.dispose] = SignatureUploadRequest.prototype.free; - -/** - * The result of a signature verification of a signed JSON object. - */ -class SignatureVerification { - static __wrap(ptr) { - const obj = Object.create(SignatureVerification.prototype); - obj.__wbg_ptr = ptr; - SignatureVerificationFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SignatureVerificationFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_signatureverification_free(ptr, 0); - } - /** - * Give the backup signature state from the current device. - * See SignatureState for values - * @returns {SignatureState} - */ - get deviceState() { - const ret = wasm.signatureverification_deviceState(this.__wbg_ptr); - return ret; - } - /** - * Is the result considered to be trusted? - * - * This tells us if the result has a valid signature from any of the - * following: - * - * * Our own device - * * Our own user identity, provided the identity is trusted as well - * * Any of our own devices, provided the device is trusted as well - * @returns {boolean} - */ - trusted() { - const ret = wasm.signatureverification_trusted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Give the backup signature state from the current user identity. - * See SignatureState for values - * @returns {SignatureState} - */ - get userState() { - const ret = wasm.signatureverification_userState(this.__wbg_ptr); - return ret; - } -} -exports.SignatureVerification = SignatureVerification; -if (Symbol.dispose) SignatureVerification.prototype[Symbol.dispose] = SignatureVerification.prototype.free; - -/** - * A collection of `Signature`. - */ -class Signatures { - static __wrap(ptr) { - const obj = Object.create(Signatures.prototype); - obj.__wbg_ptr = ptr; - SignaturesFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SignaturesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_signatures_free(ptr, 0); - } - /** - * Add the given signature from the given signer and the given key ID to - * the collection. - * @param {UserId} signer - * @param {DeviceKeyId} key_id - * @param {Ed25519Signature} signature - * @returns {MaybeSignature | undefined} - */ - addSignature(signer, key_id, signature) { - _assertClass(signer, UserId); - _assertClass(key_id, DeviceKeyId); - _assertClass(signature, Ed25519Signature); - const ret = wasm.signatures_addSignature(this.__wbg_ptr, signer.__wbg_ptr, key_id.__wbg_ptr, signature.__wbg_ptr); - return ret === 0 ? undefined : MaybeSignature.__wrap(ret); - } - /** - * Get the json with all signatures - * @returns {string} - */ - asJSON() { - const ret = wasm.signatures_asJSON(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Remove all the signatures we currently hold. - */ - clear() { - wasm.signatures_clear(this.__wbg_ptr); - } - /** - * How many signatures do we currently hold. - * @returns {number} - */ - get count() { - const ret = wasm.signatures_count(this.__wbg_ptr); - return ret >>> 0; - } - /** - * Get the map of signatures that belong to the given user. - * @param {UserId} signer - * @returns {Map | undefined} - */ - get(signer) { - _assertClass(signer, UserId); - const ret = wasm.signatures_get(this.__wbg_ptr, signer.__wbg_ptr); - return ret; - } - /** - * Try to find an Ed25519 signature from the given signer with - * the given key ID. - * @param {UserId} signer - * @param {DeviceKeyId} key_id - * @returns {Ed25519Signature | undefined} - */ - getSignature(signer, key_id) { - _assertClass(signer, UserId); - _assertClass(key_id, DeviceKeyId); - const ret = wasm.signatures_getSignature(this.__wbg_ptr, signer.__wbg_ptr, key_id.__wbg_ptr); - return ret === 0 ? undefined : Ed25519Signature.__wrap(ret); - } - /** - * Do we hold any signatures or is our collection completely - * empty. - * @returns {boolean} - */ - isEmpty() { - const ret = wasm.signatures_isEmpty(this.__wbg_ptr); - return ret !== 0; - } - /** - * Creates a new, empty, signatures collection. - */ - constructor() { - const ret = wasm.signatures_new(); - this.__wbg_ptr = ret; - SignaturesFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -exports.Signatures = Signatures; -if (Symbol.dispose) Signatures.prototype[Symbol.dispose] = Signatures.prototype.free; - -/** - * A struct containing an open connection to a CryptoStore. - * - * Opening the CryptoStore can take some time, due to the PBKDF calculation - * involved, so if multiple operations are being done on the same store, it is - * more efficient to open it once. - */ -class StoreHandle { - static __wrap(ptr) { - const obj = Object.create(StoreHandle.prototype); - obj.__wbg_ptr = ptr; - StoreHandleFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - StoreHandleFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_storehandle_free(ptr, 0); - } - /** - * Open a crypto store. - * - * The created store will be based on IndexedDB if a `store_name` is - * provided; otherwise it will be based on a memory store and once the - * objects is dropped, the keys will be lost. - * - * # Arguments - * - * * `store_name` - The name that should be used to open the IndexedDB - * based database. If this isn't provided, a memory-only store will be - * used. *Note* the memory-only store will lose your E2EE keys when the - * `StoreHandle` gets dropped. - * - * * `store_passphrase` - The passphrase that should be used to encrypt the - * store, for IndexedDB-based stores - * - * * `logger` - An optional logger instance to use for writing log messages - * during the open operation. An instance of `JsLogger`. - * @param {string | null | undefined} store_name - * @param {string | null | undefined} store_passphrase - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static open(store_name, store_passphrase, logger) { - var ptr0 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(store_passphrase) ? 0 : passStringToWasm0(store_passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - const ret = wasm.storehandle_open(ptr0, len0, ptr1, len1, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - return ret; - } - /** - * Open a crypto store based on IndexedDB, using the given key for - * encryption. - * - * # Arguments - * - * * `store_name` - The name that should be used to open the IndexedDB - * based database. - * - * * `store_key` - The key that should be used to encrypt the store, for - * IndexedDB-based stores. Must be a 32-byte array. - * - * * `logger` - An optional logger instance to use for writing log messages - * during the open operation. An instance of `JsLogger`. - * @param {string} store_name - * @param {Uint8Array} store_key - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static openWithKey(store_name, store_key, logger) { - const ptr0 = passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passArray8ToWasm0(store_key, wasm.__wbindgen_malloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.storehandle_openWithKey(ptr0, len0, ptr1, len1, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - return ret; - } -} -exports.StoreHandle = StoreHandle; -if (Symbol.dispose) StoreHandle.prototype[Symbol.dispose] = StoreHandle.prototype.free; - -/** - * Information on a stored room key bundle data event. - */ -class StoredRoomKeyBundleData { - static __wrap(ptr) { - const obj = Object.create(StoredRoomKeyBundleData.prototype); - obj.__wbg_ptr = ptr; - StoredRoomKeyBundleDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - StoredRoomKeyBundleDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_storedroomkeybundledata_free(ptr, 0); - } - /** - * The JSON-encoded encryption info for the key bundle. - * - * @deprecated Should not be used within applications. - * @returns {string} - */ - get encryptionInfo() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.storedroomkeybundledata_encryptionInfo(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The room that these keys are for. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.storedroomkeybundledata_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } - /** - * The user that sent us this data. - * @returns {UserId} - */ - get senderUser() { - const ret = wasm.storedroomkeybundledata_senderUser(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The location of the bundle. - * @returns {string} - */ - get url() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.storedroomkeybundledata_url(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.StoredRoomKeyBundleData = StoredRoomKeyBundleData; -if (Symbol.dispose) StoredRoomKeyBundleData.prototype[Symbol.dispose] = StoredRoomKeyBundleData.prototype.free; - -/** - * Struct containing information on how a to-device message was decrypted. - */ -class ToDeviceEncryptionInfo { - static __wrap(ptr) { - const obj = Object.create(ToDeviceEncryptionInfo.prototype); - obj.__wbg_ptr = ptr; - ToDeviceEncryptionInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ToDeviceEncryptionInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_todeviceencryptioninfo_free(ptr, 0); - } - /** - * The base64-encoded public Curve25519 key of the device that encrypted - * the message. - * @returns {string} - */ - get senderCurve25519Key() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_todeviceencryptioninfo_senderCurve25519Key(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The device ID of the device that sent us the to-device message. - * - * Could be `undefined` in the case where the to-device message sender - * checks are delayed. There is no delay for to-device messages other - * than `m.room_key`, so this will always be truthy for other - * message types (the decryption would fail if the sender device keys - * cannot be found). - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - * @returns {DeviceId | undefined} - */ - get senderDevice() { - const ret = wasm.__wbg_get_todeviceencryptioninfo_senderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - * @returns {UserId} - */ - get sender() { - const ret = wasm.__wbg_get_todeviceencryptioninfo_sender(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The base64-encoded public Curve25519 key of the device that encrypted - * the message. - * @param {string} arg0 - */ - set senderCurve25519Key(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_todeviceencryptioninfo_senderCurve25519Key(this.__wbg_ptr, ptr0, len0); - } - /** - * The device ID of the device that sent us the to-device message. - * - * Could be `undefined` in the case where the to-device message sender - * checks are delayed. There is no delay for to-device messages other - * than `m.room_key`, so this will always be truthy for other - * message types (the decryption would fail if the sender device keys - * cannot be found). - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - * @param {DeviceId | null} [arg0] - */ - set senderDevice(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, DeviceId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_todeviceencryptioninfo_senderDevice(this.__wbg_ptr, ptr0); - } - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - * @param {UserId} arg0 - */ - set sender(arg0) { - _assertClass(arg0, UserId); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_todeviceencryptioninfo_sender(this.__wbg_ptr, ptr0); - } - /** - * Returns whether the sender device is in a verified state. - * This reflects the state at the time of decryption. - * @returns {boolean} - */ - isSenderVerified() { - const ret = wasm.todeviceencryptioninfo_isSenderVerified(this.__wbg_ptr); - return ret !== 0; - } -} -exports.ToDeviceEncryptionInfo = ToDeviceEncryptionInfo; -if (Symbol.dispose) ToDeviceEncryptionInfo.prototype[Symbol.dispose] = ToDeviceEncryptionInfo.prototype.free; - -/** - * Data for a request to the `/sendToDevice` API endpoint - * ([specification]). - * - * Send an event to a single device or to a group of devices. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3sendtodeviceeventtypetxnid - */ -class ToDeviceRequest { - static __wrap(ptr) { - const obj = Object.create(ToDeviceRequest.prototype); - obj.__wbg_ptr = ptr; - ToDeviceRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ToDeviceRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_todevicerequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `messages`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_todevicerequest_body(this.__wbg_ptr); - return ret; - } - /** - * A string representing the type of event being sent to each devices. - * @returns {string} - */ - get event_type() { - const ret = wasm.__wbg_get_todevicerequest_event_type(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * For to-device request this would be the same value as `txn_id`. It is - * exposed also as `id` so that the js bindings are consistent with the - * other request types by using this field to mark as sent. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_todevicerequest_id(this.__wbg_ptr); - return ret; - } - /** - * A string representing a request identifier unique to the access token - * used to send the request. - * @returns {string} - */ - get txn_id() { - const ret = wasm.__wbg_get_todevicerequest_txn_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `ToDeviceRequest`. - * @param {string} id - * @param {string} event_type - * @param {string} txn_id - * @param {string} body - */ - constructor(id, event_type, txn_id, body) { - const ret = wasm.todevicerequest_new(id, event_type, txn_id, body); - this.__wbg_ptr = ret; - ToDeviceRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.todevicerequest_type(this.__wbg_ptr); - return ret; - } -} -exports.ToDeviceRequest = ToDeviceRequest; -if (Symbol.dispose) ToDeviceRequest.prototype[Symbol.dispose] = ToDeviceRequest.prototype.free; - -/** - * Metadata about a to-device event that could not be decrypted. - */ -class ToDeviceUnableToDecryptInfo { - static __wrap(ptr) { - const obj = Object.create(ToDeviceUnableToDecryptInfo.prototype); - obj.__wbg_ptr = ptr; - ToDeviceUnableToDecryptInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ToDeviceUnableToDecryptInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_todeviceunabletodecryptinfo_free(ptr, 0); - } - /** - * Reason code for the decryption failure - * @returns {ToDeviceUnableToDecryptReason} - */ - get reason() { - const ret = wasm.__wbg_get_todeviceunabletodecryptinfo_reason(this.__wbg_ptr); - return ret; - } - /** - * Reason code for the decryption failure - * @param {ToDeviceUnableToDecryptReason} arg0 - */ - set reason(arg0) { - wasm.__wbg_set_todeviceunabletodecryptinfo_reason(this.__wbg_ptr, arg0); - } -} -exports.ToDeviceUnableToDecryptInfo = ToDeviceUnableToDecryptInfo; -if (Symbol.dispose) ToDeviceUnableToDecryptInfo.prototype[Symbol.dispose] = ToDeviceUnableToDecryptInfo.prototype.free; - -/** - * Reason code for a to-device decryption failure - * @enum {0 | 1 | 2 | 3} - */ -const ToDeviceUnableToDecryptReason = exports.ToDeviceUnableToDecryptReason = Object.freeze({ - /** - * An error occurred while encrypting the event. This covers all - * `OlmError` types. - */ - DecryptionFailure: 0, - "0": "DecryptionFailure", - /** - * We refused to decrypt the message because the sender's device is not - * verified, or more generally, the sender's identity did not match the - * trust requirement we were asked to provide. - */ - UnverifiedSenderDevice: 1, - "1": "UnverifiedSenderDevice", - /** - * We have no `OlmMachine`. This should not happen unless we forget to set - * things up by calling `OlmMachine::activate()`. - */ - NoOlmMachine: 2, - "2": "NoOlmMachine", - /** - * The Matrix SDK was compiled without encryption support. - */ - EncryptionIsDisabled: 3, - "3": "EncryptionIsDisabled" -}); - -/** - * Type to install and to manipulate the tracing layer. - */ -class Tracing { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - TracingFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_tracing_free(ptr, 0); - } - /** - * Check whether the `tracing` feature has been enabled. - * - * @deprecated: `tracing` is now always enabled. - * @returns {boolean} - */ - static isAvailable() { - const ret = wasm.tracing_isAvailable(); - return ret !== 0; - } - /** - * Install the tracing layer. - * @param {LoggerLevel} min_level - */ - constructor(min_level) { - const ret = wasm.tracing_new(min_level); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - TracingFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Re-define the minimum logger level. - * @param {LoggerLevel} min_level - */ - set minLevel(min_level) { - const ret = wasm.tracing_set_minLevel(this.__wbg_ptr, min_level); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } - } - /** - * Turn the logger off, i.e. it no longer emits logs. - */ - turnOff() { - const ret = wasm.tracing_turnOff(this.__wbg_ptr); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } - } - /** - * Turn the logger on, i.e. it emits logs again if it was turned - * off. - */ - turnOn() { - const ret = wasm.tracing_turnOn(this.__wbg_ptr); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } - } -} -exports.Tracing = Tracing; -if (Symbol.dispose) Tracing.prototype[Symbol.dispose] = Tracing.prototype.free; - -/** - * The trust level required to decrypt an event - * @enum {0 | 1 | 2} - */ -const TrustRequirement = exports.TrustRequirement = Object.freeze({ - /** - * Decrypt events from everyone regardless of trust - */ - Untrusted: 0, - "0": "Untrusted", - /** - * Only decrypt events from cross-signed or legacy devices - */ - CrossSignedOrLegacy: 1, - "1": "CrossSignedOrLegacy", - /** - * Only decrypt events from cross-signed devices - */ - CrossSigned: 2, - "2": "CrossSigned" -}); - -/** - * Represents an encrypted to-device event that could not be decrypted. - */ -class UTDToDeviceEvent { - static __wrap(ptr) { - const obj = Object.create(UTDToDeviceEvent.prototype); - obj.__wbg_ptr = ptr; - UTDToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - UTDToDeviceEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_utdtodeviceevent_free(ptr, 0); - } - /** - * The original message (of type `m.room.encrypted`) that failed to be - * decrypted, encoded as JSON. - * @returns {string} - */ - get rawEvent() { - const ret = wasm.__wbg_get_utdtodeviceevent_rawEvent(this.__wbg_ptr); - return ret; - } - /** - * Information on the reason we failed to decrypt - * @returns {ToDeviceUnableToDecryptInfo} - */ - get utdInfo() { - const ret = wasm.__wbg_get_utdtodeviceevent_utdInfo(this.__wbg_ptr); - return ToDeviceUnableToDecryptInfo.__wrap(ret); - } - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.UnableToDecrypt} for this type. - * @returns {ProcessedToDeviceEventType} - */ - get type() { - const ret = wasm.utdtodeviceevent_type(this.__wbg_ptr); - return ret; - } -} -exports.UTDToDeviceEvent = UTDToDeviceEvent; -if (Symbol.dispose) UTDToDeviceEvent.prototype[Symbol.dispose] = UTDToDeviceEvent.prototype.free; - -/** - * Other Requests * - * Request that will publish a cross signing identity. - * - * This uploads the public cross signing key triplet. - */ -class UploadSigningKeysRequest { - static __wrap(ptr) { - const obj = Object.create(UploadSigningKeysRequest.prototype); - obj.__wbg_ptr = ptr; - UploadSigningKeysRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - UploadSigningKeysRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_uploadsigningkeysrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `master_key`, - * `self_signing_key`, `user_signing_key`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_uploadsigningkeysrequest_body(this.__wbg_ptr); - return ret; - } - /** - * Create a new `UploadSigningKeysRequest`. - * @param {string} body - */ - constructor(body) { - const ret = wasm.uploadsigningkeysrequest_new(body); - this.__wbg_ptr = ret; - UploadSigningKeysRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -exports.UploadSigningKeysRequest = UploadSigningKeysRequest; -if (Symbol.dispose) UploadSigningKeysRequest.prototype[Symbol.dispose] = UploadSigningKeysRequest.prototype.free; - -/** - * A read only view over all devices belonging to a user. - */ -class UserDevices { - static __wrap(ptr) { - const obj = Object.create(UserDevices.prototype); - obj.__wbg_ptr = ptr; - UserDevicesFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - UserDevicesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_userdevices_free(ptr, 0); - } - /** - * Iterator over all the devices of the user devices. - * @returns {Device[]} - */ - devices() { - const ret = wasm.userdevices_devices(this.__wbg_ptr); - return ret; - } - /** - * Get the specific device with the given device ID. - * @param {DeviceId} device_id - * @returns {Device | undefined} - */ - get(device_id) { - _assertClass(device_id, DeviceId); - const ret = wasm.userdevices_get(this.__wbg_ptr, device_id.__wbg_ptr); - return ret === 0 ? undefined : Device.__wrap(ret); - } - /** - * Returns true if there is at least one devices of this user - * that is considered to be verified, false otherwise. - * - * This won't consider your own device as verified, as your own - * device is always implicitly verified. - * @returns {boolean} - */ - isAnyVerified() { - const ret = wasm.userdevices_isAnyVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Array over all the device IDs of the user devices. - * @returns {DeviceId[]} - */ - keys() { - const ret = wasm.userdevices_keys(this.__wbg_ptr); - return ret; - } -} -exports.UserDevices = UserDevices; -if (Symbol.dispose) UserDevices.prototype[Symbol.dispose] = UserDevices.prototype.free; - -/** - * A Matrix [user ID]. - * - * [user ID]: https://spec.matrix.org/v1.2/appendices/#user-identifiers - */ -class UserId { - static __wrap(ptr) { - const obj = Object.create(UserId.prototype); - obj.__wbg_ptr = ptr; - UserIdFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - static __unwrap(jsValue) { - if (!(jsValue instanceof UserId)) { - return 0; - } - return jsValue.__destroy_into_raw(); - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - UserIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_userid_free(ptr, 0); - } - /** - * Create a clone of this `UserId`. - * - * This can be useful when passing a `UserId` instance to methods such as - * {@link OlmMachine.updateTrackedUsers} which destroy the instance. - * @returns {UserId} - */ - clone() { - const ret = wasm.userid_clone(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Whether this user ID is a historical one. - * - * A historical user ID is one that doesn't conform to the latest - * specification of the user ID grammar but is still accepted - * because it was previously allowed. - * @returns {boolean} - */ - isHistorical() { - const ret = wasm.userid_isHistorical(this.__wbg_ptr); - return ret !== 0; - } - /** - * Returns the user's localpart. - * @returns {string} - */ - get localpart() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.userid_localpart(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Parse/validate and create a new `UserId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.userid_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - UserIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Returns the server name of the user ID. - * @returns {ServerName} - */ - get serverName() { - const ret = wasm.userid_serverName(this.__wbg_ptr); - return ServerName.__wrap(ret); - } - /** - * Return the user ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.userid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -exports.UserId = UserId; -if (Symbol.dispose) UserId.prototype[Symbol.dispose] = UserId.prototype.free; - -/** - * List of available verification methods. - * @enum {0 | 1 | 2 | 3} - */ -const VerificationMethod = exports.VerificationMethod = Object.freeze({ - /** - * The `m.sas.v1` verification method. - * - * SAS means Short Authentication String. - */ - SasV1: 0, - "0": "SasV1", - /** - * The `m.qr_code.scan.v1` verification method. - */ - QrCodeScanV1: 1, - "1": "QrCodeScanV1", - /** - * The `m.qr_code.show.v1` verification method. - */ - QrCodeShowV1: 2, - "2": "QrCodeShowV1", - /** - * The `m.reciprocate.v1` verification method. - */ - ReciprocateV1: 3, - "3": "ReciprocateV1" -}); - -/** - * An object controlling key verification requests. - * - * Interactive verification flows usually start with a verification - * request, this object lets you send and reply to such a - * verification request. - * - * After the initial handshake the verification flow transitions into - * one of the verification methods. - */ -class VerificationRequest { - static __wrap(ptr) { - const obj = Object.create(VerificationRequest.prototype); - obj.__wbg_ptr = ptr; - VerificationRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - VerificationRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_verificationrequest_free(ptr, 0); - } - /** - * Accept the verification request. - * - * This method will accept the request and signal that it - * supports the `m.sas.v1`, the `m.qr_code.show.v1`, and - * `m.reciprocate.v1` method. - * - * `m.qr_code.show.v1` will only be signaled if the `qrcode` - * feature is enabled. This feature is disabled by default. If - * it's enabled and QR code scanning should be supported or QR - * code showing shouldn't be supported the `accept_with_methods` - * method should be used instead. - * - * It returns either a `ToDeviceRequest`, a `RoomMessageRequest` - * or `undefined`. - * @returns {OutgoingVerificationRequest | undefined} - */ - accept() { - const ret = wasm.verificationrequest_accept(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Accept the verification request signaling that our client - * supports the given verification methods. - * - * `methods` represents the methods that we should advertise as - * supported by us. - * - * It returns either a `ToDeviceRequest`, a `RoomMessageRequest` - * or `undefined`. - * @param {VerificationMethod[]} methods - * @returns {OutgoingVerificationRequest | undefined} - */ - acceptWithMethods(methods) { - const ptr0 = passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.verificationrequest_acceptWithMethods(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Cancel the verification request. - * - * It returns either a `ToDeviceRequest`, a `RoomMessageRequest` - * or `undefined`. - * @returns {OutgoingVerificationRequest | undefined} - */ - cancel() { - const ret = wasm.verificationrequest_cancel(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get info about the cancellation if the verification request - * has been cancelled. - * @returns {CancelInfo | undefined} - */ - get cancelInfo() { - const ret = wasm.verificationrequest_cancelInfo(this.__wbg_ptr); - return ret === 0 ? undefined : CancelInfo.__wrap(ret); - } - /** - * Get the unique ID of this verification request. - * @returns {string} - */ - get flowId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.verificationrequest_flowId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Generate a QR code that can be used by another client to start - * a QR code based verification. - * - * Returns a `Qr` or `undefined`. - * @returns {Promise} - */ - generateQrCode() { - const ret = wasm.verificationrequest_generateQrCode(this.__wbg_ptr); - return ret; - } - /** - * If this request has transitioned into a concrete verification - * flow (and not yet been completed or cancelled), returns a `Verification` - * object. - * - * Returns: a `Sas`, a `Qr`, or `undefined`. - * @returns {Sas | Qr | undefined} - */ - getVerification() { - const ret = wasm.verificationrequest_getVerification(this.__wbg_ptr); - return ret; - } - /** - * Has the verification flow that was started with this request - * been cancelled? - * @returns {boolean} - */ - isCancelled() { - const ret = wasm.verificationrequest_isCancelled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the verification flow that was started with this request - * finished? - * @returns {boolean} - */ - isDone() { - const ret = wasm.verificationrequest_isDone(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the verification request been answered by another device? - * @returns {boolean} - */ - isPassive() { - const ret = wasm.verificationrequest_isPassive(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the verification request ready to start a verification flow? - * @returns {boolean} - */ - isReady() { - const ret = wasm.verificationrequest_isReady(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this a verification that is verifying one of our own - * devices? - * @returns {boolean} - */ - isSelfVerification() { - const ret = wasm.verificationrequest_isSelfVerification(this.__wbg_ptr); - return ret !== 0; - } - /** - * The ID of the other device that is participating in this - * verification. - * @returns {DeviceId | undefined} - */ - get otherDeviceId() { - const ret = wasm.verificationrequest_otherDeviceId(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The ID of the other user that is participating in this - * verification request. - * @returns {UserId} - */ - get otherUserId() { - const ret = wasm.verificationrequest_otherUserId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Get our own supported verification methods that we advertised. - * - * Will be present only we requested the verification or if we’re - * in the ready state. - * @returns {VerificationMethod[] | undefined} - */ - get ourSupportedMethods() { - const ret = wasm.verificationrequest_ourSupportedMethods(this.__wbg_ptr); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - let v1; - if (ret[0] !== 0) { - v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - } - return v1; - } - /** - * Our own user id. - * @returns {UserId} - */ - get ownUserId() { - const ret = wasm.verificationrequest_ownUserId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Get the current phase of this request. - * - * Returns a `VerificationRequestPhase`. - * @returns {VerificationRequestPhase} - */ - phase() { - const ret = wasm.verificationrequest_phase(this.__wbg_ptr); - return ret; - } - /** - * Register a callback which will be called whenever there is an update to - * the request. - * - * The `callback` is called with no parameters. - * @param {() => Promise} callback - */ - registerChangesCallback(callback) { - wasm.verificationrequest_registerChangesCallback(this.__wbg_ptr, callback); - } - /** - * Create an event content that can be sent as a room event to - * request verification from the other side. This should be used - * only for verifications of other users and it should be sent to - * a room we consider to be a DM with the other user. - * @param {UserId} own_user_id - * @param {DeviceId} own_device_id - * @param {UserId} other_user_id - * @param {VerificationMethod[]} [methods] - * @returns {string} - */ - static request(own_user_id, own_device_id, other_user_id, methods) { - let deferred3_0; - let deferred3_1; - try { - _assertClass(own_user_id, UserId); - _assertClass(own_device_id, DeviceId); - _assertClass(other_user_id, UserId); - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.verificationrequest_request(own_user_id.__wbg_ptr, own_device_id.__wbg_ptr, other_user_id.__wbg_ptr, ptr0, len0); - var ptr2 = ret[0]; - var len2 = ret[1]; - if (ret[3]) { - ptr2 = 0; - len2 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred3_0 = ptr2; - deferred3_1 = len2; - return getStringFromWasm0(ptr2, len2); - } finally { - wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); - } - } - /** - * Get the room ID if the verification is happening inside a - * room. - * @returns {RoomId | undefined} - */ - get roomId() { - const ret = wasm.verificationrequest_roomId(this.__wbg_ptr); - return ret === 0 ? undefined : RoomId.__wrap(ret); - } - /** - * Start a QR code verification by providing a scanned QR code - * for this verification flow. - * @param {QrCodeScan} data - * @returns {Promise} - */ - scanQrCode(data) { - _assertClass(data, QrCodeScan); - const ret = wasm.verificationrequest_scanQrCode(this.__wbg_ptr, data.__wbg_ptr); - return ret; - } - /** - * Transition from this verification request into a SAS verification flow. - * - * Returns `Promise<[Sas, OutgoingVerificationRequest] | undefined>` - * @returns {Promise<[Sas, OutgoingVerificationRequest] | undefined>} - */ - startSas() { - const ret = wasm.verificationrequest_startSas(this.__wbg_ptr); - return ret; - } - /** - * Get the supported verification methods of the other side. - * - * Will be present only if the other side requested the - * verification or if we’re in the ready state. - * - * # Returns - * - * `undefined` if we do not yet know the supported methods; otherwise, an - * array of `VerificationMethod`s. - * @returns {VerificationMethod[] | undefined} - */ - get theirSupportedMethods() { - const ret = wasm.verificationrequest_theirSupportedMethods(this.__wbg_ptr); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - let v1; - if (ret[0] !== 0) { - v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - } - return v1; - } - /** - * The number of milliseconds remaining before this verification flow times - * out. - * - * Returns zero if the time has already passed. - * @returns {number} - */ - timeRemainingMillis() { - const ret = wasm.verificationrequest_timeRemainingMillis(this.__wbg_ptr); - return ret; - } - /** - * Has the verification flow timed out? - * @returns {boolean} - */ - timedOut() { - const ret = wasm.verificationrequest_timedOut(this.__wbg_ptr); - return ret !== 0; - } - /** - * Did we initiate the verification request? - * @returns {boolean} - */ - weStarted() { - const ret = wasm.verificationrequest_weStarted(this.__wbg_ptr); - return ret !== 0; - } -} -exports.VerificationRequest = VerificationRequest; -if (Symbol.dispose) VerificationRequest.prototype[Symbol.dispose] = VerificationRequest.prototype.free; - -/** - * List of VerificationRequestState phases - * @enum {0 | 1 | 2 | 3 | 4 | 5} - */ -const VerificationRequestPhase = exports.VerificationRequestPhase = Object.freeze({ - /** - * The verification request has been newly created by us. - */ - Created: 0, - "0": "Created", - /** - * The verification request was received from the other party. - */ - Requested: 1, - "1": "Requested", - /** - * The verification request is ready to start a verification flow. - */ - Ready: 2, - "2": "Ready", - /** - * The verification request has transitioned into a concrete verification - * flow. For example it transitioned into the emoji based SAS - * verification. - */ - Transitioned: 3, - "3": "Transitioned", - /** - * The verification flow that was started with this request has finished. - */ - Done: 4, - "4": "Done", - /** - * The verification process has been cancelled. - */ - Cancelled: 5, - "5": "Cancelled" -}); - -/** - * Object containing the versions of the Rust libraries we are using. - */ -class Versions { - static __wrap(ptr) { - const obj = Object.create(Versions.prototype); - obj.__wbg_ptr = ptr; - VersionsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - VersionsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_versions_free(ptr, 0); - } - /** - * The build-time output of the `git describe` command of the source tree - * of crate. - * @returns {string} - */ - get git_description() { - const ret = wasm.__wbg_get_versions_git_description(this.__wbg_ptr); - return ret; - } - /** - * The Git commit hash of the crate's source tree at build time. - * @returns {string} - */ - get git_sha() { - const ret = wasm.__wbg_get_versions_git_sha(this.__wbg_ptr); - return ret; - } - /** - * The version of the matrix-sdk-crypto crate. - * @returns {string} - */ - get matrix_sdk_crypto() { - const ret = wasm.__wbg_get_versions_matrix_sdk_crypto(this.__wbg_ptr); - return ret; - } - /** - * The version of the vodozemac crate. - * @returns {string} - */ - get vodozemac() { - const ret = wasm.__wbg_get_versions_vodozemac(this.__wbg_ptr); - return ret; - } -} -exports.Versions = Versions; -if (Symbol.dispose) Versions.prototype[Symbol.dispose] = Versions.prototype.free; - -/** - * Get the versions of the Rust libraries we are using. - * @returns {Versions} - */ -function getVersions() { - const ret = wasm.getVersions(); - return Versions.__wrap(ret); -} - -/** - * Run some stuff when the Wasm module is instantiated. - * - * Right now, it does the following: - * - * * Redirect Rust panics to JavaScript console. - */ -function start() { - wasm.start(); -} -function __wbg_Error_408e67f47ca7b58b(arg0, arg1) { - const ret = Error(getStringFromWasm0(arg0, arg1)); - return ret; -} -function __wbg_Number_3890faa6d3ff057d(arg0) { - const ret = Number(arg0); - return ret; -} -function __wbg_String_8564e559799eccda(arg0, arg1) { - const ret = String(arg1); - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -function __wbg_Window_241244be8c9776c1(arg0) { - const ret = arg0.Window; - return ret; -} -function __wbg_WorkerGlobalScope_8623a7c9030fbce2(arg0) { - const ret = arg0.WorkerGlobalScope; - return ret; -} -function __wbg___wbindgen_bigint_get_as_i64_c4ecf48528083721(arg0, arg1) { - const v = arg1; - const ret = typeof v === 'bigint' ? v : undefined; - getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); -} -function __wbg___wbindgen_boolean_get_c9c83ebd41b34df3(arg0) { - const v = arg0; - const ret = typeof v === 'boolean' ? v : undefined; - return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0; -} -function __wbg___wbindgen_debug_string_a57024b9c6e4a48b(arg0, arg1) { - const ret = debugString(arg1); - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -function __wbg___wbindgen_in_ac983077f137f2e6(arg0, arg1) { - const ret = arg0 in arg1; - return ret; -} -function __wbg___wbindgen_is_bigint_8ffbbef442139384(arg0) { - const ret = typeof arg0 === 'bigint'; - return ret; -} -function __wbg___wbindgen_is_function_5e4570eb24ffa122(arg0) { - const ret = typeof arg0 === 'function'; - return ret; -} -function __wbg___wbindgen_is_null_7d13f41e1a2d5140(arg0) { - const ret = arg0 === null; - return ret; -} -function __wbg___wbindgen_is_object_a2790eb24c211ea0(arg0) { - const val = arg0; - const ret = typeof val === 'object' && val !== null; - return ret; -} -function __wbg___wbindgen_is_string_e6f02f0ea5f20a32(arg0) { - const ret = typeof arg0 === 'string'; - return ret; -} -function __wbg___wbindgen_is_undefined_6cff064c44e0d823(arg0) { - const ret = arg0 === undefined; - return ret; -} -function __wbg___wbindgen_jsval_eq_0a18949a61670320(arg0, arg1) { - const ret = arg0 === arg1; - return ret; -} -function __wbg___wbindgen_jsval_loose_eq_acf2776254a8d832(arg0, arg1) { - const ret = arg0 == arg1; - return ret; -} -function __wbg___wbindgen_number_get_136b9679cab35cfb(arg0, arg1) { - const obj = arg1; - const ret = typeof obj === 'number' ? obj : undefined; - getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); -} -function __wbg___wbindgen_string_get_d154f1e671052120(arg0, arg1) { - const obj = arg1; - const ret = typeof obj === 'string' ? obj : undefined; - var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -function __wbg___wbindgen_throw_bb96b2010945f0bc(arg0, arg1) { - throw new Error(getStringFromWasm0(arg0, arg1)); -} -function __wbg__wbg_cb_unref_be22cc64ae6946a0(arg0) { - arg0._wbg_cb_unref(); -} -function __wbg_abort_32b500c4f9eab55d() { - return handleError(function (arg0) { - arg0.abort(); - }, arguments); -} -function __wbg_add_18ccb6b4b9da9cd9() { - return handleError(function (arg0, arg1, arg2) { - const ret = arg0.add(arg1, arg2); - return ret; - }, arguments); -} -function __wbg_add_2b945856b580d5ab(arg0, arg1) { - const ret = arg0.add(arg1); - return ret; -} -function __wbg_at_facbe5ae998bba3a(arg0, arg1) { - const ret = arg0.at(arg1); - return ret; -} -function __wbg_backupkeys_new(arg0) { - const ret = BackupKeys.__wrap(arg0); - return ret; -} -function __wbg_bound_e48dc2f851c77207() { - return handleError(function (arg0, arg1, arg2, arg3) { - const ret = IDBKeyRange.bound(arg0, arg1, arg2 !== 0, arg3 !== 0); - return ret; - }, arguments); -} -function __wbg_call_0f2a9af232c18fd2() { - return handleError(function (arg0, arg1, arg2, arg3) { - const ret = arg0.call(arg1, arg2, arg3); - return ret; - }, arguments); -} -function __wbg_call_1c5886ab9c57d1c7() { - return handleError(function (arg0, arg1) { - const ret = arg0.call(arg1); - return ret; - }, arguments); -} -function __wbg_call_35dba3c747ad7521() { - return handleError(function (arg0, arg1, arg2) { - const ret = arg0.call(arg1, arg2); - return ret; - }, arguments); -} -function __wbg_call_39f824e18d9d2414() { - return handleError(function (arg0, arg1, arg2, arg3, arg4) { - const ret = arg0.call(arg1, arg2, arg3, arg4); - return ret; - }, arguments); -} -function __wbg_clearTimeout_3629d6209dfcc46e(arg0) { - const ret = clearTimeout(arg0); - return ret; -} -function __wbg_clear_07a20ccd42c66921() { - return handleError(function (arg0) { - const ret = arg0.clear(); - return ret; - }, arguments); -} -function __wbg_close_0c1f30aeb9a080a7(arg0) { - arg0.close(); -} -function __wbg_code_5c2c992d8a3afb58(arg0) { - const ret = arg0.code; - return ret; -} -function __wbg_commit_ebd6d9676954e0d2() { - return handleError(function (arg0) { - arg0.commit(); - }, arguments); -} -function __wbg_continue_cbf53c725c127fe3() { - return handleError(function (arg0) { - arg0.continue(); - }, arguments); -} -function __wbg_count_be9295f0aceb7d6a() { - return handleError(function (arg0) { - const ret = arg0.count(); - return ret; - }, arguments); -} -function __wbg_count_c48ec9dcdccef1d5() { - return handleError(function (arg0) { - const ret = arg0.count(); - return ret; - }, arguments); -} -function __wbg_createIndex_9e2beb35a103225a() { - return handleError(function (arg0, arg1, arg2, arg3) { - const ret = arg0.createIndex(getStringFromWasm0(arg1, arg2), arg3); - return ret; - }, arguments); -} -function __wbg_createIndex_f8a090296c419c6c() { - return handleError(function (arg0, arg1, arg2, arg3, arg4) { - const ret = arg0.createIndex(getStringFromWasm0(arg1, arg2), arg3, arg4); - return ret; - }, arguments); -} -function __wbg_createObjectStore_d3884936b845900f() { - return handleError(function (arg0, arg1, arg2) { - const ret = arg0.createObjectStore(getStringFromWasm0(arg1, arg2)); - return ret; - }, arguments); -} -function __wbg_crosssigningbootstraprequests_new(arg0) { - const ret = CrossSigningBootstrapRequests.__wrap(arg0); - return ret; -} -function __wbg_crosssigningkeyexport_new(arg0) { - const ret = CrossSigningKeyExport.__wrap(arg0); - return ret; -} -function __wbg_crosssigningstatus_new(arg0) { - const ret = CrossSigningStatus.__wrap(arg0); - return ret; -} -function __wbg_crypto_38df2bab126b63dc(arg0) { - const ret = arg0.crypto; - return ret; -} -function __wbg_debug_1ac2ea5532f70f4c(arg0, arg1) { - arg0.debug(arg1); -} -function __wbg_debug_3853dbaf0bca30f9(arg0) { - console.debug(arg0); -} -function __wbg_decryptedroomevent_new(arg0) { - const ret = DecryptedRoomEvent.__wrap(arg0); - return ret; -} -function __wbg_decryptedtodeviceevent_new(arg0) { - const ret = DecryptedToDeviceEvent.__wrap(arg0); - return ret; -} -function __wbg_dehydrateddevice_new(arg0) { - const ret = DehydratedDevice.__wrap(arg0); - return ret; -} -function __wbg_dehydrateddevicekey_new(arg0) { - const ret = DehydratedDeviceKey.__wrap(arg0); - return ret; -} -function __wbg_deleteObjectStore_ed0e7d0b256bead4() { - return handleError(function (arg0, arg1, arg2) { - arg0.deleteObjectStore(getStringFromWasm0(arg1, arg2)); - }, arguments); -} -function __wbg_delete_03ff02bcb1b57138() { - return handleError(function (arg0) { - const ret = arg0.delete(); - return ret; - }, arguments); -} -function __wbg_delete_27b012593b3f623b() { - return handleError(function (arg0, arg1) { - const ret = arg0.delete(arg1); - return ret; - }, arguments); -} -function __wbg_device_new(arg0) { - const ret = Device.__wrap(arg0); - return ret; -} -function __wbg_deviceid_new(arg0) { - const ret = DeviceId.__wrap(arg0); - return ret; -} -function __wbg_devicekey_new(arg0) { - const ret = DeviceKey.__wrap(arg0); - return ret; -} -function __wbg_devicekeyid_new(arg0) { - const ret = DeviceKeyId.__wrap(arg0); - return ret; -} -function __wbg_done_669171204c3dcae2(arg0) { - const ret = arg0.done; - return ret; -} -function __wbg_emoji_new(arg0) { - const ret = Emoji.__wrap(arg0); - return ret; -} -function __wbg_encryptedattachment_new(arg0) { - const ret = EncryptedAttachment.__wrap(arg0); - return ret; -} -function __wbg_encryptioninfo_new(arg0) { - const ret = EncryptionInfo.__wrap(arg0); - return ret; -} -function __wbg_entries_71601bcb707d5078(arg0) { - const ret = arg0.entries(); - return ret; -} -function __wbg_entries_7774d489e1da5f4f(arg0) { - const ret = Object.entries(arg0); - return ret; -} -function __wbg_error_24e6ac605d438e54() { - return handleError(function (arg0) { - const ret = arg0.error; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); - }, arguments); -} -function __wbg_error_757e9472f8410341(arg0, arg1) { - let deferred0_0; - let deferred0_1; - try { - deferred0_0 = arg0; - deferred0_1 = arg1; - console.error(getStringFromWasm0(arg0, arg1)); - } finally { - wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); - } -} -function __wbg_error_dbd3752906405f8d(arg0, arg1) { - arg0.error(arg1); -} -function __wbg_error_dd408a7b3cb542dd(arg0) { - console.error(arg0); -} -function __wbg_from_74f3d90e0ff11240(arg0) { - const ret = Array.from(arg0); - return ret; -} -function __wbg_getAllKeys_1de66542d233a4a5() { - return handleError(function (arg0) { - const ret = arg0.getAllKeys(); - return ret; - }, arguments); -} -function __wbg_getAllKeys_65d7deed4f9b2d48() { - return handleError(function (arg0, arg1) { - const ret = arg0.getAllKeys(arg1); - return ret; - }, arguments); -} -function __wbg_getAll_358f5970d9bee84b() { - return handleError(function (arg0) { - const ret = arg0.getAll(); - return ret; - }, arguments); -} -function __wbg_getAll_6b556cfcbf040afc() { - return handleError(function (arg0, arg1) { - const ret = arg0.getAll(arg1); - return ret; - }, arguments); -} -function __wbg_getAll_86c18743042fe4ca() { - return handleError(function (arg0) { - const ret = arg0.getAll(); - return ret; - }, arguments); -} -function __wbg_getAll_edf30bc7f595e7ae() { - return handleError(function (arg0, arg1, arg2) { - const ret = arg0.getAll(arg1, arg2 >>> 0); - return ret; - }, arguments); -} -function __wbg_getRandomValues_26c0cdf963e46393() { - return handleError(function (arg0, arg1) { - globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1)); - }, arguments); -} -function __wbg_getRandomValues_436a51d0629d84e1() { - return handleError(function (arg0, arg1) { - globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1)); - }, arguments); -} -function __wbg_getRandomValues_c44a50d8cfdaebeb() { - return handleError(function (arg0, arg1) { - arg0.getRandomValues(arg1); - }, arguments); -} -function __wbg_getTime_63fb0332e6c4ec17(arg0) { - const ret = arg0.getTime(); - return ret; -} -function __wbg_get_4babbbf9303c1945() { - return handleError(function (arg0, arg1) { - const ret = arg0.get(arg1); - return ret; - }, arguments); -} -function __wbg_get_94b5ec70e1f04bdd() { - return handleError(function (arg0, arg1) { - const ret = arg0.get(arg1); - return ret; - }, arguments); -} -function __wbg_get_971a0c45d172643f() { - return handleError(function (arg0, arg1) { - const ret = Reflect.get(arg0, arg1); - return ret; - }, arguments); -} -function __wbg_get_c0c8f8d7da0c03dd(arg0, arg1) { - const ret = arg0[arg1 >>> 0]; - return ret; -} -function __wbg_get_d173c0308df22d37() { - return handleError(function (arg0, arg1) { - const ret = Reflect.get(arg0, arg1); - return ret; - }, arguments); -} -function __wbg_get_unchecked_e20b893aeafc3fca(arg0, arg1) { - const ret = arg0[arg1 >>> 0]; - return ret; -} -function __wbg_get_with_ref_key_6412cf3094599694(arg0, arg1) { - const ret = arg0[arg1]; - return ret; -} -function __wbg_global_94a489d2e6a0c5fd(arg0) { - const ret = arg0.global; - return ret; -} -function __wbg_inboundgroupsession_new(arg0) { - const ret = InboundGroupSession.__wrap(arg0); - return ret; -} -function __wbg_index_bed5a9f21dfebeea() { - return handleError(function (arg0, arg1, arg2) { - const ret = arg0.index(getStringFromWasm0(arg1, arg2)); - return ret; - }, arguments); -} -function __wbg_indexedDB_47c354eb27472a00() { - return handleError(function (arg0) { - const ret = arg0.indexedDB; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); - }, arguments); -} -function __wbg_indexedDB_9e20c97c033151f3() { - return handleError(function (arg0) { - const ret = arg0.indexedDB; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); - }, arguments); -} -function __wbg_indexedDB_ced363f3de8fb099() { - return handleError(function (arg0) { - const ret = arg0.indexedDB; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); - }, arguments); -} -function __wbg_info_726982aff9befe16(arg0) { - console.info(arg0); -} -function __wbg_info_929f1b00bd4820a9(arg0, arg1) { - arg0.info(arg1); -} -function __wbg_instanceof_ArrayBuffer_993d02d2d254cad1(arg0) { - let result; - try { - result = arg0 instanceof ArrayBuffer; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_CursorSys_383984afc1fa1bbc(arg0) { - let result; - try { - result = arg0 instanceof IDBCursorWithValue; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_DomException_55a5af63fefe4042(arg0) { - let result; - try { - result = arg0 instanceof DOMException; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_Error_61d8a02a0f3383a1(arg0) { - let result; - try { - result = arg0 instanceof Error; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_IdbCursor_9bd028886fa2ccf0(arg0) { - let result; - try { - result = arg0 instanceof IDBCursor; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_IdbDatabase_e9dd9f20c51d8d42(arg0) { - let result; - try { - result = arg0 instanceof IDBDatabase; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_IdbOpenDbRequest_b913751ffb9239bb(arg0) { - let result; - try { - result = arg0 instanceof IDBOpenDBRequest; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_IdbRequest_471b050024626dac(arg0) { - let result; - try { - result = arg0 instanceof IDBRequest; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_Map_9a4d6ead180ae3a9(arg0) { - let result; - try { - result = arg0 instanceof Map; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_Promise_e6e764b945c3128a(arg0) { - let result; - try { - result = arg0 instanceof Promise; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_instanceof_Uint8Array_f935dbb0aa7cdeed(arg0) { - let result; - try { - result = arg0 instanceof Uint8Array; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -function __wbg_invalidtodeviceevent_new(arg0) { - const ret = InvalidToDeviceEvent.__wrap(arg0); - return ret; -} -function __wbg_isArray_291e8fbbc73f8b2e(arg0) { - const ret = Array.isArray(arg0); - return ret; -} -function __wbg_isArray_6339f732981044bf(arg0) { - const ret = Array.isArray(arg0); - return ret; -} -function __wbg_isSafeInteger_f3d6cd19ccfe4512(arg0) { - const ret = Number.isSafeInteger(arg0); - return ret; -} -function __wbg_item_754b49ed01198c29(arg0, arg1, arg2) { - const ret = arg1.item(arg2 >>> 0); - var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -function __wbg_iterator_5cebbb86e33c6dd6() { - const ret = Symbol.iterator; - return ret; -} -function __wbg_key_18fe06a6310bf3fb() { - return handleError(function (arg0) { - const ret = arg0.key; - return ret; - }, arguments); -} -function __wbg_keysbackuprequest_new(arg0) { - const ret = KeysBackupRequest.__wrap(arg0); - return ret; -} -function __wbg_keysclaimrequest_new(arg0) { - const ret = KeysClaimRequest.__wrap(arg0); - return ret; -} -function __wbg_keysqueryrequest_new(arg0) { - const ret = KeysQueryRequest.__wrap(arg0); - return ret; -} -function __wbg_keysuploadrequest_new(arg0) { - const ret = KeysUploadRequest.__wrap(arg0); - return ret; -} -function __wbg_length_13032799523c5735(arg0) { - const ret = arg0.length; - return ret; -} -function __wbg_length_36bd29c6848c2144(arg0) { - const ret = arg0.length; - return ret; -} -function __wbg_length_ecfa2c63d3d0d82c(arg0) { - const ret = arg0.length; - return ret; -} -function __wbg_lowerBound_66a1695f45ef6c88() { - return handleError(function (arg0, arg1) { - const ret = IDBKeyRange.lowerBound(arg0, arg1 !== 0); - return ret; - }, arguments); -} -function __wbg_maybesignature_new(arg0) { - const ret = MaybeSignature.__wrap(arg0); - return ret; -} -function __wbg_megolmdecryptionerror_new(arg0) { - const ret = MegolmDecryptionError.__wrap(arg0); - return ret; -} -function __wbg_message_88eda073e68b1d26(arg0, arg1) { - const ret = arg1.message; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -function __wbg_message_c141d5e68716b595(arg0) { - const ret = arg0.message; - return ret; -} -function __wbg_msCrypto_bd5a034af96bcba6(arg0) { - const ret = arg0.msCrypto; - return ret; -} -function __wbg_name_facbed56940f0fec(arg0, arg1) { - const ret = arg1.name; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -function __wbg_new_116be93542d39019() { - const ret = new Array(); - return ret; -} -function __wbg_new_227d7c05414eb861() { - const ret = new Error(); - return ret; -} -function __wbg_new_358857d90afd5a2d(arg0, arg1) { - const ret = new Error(getStringFromWasm0(arg0, arg1)); - return ret; -} -function __wbg_new_418fb92a013d5930(arg0, arg1) { - try { - var state0 = { - a: arg0, - b: arg1 - }; - var cb0 = (arg0, arg1) => { - const a = state0.a; - state0.a = 0; - try { - return wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined_______true_(a, state0.b, arg0, arg1); - } finally { - state0.a = a; - } - }; - const ret = new Promise(cb0); - return ret; - } finally { - state0.a = 0; - } -} -function __wbg_new_77cc4f4f472aeb81(arg0) { - const ret = new Uint8Array(arg0); - return ret; -} -function __wbg_new_cdf041679ded4c5f() { - const ret = new Map(); - return ret; -} -function __wbg_new_d29ccbc1854174b3(arg0) { - const ret = new Set(arg0); - return ret; -} -function __wbg_new_ebe3e0f6837f0879() { - const ret = new Object(); - return ret; -} -function __wbg_new_f9d6489212f3b2b3(arg0) { - const ret = new Date(arg0); - return ret; -} -function __wbg_new_from_slice_3eea173078478cfe(arg0, arg1) { - const ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1)); - return ret; -} -function __wbg_new_typed_cceaf62d8d95e9f2(arg0, arg1) { - try { - var state0 = { - a: arg0, - b: arg1 - }; - var cb0 = (arg0, arg1) => { - const a = state0.a; - state0.a = 0; - try { - return wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined_______true_(a, state0.b, arg0, arg1); - } finally { - state0.a = a; - } - }; - const ret = new Promise(cb0); - return ret; - } finally { - state0.a = 0; - } -} -function __wbg_new_with_length_3ffc1c56427c525c(arg0) { - const ret = new Uint8Array(arg0 >>> 0); - return ret; -} -function __wbg_new_with_length_5d351ffdb6e3397d(arg0) { - const ret = new Uint8ClampedArray(arg0 >>> 0); - return ret; -} -function __wbg_next_42cf16ee0dafc9e2() { - return handleError(function (arg0) { - const ret = arg0.next(); - return ret; - }, arguments); -} -function __wbg_next_8f26b64fa5e9f64b(arg0) { - const ret = arg0.next; - return ret; -} -function __wbg_node_84ea875411254db1(arg0) { - const ret = arg0.node; - return ret; -} -function __wbg_now_8b265300afd5f2b9() { - const ret = Date.now(); - return ret; -} -function __wbg_now_e7c6795a7f81e10f(arg0) { - const ret = arg0.now(); - return ret; -} -function __wbg_objectStoreNames_94ee5410bc505cae(arg0) { - const ret = arg0.objectStoreNames; - return ret; -} -function __wbg_objectStore_222b7add2b5c2770() { - return handleError(function (arg0, arg1, arg2) { - const ret = arg0.objectStore(getStringFromWasm0(arg1, arg2)); - return ret; - }, arguments); -} -function __wbg_oldVersion_92fccbad82f5635a(arg0) { - const ret = arg0.oldVersion; - return ret; -} -function __wbg_olmmachine_new(arg0) { - const ret = OlmMachine.__wrap(arg0); - return ret; -} -function __wbg_openCursor_1015e5f363cc8494() { - return handleError(function (arg0) { - const ret = arg0.openCursor(); - return ret; - }, arguments); -} -function __wbg_openCursor_6dd512fe9cbf9f67() { - return handleError(function (arg0, arg1) { - const ret = arg0.openCursor(arg1); - return ret; - }, arguments); -} -function __wbg_openCursor_f34b182699875701() { - return handleError(function (arg0) { - const ret = arg0.openCursor(); - return ret; - }, arguments); -} -function __wbg_open_66c8b00ee562451f() { - return handleError(function (arg0, arg1, arg2) { - const ret = arg0.open(getStringFromWasm0(arg1, arg2)); - return ret; - }, arguments); -} -function __wbg_open_c5ecda93515ce190() { - return handleError(function (arg0, arg1, arg2, arg3) { - const ret = arg0.open(getStringFromWasm0(arg1, arg2), arg3 >>> 0); - return ret; - }, arguments); -} -function __wbg_otheruseridentity_new(arg0) { - const ret = OtherUserIdentity.__wrap(arg0); - return ret; -} -function __wbg_ownuseridentity_new(arg0) { - const ret = OwnUserIdentity.__wrap(arg0); - return ret; -} -function __wbg_parse_1cc93481b0865939() { - return handleError(function (arg0, arg1) { - const ret = JSON.parse(getStringFromWasm0(arg0, arg1)); - return ret; - }, arguments); -} -function __wbg_performance_3fcf6e32a7e1ed0a(arg0) { - const ret = arg0.performance; - return ret; -} -function __wbg_pickledinboundgroupsession_unwrap(arg0) { - const ret = PickledInboundGroupSession.__unwrap(arg0); - return ret; -} -function __wbg_pickledsession_unwrap(arg0) { - const ret = PickledSession.__unwrap(arg0); - return ret; -} -function __wbg_plaintexttodeviceevent_new(arg0) { - const ret = PlainTextToDeviceEvent.__wrap(arg0); - return ret; -} -function __wbg_process_44c7a14e11e9f69e(arg0) { - const ret = arg0.process; - return ret; -} -function __wbg_prototypesetcall_8798824fd302dd72(arg0, arg1, arg2) { - Uint8ClampedArray.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); -} -function __wbg_prototypesetcall_de8e0d9553586985(arg0, arg1, arg2) { - Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); -} -function __wbg_push_adb0107829f02d75(arg0, arg1) { - const ret = arg0.push(arg1); - return ret; -} -function __wbg_put_5e0ae8c80bb952a7() { - return handleError(function (arg0, arg1, arg2) { - const ret = arg0.put(arg1, arg2); - return ret; - }, arguments); -} -function __wbg_putdehydrateddevicerequest_new(arg0) { - const ret = PutDehydratedDeviceRequest.__wrap(arg0); - return ret; -} -function __wbg_qr_new(arg0) { - const ret = Qr.__wrap(arg0); - return ret; -} -function __wbg_queueMicrotask_ac694eae12e92dfb(arg0) { - queueMicrotask(arg0); -} -function __wbg_queueMicrotask_be5fe34a8f4cad4d(arg0) { - const ret = arg0.queueMicrotask; - return ret; -} -function __wbg_randomFillSync_6c25eac9869eb53c() { - return handleError(function (arg0, arg1) { - arg0.randomFillSync(arg1); - }, arguments); -} -function __wbg_readyState_599831d0754935af(arg0) { - const ret = arg0.readyState; - return (__wbindgen_enum_IdbRequestReadyState.indexOf(ret) + 1 || 3) - 1; -} -function __wbg_rehydrateddevice_new(arg0) { - const ret = RehydratedDevice.__wrap(arg0); - return ret; -} -function __wbg_request_64abeba15a72c084(arg0) { - const ret = arg0.request; - return ret; -} -function __wbg_request_72a78988f2edecad(arg0) { - const ret = arg0.request; - return ret; -} -function __wbg_require_b4edbdcf3e2a1ef0() { - return handleError(function () { - const ret = module.require; - return ret; - }, arguments); -} -function __wbg_resolve_020f95d838c6ef25(arg0) { - const ret = Promise.resolve(arg0); - return ret; -} -function __wbg_result_0501bea148306f01() { - return handleError(function (arg0) { - const ret = arg0.result; - return ret; - }, arguments); -} -function __wbg_roomid_unwrap(arg0) { - const ret = RoomId.__unwrap(arg0); - return ret; -} -function __wbg_roomkeycounts_new(arg0) { - const ret = RoomKeyCounts.__wrap(arg0); - return ret; -} -function __wbg_roomkeyimportresult_new(arg0) { - const ret = RoomKeyImportResult.__wrap(arg0); - return ret; -} -function __wbg_roomkeyinfo_new(arg0) { - const ret = RoomKeyInfo.__wrap(arg0); - return ret; -} -function __wbg_roomkeywithheldinfo_new(arg0) { - const ret = RoomKeyWithheldInfo.__wrap(arg0); - return ret; -} -function __wbg_roommessagerequest_new(arg0) { - const ret = RoomMessageRequest.__wrap(arg0); - return ret; -} -function __wbg_roompendingkeybundledetails_new(arg0) { - const ret = RoomPendingKeyBundleDetails.__wrap(arg0); - return ret; -} -function __wbg_roomsettings_new(arg0) { - const ret = RoomSettings.__wrap(arg0); - return ret; -} -function __wbg_sas_new(arg0) { - const ret = Sas.__wrap(arg0); - return ret; -} -function __wbg_secretsbundle_new(arg0) { - const ret = SecretsBundle.__wrap(arg0); - return ret; -} -function __wbg_setTimeout_56bcdccbad22fd44() { - return handleError(function (arg0, arg1) { - const ret = setTimeout(arg0, arg1); - return ret; - }, arguments); -} -function __wbg_set_014226dfeca53178(arg0, arg1, arg2) { - const ret = arg0.set(arg1, arg2); - return ret; -} -function __wbg_set_5c15d3c5973de97a(arg0, arg1, arg2) { - arg0.set(getArrayU8FromWasm0(arg1, arg2)); -} -function __wbg_set_6be42768c690e380(arg0, arg1, arg2) { - arg0[arg1] = arg2; -} -function __wbg_set_a80955eb93b145c6(arg0, arg1, arg2) { - arg0[arg1 >>> 0] = arg2; -} -function __wbg_set_onabort_fda794cb1089d6b5(arg0, arg1) { - arg0.onabort = arg1; -} -function __wbg_set_oncomplete_ff31bdacaa1b3558(arg0, arg1) { - arg0.oncomplete = arg1; -} -function __wbg_set_onerror_3dff0f2abceea5e9(arg0, arg1) { - arg0.onerror = arg1; -} -function __wbg_set_onerror_41278ace6abe3973(arg0, arg1) { - arg0.onerror = arg1; -} -function __wbg_set_onsuccess_86d76d6974cd57e4(arg0, arg1) { - arg0.onsuccess = arg1; -} -function __wbg_set_onupgradeneeded_79b60102909f4a5e(arg0, arg1) { - arg0.onupgradeneeded = arg1; -} -function __wbg_set_unique_c03185d3bf563306(arg0, arg1) { - arg0.unique = arg1 !== 0; -} -function __wbg_signatures_new(arg0) { - const ret = Signatures.__wrap(arg0); - return ret; -} -function __wbg_signatureuploadrequest_new(arg0) { - const ret = SignatureUploadRequest.__wrap(arg0); - return ret; -} -function __wbg_signatureverification_new(arg0) { - const ret = SignatureVerification.__wrap(arg0); - return ret; -} -function __wbg_stack_3b0d974bbf31e44f(arg0, arg1) { - const ret = arg1.stack; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -function __wbg_static_accessor_GLOBAL_THIS_466428f93b4eaa76() { - const ret = typeof globalThis === 'undefined' ? null : globalThis; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -function __wbg_static_accessor_GLOBAL_c7aea38d4de089bc() { - const ret = typeof global === 'undefined' ? null : global; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -function __wbg_static_accessor_SELF_42d4fae05e59267a() { - const ret = typeof self === 'undefined' ? null : self; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -function __wbg_static_accessor_WINDOW_e0db14a0eba6a812() { - const ret = typeof window === 'undefined' ? null : window; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -function __wbg_storedroomkeybundledata_new(arg0) { - const ret = StoredRoomKeyBundleData.__wrap(arg0); - return ret; -} -function __wbg_storehandle_new(arg0) { - const ret = StoreHandle.__wrap(arg0); - return ret; -} -function __wbg_stringify_f93a4ebae9231922() { - return handleError(function (arg0) { - const ret = JSON.stringify(arg0); - return ret; - }, arguments); -} -function __wbg_subarray_a4cc58201c7359fd(arg0, arg1, arg2) { - const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); - return ret; -} -function __wbg_target_13424fe1cdc436ac(arg0) { - const ret = arg0.target; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -function __wbg_then_7026b513a94278a8(arg0, arg1) { - const ret = arg0.then(arg1); - return ret; -} -function __wbg_then_72819b8d4e081fb5(arg0, arg1, arg2) { - const ret = arg0.then(arg1, arg2); - return ret; -} -function __wbg_toString_2f0b0aec069cb718(arg0) { - const ret = arg0.toString(); - return ret; -} -function __wbg_todevicerequest_new(arg0) { - const ret = ToDeviceRequest.__wrap(arg0); - return ret; -} -function __wbg_transaction_0458565e8cdfb620(arg0) { - const ret = arg0.transaction; - return ret; -} -function __wbg_transaction_4c999693e6e601bf() { - return handleError(function (arg0, arg1, arg2) { - const ret = arg0.transaction(arg1, __wbindgen_enum_IdbTransactionMode[arg2]); - return ret; - }, arguments); -} -function __wbg_transaction_728366e915610cb0() { - return handleError(function (arg0, arg1, arg2, arg3) { - const ret = arg0.transaction(getStringFromWasm0(arg1, arg2), __wbindgen_enum_IdbTransactionMode[arg3]); - return ret; - }, arguments); -} -function __wbg_transaction_77d93778cbec28c3(arg0) { - const ret = arg0.transaction; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -function __wbg_update_df04b6b83954c5a0() { - return handleError(function (arg0, arg1) { - const ret = arg0.update(arg1); - return ret; - }, arguments); -} -function __wbg_upperBound_916ed065b0d6fe6c() { - return handleError(function (arg0, arg1) { - const ret = IDBKeyRange.upperBound(arg0, arg1 !== 0); - return ret; - }, arguments); -} -function __wbg_userdevices_new(arg0) { - const ret = UserDevices.__wrap(arg0); - return ret; -} -function __wbg_userid_new(arg0) { - const ret = UserId.__wrap(arg0); - return ret; -} -function __wbg_userid_unwrap(arg0) { - const ret = UserId.__unwrap(arg0); - return ret; -} -function __wbg_utdtodeviceevent_new(arg0) { - const ret = UTDToDeviceEvent.__wrap(arg0); - return ret; -} -function __wbg_value_1e2369fab29b420e(arg0) { - const ret = arg0.value; - return ret; -} -function __wbg_value_496e02446340ae74() { - return handleError(function (arg0) { - const ret = arg0.value; - return ret; - }, arguments); -} -function __wbg_values_d512097b1a1a9459(arg0) { - const ret = arg0.values(); - return ret; -} -function __wbg_verificationrequest_new(arg0) { - const ret = VerificationRequest.__wrap(arg0); - return ret; -} -function __wbg_version_26237923fff15d6e(arg0) { - const ret = arg0.version; - return ret; -} -function __wbg_versions_276b2795b1c6a219(arg0) { - const ret = arg0.versions; - return ret; -} -function __wbg_warn_917d7f727ab78481(arg0) { - console.warn(arg0); -} -function __wbg_warn_b62de6508e8608cc(arg0, arg1) { - arg0.warn(arg1); -} -function __wbindgen_cast_0000000000000001(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 164, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true_); - return ret; -} -function __wbindgen_cast_0000000000000002(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("Event")], shim_idx: 558, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___web_sys_4ec35d1b8222c725___features__gen_Event__Event______true_); - return ret; -} -function __wbindgen_cast_0000000000000003(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("IDBVersionChangeEvent")], shim_idx: 164, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true__2); - return ret; -} -function __wbindgen_cast_0000000000000004(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 128, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke_______true_); - return ret; -} -function __wbindgen_cast_0000000000000005(arg0) { - // Cast intrinsic for `F64 -> Externref`. - const ret = arg0; - return ret; -} -function __wbindgen_cast_0000000000000006(arg0) { - // Cast intrinsic for `I64 -> Externref`. - const ret = arg0; - return ret; -} -function __wbindgen_cast_0000000000000007(arg0, arg1) { - // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref("Uint8Array")`. - const ret = getArrayU8FromWasm0(arg0, arg1); - return ret; -} -function __wbindgen_cast_0000000000000008(arg0, arg1) { - // Cast intrinsic for `Ref(String) -> Externref`. - const ret = getStringFromWasm0(arg0, arg1); - return ret; -} -function __wbindgen_cast_0000000000000009(arg0) { - // Cast intrinsic for `U64 -> Externref`. - const ret = BigInt.asUintN(64, arg0); - return ret; -} -function __wbindgen_cast_000000000000000a(arg0, arg1) { - var v0 = getArrayJsValueFromWasm0(arg0, arg1); - wasm.__wbindgen_free(arg0, arg1 * 4, 4); - // Cast intrinsic for `Vector(Externref) -> Externref`. - const ret = v0; - return ret; -} -function __wbindgen_init_externref_table() { - const table = wasm.__wbindgen_externrefs; - const offset = table.grow(4); - table.set(0, undefined); - table.set(offset + 0, undefined); - table.set(offset + 1, null); - table.set(offset + 2, true); - table.set(offset + 3, false); -} -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke_______true_(arg0, arg1) { - wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke_______true_(arg0, arg1); -} -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___web_sys_4ec35d1b8222c725___features__gen_Event__Event______true_(arg0, arg1, arg2) { - wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___web_sys_4ec35d1b8222c725___features__gen_Event__Event______true_(arg0, arg1, arg2); -} -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true_(arg0, arg1, arg2) { - const ret = wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true_(arg0, arg1, arg2); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } -} -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true__2(arg0, arg1, arg2) { - const ret = wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true__2(arg0, arg1, arg2); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } -} -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined_______true_(arg0, arg1, arg2, arg3) { - wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined_______true_(arg0, arg1, arg2, arg3); -} -const __wbindgen_enum_IdbRequestReadyState = ["pending", "done"]; -const __wbindgen_enum_IdbTransactionMode = ["readonly", "readwrite", "versionchange", "readwriteflush", "cleanup"]; -const AttachmentFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_attachment_free(ptr, 1)); -const BackupDecryptionKeyFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_backupdecryptionkey_free(ptr, 1)); -const BackupKeysFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_backupkeys_free(ptr, 1)); -const BackupSecretsBundleFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_backupsecretsbundle_free(ptr, 1)); -const Base64EncodedPkMessageFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_base64encodedpkmessage_free(ptr, 1)); -const BaseMigrationDataFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_basemigrationdata_free(ptr, 1)); -const CancelInfoFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_cancelinfo_free(ptr, 1)); -const CheckCodeFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_checkcode_free(ptr, 1)); -const CollectStrategyFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_collectstrategy_free(ptr, 1)); -const CrossSigningBootstrapRequestsFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_crosssigningbootstraprequests_free(ptr, 1)); -const CrossSigningKeyExportFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_crosssigningkeyexport_free(ptr, 1)); -const CrossSigningStatusFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_crosssigningstatus_free(ptr, 1)); -const Curve25519PublicKeyFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_curve25519publickey_free(ptr, 1)); -const Curve25519SecretKeyFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_curve25519secretkey_free(ptr, 1)); -const DecryptedRoomEventFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_decryptedroomevent_free(ptr, 1)); -const DecryptedToDeviceEventFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_decryptedtodeviceevent_free(ptr, 1)); -const DecryptionSettingsFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_decryptionsettings_free(ptr, 1)); -const DehydratedDeviceFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_dehydrateddevice_free(ptr, 1)); -const DehydratedDeviceKeyFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_dehydrateddevicekey_free(ptr, 1)); -const DehydratedDevicesFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_dehydrateddevices_free(ptr, 1)); -const DeviceFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_device_free(ptr, 1)); -const DeviceIdFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_deviceid_free(ptr, 1)); -const DeviceKeyFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_devicekey_free(ptr, 1)); -const DeviceKeyAlgorithmFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_devicekeyalgorithm_free(ptr, 1)); -const DeviceKeyIdFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_devicekeyid_free(ptr, 1)); -const DeviceListsFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_devicelists_free(ptr, 1)); -const EciesFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_ecies_free(ptr, 1)); -const Ed25519PublicKeyFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_ed25519publickey_free(ptr, 1)); -const Ed25519SignatureFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_ed25519signature_free(ptr, 1)); -const EmojiFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_emoji_free(ptr, 1)); -const EncryptedAttachmentFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_encryptedattachment_free(ptr, 1)); -const EncryptionInfoFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_encryptioninfo_free(ptr, 1)); -const EncryptionSettingsFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_encryptionsettings_free(ptr, 1)); -const EstablishedEciesFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_establishedecies_free(ptr, 1)); -const EventIdFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_eventid_free(ptr, 1)); -const IdentityKeysFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_identitykeys_free(ptr, 1)); -const InboundCreationResultFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_inboundcreationresult_free(ptr, 1)); -const InboundGroupSessionFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_inboundgroupsession_free(ptr, 1)); -const InvalidToDeviceEventFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_invalidtodeviceevent_free(ptr, 1)); -const KeysBackupRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_keysbackuprequest_free(ptr, 1)); -const KeysClaimRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_keysclaimrequest_free(ptr, 1)); -const KeysQueryRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_keysqueryrequest_free(ptr, 1)); -const KeysUploadRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_keysuploadrequest_free(ptr, 1)); -const MaybeSignatureFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_maybesignature_free(ptr, 1)); -const MegolmDecryptionErrorFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_megolmdecryptionerror_free(ptr, 1)); -const MegolmV1BackupKeyFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_megolmv1backupkey_free(ptr, 1)); -const MigrationFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_migration_free(ptr, 1)); -const Msc4108IntentDataFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_msc4108intentdata_free(ptr, 1)); -const Msc4388IntentDataFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_msc4388intentdata_free(ptr, 1)); -const OlmMachineFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_olmmachine_free(ptr, 1)); -const OtherUserIdentityFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_otheruseridentity_free(ptr, 1)); -const OutboundCreationResultFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_outboundcreationresult_free(ptr, 1)); -const OwnUserIdentityFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_ownuseridentity_free(ptr, 1)); -const PickledInboundGroupSessionFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_pickledinboundgroupsession_free(ptr, 1)); -const PickledSessionFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_pickledsession_free(ptr, 1)); -const PkDecryptionFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_pkdecryption_free(ptr, 1)); -const PkEncryptionFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_pkencryption_free(ptr, 1)); -const PkMessageFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_pkmessage_free(ptr, 1)); -const PlainTextToDeviceEventFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_plaintexttodeviceevent_free(ptr, 1)); -const PutDehydratedDeviceRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_putdehydrateddevicerequest_free(ptr, 1)); -const QrFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_qr_free(ptr, 1)); -const QrCodeFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_qrcode_free(ptr, 1)); -const QrCodeDataFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_qrcodedata_free(ptr, 1)); -const QrCodeIntentDataFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_qrcodeintentdata_free(ptr, 1)); -const QrCodeScanFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_qrcodescan_free(ptr, 1)); -const RehydratedDeviceFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_rehydrateddevice_free(ptr, 1)); -const RoomIdFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_roomid_free(ptr, 1)); -const RoomKeyCountsFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_roomkeycounts_free(ptr, 1)); -const RoomKeyImportResultFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_roomkeyimportresult_free(ptr, 1)); -const RoomKeyInfoFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_roomkeyinfo_free(ptr, 1)); -const RoomKeyWithheldInfoFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_roomkeywithheldinfo_free(ptr, 1)); -const RoomMessageRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_roommessagerequest_free(ptr, 1)); -const RoomPendingKeyBundleDetailsFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_roompendingkeybundledetails_free(ptr, 1)); -const RoomSettingsFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_roomsettings_free(ptr, 1)); -const SasFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_sas_free(ptr, 1)); -const SecretsBundleFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_secretsbundle_free(ptr, 1)); -const ServerNameFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_servername_free(ptr, 1)); -const ShieldStateFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_shieldstate_free(ptr, 1)); -const SignatureFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_signature_free(ptr, 1)); -const SignatureUploadRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_signatureuploadrequest_free(ptr, 1)); -const SignatureVerificationFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_signatureverification_free(ptr, 1)); -const SignaturesFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_signatures_free(ptr, 1)); -const StoreHandleFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_storehandle_free(ptr, 1)); -const StoredRoomKeyBundleDataFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_storedroomkeybundledata_free(ptr, 1)); -const ToDeviceEncryptionInfoFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_todeviceencryptioninfo_free(ptr, 1)); -const ToDeviceRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_todevicerequest_free(ptr, 1)); -const ToDeviceUnableToDecryptInfoFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_todeviceunabletodecryptinfo_free(ptr, 1)); -const TracingFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_tracing_free(ptr, 1)); -const UTDToDeviceEventFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_utdtodeviceevent_free(ptr, 1)); -const UploadSigningKeysRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_uploadsigningkeysrequest_free(ptr, 1)); -const UserDevicesFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_userdevices_free(ptr, 1)); -const UserIdFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_userid_free(ptr, 1)); -const VerificationRequestFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_verificationrequest_free(ptr, 1)); -const VersionsFinalization = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(ptr => wasm.__wbg_versions_free(ptr, 1)); -function addToExternrefTable0(obj) { - const idx = wasm.__externref_table_alloc(); - wasm.__wbindgen_externrefs.set(idx, obj); - return idx; -} -function _assertClass(instance, klass) { - if (!(instance instanceof klass)) { - throw new Error(`expected instance of ${klass.name}`); - } -} -const CLOSURE_DTORS = typeof FinalizationRegistry === 'undefined' ? { - register: () => {}, - unregister: () => {} -} : new FinalizationRegistry(state => wasm.__wbindgen_destroy_closure(state.a, state.b)); -function debugString(val) { - // primitive types - const type = typeof val; - if (type == 'number' || type == 'boolean' || val == null) { - return `${val}`; - } - if (type == 'string') { - return `"${val}"`; - } - if (type == 'symbol') { - const description = val.description; - if (description == null) { - return 'Symbol'; - } else { - return `Symbol(${description})`; - } - } - if (type == 'function') { - const name = val.name; - if (typeof name == 'string' && name.length > 0) { - return `Function(${name})`; - } else { - return 'Function'; - } - } - // objects - if (Array.isArray(val)) { - const length = val.length; - let debug = '['; - if (length > 0) { - debug += debugString(val[0]); - } - for (let i = 1; i < length; i++) { - debug += ', ' + debugString(val[i]); - } - debug += ']'; - return debug; - } - // Test for built-in - const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); - let className; - if (builtInMatches && builtInMatches.length > 1) { - className = builtInMatches[1]; - } else { - // Failed to match the standard '[object ClassName]' - return toString.call(val); - } - if (className == 'Object') { - // we're a user defined class or Object - // JSON.stringify avoids problems with cycles, and is generally much - // easier than looping through ownProperties of `val`. - try { - return 'Object(' + JSON.stringify(val) + ')'; - } catch (_) { - return 'Object'; - } - } - // errors - if (val instanceof Error) { - return `${val.name}: ${val.message}\n${val.stack}`; - } - // TODO we could test for more things here, like `Set`s and `Map`s. - return className; -} -function getArrayJsValueFromWasm0(ptr, len) { - ptr = ptr >>> 0; - const mem = getDataViewMemory0(); - const result = []; - for (let i = ptr; i < ptr + 4 * len; i += 4) { - result.push(wasm.__wbindgen_externrefs.get(mem.getUint32(i, true))); - } - wasm.__externref_drop_slice(ptr, len); - return result; -} -function getArrayU16FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len); -} -function getArrayU8FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); -} -let cachedDataViewMemory0 = null; -function getDataViewMemory0() { - if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer) { - cachedDataViewMemory0 = new DataView(wasm.memory.buffer); - } - return cachedDataViewMemory0; -} -function getStringFromWasm0(ptr, len) { - return decodeText(ptr >>> 0, len); -} -let cachedUint16ArrayMemory0 = null; -function getUint16ArrayMemory0() { - if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) { - cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer); - } - return cachedUint16ArrayMemory0; -} -let cachedUint8ArrayMemory0 = null; -function getUint8ArrayMemory0() { - if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { - cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); - } - return cachedUint8ArrayMemory0; -} -function handleError(f, args) { - try { - return f.apply(this, args); - } catch (e) { - const idx = addToExternrefTable0(e); - wasm.__wbindgen_exn_store(idx); - } -} -function isLikeNone(x) { - return x === undefined || x === null; -} -function makeMutClosure(arg0, arg1, f) { - const state = { - a: arg0, - b: arg1, - cnt: 1 - }; - const real = (...args) => { - // First up with a closure we increment the internal reference - // count. This ensures that the Rust closure environment won't - // be deallocated while we're invoking it. - state.cnt++; - const a = state.a; - state.a = 0; - try { - return f(a, state.b, ...args); - } finally { - state.a = a; - real._wbg_cb_unref(); - } - }; - real._wbg_cb_unref = () => { - if (--state.cnt === 0) { - wasm.__wbindgen_destroy_closure(state.a, state.b); - state.a = 0; - CLOSURE_DTORS.unregister(state); - } - }; - CLOSURE_DTORS.register(real, state, state); - return real; -} -function passArray8ToWasm0(arg, malloc) { - const ptr = malloc(arg.length * 1, 1) >>> 0; - getUint8ArrayMemory0().set(arg, ptr / 1); - WASM_VECTOR_LEN = arg.length; - return ptr; -} -function passArrayJsValueToWasm0(array, malloc) { - const ptr = malloc(array.length * 4, 4) >>> 0; - for (let i = 0; i < array.length; i++) { - const add = addToExternrefTable0(array[i]); - getDataViewMemory0().setUint32(ptr + 4 * i, add, true); - } - WASM_VECTOR_LEN = array.length; - return ptr; -} -function passStringToWasm0(arg, malloc, realloc) { - if (realloc === undefined) { - const buf = cachedTextEncoder.encode(arg); - const ptr = malloc(buf.length, 1) >>> 0; - getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); - WASM_VECTOR_LEN = buf.length; - return ptr; - } - let len = arg.length; - let ptr = malloc(len, 1) >>> 0; - const mem = getUint8ArrayMemory0(); - let offset = 0; - for (; offset < len; offset++) { - const code = arg.charCodeAt(offset); - if (code > 0x7F) break; - mem[ptr + offset] = code; - } - if (offset !== len) { - if (offset !== 0) { - arg = arg.slice(offset); - } - ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; - const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); - const ret = cachedTextEncoder.encodeInto(arg, view); - offset += ret.written; - ptr = realloc(ptr, len, offset, 1) >>> 0; - } - WASM_VECTOR_LEN = offset; - return ptr; -} -function takeFromExternrefTable0(idx) { - const value = wasm.__wbindgen_externrefs.get(idx); - wasm.__externref_table_dealloc(idx); - return value; -} -let cachedTextDecoder = new TextDecoder('utf-8', { - ignoreBOM: true, - fatal: true -}); -cachedTextDecoder.decode(); -const MAX_SAFARI_DECODE_BYTES = 2146435072; -let numBytesDecoded = 0; -function decodeText(ptr, len) { - numBytesDecoded += len; - if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { - cachedTextDecoder = new TextDecoder('utf-8', { - ignoreBOM: true, - fatal: true - }); - cachedTextDecoder.decode(); - numBytesDecoded = len; - } - return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); -} -const cachedTextEncoder = new TextEncoder(); -if (!('encodeInto' in cachedTextEncoder)) { - cachedTextEncoder.encodeInto = function (arg, view) { - const buf = cachedTextEncoder.encode(arg); - view.set(buf); - return { - read: arg.length, - written: buf.length - }; - }; -} -let WASM_VECTOR_LEN = 0; -let wasm; -function __wbg_set_wasm(val) { - wasm = val; -} \ No newline at end of file diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js deleted file mode 100644 index cd77fb5..0000000 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js +++ /dev/null @@ -1,12182 +0,0 @@ -/** - * A type to encrypt and to decrypt anything that can fit in an - * `Uint8Array`, usually big buffer. - */ -export class Attachment { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - AttachmentFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_attachment_free(ptr, 0); - } - /** - * Decrypt an `EncryptedAttachment`. - * - * The encrypted attachment can be created manually, or from the - * `encrypt` method. - * - * **Warning**: The encrypted attachment can be used only - * **once**! The encrypted data will still be present, but the - * media encryption info (which contain secrets) will be - * destroyed. It is still possible to get a JSON-encoded backup - * by calling `EncryptedAttachment.mediaEncryptionInfo`. - * @param {EncryptedAttachment} attachment - * @returns {Uint8Array} - */ - static decrypt(attachment) { - _assertClass(attachment, EncryptedAttachment); - const ret = wasm.attachment_decrypt(attachment.__wbg_ptr); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Encrypt the content of the `Uint8Array`. - * - * It produces an `EncryptedAttachment`, which can be used to - * retrieve the media encryption information, or the encrypted - * data. - * @param {Uint8Array} array - * @returns {EncryptedAttachment} - */ - static encrypt(array) { - const ptr0 = passArray8ToWasm0(array, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.attachment_encrypt(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return EncryptedAttachment.__wrap(ret[0]); - } -} -if (Symbol.dispose) Attachment.prototype[Symbol.dispose] = Attachment.prototype.free; - -/** - * The private part of the backup key, the one used for recovery. - */ -export class BackupDecryptionKey { - static __wrap(ptr) { - const obj = Object.create(BackupDecryptionKey.prototype); - obj.__wbg_ptr = ptr; - BackupDecryptionKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - BackupDecryptionKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_backupdecryptionkey_free(ptr, 0); - } - /** - * Create a new random [`BackupDecryptionKey`]. - * @returns {BackupDecryptionKey} - */ - static createRandomKey() { - const ret = wasm.backupdecryptionkey_createRandomKey(); - return BackupDecryptionKey.__wrap(ret); - } - /** - * Try to decrypt a message that was encrypted using the public part of the - * backup key. - * @param {string} ephemeral_key - * @param {string} mac - * @param {string} ciphertext - * @returns {string} - */ - decryptV1(ephemeral_key, mac, ciphertext) { - let deferred5_0; - let deferred5_1; - try { - const ptr0 = passStringToWasm0(ephemeral_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(mac, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ptr2 = passStringToWasm0(ciphertext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len2 = WASM_VECTOR_LEN; - const ret = wasm.backupdecryptionkey_decryptV1(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2); - var ptr4 = ret[0]; - var len4 = ret[1]; - if (ret[3]) { - ptr4 = 0; len4 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred5_0 = ptr4; - deferred5_1 = len4; - return getStringFromWasm0(ptr4, len4); - } finally { - wasm.__wbindgen_free(deferred5_0, deferred5_1, 1); - } - } - /** - * Try to create a [`BackupDecryptionKey`] from a base 64 encoded string. - * @param {string} key - * @returns {BackupDecryptionKey} - */ - static fromBase64(key) { - const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.backupdecryptionkey_fromBase64(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return BackupDecryptionKey.__wrap(ret[0]); - } - /** - * Get the public part of the backup key. - * @returns {MegolmV1BackupKey} - */ - get megolmV1PublicKey() { - const ret = wasm.backupdecryptionkey_megolmV1PublicKey(this.__wbg_ptr); - return MegolmV1BackupKey.__wrap(ret); - } - /** - * Convert the backup decryption key to a base 64 encoded string. - * @returns {string} - */ - toBase64() { - const ret = wasm.backupdecryptionkey_toBase64(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) BackupDecryptionKey.prototype[Symbol.dispose] = BackupDecryptionKey.prototype.free; - -/** - * Stored versions of the backup keys. - */ -export class BackupKeys { - static __wrap(ptr) { - const obj = Object.create(BackupKeys.prototype); - obj.__wbg_ptr = ptr; - BackupKeysFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - BackupKeysFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_backupkeys_free(ptr, 0); - } - /** - * The key used to decrypt backed up room keys, encoded as base64 - * - * @deprecated Use `BackupKeys.decryptionKey.toBase64()` - * @returns {string | undefined} - */ - get decryptionKeyBase64() { - const ret = wasm.backupkeys_decryptionKeyBase64(this.__wbg_ptr); - return ret; - } - /** - * The version that we are using for backups. - * @returns {string | undefined} - */ - get backupVersion() { - const ret = wasm.__wbg_get_backupkeys_backupVersion(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The key used to decrypt backed up room keys - * @returns {BackupDecryptionKey | undefined} - */ - get decryptionKey() { - const ret = wasm.__wbg_get_backupkeys_decryptionKey(this.__wbg_ptr); - return ret === 0 ? undefined : BackupDecryptionKey.__wrap(ret); - } - /** - * The version that we are using for backups. - * @param {string | null} [arg0] - */ - set backupVersion(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_backupkeys_backupVersion(this.__wbg_ptr, ptr0, len0); - } - /** - * The key used to decrypt backed up room keys - * @param {BackupDecryptionKey | null} [arg0] - */ - set decryptionKey(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, BackupDecryptionKey); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_backupkeys_decryptionKey(this.__wbg_ptr, ptr0); - } -} -if (Symbol.dispose) BackupKeys.prototype[Symbol.dispose] = BackupKeys.prototype.free; - -/** - * The backup-specific parts of a secrets bundle. - */ -export class BackupSecretsBundle { - static __wrap(ptr) { - const obj = Object.create(BackupSecretsBundle.prototype); - obj.__wbg_ptr = ptr; - BackupSecretsBundleFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - BackupSecretsBundleFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_backupsecretsbundle_free(ptr, 0); - } - /** - * The backup version which this backup decryption key is used with. - * @returns {string} - */ - get backup_version() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_backupsecretsbundle_backup_version(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The backup decryption key, encoded as unpadded base64. - * @returns {string} - */ - get key() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_backupsecretsbundle_key(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The backup version which this backup decryption key is used with. - * @param {string} arg0 - */ - set backup_version(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_backupsecretsbundle_backup_version(this.__wbg_ptr, ptr0, len0); - } - /** - * The backup decryption key, encoded as unpadded base64. - * @param {string} arg0 - */ - set key(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0); - } -} -if (Symbol.dispose) BackupSecretsBundle.prototype[Symbol.dispose] = BackupSecretsBundle.prototype.free; - -/** - * The base64-encoded variant of a {@link PkMessage}. - * - * This can be useful if the encrypted message should be put into JSON. - */ -export class Base64EncodedPkMessage { - static __wrap(ptr) { - const obj = Object.create(Base64EncodedPkMessage.prototype); - obj.__wbg_ptr = ptr; - Base64EncodedPkMessageFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Base64EncodedPkMessageFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_base64encodedpkmessage_free(ptr, 0); - } - /** - * Creates a new base64-encoded encrypted message from its parts. - * @param {string} ciphertext - * @param {string} mac - * @param {string} ephemeral_key - */ - constructor(ciphertext, mac, ephemeral_key) { - const ptr0 = passStringToWasm0(ciphertext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(mac, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ptr2 = passStringToWasm0(ephemeral_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len2 = WASM_VECTOR_LEN; - const ret = wasm.base64encodedpkmessage_new(ptr0, len0, ptr1, len1, ptr2, len2); - this.__wbg_ptr = ret; - Base64EncodedPkMessageFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The base64-encoded ciphertext. - * @returns {string} - */ - get ciphertext() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_base64encodedpkmessage_ciphertext(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base64-encoded ephemeral public key. - * @returns {string} - */ - get ephemeralKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_base64encodedpkmessage_ephemeralKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base64-encoded message authentication code (MAC). - * @returns {string} - */ - get mac() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_base64encodedpkmessage_mac(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base64-encoded ciphertext. - * @param {string} arg0 - */ - set ciphertext(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_base64encodedpkmessage_ciphertext(this.__wbg_ptr, ptr0, len0); - } - /** - * The base64-encoded ephemeral public key. - * @param {string} arg0 - */ - set ephemeralKey(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_base64encodedpkmessage_ephemeralKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The base64-encoded message authentication code (MAC). - * @param {string} arg0 - */ - set mac(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_base64encodedpkmessage_mac(this.__wbg_ptr, ptr0, len0); - } -} -if (Symbol.dispose) Base64EncodedPkMessage.prototype[Symbol.dispose] = Base64EncodedPkMessage.prototype.free; - -/** - * The base dataset that is important to migrate to the Rust SDK. - * - * Can be imported into the rust store with {@link Migration::migrateBaseData}. - */ -export class BaseMigrationData { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - BaseMigrationDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_basemigrationdata_free(ptr, 0); - } - /** - * Create a new `BaseMigrationData` with default values. - */ - constructor() { - const ret = wasm.basemigrationdata_new(); - this.__wbg_ptr = ret; - BaseMigrationDataFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The backup recovery key, as a base64-encoded string. - * @returns {string | undefined} - */ - get backupRecoveryKey() { - const ret = wasm.__wbg_get_basemigrationdata_backupRecoveryKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The backup version that is currently active. - * @returns {string | undefined} - */ - get backupVersion() { - const ret = wasm.__wbg_get_basemigrationdata_backupVersion(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The device ID of the account owner. - * @returns {DeviceId | undefined} - */ - get deviceId() { - const ret = wasm.__wbg_get_basemigrationdata_deviceId(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The pickle string holding the Olm Account, as returned by - * `olm_pickle_account` in libolm. - * @returns {string} - */ - get pickledAccount() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_basemigrationdata_pickledAccount(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The private, base64-encoded, master cross-signing key. - * @returns {string | undefined} - */ - get privateCrossSigningMasterKey() { - const ret = wasm.__wbg_get_basemigrationdata_privateCrossSigningMasterKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The private, base64-encoded, self-signing key. - * @returns {string | undefined} - */ - get privateCrossSigningSelfSigningKey() { - const ret = wasm.__wbg_get_basemigrationdata_privateCrossSigningSelfSigningKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The private, base64-encoded, user-signing key. - * @returns {string | undefined} - */ - get privateCrossSigningUserSigningKey() { - const ret = wasm.__wbg_get_basemigrationdata_privateCrossSigningUserSigningKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The user id of the account owner. - * @returns {UserId | undefined} - */ - get userId() { - const ret = wasm.__wbg_get_basemigrationdata_userId(this.__wbg_ptr); - return ret === 0 ? undefined : UserId.__wrap(ret); - } - /** - * The backup recovery key, as a base64-encoded string. - * @param {string | null} [arg0] - */ - set backupRecoveryKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_backupRecoveryKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The backup version that is currently active. - * @param {string | null} [arg0] - */ - set backupVersion(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_backupVersion(this.__wbg_ptr, ptr0, len0); - } - /** - * The device ID of the account owner. - * @param {DeviceId | null} [arg0] - */ - set deviceId(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, DeviceId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_basemigrationdata_deviceId(this.__wbg_ptr, ptr0); - } - /** - * The pickle string holding the Olm Account, as returned by - * `olm_pickle_account` in libolm. - * @param {string} arg0 - */ - set pickledAccount(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_pickledAccount(this.__wbg_ptr, ptr0, len0); - } - /** - * The private, base64-encoded, master cross-signing key. - * @param {string | null} [arg0] - */ - set privateCrossSigningMasterKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_privateCrossSigningMasterKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The private, base64-encoded, self-signing key. - * @param {string | null} [arg0] - */ - set privateCrossSigningSelfSigningKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_privateCrossSigningSelfSigningKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The private, base64-encoded, user-signing key. - * @param {string | null} [arg0] - */ - set privateCrossSigningUserSigningKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_basemigrationdata_privateCrossSigningUserSigningKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The user id of the account owner. - * @param {UserId | null} [arg0] - */ - set userId(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, UserId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_basemigrationdata_userId(this.__wbg_ptr, ptr0); - } -} -if (Symbol.dispose) BaseMigrationData.prototype[Symbol.dispose] = BaseMigrationData.prototype.free; - -/** - * Information about the cancellation of a verification request or - * verification flow. - */ -export class CancelInfo { - static __wrap(ptr) { - const obj = Object.create(CancelInfo.prototype); - obj.__wbg_ptr = ptr; - CancelInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CancelInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_cancelinfo_free(ptr, 0); - } - /** - * Get the `code` (e.g. `m.user`) that was used to cancel the - * verification. - * @returns {string} - */ - cancelCode() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.cancelinfo_cancelCode(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Was the verification cancelled by us? - * @returns {boolean} - */ - cancelledbyUs() { - const ret = wasm.cancelinfo_cancelledbyUs(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the human readable reason of the cancellation. - * @returns {string} - */ - reason() { - const ret = wasm.cancelinfo_reason(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) CancelInfo.prototype[Symbol.dispose] = CancelInfo.prototype.free; - -/** - * A check code that can be used to confirm that two {@link EstablishedEcies} - * objects share the same secret. This is supposed to be shared out-of-band to - * protect against active Man-in-the-middle (MITM) attacks. - * - * Since the initiator device can always tell whether a MITM attack is in - * progress after channel establishment, this code technically carries only a - * single bit of information, representing whether the initiator has determined - * that the channel is "secure" or "not secure". - * - * However, given this will need to be interactively confirmed by the user, - * there is risk that the user would confirm the dialogue without paying - * attention to its content. By expanding this single bit into a deterministic - * two-digit check code, the user is forced to pay more attention by having to - * enter it instead of just clicking through a dialogue. - */ -export class CheckCode { - static __wrap(ptr) { - const obj = Object.create(CheckCode.prototype); - obj.__wbg_ptr = ptr; - CheckCodeFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CheckCodeFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_checkcode_free(ptr, 0); - } - /** - * Convert the check code to an array of two bytes. - * - * The bytes can be converted to a more user-friendly representation. - * {@link to_digit} and {@link toDigitNoLeadingZero} convert the bytes to a - * two-digit number. - * @returns {Uint8Array} - */ - as_bytes() { - const ret = wasm.checkcode_as_bytes(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Convert the check code to two base-10 numbers, with no leading zero. - * - * This corresponds to the way the digits are defined in - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388}. - * @returns {number} - */ - toDigitNoLeadingZero() { - const ret = wasm.checkcode_toDigitNoLeadingZero(this.__wbg_ptr); - return ret; - } - /** - * Convert the check code to two base-10 numbers, allowing a leading zero. - * - * This corresponds to the way the digits were used in the initial version - * of {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4108 MSC4108}. - * See {@link toDigitNoLeadingZero} for a more recent implementation. - * - * The number should be displayed with a leading 0 in case the first digit - * is a 0. - * @returns {number} - */ - to_digit() { - const ret = wasm.checkcode_to_digit(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) CheckCode.prototype[Symbol.dispose] = CheckCode.prototype.free; - -/** - * Strategy to collect the devices that should receive room keys for the - * current discussion. - */ -export class CollectStrategy { - static __wrap(ptr) { - const obj = Object.create(CollectStrategy.prototype); - obj.__wbg_ptr = ptr; - CollectStrategyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CollectStrategyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_collectstrategy_free(ptr, 0); - } - /** - * Share with all (unblacklisted) devices. - * @returns {CollectStrategy} - */ - static allDevices() { - const ret = wasm.collectstrategy_allDevices(); - return CollectStrategy.__wrap(ret); - } - /** - * Device based sharing strategy. - * - * @deprecated: use one of {@link allDevices}, {@link - * errorOnUnverifiedUserProblem} or {@link onlyTrustedDevices}. - * @param {boolean} only_allow_trusted_devices - * @param {boolean} error_on_verified_user_problem - * @returns {CollectStrategy} - */ - static deviceBasedStrategy(only_allow_trusted_devices, error_on_verified_user_problem) { - const ret = wasm.collectstrategy_deviceBasedStrategy(only_allow_trusted_devices, error_on_verified_user_problem); - return CollectStrategy.__wrap(ret); - } - /** - * Tests for equality between two [`CollectStrategy`]s. - * @param {CollectStrategy} other - * @returns {boolean} - */ - eq(other) { - _assertClass(other, CollectStrategy); - const ret = wasm.collectstrategy_eq(this.__wbg_ptr, other.__wbg_ptr); - return ret !== 0; - } - /** - * Share with all devices, except that errors for *verified* users cause - * sharing to fail with an error. - * - * In this strategy, if a verified user has an unsigned device, or - * a verified user has replaced their identity, key - * sharing will fail with an error. - * - * Otherwise, keys are shared with unsigned devices as normal. - * - * Once the problematic devices are blacklisted or whitelisted the - * caller can try sharing a second time. - * @returns {CollectStrategy} - */ - static errorOnUnverifiedUserProblem() { - const ret = wasm.collectstrategy_errorOnUnverifiedUserProblem(); - return CollectStrategy.__wrap(ret); - } - /** - * Share based on identity. Only distribute to devices signed by their - * owner. If a user has no published identity he will not receive - * any room keys. - * @returns {CollectStrategy} - */ - static identityBasedStrategy() { - const ret = wasm.collectstrategy_identityBasedStrategy(); - return CollectStrategy.__wrap(ret); - } - /** - * Only share keys with devices that we "trust". A device is trusted if any - * of the following is true: - * - It was manually marked as trusted. - * - It was marked as verified via interactive verification. - * - It is signed by its owner identity, and this identity has been - * trusted via interactive verification. - * - It is the current own device of the user. - * @returns {CollectStrategy} - */ - static onlyTrustedDevices() { - const ret = wasm.collectstrategy_onlyTrustedDevices(); - return CollectStrategy.__wrap(ret); - } -} -if (Symbol.dispose) CollectStrategy.prototype[Symbol.dispose] = CollectStrategy.prototype.free; - -/** - * A set of requests to be executed when bootstrapping cross-signing using - * {@link OlmMachine.bootstrapCrossSigning}. - */ -export class CrossSigningBootstrapRequests { - static __wrap(ptr) { - const obj = Object.create(CrossSigningBootstrapRequests.prototype); - obj.__wbg_ptr = ptr; - CrossSigningBootstrapRequestsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CrossSigningBootstrapRequestsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_crosssigningbootstraprequests_free(ptr, 0); - } - /** - * An optional request to upload a device key. - * - * This will either be `undefined`, or an "outgoing request" as returned by - * {@link OlmMachine.outgoingRequests}. - * - * If it is defined, the request should be sent first, and the result sent - * back with {@link OlmMachine.markRequestAsSent}. - * @returns {any} - */ - get uploadKeysRequest() { - const ret = wasm.__wbg_get_crosssigningbootstraprequests_uploadKeysRequest(this.__wbg_ptr); - return ret; - } - /** - * Request to upload key signatures, including those for the cross-signing - * keys, and maybe some for the optional uploaded key too. - * - * Should be sent last. - * @returns {SignatureUploadRequest} - */ - get uploadSignaturesRequest() { - const ret = wasm.__wbg_get_crosssigningbootstraprequests_uploadSignaturesRequest(this.__wbg_ptr); - return SignatureUploadRequest.__wrap(ret); - } - /** - * Request to upload the cross-signing keys. - * - * Should be sent second. - * @returns {UploadSigningKeysRequest} - */ - get uploadSigningKeysRequest() { - const ret = wasm.__wbg_get_crosssigningbootstraprequests_uploadSigningKeysRequest(this.__wbg_ptr); - return UploadSigningKeysRequest.__wrap(ret); - } -} -if (Symbol.dispose) CrossSigningBootstrapRequests.prototype[Symbol.dispose] = CrossSigningBootstrapRequests.prototype.free; - -/** - * A struct containing private cross signing keys that can be backed - * up or uploaded to the secret store. - */ -export class CrossSigningKeyExport { - static __wrap(ptr) { - const obj = Object.create(CrossSigningKeyExport.prototype); - obj.__wbg_ptr = ptr; - CrossSigningKeyExportFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CrossSigningKeyExportFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_crosssigningkeyexport_free(ptr, 0); - } - /** - * The seed of the master key encoded as unpadded base64. - * @returns {string | undefined} - */ - get masterKey() { - const ret = wasm.crosssigningkeyexport_masterKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The seed of the self signing key encoded as unpadded base64. - * @returns {string | undefined} - */ - get self_signing_key() { - const ret = wasm.crosssigningkeyexport_self_signing_key(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The seed of the user signing key encoded as unpadded base64. - * @returns {string | undefined} - */ - get userSigningKey() { - const ret = wasm.crosssigningkeyexport_userSigningKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } -} -if (Symbol.dispose) CrossSigningKeyExport.prototype[Symbol.dispose] = CrossSigningKeyExport.prototype.free; - -/** - * Struct representing the state of our private cross signing keys, - * it shows which private cross signing keys we have locally stored. - */ -export class CrossSigningStatus { - static __wrap(ptr) { - const obj = Object.create(CrossSigningStatus.prototype); - obj.__wbg_ptr = ptr; - CrossSigningStatusFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - CrossSigningStatusFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_crosssigningstatus_free(ptr, 0); - } - /** - * Do we have the master key? - * @returns {boolean} - */ - get hasMaster() { - const ret = wasm.crosssigningstatus_hasMaster(this.__wbg_ptr); - return ret !== 0; - } - /** - * Do we have the self signing key? This one is necessary to sign - * our own devices. - * @returns {boolean} - */ - get hasSelfSigning() { - const ret = wasm.crosssigningstatus_hasSelfSigning(this.__wbg_ptr); - return ret !== 0; - } - /** - * Do we have the user signing key? This one is necessary to sign - * other users. - * @returns {boolean} - */ - get hasUserSigning() { - const ret = wasm.crosssigningstatus_hasUserSigning(this.__wbg_ptr); - return ret !== 0; - } -} -if (Symbol.dispose) CrossSigningStatus.prototype[Symbol.dispose] = CrossSigningStatus.prototype.free; - -/** - * A Curve25519 public key. - */ -export class Curve25519PublicKey { - static __wrap(ptr) { - const obj = Object.create(Curve25519PublicKey.prototype); - obj.__wbg_ptr = ptr; - Curve25519PublicKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Curve25519PublicKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_curve25519publickey_free(ptr, 0); - } - /** - * The number of bytes a Curve25519 public key has. - * @returns {number} - */ - get length() { - const ret = wasm.curve25519publickey_length(this.__wbg_ptr); - return ret >>> 0; - } - /** - * Create a new [`Curve25519PublicKey`] from a base64 encoded string. - * @param {string} key - */ - constructor(key) { - const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.curve25519publickey_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - Curve25519PublicKeyFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Serialize an Curve25519 public key to an unpadded base64 - * representation. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.curve25519publickey_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) Curve25519PublicKey.prototype[Symbol.dispose] = Curve25519PublicKey.prototype.free; - -/** - * A Curve25519 secret key. - */ -export class Curve25519SecretKey { - static __wrap(ptr) { - const obj = Object.create(Curve25519SecretKey.prototype); - obj.__wbg_ptr = ptr; - Curve25519SecretKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Curve25519SecretKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_curve25519secretkey_free(ptr, 0); - } - /** - * Creates a `Curve25519SecretKey` from a base64-encoded representation of - * the key. - * @param {string} string - * @returns {Curve25519SecretKey} - */ - static fromBase64(string) { - const ptr0 = passStringToWasm0(string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.curve25519secretkey_fromBase64(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return Curve25519SecretKey.__wrap(ret[0]); - } - /** - * Creates a `Curve25519SecretKey` from a raw byte slice. - * @param {Uint8Array} slice - * @returns {Curve25519SecretKey} - */ - static fromUint8Array(slice) { - const ptr0 = passArray8ToWasm0(slice, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.curve25519secretkey_fromUint8Array(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return Curve25519SecretKey.__wrap(ret[0]); - } - /** - * Generates a new random Curve25519 secret key. - * @returns {Curve25519SecretKey} - */ - static new() { - const ret = wasm.curve25519secretkey_new(); - return Curve25519SecretKey.__wrap(ret); - } - /** - * Encodes the secret key into a base64 string. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.curve25519secretkey_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Converts the secret key into a raw byte vector. - * @returns {Uint8Array} - */ - toUint8Array() { - const ret = wasm.curve25519secretkey_toUint8Array(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } -} -if (Symbol.dispose) Curve25519SecretKey.prototype[Symbol.dispose] = Curve25519SecretKey.prototype.free; - -/** - * A decrypted room event. - */ -export class DecryptedRoomEvent { - static __wrap(ptr) { - const obj = Object.create(DecryptedRoomEvent.prototype); - obj.__wbg_ptr = ptr; - DecryptedRoomEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DecryptedRoomEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_decryptedroomevent_free(ptr, 0); - } - /** - * If the keys for this message were shared-on-invite as part of an - * [MSC4268] key bundle, the ID of the user who sent us the bundle. - * - * [MSC4268]: https://github.com/matrix-org/matrix-spec-proposals/pull/4268 - * @returns {UserId | undefined} - */ - get forwarder() { - const ret = wasm.decryptedroomevent_forwarder(this.__wbg_ptr); - return ret === 0 ? undefined : UserId.__wrap(ret); - } - /** - * If the keys for this message were shared-on-invite as part of an - * [MSC4268] key bundle, the ID of the device from which this bundle - * was sent. - * - * [MSC4268]: https://github.com/matrix-org/matrix-spec-proposals/pull/4268 - * @returns {DeviceId | undefined} - */ - get forwarderDevice() { - const ret = wasm.decryptedroomevent_forwarderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * Returns an empty array - * - * Previously, this returned the chain of Curve25519 keys through which - * this session was forwarded, via `m.forwarded_room_key` events. - * However, that is not cryptographically reliable, and clients should not - * be using it. - * - * @see https://github.com/matrix-org/matrix-spec/issues/1089 - * @returns {string[]} - */ - get forwardingCurve25519KeyChain() { - const ret = wasm.decryptedroomevent_forwardingCurve25519KeyChain(this.__wbg_ptr); - return ret; - } - /** - * The user ID of the event sender, note this is untrusted data - * unless the `verification_state` is as well trusted. - * @returns {UserId} - */ - get sender() { - const ret = wasm.decryptedroomevent_sender(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The signing Ed25519 key that have created the megolm key that - * was used to decrypt this session. - * @returns {string | undefined} - */ - get senderClaimedEd25519Key() { - const ret = wasm.decryptedroomevent_senderClaimedEd25519Key(this.__wbg_ptr); - return ret; - } - /** - * The Curve25519 key of the device that created the megolm - * decryption key originally. - * @returns {string} - */ - get senderCurve25519Key() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.decryptedroomevent_senderCurve25519Key(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The device ID of the device that sent us the event, note this - * is untrusted data unless `verification_state` is as well - * trusted. - * @returns {DeviceId | undefined} - */ - get senderDevice() { - const ret = wasm.decryptedroomevent_senderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The verification state of the device that sent us the event. - * Note this is the state of the device at the time of - * decryption. It may change in the future if a device gets - * verified or deleted. - * @param {boolean} strict - * @returns {ShieldState} - */ - shieldState(strict) { - const ret = wasm.decryptedroomevent_shieldState(this.__wbg_ptr, strict); - return ShieldState.__wrap(ret); - } - /** - * The JSON-encoded decrypted event. - * @returns {string} - */ - get event() { - const ret = wasm.__wbg_get_decryptedroomevent_event(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) DecryptedRoomEvent.prototype[Symbol.dispose] = DecryptedRoomEvent.prototype.free; - -/** - * Represents an encrypted to-device event, after it has been decrypted. - */ -export class DecryptedToDeviceEvent { - static __wrap(ptr) { - const obj = Object.create(DecryptedToDeviceEvent.prototype); - obj.__wbg_ptr = ptr; - DecryptedToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DecryptedToDeviceEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_decryptedtodeviceevent_free(ptr, 0); - } - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.Decrypted} for this type. - * @returns {ProcessedToDeviceEventType} - */ - get type() { - const ret = wasm.decryptedtodeviceevent_type(this.__wbg_ptr); - return ret; - } - /** - * The encryption information for the event. - * @returns {ToDeviceEncryptionInfo} - */ - get encryptionInfo() { - const ret = wasm.__wbg_get_decryptedtodeviceevent_encryptionInfo(this.__wbg_ptr); - return ToDeviceEncryptionInfo.__wrap(ret); - } - /** - * The decrypted event, as if it had been sent in the clear, encoded as - * JSON. - * - * Typically contains properties `type`, `sender` and `content`. - * - * (For room keys or secrets, some part of the content might have been - * zeroized). - * @returns {string} - */ - get rawEvent() { - const ret = wasm.__wbg_get_decryptedtodeviceevent_rawEvent(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) DecryptedToDeviceEvent.prototype[Symbol.dispose] = DecryptedToDeviceEvent.prototype.free; - -/** - * Decryption error codes - * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7} - */ -export const DecryptionErrorCode = Object.freeze({ - /** - * The room key is not known - */ - MissingRoomKey: 0, "0": "MissingRoomKey", - /** - * The room key is known but ratcheted - */ - UnknownMessageIndex: 1, "1": "UnknownMessageIndex", - /** - * Decryption failed because of a mismatch between the identity keys of the - * device we received the room key from and the identity keys recorded in - * the plaintext of the room key to-device message. - */ - MismatchedIdentityKeys: 2, "2": "MismatchedIdentityKeys", - /** - * We weren't able to link the message back to any known device. - */ - UnknownSenderDevice: 3, "3": "UnknownSenderDevice", - /** - * The sender device is not cross-signed. - */ - UnsignedSenderDevice: 4, "4": "UnsignedSenderDevice", - /** - * The sender's identity is unverified, but was previously verified. - */ - SenderIdentityVerificationViolation: 5, "5": "SenderIdentityVerificationViolation", - /** - * Other failure. - */ - UnableToDecrypt: 6, "6": "UnableToDecrypt", - /** - * The `sender` field on the event does not match the owner of the device - * that established the Megolm session. - */ - MismatchedSender: 7, "7": "MismatchedSender", -}); - -/** - * Settings for decrypting messages - */ -export class DecryptionSettings { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DecryptionSettingsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_decryptionsettings_free(ptr, 0); - } - /** - * Create a new `DecryptionSettings` with the given trust requirement. - * @param {TrustRequirement} sender_device_trust_requirement - */ - constructor(sender_device_trust_requirement) { - const ret = wasm.decryptionsettings_new(sender_device_trust_requirement); - this.__wbg_ptr = ret; - DecryptionSettingsFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The trust level required to decrypt the event - * @returns {TrustRequirement} - */ - get sender_device_trust_requirement() { - const ret = wasm.__wbg_get_decryptionsettings_sender_device_trust_requirement(this.__wbg_ptr); - return ret; - } - /** - * The trust level required to decrypt the event - * @param {TrustRequirement} arg0 - */ - set sender_device_trust_requirement(arg0) { - wasm.__wbg_set_decryptionsettings_sender_device_trust_requirement(this.__wbg_ptr, arg0); - } -} -if (Symbol.dispose) DecryptionSettings.prototype[Symbol.dispose] = DecryptionSettings.prototype.free; - -/** - * A dehydrated device that can be uploaded to the server - */ -export class DehydratedDevice { - static __wrap(ptr) { - const obj = Object.create(DehydratedDevice.prototype); - obj.__wbg_ptr = ptr; - DehydratedDeviceFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DehydratedDeviceFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_dehydrateddevice_free(ptr, 0); - } - /** - * Create the request to upload the dehydrated device - * @param {string} initial_device_display_name - * @param {DehydratedDeviceKey} dehydrated_device_key - * @returns {Promise} - */ - keysForUpload(initial_device_display_name, dehydrated_device_key) { - _assertClass(dehydrated_device_key, DehydratedDeviceKey); - const ret = wasm.dehydrateddevice_keysForUpload(this.__wbg_ptr, initial_device_display_name, dehydrated_device_key.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) DehydratedDevice.prototype[Symbol.dispose] = DehydratedDevice.prototype.free; - -/** - * Dehydrated device key - */ -export class DehydratedDeviceKey { - static __wrap(ptr) { - const obj = Object.create(DehydratedDeviceKey.prototype); - obj.__wbg_ptr = ptr; - DehydratedDeviceKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DehydratedDeviceKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_dehydrateddevicekey_free(ptr, 0); - } - /** - * Generates a dehydrated device key from a given array. - * @param {Uint8Array} array - * @returns {DehydratedDeviceKey} - */ - static createKeyFromArray(array) { - const ret = wasm.dehydrateddevicekey_createKeyFromArray(array); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return DehydratedDeviceKey.__wrap(ret[0]); - } - /** - * Generates a new random dehydrated device key. - * @returns {DehydratedDeviceKey} - */ - static createRandomKey() { - const ret = wasm.dehydrateddevicekey_createRandomKey(); - return DehydratedDeviceKey.__wrap(ret); - } - /** - * Convert the dehydrated device key to a base64-encoded string. - * @returns {string} - */ - toBase64() { - const ret = wasm.dehydrateddevicekey_toBase64(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) DehydratedDeviceKey.prototype[Symbol.dispose] = DehydratedDeviceKey.prototype.free; - -/** - * Struct collecting methods to create and rehydrate dehydrated devices. - */ -export class DehydratedDevices { - static __wrap(ptr) { - const obj = Object.create(DehydratedDevices.prototype); - obj.__wbg_ptr = ptr; - DehydratedDevicesFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DehydratedDevicesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_dehydrateddevices_free(ptr, 0); - } - /** - * Create a new {@link DehydratedDevice} which can be uploaded to the - * server. - * @returns {Promise} - */ - create() { - const ret = wasm.dehydrateddevices_create(this.__wbg_ptr); - return ret; - } - /** - * Clear the dehydrated device key saved in the crypto store. - * @returns {Promise} - */ - deleteDehydratedDeviceKey() { - const ret = wasm.dehydrateddevices_deleteDehydratedDeviceKey(this.__wbg_ptr); - return ret; - } - /** - * Get the cached dehydrated device key if any. - * - * `None` if the key was not previously cached (via - * {@link DehydratedDevices.saveDehydratedDeviceKey}). - * @returns {Promise} - */ - getDehydratedDeviceKey() { - const ret = wasm.dehydrateddevices_getDehydratedDeviceKey(this.__wbg_ptr); - return ret; - } - /** - * Rehydrate a dehydrated device. - * @param {DehydratedDeviceKey} dehydrated_device_key - * @param {DeviceId} device_id - * @param {string} device_data - * @returns {Promise} - */ - rehydrate(dehydrated_device_key, device_id, device_data) { - _assertClass(dehydrated_device_key, DehydratedDeviceKey); - _assertClass(device_id, DeviceId); - const ptr0 = passStringToWasm0(device_data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.dehydrateddevices_rehydrate(this.__wbg_ptr, dehydrated_device_key.__wbg_ptr, device_id.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Store the dehydrated device key in the crypto store. - * @param {DehydratedDeviceKey} dehydrated_device_key - * @returns {Promise} - */ - saveDehydratedDeviceKey(dehydrated_device_key) { - _assertClass(dehydrated_device_key, DehydratedDeviceKey); - const ret = wasm.dehydrateddevices_saveDehydratedDeviceKey(this.__wbg_ptr, dehydrated_device_key.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) DehydratedDevices.prototype[Symbol.dispose] = DehydratedDevices.prototype.free; - -/** - * A device represents a E2EE capable client of an user. - */ -export class Device { - static __wrap(ptr) { - const obj = Object.create(Device.prototype); - obj.__wbg_ptr = ptr; - DeviceFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_device_free(ptr, 0); - } - /** - * Get the list of algorithms this device supports. - * - * Returns `Array`. - * @returns {EncryptionAlgorithm[]} - */ - get algorithms() { - const ret = wasm.device_algorithms(this.__wbg_ptr); - return ret; - } - /** - * Get the Curve25519 key of the given device. - * @returns {Curve25519PublicKey | undefined} - */ - get curve25519Key() { - const ret = wasm.device_curve25519Key(this.__wbg_ptr); - return ret === 0 ? undefined : Curve25519PublicKey.__wrap(ret); - } - /** - * The unique ID of the device. - * @returns {DeviceId} - */ - get deviceId() { - const ret = wasm.device_deviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Get the human readable name of the device. - * @returns {string | undefined} - */ - get displayName() { - const ret = wasm.device_displayName(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Get the Ed25519 key of the given device. - * @returns {Ed25519PublicKey | undefined} - */ - get ed25519Key() { - const ret = wasm.device_ed25519Key(this.__wbg_ptr); - return ret === 0 ? undefined : Ed25519PublicKey.__wrap(ret); - } - /** - * Encrypt a to-device message to be sent to this device, using Olm - * encryption. - * - * Prior to calling this method you must ensure that an Olm session is - * available for the target device. This can be done by calling - * {@link OlmMachine.getMissingSessions}. - * - * The caller is responsible for sending the encrypted - * event to the target device. If multiple messages are - * encrypted for the same device using this method they should be sent in - * the same order as they are encrypted. - * - * # Returns - * - * Returns a promise for a JSON string containing the `content` of an - * encrypted event, which be used to create the payload for a - * `/sendToDevice` API. - * @param {string} event_type - * @param {any} content - * @param {CollectStrategy | null} [share_strategy] - * @returns {Promise} - */ - encryptToDeviceEvent(event_type, content, share_strategy) { - const ptr0 = passStringToWasm0(event_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - let ptr1 = 0; - if (!isLikeNone(share_strategy)) { - _assertClass(share_strategy, CollectStrategy); - ptr1 = share_strategy.__destroy_into_raw(); - } - const ret = wasm.device_encryptToDeviceEvent(this.__wbg_ptr, ptr0, len0, content, ptr1); - return ret; - } - /** - * Timestamp representing the first time this device has been seen (in - * milliseconds). - * @returns {bigint} - */ - firstTimeSeen() { - const ret = wasm.device_firstTimeSeen(this.__wbg_ptr); - return BigInt.asUintN(64, ret); - } - /** - * Get the key of the given key algorithm belonging to this device. - * @param {DeviceKeyAlgorithmName} algorithm - * @returns {DeviceKey | undefined} - */ - getKey(algorithm) { - const ret = wasm.device_getKey(this.__wbg_ptr, algorithm); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return ret[0] === 0 ? undefined : DeviceKey.__wrap(ret[0]); - } - /** - * Is the device locally marked as blacklisted? - * - * Blacklisted devices won’t receive any group sessions. - * @returns {boolean} - */ - isBlacklisted() { - const ret = wasm.device_isBlacklisted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this device cross-signed by its owner? - * @returns {boolean} - */ - isCrossSignedByOwner() { - const ret = wasm.device_isCrossSignedByOwner(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this device considered to be verified using cross signing. - * @returns {boolean} - */ - isCrossSigningTrusted() { - const ret = wasm.device_isCrossSigningTrusted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Whether or not the device is a dehydrated device. - * @returns {boolean} - */ - get isDehydrated() { - const ret = wasm.device_isDehydrated(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the device deleted? - * @returns {boolean} - */ - isDeleted() { - const ret = wasm.device_isDeleted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the device locally marked as trusted? - * @returns {boolean} - */ - isLocallyTrusted() { - const ret = wasm.device_isLocallyTrusted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this device considered to be verified. - * - * This method returns true if either the `is_locally_trusted` - * method returns `true` or if the `is_cross_signing_trusted` - * method returns `true`. - * @returns {boolean} - */ - isVerified() { - const ret = wasm.device_isVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get a map containing all the device keys. - * @returns {Map} - */ - get keys() { - const ret = wasm.device_keys(this.__wbg_ptr); - return ret; - } - /** - * Get the trust state of the device. - * @returns {LocalTrust} - */ - get localTrustState() { - const ret = wasm.device_localTrustState(this.__wbg_ptr); - return ret; - } - /** - * Request an interactive verification with this device. - * - * Returns a 2-element array `[VerificationRequest, ToDeviceRequest]`. - * @param {VerificationMethod[]} [methods] - * @returns {[VerificationRequest, ToDeviceRequest]} - */ - requestVerification(methods) { - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.device_requestVerification(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Set the local trust state of the device to the given state. - * - * This won’t affect any cross signing trust state, this only - * sets a flag marking to have the given trust state. - * - * `trust_state` represents the new trust state that should be - * set for the device. - * @param {LocalTrust} local_state - * @returns {Promise} - */ - setLocalTrust(local_state) { - const ret = wasm.device_setLocalTrust(this.__wbg_ptr, local_state); - return ret; - } - /** - * Get a map containing all the device signatures. - * @returns {Signatures} - */ - get signatures() { - const ret = wasm.device_signatures(this.__wbg_ptr); - return Signatures.__wrap(ret); - } - /** - * The user ID of the device owner. - * @returns {UserId} - */ - get userId() { - const ret = wasm.device_userId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Mark this device as verified. - * Works only if the device is owned by the current user. - * - * Returns a signature upload request that needs to be sent out. - * @returns {Promise} - */ - verify() { - const ret = wasm.device_verify(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) Device.prototype[Symbol.dispose] = Device.prototype.free; - -/** - * A Matrix key ID. - * - * Device identifiers in Matrix are completely opaque character - * sequences. This type is provided simply for its semantic value. - */ -export class DeviceId { - static __wrap(ptr) { - const obj = Object.create(DeviceId.prototype); - obj.__wbg_ptr = ptr; - DeviceIdFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_deviceid_free(ptr, 0); - } - /** - * Create a new `DeviceId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.deviceid_new(ptr0, len0); - this.__wbg_ptr = ret; - DeviceIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Return the device ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.deviceid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) DeviceId.prototype[Symbol.dispose] = DeviceId.prototype.free; - -/** - * An enum over the different key types a device can have. - * - * Currently devices have a curve25519 and ed25519 keypair. The keys - * transport format is a base64 encoded string, any unknown key type - * will be left as such a string. - */ -export class DeviceKey { - static __wrap(ptr) { - const obj = Object.create(DeviceKey.prototype); - obj.__wbg_ptr = ptr; - DeviceKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_devicekey_free(ptr, 0); - } - /** - * Get the value associated to the `Curve25519` device key name. - * @returns {Curve25519PublicKey | undefined} - */ - get curve25519() { - const ret = wasm.devicekey_curve25519(this.__wbg_ptr); - return ret === 0 ? undefined : Curve25519PublicKey.__wrap(ret); - } - /** - * Get the value associated to the `Ed25519` device key name. - * @returns {Ed25519PublicKey | undefined} - */ - get ed25519() { - const ret = wasm.devicekey_ed25519(this.__wbg_ptr); - return ret === 0 ? undefined : Ed25519PublicKey.__wrap(ret); - } - /** - * Get the name of the device key. - * @returns {DeviceKeyName} - */ - get name() { - const ret = wasm.devicekey_name(this.__wbg_ptr); - return ret; - } - /** - * Convert the `DeviceKey` into a base64 encoded string. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.devicekey_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Get the value associated to the `Unknown` device key name. - * @returns {string | undefined} - */ - get unknown() { - const ret = wasm.devicekey_unknown(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } -} -if (Symbol.dispose) DeviceKey.prototype[Symbol.dispose] = DeviceKey.prototype.free; - -/** - * The basic key algorithms in the specification. - */ -export class DeviceKeyAlgorithm { - static __wrap(ptr) { - const obj = Object.create(DeviceKeyAlgorithm.prototype); - obj.__wbg_ptr = ptr; - DeviceKeyAlgorithmFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceKeyAlgorithmFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_devicekeyalgorithm_free(ptr, 0); - } - /** - * Read the device key algorithm's name. If the name is - * `Unknown`, one may be interested by the `to_string` method to - * read the original name. - * @returns {DeviceKeyAlgorithmName} - */ - get name() { - const ret = wasm.devicekeyalgorithm_name(this.__wbg_ptr); - return ret; - } - /** - * Return the device key algorithm as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.devicekeyalgorithm_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) DeviceKeyAlgorithm.prototype[Symbol.dispose] = DeviceKeyAlgorithm.prototype.free; - -/** - * The basic key algorithm names in the specification. - * @enum {0 | 1 | 3} - */ -export const DeviceKeyAlgorithmName = Object.freeze({ - /** - * The Ed25519 signature algorithm. - */ - Ed25519: 0, "0": "Ed25519", - /** - * The Curve25519 ECDH algorithm. - */ - Curve25519: 1, "1": "Curve25519", - /** - * An unknown device key algorithm. - */ - Unknown: 3, "3": "Unknown", -}); - -/** - * A Matrix device key ID. - * - * A key algorithm and a device ID, combined with a ‘:’. - */ -export class DeviceKeyId { - static __wrap(ptr) { - const obj = Object.create(DeviceKeyId.prototype); - obj.__wbg_ptr = ptr; - DeviceKeyIdFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceKeyIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_devicekeyid_free(ptr, 0); - } - /** - * Returns key algorithm of the device key ID. - * @returns {DeviceKeyAlgorithm} - */ - get algorithm() { - const ret = wasm.devicekeyid_algorithm(this.__wbg_ptr); - return DeviceKeyAlgorithm.__wrap(ret); - } - /** - * Returns device ID of the device key ID. - * @returns {DeviceId} - */ - get deviceId() { - const ret = wasm.devicekeyid_deviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Parse/validate and create a new `DeviceKeyId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.devicekeyid_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - DeviceKeyIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Return the device key ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.devicekeyid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) DeviceKeyId.prototype[Symbol.dispose] = DeviceKeyId.prototype.free; - -/** - * An enum over the different key types a device can have. - * - * Currently devices have a curve25519 and ed25519 keypair. The keys - * transport format is a base64 encoded string, any unknown key type - * will be left as such a string. - * @enum {0 | 1 | 2} - */ -export const DeviceKeyName = Object.freeze({ - /** - * The curve25519 device key. - */ - Curve25519: 0, "0": "Curve25519", - /** - * The ed25519 device key. - */ - Ed25519: 1, "1": "Ed25519", - /** - * An unknown device key. - */ - Unknown: 2, "2": "Unknown", -}); - -/** - * Information on E2E device updates. - */ -export class DeviceLists { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - DeviceListsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_devicelists_free(ptr, 0); - } - /** - * List of users who have updated their device identity keys or - * who now share an encrypted room with the client since the - * previous sync - * @returns {UserId[]} - */ - get changed() { - const ret = wasm.devicelists_changed(this.__wbg_ptr); - var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - return v1; - } - /** - * Returns true if there are no device list updates. - * @returns {boolean} - */ - isEmpty() { - const ret = wasm.devicelists_isEmpty(this.__wbg_ptr); - return ret !== 0; - } - /** - * List of users who no longer share encrypted rooms since the - * previous sync response. - * @returns {UserId[]} - */ - get left() { - const ret = wasm.devicelists_left(this.__wbg_ptr); - var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - return v1; - } - /** - * Create an empty `DeviceLists`. - * - * `changed` and `left` must be an array of `UserId`. - * - * Items inside `changed` and `left` will be invalidated by this method. Be - * careful not to use the `UserId`s after this method has been called. - * @param {UserId[] | null} [changed] - * @param {UserId[] | null} [left] - */ - constructor(changed, left) { - var ptr0 = isLikeNone(changed) ? 0 : passArrayJsValueToWasm0(changed, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(left) ? 0 : passArrayJsValueToWasm0(left, wasm.__wbindgen_malloc); - var len1 = WASM_VECTOR_LEN; - const ret = wasm.devicelists_new(ptr0, len0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - DeviceListsFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -if (Symbol.dispose) DeviceLists.prototype[Symbol.dispose] = DeviceLists.prototype.free; - -/** - * An unestablished ECIES session. - */ -export class Ecies { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EciesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_ecies_free(ptr, 0); - } - /** - * Create a [`EstablishedEcies`] from an initial message encrypted by the - * other side. - * @param {string} initial_message - * @returns {InboundCreationResult} - */ - establish_inbound_channel(initial_message) { - const ptr0 = passStringToWasm0(initial_message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.ecies_establish_inbound_channel(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return InboundCreationResult.__wrap(ret[0]); - } - /** - * Create an [`EstablishedEcies`] session using the other side's Curve25519 - * public key and an initial plaintext. - * - * After the channel has been established, we can encrypt messages to send - * to the other side. The other side uses the initial message to - * establishes the same channel on its side. - * @param {Curve25519PublicKey} public_key - * @param {string} initial_message - * @returns {OutboundCreationResult} - */ - establish_outbound_channel(public_key, initial_message) { - _assertClass(public_key, Curve25519PublicKey); - const ptr0 = passStringToWasm0(initial_message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.ecies_establish_outbound_channel(this.__wbg_ptr, public_key.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return OutboundCreationResult.__wrap(ret[0]); - } - /** - * Create a new, random, unestablished ECIES session. - * - * This method will use the - * [`MATRIX_QR_CODE_LOGIN`](https://github.com/matrix-org/matrix-spec-proposals/pull/4108) - * info for domain separation when creating the session. - */ - constructor() { - const ret = wasm.ecies_new(); - this.__wbg_ptr = ret; - EciesFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get our [`Curve25519PublicKey`]. - * - * This public key needs to be sent to the other side to be able to - * establish an ECIES channel. - * @returns {Curve25519PublicKey} - */ - public_key() { - const ret = wasm.ecies_public_key(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } -} -if (Symbol.dispose) Ecies.prototype[Symbol.dispose] = Ecies.prototype.free; - -/** - * An Ed25519 public key, used to verify digital signatures. - */ -export class Ed25519PublicKey { - static __wrap(ptr) { - const obj = Object.create(Ed25519PublicKey.prototype); - obj.__wbg_ptr = ptr; - Ed25519PublicKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Ed25519PublicKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_ed25519publickey_free(ptr, 0); - } - /** - * The number of bytes an Ed25519 public key has. - * @returns {number} - */ - get length() { - const ret = wasm.ed25519publickey_length(this.__wbg_ptr); - return ret >>> 0; - } - /** - * Serialize an Ed25519 public key to an unpadded base64 - * representation. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.ed25519publickey_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) Ed25519PublicKey.prototype[Symbol.dispose] = Ed25519PublicKey.prototype.free; - -/** - * An Ed25519 digital signature, can be used to verify the - * authenticity of a message. - */ -export class Ed25519Signature { - static __wrap(ptr) { - const obj = Object.create(Ed25519Signature.prototype); - obj.__wbg_ptr = ptr; - Ed25519SignatureFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Ed25519SignatureFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_ed25519signature_free(ptr, 0); - } - /** - * Try to create an Ed25519 signature from an unpadded base64 - * representation. - * @param {string} signature - */ - constructor(signature) { - const ptr0 = passStringToWasm0(signature, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.ed25519signature_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - Ed25519SignatureFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Serialize a Ed25519 signature to an unpadded base64 - * representation. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.ed25519signature_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) Ed25519Signature.prototype[Symbol.dispose] = Ed25519Signature.prototype.free; - -/** - * An emoji that is used for interactive verification using a short - * auth string. - * - * This will contain a single emoji and description from the list of - * emojis from [the specification]. - * - * [the specification]: https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji - */ -export class Emoji { - static __wrap(ptr) { - const obj = Object.create(Emoji.prototype); - obj.__wbg_ptr = ptr; - EmojiFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EmojiFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_emoji_free(ptr, 0); - } - /** - * The description of the emoji, for example ‘Dog’. - * @returns {string} - */ - get description() { - const ret = wasm.emoji_description(this.__wbg_ptr); - return ret; - } - /** - * The emoji symbol that represents a part of the short auth - * string, for example: 🐶 - * @returns {string} - */ - get symbol() { - const ret = wasm.emoji_symbol(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) Emoji.prototype[Symbol.dispose] = Emoji.prototype.free; - -/** - * An encrypted attachment, usually created from `Attachment.encrypt`. - */ -export class EncryptedAttachment { - static __wrap(ptr) { - const obj = Object.create(EncryptedAttachment.prototype); - obj.__wbg_ptr = ptr; - EncryptedAttachmentFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EncryptedAttachmentFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_encryptedattachment_free(ptr, 0); - } - /** - * The actual encrypted data. - * - * **Warning**: It returns a **copy** of the entire encrypted - * data; be nice with your memory. - * @returns {Uint8Array} - */ - get encryptedData() { - const ret = wasm.encryptedattachment_encryptedData(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Check whether the media encryption info has been consumed by - * `Attachment.decrypt` already. - * @returns {boolean} - */ - get hasMediaEncryptionInfoBeenConsumed() { - const ret = wasm.encryptedattachment_hasMediaEncryptionInfoBeenConsumed(this.__wbg_ptr); - return ret !== 0; - } - /** - * Return the media encryption info as a JSON-encoded object. The - * structure is fully valid. - * - * If the media encryption info have been consumed already, it - * will return `null`. - * @returns {string | undefined} - */ - get mediaEncryptionInfo() { - const ret = wasm.encryptedattachment_mediaEncryptionInfo(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Create a new encrypted attachment manually. - * - * It needs encrypted data, stored in an `Uint8Array`, and a - * [media encryption - * information](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/struct.MediaEncryptionInfo.html), - * as a JSON-encoded object. - * - * The media encryption information aren't stored as a string: - * they are parsed, validated and fully deserialized. - * - * See [the specification to learn - * more](https://spec.matrix.org/unstable/client-server-api/#extensions-to-mroommessage-msgtypes). - * @param {Uint8Array} encrypted_data - * @param {string} media_encryption_info - */ - constructor(encrypted_data, media_encryption_info) { - const ptr0 = passArray8ToWasm0(encrypted_data, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(media_encryption_info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.encryptedattachment_new(ptr0, len0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - EncryptedAttachmentFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -if (Symbol.dispose) EncryptedAttachment.prototype[Symbol.dispose] = EncryptedAttachment.prototype.free; - -/** - * An encryption algorithm to be used to encrypt messages sent to a - * room. - * @enum {0 | 1 | 2} - */ -export const EncryptionAlgorithm = Object.freeze({ - /** - * Olm version 1 using Curve25519, AES-256, and SHA-256. - */ - OlmV1Curve25519AesSha2: 0, "0": "OlmV1Curve25519AesSha2", - /** - * Megolm version 1 using AES-256 and SHA-256. - */ - MegolmV1AesSha2: 1, "1": "MegolmV1AesSha2", - /** - * Unsupported algorithm. - * - * Applications should ignore this value if it is received, and should - * never set it. - */ - Unknown: 2, "2": "Unknown", -}); - -/** - * Struct containing information on how a room event was decrypted. - */ -export class EncryptionInfo { - static __wrap(ptr) { - const obj = Object.create(EncryptionInfo.prototype); - obj.__wbg_ptr = ptr; - EncryptionInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EncryptionInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_encryptioninfo_free(ptr, 0); - } - /** - * The verification state of the device that sent us the event. - * Note this is the state of the device at the time of - * decryption. It may change in the future if a device gets - * verified or deleted. - * - * # Arguments - * - * * `strict` - whether to enable "strict mode" verification. In non-strict - * mode, unverified users are given no shield, and keys that have been - * forwarded or restored from an insecure backup are given a grey shield - * (both get a red shield in strict mode). - * @param {boolean} strict - * @returns {ShieldState} - */ - shieldState(strict) { - const ret = wasm.encryptioninfo_shieldState(this.__wbg_ptr, strict); - return ShieldState.__wrap(ret); - } - /** - * The device ID of the user who sent us the keys with which we decrypted - * this event as part of an MSC4268 key bundle, if present. Only applicable - * for room events. - * @returns {DeviceId | undefined} - */ - get forwarderDevice() { - const ret = wasm.__wbg_get_encryptioninfo_forwarderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The ID of the user who sent us the keys with which we decrypted this - * event as part of an MSC4268 key bundle, if present. Only applicable for - * room events. - * @returns {UserId | undefined} - */ - get forwarder() { - const ret = wasm.__wbg_get_encryptioninfo_forwarder(this.__wbg_ptr); - return ret === 0 ? undefined : UserId.__wrap(ret); - } - /** - * The signing Ed25519 key that created the megolm key that - * was used to decrypt this session. - * @returns {string | undefined} - */ - get senderClaimedEd25519Key() { - const ret = wasm.__wbg_get_encryptioninfo_senderClaimedEd25519Key(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * The base64-encoded public Curve25519 key of the device that created the - * megolm decryption key originally. - * @returns {string} - */ - get senderCurve25519Key() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_encryptioninfo_senderCurve25519Key(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The device ID of the device that sent us the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - * @returns {DeviceId | undefined} - */ - get senderDevice() { - const ret = wasm.__wbg_get_encryptioninfo_senderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - * @returns {UserId} - */ - get sender() { - const ret = wasm.__wbg_get_encryptioninfo_sender(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The device ID of the user who sent us the keys with which we decrypted - * this event as part of an MSC4268 key bundle, if present. Only applicable - * for room events. - * @param {DeviceId | null} [arg0] - */ - set forwarderDevice(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, DeviceId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_encryptioninfo_forwarderDevice(this.__wbg_ptr, ptr0); - } - /** - * The ID of the user who sent us the keys with which we decrypted this - * event as part of an MSC4268 key bundle, if present. Only applicable for - * room events. - * @param {UserId | null} [arg0] - */ - set forwarder(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, UserId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_encryptioninfo_forwarder(this.__wbg_ptr, ptr0); - } - /** - * The signing Ed25519 key that created the megolm key that - * was used to decrypt this session. - * @param {string | null} [arg0] - */ - set senderClaimedEd25519Key(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_encryptioninfo_senderClaimedEd25519Key(this.__wbg_ptr, ptr0, len0); - } - /** - * The base64-encoded public Curve25519 key of the device that created the - * megolm decryption key originally. - * @param {string} arg0 - */ - set senderCurve25519Key(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_encryptioninfo_senderCurve25519Key(this.__wbg_ptr, ptr0, len0); - } - /** - * The device ID of the device that sent us the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - * @param {DeviceId | null} [arg0] - */ - set senderDevice(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, DeviceId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_encryptioninfo_senderDevice(this.__wbg_ptr, ptr0); - } - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link shieldState} shows that the - * sender is verified. - * @param {UserId} arg0 - */ - set sender(arg0) { - _assertClass(arg0, UserId); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_encryptioninfo_sender(this.__wbg_ptr, ptr0); - } -} -if (Symbol.dispose) EncryptionInfo.prototype[Symbol.dispose] = EncryptionInfo.prototype.free; - -/** - * Settings for an encrypted room. - * - * This determines the algorithm and rotation periods of a group - * session. - */ -export class EncryptionSettings { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EncryptionSettingsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_encryptionsettings_free(ptr, 0); - } - /** - * Create a new `EncryptionSettings` with default values. - */ - constructor() { - const ret = wasm.encryptionsettings_new(); - this.__wbg_ptr = ret; - EncryptionSettingsFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The encryption algorithm that should be used in the room. - * @returns {EncryptionAlgorithm} - */ - get algorithm() { - const ret = wasm.__wbg_get_encryptionsettings_algorithm(this.__wbg_ptr); - return ret; - } - /** - * Whether state event encryption is enabled. - * @returns {boolean} - */ - get encryptStateEvents() { - const ret = wasm.__wbg_get_encryptionsettings_encryptStateEvents(this.__wbg_ptr); - return ret !== 0; - } - /** - * The history visibility of the room when the session was - * created. - * @returns {HistoryVisibility} - */ - get historyVisibility() { - const ret = wasm.__wbg_get_encryptionsettings_historyVisibility(this.__wbg_ptr); - return ret; - } - /** - * How many messages should be sent before changing the session. - * @returns {bigint} - */ - get rotationPeriodMessages() { - const ret = wasm.__wbg_get_encryptionsettings_rotationPeriodMessages(this.__wbg_ptr); - return BigInt.asUintN(64, ret); - } - /** - * How long the session should be used before changing it, - * expressed in microseconds. - * @returns {bigint} - */ - get rotationPeriod() { - const ret = wasm.__wbg_get_encryptionsettings_rotationPeriod(this.__wbg_ptr); - return BigInt.asUintN(64, ret); - } - /** - * Should untrusted devices receive the room key, or should they be - * excluded from the conversation. - * @returns {CollectStrategy} - */ - get sharingStrategy() { - const ret = wasm.__wbg_get_encryptionsettings_sharingStrategy(this.__wbg_ptr); - return CollectStrategy.__wrap(ret); - } - /** - * The encryption algorithm that should be used in the room. - * @param {EncryptionAlgorithm} arg0 - */ - set algorithm(arg0) { - wasm.__wbg_set_encryptionsettings_algorithm(this.__wbg_ptr, arg0); - } - /** - * Whether state event encryption is enabled. - * @param {boolean} arg0 - */ - set encryptStateEvents(arg0) { - wasm.__wbg_set_encryptionsettings_encryptStateEvents(this.__wbg_ptr, arg0); - } - /** - * The history visibility of the room when the session was - * created. - * @param {HistoryVisibility} arg0 - */ - set historyVisibility(arg0) { - wasm.__wbg_set_encryptionsettings_historyVisibility(this.__wbg_ptr, arg0); - } - /** - * How many messages should be sent before changing the session. - * @param {bigint} arg0 - */ - set rotationPeriodMessages(arg0) { - wasm.__wbg_set_encryptionsettings_rotationPeriodMessages(this.__wbg_ptr, arg0); - } - /** - * How long the session should be used before changing it, - * expressed in microseconds. - * @param {bigint} arg0 - */ - set rotationPeriod(arg0) { - wasm.__wbg_set_encryptionsettings_rotationPeriod(this.__wbg_ptr, arg0); - } - /** - * Should untrusted devices receive the room key, or should they be - * excluded from the conversation. - * @param {CollectStrategy} arg0 - */ - set sharingStrategy(arg0) { - _assertClass(arg0, CollectStrategy); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_encryptionsettings_sharingStrategy(this.__wbg_ptr, ptr0); - } -} -if (Symbol.dispose) EncryptionSettings.prototype[Symbol.dispose] = EncryptionSettings.prototype.free; - -/** - * An established ECIES session. - * - * This session can be used to encrypt and decrypt messages between the two - * sides of the channel. - */ -export class EstablishedEcies { - static __wrap(ptr) { - const obj = Object.create(EstablishedEcies.prototype); - obj.__wbg_ptr = ptr; - EstablishedEciesFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EstablishedEciesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_establishedecies_free(ptr, 0); - } - /** - * Get the [`CheckCode`] which uniquely identifies this - * [`EstablishedEcies`] session. - * - * This check code can be used to verify and confirm that both sides of the - * session are indeed using the same shared secret. - * @returns {CheckCode} - */ - check_code() { - const ret = wasm.establishedecies_check_code(this.__wbg_ptr); - return CheckCode.__wrap(ret); - } - /** - * Decrypt the given message using this [`EstablishedEcies`] session. - * @param {string} message - * @returns {string} - */ - decrypt(message) { - let deferred3_0; - let deferred3_1; - try { - const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.establishedecies_decrypt(this.__wbg_ptr, ptr0, len0); - var ptr2 = ret[0]; - var len2 = ret[1]; - if (ret[3]) { - ptr2 = 0; len2 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred3_0 = ptr2; - deferred3_1 = len2; - return getStringFromWasm0(ptr2, len2); - } finally { - wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); - } - } - /** - * Encrypt the given plaintext using this [`EstablishedEcies`] session. - * @param {string} message - * @returns {string} - */ - encrypt(message) { - let deferred2_0; - let deferred2_1; - try { - const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.establishedecies_encrypt(this.__wbg_ptr, ptr0, len0); - deferred2_0 = ret[0]; - deferred2_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Get our [`Curve25519PublicKey`]. - * - * This public key needs to be sent to the other side so that it can - * complete the ECIES channel establishment. - * @returns {Curve25519PublicKey} - */ - public_key() { - const ret = wasm.establishedecies_public_key(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } -} -if (Symbol.dispose) EstablishedEcies.prototype[Symbol.dispose] = EstablishedEcies.prototype.free; - -/** - * A Matrix [event ID]. - * - * An `EventId` is generated randomly or converted from a string - * slice, and can be converted back into a string as needed. - * - * [event ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids - */ -export class EventId { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - EventIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_eventid_free(ptr, 0); - } - /** - * Returns the event's localpart. - * @returns {string} - */ - get localpart() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.eventid_localpart(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Parse/validate and create a new `EventId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.eventid_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - EventIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Returns the server name of the event ID. - * @returns {ServerName | undefined} - */ - get serverName() { - const ret = wasm.eventid_serverName(this.__wbg_ptr); - return ret === 0 ? undefined : ServerName.__wrap(ret); - } - /** - * Return the event ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.eventid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) EventId.prototype[Symbol.dispose] = EventId.prototype.free; - -/** - * Who can see a room's history. - * @enum {0 | 1 | 2 | 3} - */ -export const HistoryVisibility = Object.freeze({ - /** - * Previous events are accessible to newly joined members from - * the point they were invited onwards. - * - * Events stop being accessible when the member's state changes - * to something other than *invite* or *join*. - */ - Invited: 0, "0": "Invited", - /** - * Previous events are accessible to newly joined members from - * the point they joined the room onwards. - * - * Events stop being accessible when the member's state changes - * to something other than *join*. - */ - Joined: 1, "1": "Joined", - /** - * Previous events are always accessible to newly joined members. - * - * All events in the room are accessible, even those sent when - * the member was not a part of the room. - */ - Shared: 2, "2": "Shared", - /** - * All events while this is the `HistoryVisibility` value may be - * shared by any participating homeserver with anyone, regardless - * of whether they have ever joined the room. - */ - WorldReadable: 3, "3": "WorldReadable", -}); - -/** - * Struct holding the two public identity keys of an account. - */ -export class IdentityKeys { - static __wrap(ptr) { - const obj = Object.create(IdentityKeys.prototype); - obj.__wbg_ptr = ptr; - IdentityKeysFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - IdentityKeysFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_identitykeys_free(ptr, 0); - } - /** - * The Curve25519 public key, used for establish shared secrets. - * @returns {Curve25519PublicKey} - */ - get curve25519() { - const ret = wasm.__wbg_get_identitykeys_curve25519(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * The Ed25519 public key, used for signing. - * @returns {Ed25519PublicKey} - */ - get ed25519() { - const ret = wasm.__wbg_get_identitykeys_ed25519(this.__wbg_ptr); - return Ed25519PublicKey.__wrap(ret); - } - /** - * The Curve25519 public key, used for establish shared secrets. - * @param {Curve25519PublicKey} arg0 - */ - set curve25519(arg0) { - _assertClass(arg0, Curve25519PublicKey); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_identitykeys_curve25519(this.__wbg_ptr, ptr0); - } - /** - * The Ed25519 public key, used for signing. - * @param {Ed25519PublicKey} arg0 - */ - set ed25519(arg0) { - _assertClass(arg0, Ed25519PublicKey); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_identitykeys_ed25519(this.__wbg_ptr, ptr0); - } -} -if (Symbol.dispose) IdentityKeys.prototype[Symbol.dispose] = IdentityKeys.prototype.free; - -/** - * The result of an inbound ECIES channel establishment. - */ -export class InboundCreationResult { - static __wrap(ptr) { - const obj = Object.create(InboundCreationResult.prototype); - obj.__wbg_ptr = ptr; - InboundCreationResultFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - InboundCreationResultFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_inboundcreationresult_free(ptr, 0); - } - /** - * The established ECIES channel. - * @returns {EstablishedEcies} - */ - get channel() { - const ret = wasm.__wbg_get_inboundcreationresult_channel(this.__wbg_ptr); - return EstablishedEcies.__wrap(ret); - } - /** - * The plaintext of the initial message. - * @returns {string} - */ - get message() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_inboundcreationresult_message(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The established ECIES channel. - * @param {EstablishedEcies} arg0 - */ - set channel(arg0) { - _assertClass(arg0, EstablishedEcies); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_inboundcreationresult_channel(this.__wbg_ptr, ptr0); - } - /** - * The plaintext of the initial message. - * @param {string} arg0 - */ - set message(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_inboundcreationresult_message(this.__wbg_ptr, ptr0, len0); - } -} -if (Symbol.dispose) InboundCreationResult.prototype[Symbol.dispose] = InboundCreationResult.prototype.free; - -/** - * Inbound group session. - * - * Inbound group sessions are used to exchange room messages between a group of - * participants. Inbound group sessions are used to decrypt the room messages. - */ -export class InboundGroupSession { - static __wrap(ptr) { - const obj = Object.create(InboundGroupSession.prototype); - obj.__wbg_ptr = ptr; - InboundGroupSessionFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - InboundGroupSessionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_inboundgroupsession_free(ptr, 0); - } - /** - * Has the session been imported from a file or server-side backup? As - * opposed to being directly received as an `m.room_key` event. - * @returns {boolean} - */ - hasBeenImported() { - const ret = wasm.inboundgroupsession_hasBeenImported(this.__wbg_ptr); - return ret !== 0; - } - /** - * The room where this session is used in. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.inboundgroupsession_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } - /** - * The Curve25519 key of the sender of this session, as a - * [Curve25519PublicKey]. - * @returns {Curve25519PublicKey} - */ - get senderKey() { - const ret = wasm.inboundgroupsession_senderKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * Returns the unique identifier for this session. - * @returns {string} - */ - get sessionId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.inboundgroupsession_sessionId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) InboundGroupSession.prototype[Symbol.dispose] = InboundGroupSession.prototype.free; - -/** - * Represents an invalid to-device event that was ignored (because it is - * missing some mandatory fields, for example). - */ -export class InvalidToDeviceEvent { - static __wrap(ptr) { - const obj = Object.create(InvalidToDeviceEvent.prototype); - obj.__wbg_ptr = ptr; - InvalidToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - InvalidToDeviceEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_invalidtodeviceevent_free(ptr, 0); - } - /** - * The original message as received from sync, encoded as JSON. - * @returns {string} - */ - get rawEvent() { - const ret = wasm.__wbg_get_invalidtodeviceevent_rawEvent(this.__wbg_ptr); - return ret; - } - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.Invalid} for this type. - * @returns {ProcessedToDeviceEventType} - */ - get type() { - const ret = wasm.invalidtodeviceevent_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) InvalidToDeviceEvent.prototype[Symbol.dispose] = InvalidToDeviceEvent.prototype.free; - -/** - * A request that will back up a batch of room keys to the server - * ([specification]). - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3room_keyskeys - */ -export class KeysBackupRequest { - static __wrap(ptr) { - const obj = Object.create(KeysBackupRequest.prototype); - obj.__wbg_ptr = ptr; - KeysBackupRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - KeysBackupRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_keysbackuprequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `rooms`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_keysbackuprequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_keysbackuprequest_id(this.__wbg_ptr); - return ret; - } - /** - * The backup version that these room keys should be part of. - * @returns {string} - */ - get version() { - const ret = wasm.__wbg_get_keysbackuprequest_version(this.__wbg_ptr); - return ret; - } - /** - * Create a new `KeysBackupRequest`. - * @param {string} id - * @param {string} body - * @param {string} version - */ - constructor(id, body, version) { - const ret = wasm.keysbackuprequest_new(id, body, version); - this.__wbg_ptr = ret; - KeysBackupRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.keysbackuprequest_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) KeysBackupRequest.prototype[Symbol.dispose] = KeysBackupRequest.prototype.free; - -/** - * Data for a request to the `/keys/claim` API endpoint - * ([specification]). - * - * Claims one-time keys that can be used to establish 1-to-1 E2EE - * sessions. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysclaim - */ -export class KeysClaimRequest { - static __wrap(ptr) { - const obj = Object.create(KeysClaimRequest.prototype); - obj.__wbg_ptr = ptr; - KeysClaimRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - KeysClaimRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_keysclaimrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `timeout`, - * `one_time_keys`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_keysclaimrequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_keysclaimrequest_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `KeysClaimRequest`. - * @param {string} id - * @param {string} body - */ - constructor(id, body) { - const ret = wasm.keysclaimrequest_new(id, body); - this.__wbg_ptr = ret; - KeysClaimRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.keysclaimrequest_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) KeysClaimRequest.prototype[Symbol.dispose] = KeysClaimRequest.prototype.free; - -/** - * Data for a request to the `/keys/query` API endpoint - * ([specification]). - * - * Returns the current devices and identity keys for the given users. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysquery - */ -export class KeysQueryRequest { - static __wrap(ptr) { - const obj = Object.create(KeysQueryRequest.prototype); - obj.__wbg_ptr = ptr; - KeysQueryRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - KeysQueryRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_keysqueryrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `timeout`, - * `device_keys`, `token`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_keysqueryrequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_keysqueryrequest_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `KeysQueryRequest`. - * @param {string} id - * @param {string} body - */ - constructor(id, body) { - const ret = wasm.keysqueryrequest_new(id, body); - this.__wbg_ptr = ret; - KeysQueryRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.keysqueryrequest_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) KeysQueryRequest.prototype[Symbol.dispose] = KeysQueryRequest.prototype.free; - -/** - * Data for a request to the `/keys/upload` API endpoint - * ([specification]). - * - * Publishes end-to-end encryption keys for the device. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysupload - */ -export class KeysUploadRequest { - static __wrap(ptr) { - const obj = Object.create(KeysUploadRequest.prototype); - obj.__wbg_ptr = ptr; - KeysUploadRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - KeysUploadRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_keysuploadrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `device_keys`, - * `one_time_keys`, `fallback_keys`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_keysuploadrequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_keysuploadrequest_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `KeysUploadRequest`. - * @param {string} id - * @param {string} body - */ - constructor(id, body) { - const ret = wasm.keysuploadrequest_new(id, body); - this.__wbg_ptr = ret; - KeysUploadRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.keysuploadrequest_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) KeysUploadRequest.prototype[Symbol.dispose] = KeysUploadRequest.prototype.free; - -/** - * The local trust state of a device. - * @enum {0 | 1 | 2 | 3} - */ -export const LocalTrust = Object.freeze({ - /** - * The device has been verified and is trusted. - */ - Verified: 0, "0": "Verified", - /** - * The device been blacklisted from communicating. - */ - BlackListed: 1, "1": "BlackListed", - /** - * The trust state of the device is being ignored. - */ - Ignored: 2, "2": "Ignored", - /** - * The trust state is unset. - */ - Unset: 3, "3": "Unset", -}); - -/** - * Logger level. - * @enum {0 | 1 | 2 | 3 | 4} - */ -export const LoggerLevel = Object.freeze({ - /** - * `TRACE` level. - * - * Designate very low priority, often extremely verbose, - * information. - */ - Trace: 0, "0": "Trace", - /** - * `DEBUG` level. - * - * Designate lower priority information. - */ - Debug: 1, "1": "Debug", - /** - * `INFO` level. - * - * Designate useful information. - */ - Info: 2, "2": "Info", - /** - * `WARN` level. - * - * Designate hazardous situations. - */ - Warn: 3, "3": "Warn", - /** - * `ERROR` level. - * - * Designate very serious errors. - */ - Error: 4, "4": "Error", -}); - -/** - * Represents a signature that is either valid _or_ that could not be - * decoded. - */ -export class MaybeSignature { - static __wrap(ptr) { - const obj = Object.create(MaybeSignature.prototype); - obj.__wbg_ptr = ptr; - MaybeSignatureFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - MaybeSignatureFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_maybesignature_free(ptr, 0); - } - /** - * The base64 encoded string that is claimed to contain a - * signature but could not be decoded, if any. - * @returns {string | undefined} - */ - get invalidSignatureSource() { - const ret = wasm.maybesignature_invalidSignatureSource(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Check whether the signature could not be successfully decoded. - * @returns {boolean} - */ - isInvalid() { - const ret = wasm.maybesignature_isInvalid(this.__wbg_ptr); - return ret !== 0; - } - /** - * Check whether the signature has been successfully decoded. - * @returns {boolean} - */ - isValid() { - const ret = wasm.maybesignature_isValid(this.__wbg_ptr); - return ret !== 0; - } - /** - * The signature, if successfully decoded. - * @returns {Signature | undefined} - */ - get signature() { - const ret = wasm.maybesignature_signature(this.__wbg_ptr); - return ret === 0 ? undefined : Signature.__wrap(ret); - } -} -if (Symbol.dispose) MaybeSignature.prototype[Symbol.dispose] = MaybeSignature.prototype.free; - -/** - * Js Decryption error with code. - */ -export class MegolmDecryptionError { - static __wrap(ptr) { - const obj = Object.create(MegolmDecryptionError.prototype); - obj.__wbg_ptr = ptr; - MegolmDecryptionErrorFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - MegolmDecryptionErrorFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_megolmdecryptionerror_free(ptr, 0); - } - /** - * Description code for the error. See `DecryptionErrorCode` - * @returns {DecryptionErrorCode} - */ - get code() { - const ret = wasm.__wbg_get_megolmdecryptionerror_code(this.__wbg_ptr); - return ret; - } - /** - * detailed description - * @returns {string} - */ - get description() { - const ret = wasm.__wbg_get_megolmdecryptionerror_description(this.__wbg_ptr); - return ret; - } - /** - * Textual description of the withheld code, if any. - * - * Example: "The sender has disabled encrypting to unverified devices." - * - * `undefined` if we have not received a withheld code for the megolm - * session. - * @returns {string | undefined} - */ - get maybe_withheld() { - const ret = wasm.megolmdecryptionerror_maybe_withheld(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Creates generic error with description - * @param {string} desc - * @returns {MegolmDecryptionError} - */ - static unable_to_decrypt(desc) { - const ptr0 = passStringToWasm0(desc, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.megolmdecryptionerror_unable_to_decrypt(ptr0, len0); - return MegolmDecryptionError.__wrap(ret); - } - /** - * The withheld code, if any. - * - * Example: "m.unverified" - * - * `undefined` if we have not received a withheld code for the megolm - * session. - * @returns {string | undefined} - */ - get withheldCode() { - const ret = wasm.megolmdecryptionerror_withheldCode(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } -} -if (Symbol.dispose) MegolmDecryptionError.prototype[Symbol.dispose] = MegolmDecryptionError.prototype.free; - -/** - * The public part of the backup key. - */ -export class MegolmV1BackupKey { - static __wrap(ptr) { - const obj = Object.create(MegolmV1BackupKey.prototype); - obj.__wbg_ptr = ptr; - MegolmV1BackupKeyFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - MegolmV1BackupKeyFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_megolmv1backupkey_free(ptr, 0); - } - /** - * Get the full name of the backup algorithm this backup key supports. - * @returns {string} - */ - get algorithm() { - const ret = wasm.megolmv1backupkey_algorithm(this.__wbg_ptr); - return ret; - } - /** - * The actual base64 encoded public key. - * @returns {string} - */ - get publicKeyBase64() { - const ret = wasm.megolmv1backupkey_publicKeyBase64(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) MegolmV1BackupKey.prototype[Symbol.dispose] = MegolmV1BackupKey.prototype.free; - -/** - * Migration routines - * - * The public methods are exposed as static methods on this class, for - * namespacing and to enable easier mocking in unit tests. - */ -export class Migration { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - MigrationFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_migration_free(ptr, 0); - } - /** - * Import the base dataset from a libolm-based setup to a vodozemac-based - * setup stored in IndexedDB. - * - * Populates the user credentials, Olm account, backup data, etc. This is - * the first step in the migration process. Once this base data is - * imported, further data can be imported with {@link - * migrateOlmSessions}, {@link migrateMegolmSessions}, and TODO room - * settings. - * - * # Arguments - * - * * `data` - The data to be migrated - * * `pickle_key` - The libolm pickle key that was used to pickle the olm - * account objects. - * * `store_handle` - A connection to the CryptoStore which will be used to - * store the vodozemac data. - * * `logger` - An optional logger instance to use for writing log messages - * during the migration operation. An instance of `JsLogger`. - * @param {BaseMigrationData} data - * @param {Uint8Array} pickle_key - * @param {StoreHandle} store_handle - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static migrateBaseData(data, pickle_key, store_handle, logger) { - _assertClass(data, BaseMigrationData); - _assertClass(store_handle, StoreHandle); - const ret = wasm.migration_migrateBaseData(data.__wbg_ptr, pickle_key, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - return ret; - } - /** - * Migrate Megolm sessions of a libolm-based setup to a vodozemac-based - * setup stored in an indexedDB crypto store. - * - * Before this method can be used, {@link migrateBaseData} must be used to - * import the base data into the crypto store. - * - * This method should be called a number of times, with separate batches of - * `sessions`. If a progress display is given, it can be updated after - * each batch is successfully imported. - * - * # Arguments - * - * * `sessions` - An `Array` of {@link PickledInboundGroupSession}s to - * import. Items inside `sessions` will be invalidated by this method. - * * `pickle_key` - The libolm pickle key that was used to pickle the - * megolm session objects. - * * `store_handle` - A connection to the CryptoStore which will be used to - * store the vodozemac data. - * * `logger` - An optional logger instance to use for writing log messages - * during the migration operation. An instance of `JsLogger`. - * @param {PickledInboundGroupSession[]} sessions - * @param {Uint8Array} pickle_key - * @param {StoreHandle} store_handle - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static migrateMegolmSessions(sessions, pickle_key, store_handle, logger) { - const ptr0 = passArrayJsValueToWasm0(sessions, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(store_handle, StoreHandle); - const ret = wasm.migration_migrateMegolmSessions(ptr0, len0, pickle_key, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Migrate Olm sessions of a libolm-based setup to a vodozemac-based setup - * stored in an indexedDB crypto store. - * - * Before this method can be used, {@link migrateBaseData} must be used to - * import the base data into the crypto store. - * - * This method should be called a number of times, with separate batches of - * `sessions`. If a progress display is given, it can be updated after - * each batch is successfully imported. - * - * # Arguments - * - * * `sessions` - An `Array` of {@link PickledSession}s to import. Items - * inside `sessions` will be invalidated by this method. - * * `pickle_key` - The libolm pickle key that was used to pickle the olm - * session objects. - * * `store_handle` - A connection to the CryptoStore which will be used to - * store the vodozemac data. - * * `logger` - An optional logger instance to use for writing log messages - * during the migration operation. An instance of `JsLogger`. - * @param {PickledSession[]} sessions - * @param {Uint8Array} pickle_key - * @param {StoreHandle} store_handle - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static migrateOlmSessions(sessions, pickle_key, store_handle, logger) { - const ptr0 = passArrayJsValueToWasm0(sessions, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(store_handle, StoreHandle); - const ret = wasm.migration_migrateOlmSessions(ptr0, len0, pickle_key, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } -} -if (Symbol.dispose) Migration.prototype[Symbol.dispose] = Migration.prototype.free; - -/** - * Intent-specific data in the case the QR code adheres to - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4108 MSC4108} of the QR code - * data format. - */ -export class Msc4108IntentData { - static __wrap(ptr) { - const obj = Object.create(Msc4108IntentData.prototype); - obj.__wbg_ptr = ptr; - Msc4108IntentDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Msc4108IntentDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_msc4108intentdata_free(ptr, 0); - } - /** - * Get the URL of the rendezvous server which will be used to exchange - * messages between the two devices. - * @returns {string} - */ - get rendezvousUrl() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_msc4108intentdata_rendezvousUrl(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Get the server name of the homeserver which the new device will be - * logged in to. - * - * This will be only available if the existing device has generated the QR - * code and the new device is the one scanning the QR code. - * @returns {string | undefined} - */ - get serverName() { - const ret = wasm.__wbg_get_msc4108intentdata_serverName(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Get the URL of the rendezvous server which will be used to exchange - * messages between the two devices. - * @param {string} arg0 - */ - set rendezvousUrl(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_msc4108intentdata_rendezvousUrl(this.__wbg_ptr, ptr0, len0); - } - /** - * Get the server name of the homeserver which the new device will be - * logged in to. - * - * This will be only available if the existing device has generated the QR - * code and the new device is the one scanning the QR code. - * @param {string | null} [arg0] - */ - set serverName(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_msc4108intentdata_serverName(this.__wbg_ptr, ptr0, len0); - } -} -if (Symbol.dispose) Msc4108IntentData.prototype[Symbol.dispose] = Msc4108IntentData.prototype.free; - -/** - * Intent-specific data in the case the QR code adheres to - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388} of the QR code - * data format. - */ -export class Msc4388IntentData { - static __wrap(ptr) { - const obj = Object.create(Msc4388IntentData.prototype); - obj.__wbg_ptr = ptr; - Msc4388IntentDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - Msc4388IntentDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_msc4388intentdata_free(ptr, 0); - } - /** - * The base URL of the homeserver that the device generating the QR is - * using. - * @returns {string} - */ - get baseUrl() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_msc4388intentdata_baseUrl(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The ID of the rendezvous session, can be used to exchange messages with - * the other device. - * @returns {string} - */ - get rendezvousId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_msc4388intentdata_rendezvousId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base URL of the homeserver that the device generating the QR is - * using. - * @param {string} arg0 - */ - set baseUrl(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_msc4388intentdata_baseUrl(this.__wbg_ptr, ptr0, len0); - } - /** - * The ID of the rendezvous session, can be used to exchange messages with - * the other device. - * @param {string} arg0 - */ - set rendezvousId(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_msc4388intentdata_rendezvousId(this.__wbg_ptr, ptr0, len0); - } -} -if (Symbol.dispose) Msc4388IntentData.prototype[Symbol.dispose] = Msc4388IntentData.prototype.free; - -/** - * State machine implementation of the Olm/Megolm encryption protocol - * used for Matrix end to end encryption. - */ -export class OlmMachine { - static __wrap(ptr) { - const obj = Object.create(OlmMachine.prototype); - obj.__wbg_ptr = ptr; - OlmMachineFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - OlmMachineFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_olmmachine_free(ptr, 0); - } - /** - * Encrypt a batch of room keys and return a request that needs to be sent - * out to backup the room keys. - * - * Returns an optional {@link KeysBackupRequest}. - * @returns {Promise} - */ - backupRoomKeys() { - const ret = wasm.olmmachine_backupRoomKeys(this.__wbg_ptr); - return ret; - } - /** - * Create a new cross signing identity and get the upload request - * to push the new public keys to the server. - * - * Warning: This will delete any existing cross signing keys that - * might exist on the server and thus will reset the trust - * between all the devices. - * - * Uploading these keys will require user interactive auth. - * - * # Arguments - * - * * `reset`, whether the method should create a new identity or use the - * existing one during the request. If set to true, the request will - * attempt to upload a new identity. If set to false, the request will - * attempt to upload the existing identity. Since the uploading process - * requires user interactive authentication, which involves sending out - * the same request multiple times, setting this argument to false - * enables you to reuse the same request. - * - * Returns a {@link CrossSigningBootstrapRequests}. - * @param {boolean} reset - * @returns {Promise} - */ - bootstrapCrossSigning(reset) { - const ret = wasm.olmmachine_bootstrapCrossSigning(this.__wbg_ptr, reset); - return ret; - } - /** - * Assemble, and encrypt, a room key bundle for sharing encrypted history, - * as per {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268}. - * - * Returns `undefined` if there are no keys to share in the given room, - * otherwise an {@link EncryptedAttachment}. - * - * The data should be uploaded to the media server, and the details then - * passed to {@link shareRoomKeyBundleData}. - * - * @experimental - * @param {RoomId} room_id - * @returns {Promise} - */ - buildRoomKeyBundle(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_buildRoomKeyBundle(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Store the fact that we are no longer waiting for a key bundle in the - * given room. - * - * The counterpart to {@link storeRoomPendingKeyBundle}. Should be called - * when, for example, we leave a room, or have successfully imported a - * bundle. - * - * @experimental - * @param {RoomId} room_id - * @returns {Promise} - */ - clearRoomPendingKeyBundle(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_clearRoomPendingKeyBundle(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Shut down the `OlmMachine`. - * - * The `OlmMachine` cannot be used after this method has been called. - * - * All associated resources will be closed too, like IndexedDB - * connections. - */ - close() { - const ptr = this.__destroy_into_raw(); - wasm.olmmachine_close(ptr); - } - /** - * Get the status of the private cross signing keys. - * - * This can be used to check which private cross signing keys we - * have stored locally. - * @returns {Promise} - */ - crossSigningStatus() { - const ret = wasm.olmmachine_crossSigningStatus(this.__wbg_ptr); - return ret; - } - /** - * Try to decrypt a reader into a list of exported room keys. - * - * `encrypted_exported_room_keys` is the result from - * `encrypt_exported_room_keys`. `passphrase` is the passphrase that was - * used when calling `encrypt_exported_room_keys`. - * @param {string} encrypted_exported_room_keys - * @param {string} passphrase - * @returns {string} - */ - static decryptExportedRoomKeys(encrypted_exported_room_keys, passphrase) { - let deferred4_0; - let deferred4_1; - try { - const ptr0 = passStringToWasm0(encrypted_exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_decryptExportedRoomKeys(ptr0, len0, ptr1, len1); - var ptr3 = ret[0]; - var len3 = ret[1]; - if (ret[3]) { - ptr3 = 0; len3 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred4_0 = ptr3; - deferred4_1 = len3; - return getStringFromWasm0(ptr3, len3); - } finally { - wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); - } - } - /** - * Decrypt an event from a room timeline. - * - * # Arguments - * - * * `event`, the event that should be decrypted. - * * `room_id`, the ID of the room where the event was sent to. - * - * # Returns - * - * A `Promise` which resolves to a {@link DecryptedRoomEvent} instance, or - * rejects with a {@link MegolmDecryptionError} instance. - * @param {string} event - * @param {RoomId} room_id - * @param {DecryptionSettings} decryption_settings - * @returns {Promise} - */ - decryptRoomEvent(event, room_id, decryption_settings) { - const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(room_id, RoomId); - _assertClass(decryption_settings, DecryptionSettings); - const ret = wasm.olmmachine_decryptRoomEvent(this.__wbg_ptr, ptr0, len0, room_id.__wbg_ptr, decryption_settings.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Manage dehydrated devices - * @returns {DehydratedDevices} - */ - dehydratedDevices() { - const ret = wasm.olmmachine_dehydratedDevices(this.__wbg_ptr); - return DehydratedDevices.__wrap(ret); - } - /** - * Delete all secrets with the given secret name from the inbox. - * - * Should be called after handling the secrets with - * `get_secrets_from_inbox`. - * - * # Arguments - * - * * `secret_name` - The name of the secret to delete. - * @param {string} secret_name - * @returns {Promise} - */ - deleteSecretsFromInbox(secret_name) { - const ptr0 = passStringToWasm0(secret_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_deleteSecretsFromInbox(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * The time, in milliseconds since the unix epoch, at which the `Account` - * backing this `OlmMachine` was created. - * - * An `Account` is created when an `OlmMachine` is first instantiated - * against a given `Store`, at which point it creates identity keys etc. - * This method returns the timestamp, according to the local clock, at - * which that happened. - * @returns {number} - */ - get deviceCreationTimeMs() { - const ret = wasm.olmmachine_deviceCreationTimeMs(this.__wbg_ptr); - return ret; - } - /** - * The unique device ID that identifies this `OlmMachine`. - * @returns {DeviceId} - */ - get deviceId() { - const ret = wasm.olmmachine_deviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Disable and reset our backup state. - * - * This will remove any pending backup request, remove the backup key and - * reset the backup state of each room key we have. - * - * Returns `Promise`. - * @returns {Promise} - */ - disableBackup() { - const ret = wasm.olmmachine_disableBackup(this.__wbg_ptr); - return ret; - } - /** - * Get the display name of our own device. - * @returns {Promise} - */ - get displayName() { - const ret = wasm.olmmachine_displayName(this.__wbg_ptr); - return ret; - } - /** - * Activate the given backup key to be used with the given backup version. - * - * **Warning**: The caller needs to make sure that the given `BackupKey` is - * trusted, otherwise we might be encrypting room keys that a malicious - * party could decrypt. - * - * The {@link verifyBackup} method can be used to do so. - * - * Returns `Promise`. - * @param {string} public_key_base_64 - * @param {string} version - * @returns {Promise} - */ - enableBackupV1(public_key_base_64, version) { - const ptr0 = passStringToWasm0(public_key_base_64, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_enableBackupV1(this.__wbg_ptr, ptr0, len0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Encrypt the list of exported room keys using the given passphrase. - * - * `exported_room_keys` is a list of sessions that should be encrypted - * (it's generally returned by `export_room_keys`). `passphrase` is the - * passphrase that will be used to encrypt the exported room keys. And - * `rounds` is the number of rounds that should be used for the key - * derivation when the passphrase gets turned into an AES key. More rounds - * are increasingly computationnally intensive and as such help against - * brute-force attacks. Should be at least `10_000`, while values in the - * `100_000` ranges should be preferred. - * @param {string} exported_room_keys - * @param {string} passphrase - * @param {number} rounds - * @returns {string} - */ - static encryptExportedRoomKeys(exported_room_keys, passphrase, rounds) { - let deferred4_0; - let deferred4_1; - try { - const ptr0 = passStringToWasm0(exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_encryptExportedRoomKeys(ptr0, len0, ptr1, len1, rounds); - var ptr3 = ret[0]; - var len3 = ret[1]; - if (ret[3]) { - ptr3 = 0; len3 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred4_0 = ptr3; - deferred4_1 = len3; - return getStringFromWasm0(ptr3, len3); - } finally { - wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); - } - } - /** - * Encrypt a room message for the given room. - * - * **Note**: A room key needs to be shared with the group of users that are - * members in the given room. If this is not done this method will panic. - * - * The usual flow to encrypt an event using this state machine is as - * follows: - * - * 1. Get the one-time key claim request to establish 1:1 Olm sessions for - * the room members of the room we wish to participate in. This is done - * using the [`get_missing_sessions()`](Self::get_missing_sessions) - * method. This method call should be locked per call. - * - * 2. Share a room key with all the room members using the - * [`share_room_key()`](Self::share_room_key). This method call should - * be locked per room. - * - * 3. Encrypt the event using this method. - * - * 4. Send the encrypted event to the server. - * - * After the room key is shared steps 1 and 2 will become noops, unless - * there's some changes in the room membership or in the list of devices a - * member has. - * - * - * `room_id` is the ID of the room for which the message should - * be encrypted. `event_type` is the type of the event. `content` - * is the plaintext content of the message that should be - * encrypted. - * - * # Panics - * - * Panics if a group session for the given room wasn't shared - * beforehand. - * @param {RoomId} room_id - * @param {string} event_type - * @param {string} content - * @returns {Promise} - */ - encryptRoomEvent(room_id, event_type, content) { - _assertClass(room_id, RoomId); - const ptr0 = passStringToWasm0(event_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_encryptRoomEvent(this.__wbg_ptr, room_id.__wbg_ptr, ptr0, len0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Encrypt a state event for the given room. - * - * This method encrypts a state event for the specified room, using the - * current group session. The event will be encrypted so that only - * authorized room members can decrypt it. - * - * **Note**: A room key must have been shared with the group of users in - * the room before calling this method. If not, this method will panic. - * - * The usual flow to encrypt a state event using this machine is identical - * to that outlined for [`OlmMachine::encrypt_room_event`]. - * - * # Arguments - * - * * `room_id` - The ID of the room for which the state event should be - * encrypted. - * * `event_type` - The type of the state event. - * * `state_key` - The state key for the event. - * * `content` - The plaintext JSON content of the event to encrypt. - * - * # Returns - * - * A `Promise` resolving to a JSON string containing the encrypted event. - * - * # Panics - * - * Panics if a group session for the given room was not previously shared. - * @param {RoomId} room_id - * @param {string} event_type - * @param {string} state_key - * @param {string} content - * @returns {Promise} - */ - encryptStateEvent(room_id, event_type, state_key, content) { - _assertClass(room_id, RoomId); - const ptr0 = passStringToWasm0(event_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(state_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ptr2 = passStringToWasm0(content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len2 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_encryptStateEvent(this.__wbg_ptr, room_id.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Export all the private cross signing keys we have. - * - * The export will contain the seeds for the ed25519 keys as - * unpadded base64 encoded strings. - * - * Returns `undefined` if we don’t have any private cross signing keys; - * otherwise returns a `CrossSigningKeyExport`. - * @returns {Promise} - */ - exportCrossSigningKeys() { - const ret = wasm.olmmachine_exportCrossSigningKeys(this.__wbg_ptr); - return ret; - } - /** - * Export the keys that match the given predicate. - * - * `predicate` is a closure that will be called for every known - * `InboundGroupSession`, which represents a room key. If the closure - * returns `true`, the `InboundGroupSession` will be included in the - * export; otherwise it won't. - * - * Returns a Promise containing a Result containing a String which is a - * JSON-encoded array of ExportedRoomKey objects. - * @param {(session: InboundGroupSession) => boolean} predicate - * @returns {Promise} - */ - exportRoomKeys(predicate) { - const ret = wasm.olmmachine_exportRoomKeys(this.__wbg_ptr, predicate); - return ret; - } - /** - * Export all the secrets we have in the store into a {@link - * SecretsBundle}. - * - * This method will export all the private cross-signing keys and, if - * available, the private part of a backup key and its accompanying - * version. - * - * The method will fail if we don't have all three private cross-signing - * keys available. - * - * **Warning**: Only export this and share it with a trusted recipient, - * i.e. if an existing device is sharing this with a new device. - * @returns {Promise} - */ - exportSecretsBundle() { - const ret = wasm.olmmachine_exportSecretsBundle(this.__wbg_ptr); - return ret; - } - /** - * Get a list of all rooms where we are waiting for a key bundle. - * - * @see getPendingKeyBundleDetailsForRoom - * - * @experimental - * @returns {Promise>} - */ - getAllRoomsPendingKeyBundles() { - const ret = wasm.olmmachine_getAllRoomsPendingKeyBundles(this.__wbg_ptr); - return ret; - } - /** - * Get the backup keys we have saved in our store. - * Returns a `Promise` for {@link BackupKeys}. - * @returns {Promise} - */ - getBackupKeys() { - const ret = wasm.olmmachine_getBackupKeys(this.__wbg_ptr); - return ret; - } - /** - * Get a specific device of a user. - * - * ### Parameters - * - * * `user_id` - The unique ID of the user that the device belongs to. - * - * * `device_id` - The unique ID of the device. - * - * * `timeout_secs` - The amount of time we should wait for a `/keys/query` - * response before returning if the user's device list has been marked as - * stale. **Note**, this assumes that the requests from {@link - * OlmMachine.outgoingRequests} are being processed and sent out. - * - * If unset, we will return immediately even if the device list is stale. - * - * ### Returns - * - * If the device is known, a {@link Device}. Otherwise, `undefined`. - * @param {UserId} user_id - * @param {DeviceId} device_id - * @param {number | null} [timeout_secs] - * @returns {Promise} - */ - getDevice(user_id, device_id, timeout_secs) { - _assertClass(user_id, UserId); - _assertClass(device_id, DeviceId); - const ret = wasm.olmmachine_getDevice(this.__wbg_ptr, user_id.__wbg_ptr, device_id.__wbg_ptr, !isLikeNone(timeout_secs), isLikeNone(timeout_secs) ? 0 : timeout_secs); - return ret; - } - /** - * Get the cross signing user identity of a user. - * - * Returns a promise for an {@link OwnUserIdentity}, a - * {@link OtherUserIdentity}, or `undefined`. - * @param {UserId} user_id - * @returns {Promise} - */ - getIdentity(user_id) { - _assertClass(user_id, UserId); - const ret = wasm.olmmachine_getIdentity(this.__wbg_ptr, user_id.__wbg_ptr); - return ret; - } - /** - * Get the a key claiming request for the user/device pairs that - * we are missing Olm sessions for. - * - * Returns `null` if no key claiming request needs to be sent - * out, otherwise it returns a `KeysClaimRequest` object. - * - * Sessions need to be established between devices so group - * sessions for a room can be shared with them. - * - * This should be called every time a group session needs to be - * shared as well as between sync calls. After a sync some - * devices may request room keys without us having a valid Olm - * session with them, making it impossible to server the room key - * request, thus it’s necessary to check for missing sessions - * between sync as well. - * - * Note: Care should be taken that only one such request at a - * time is in flight, e.g. using a lock. - * - * The response of a successful key claiming requests needs to be - * passed to the `OlmMachine` with the `mark_request_as_sent`. - * - * `users` represents the list of users that we should check if - * we lack a session with one of their devices. This can be an - * empty iterator when calling this method between sync requests. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - * @param {UserId[]} users - * @returns {Promise} - */ - getMissingSessions(users) { - const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_getMissingSessions(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * See if we have recently accepted an invitation to the given room. - * - * If we have accepted an invite to a room without finding an - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268} - * key bundle, we should accept a key bundle once one arrives. - * - * The data returned here is populated by the application, via {@link - * storeRoomPendingKeyBundle}. - * - * @experimental - * @param {RoomId} room_id - * @returns {Promise} - */ - getPendingKeyBundleDetailsForRoom(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_getPendingKeyBundleDetailsForRoom(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * See if we have received an {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268} - * room key bundle for the given room from the given user. - * - * Before calling this, the application must make sure that we have an - * up-to-date copy of the inviter's cross-signing keys, so that we can - * verify the device that sent us the key bundle data message. (For - * now, the easiest way to do that is by calling {@link queryKeysForUsers} - * for the inviter, and making the resultant request.) - * - * Returns either `undefined` if no suitable bundle has been received, - * or an {@link StoredRoomKeyBundleData}, in which case, the bundle - * should be downloaded, and then passed to {@link - * receiveRoomKeyBundle}. - * - * @experimental - * @param {RoomId} room_id - * @param {UserId} inviter - * @returns {Promise} - */ - getReceivedRoomKeyBundleData(room_id, inviter) { - _assertClass(room_id, RoomId); - _assertClass(inviter, UserId); - const ret = wasm.olmmachine_getReceivedRoomKeyBundleData(this.__wbg_ptr, room_id.__wbg_ptr, inviter.__wbg_ptr); - return ret; - } - /** - * Get encryption info for a decrypted timeline event. - * - * This recalculates the `EncryptionInfo` data that is returned by - * `decryptRoomEvent`, based on the current - * verification status of the sender, etc. - * - * Returns an error for an unencrypted event. - * - * # Arguments - * - * * `event` - The event to get information for. - * * `room_id` - The ID of the room where the event was sent to. - * - * # Returns - * - * {@link EncryptionInfo} - * @param {string} event - * @param {RoomId} room_id - * @returns {Promise} - */ - getRoomEventEncryptionInfo(event, room_id) { - const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_getRoomEventEncryptionInfo(this.__wbg_ptr, ptr0, len0, room_id.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get the stored room settings, such as the encryption algorithm or - * whether to encrypt only for trusted devices. - * - * These settings can be modified via {@link setRoomSettings}. - * - * # Returns - * - * `Promise` - * @param {RoomId} room_id - * @returns {Promise} - */ - getRoomSettings(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_getRoomSettings(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Get all the secrets with the given secret_name we have currently - * stored. - * The only secret this will currently return is the - * `m.megolm_backup.v1` secret. - * - * Usually you would just register a callback with - * [`register_receive_secret_callback`], but if the client is shut down - * before handling them, this method can be used to retrieve them. - * This method should therefore be called at client startup to retrieve any - * secrets received during the previous session. - * - * The secrets are guaranteed to have been received over a 1-to-1 encrypted - * to_device message from one of the user's own verified devices. - * - * Returns a `Promise` for a `Set` of `String` corresponding to the secret - * values. - * - * If the secret is valid and handled, the secret inbox should be cleared - * by calling `delete_secrets_from_inbox`. - * @param {string} secret_name - * @returns {Promise>} - */ - getSecretsFromInbox(secret_name) { - const ptr0 = passStringToWasm0(secret_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_getSecretsFromInbox(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Get a map holding all the devices of a user. - * - * ### Parameters - * - * * `user_id` - The unique ID of the user that the device belongs to. - * - * * `timeout_secs` - The amount of time we should wait for a `/keys/query` - * response before returning if the user's device list has been marked as - * stale. **Note**, this assumes that the requests from {@link - * OlmMachine.outgoingRequests} are being processed and sent out. - * - * If unset, we will return immediately even if the device list is stale. - * - * ### Returns - * - * A {@link UserDevices} object. - * @param {UserId} user_id - * @param {number | null} [timeout_secs] - * @returns {Promise} - */ - getUserDevices(user_id, timeout_secs) { - _assertClass(user_id, UserId); - const ret = wasm.olmmachine_getUserDevices(this.__wbg_ptr, user_id.__wbg_ptr, !isLikeNone(timeout_secs), isLikeNone(timeout_secs) ? 0 : timeout_secs); - return ret; - } - /** - * Get a verification object for the given user ID with the given - * flow ID (a to-device request ID if the verification has been - * requested by a to-device request, or a room event ID if the - * verification has been requested by a room event). - * - * It returns a “`Verification` object”, which is either a `Sas` - * or `Qr` object. - * @param {UserId} user_id - * @param {string} flow_id - * @returns {Sas | Qr | undefined} - */ - getVerification(user_id, flow_id) { - _assertClass(user_id, UserId); - const ptr0 = passStringToWasm0(flow_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_getVerification(this.__wbg_ptr, user_id.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get a verification request object with the given flow ID. - * @param {UserId} user_id - * @param {string} flow_id - * @returns {VerificationRequest | undefined} - */ - getVerificationRequest(user_id, flow_id) { - _assertClass(user_id, UserId); - const ptr0 = passStringToWasm0(flow_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_getVerificationRequest(this.__wbg_ptr, user_id.__wbg_ptr, ptr0, len0); - return ret === 0 ? undefined : VerificationRequest.__wrap(ret); - } - /** - * Get all the verification requests of a given user. - * @param {UserId} user_id - * @returns {VerificationRequest[]} - */ - getVerificationRequests(user_id) { - _assertClass(user_id, UserId); - const ret = wasm.olmmachine_getVerificationRequests(this.__wbg_ptr, user_id.__wbg_ptr); - return ret; - } - /** - * Get whether we have previously downloaded all message keys for a - * particular room from the key backup. Typically called in advance of - * building a room key bundle. - * @param {RoomId} room_id - * @returns {Promise} - */ - hasDownloadedAllRoomKeys(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_hasDownloadedAllRoomKeys(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Get the public parts of our Olm identity keys. - * @returns {IdentityKeys} - */ - get identityKeys() { - const ret = wasm.olmmachine_identityKeys(this.__wbg_ptr); - return IdentityKeys.__wrap(ret); - } - /** - * Import the given room keys into our store. - * - * # Arguments - * - * * `backed_up_room_keys`: keys that were retrieved from backup and that - * should be added to our store (provided they are better than our - * current versions of those keys). Specifically, it should be a Map from - * {@link RoomId}, to a Map from session ID to a (decrypted) session data - * structure. - * - * * `progress_listener`: an optional callback that takes 3 arguments: - * `progress` (the number of keys that have successfully been imported), - * `total` (the total number of keys), and `failures` (the number of keys - * that failed to import), and returns nothing. - * - * # Returns - * - * A {@link RoomKeyImportResult}. - * @param {Map>} backed_up_room_keys - * @param {(progress: bigint, total: bigint, failures: bigint) => void | undefined} progress_listener - * @param {string} backup_version - * @returns {Promise} - */ - importBackedUpRoomKeys(backed_up_room_keys, progress_listener, backup_version) { - const ptr0 = passStringToWasm0(backup_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_importBackedUpRoomKeys(this.__wbg_ptr, backed_up_room_keys, isLikeNone(progress_listener) ? 0 : addToExternrefTable0(progress_listener), ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Import our private cross signing keys. - * - * The keys should be provided as unpadded-base64-encoded strings. - * - * Returns a `CrossSigningStatus`. - * @param {string | null} [master_key] - * @param {string | null} [self_signing_key] - * @param {string | null} [user_signing_key] - * @returns {Promise} - */ - importCrossSigningKeys(master_key, self_signing_key, user_signing_key) { - var ptr0 = isLikeNone(master_key) ? 0 : passStringToWasm0(master_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(self_signing_key) ? 0 : passStringToWasm0(self_signing_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - var ptr2 = isLikeNone(user_signing_key) ? 0 : passStringToWasm0(user_signing_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len2 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_importCrossSigningKeys(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2); - return ret; - } - /** - * Import the given room keys into our store. - * - * `exported_keys` is a JSON-encoded list of previously exported keys that - * should be imported into our store. If we already have a better - * version of a key, the key will _not_ be imported. - * - * `progress_listener` is a closure that takes 2 `BigInt` arguments: - * `progress` and `total`, and returns nothing. - * - * Returns a {@link RoomKeyImportResult}. - * @param {string} exported_room_keys - * @param {(progress: bigint, total: bigint) => void} progress_listener - * @returns {Promise} - */ - importExportedRoomKeys(exported_room_keys, progress_listener) { - const ptr0 = passStringToWasm0(exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_importExportedRoomKeys(this.__wbg_ptr, ptr0, len0, progress_listener); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Import the given room keys into our store. - * - * Mostly, a deprecated alias for `importExportedRoomKeys`, though the - * return type is different. - * - * Returns a String containing a JSON-encoded object, holding three - * properties: - * * `total_count` (the total number of keys found in the export data). - * * `imported_count` (the number of keys that were imported). - * * `keys` (the keys that were imported; a map from room id to a map of - * the sender key to a list of session ids). - * - * @deprecated Use `importExportedRoomKeys` or `importBackedUpRoomKeys`. - * @param {string} exported_room_keys - * @param {(imported: bigint, total: bigint) => void} progress_listener - * @returns {Promise} - */ - importRoomKeys(exported_room_keys, progress_listener) { - const ptr0 = passStringToWasm0(exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_importRoomKeys(this.__wbg_ptr, ptr0, len0, progress_listener); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Import and persists secrets from a {@link SecretsBundle}. - * - * This method will import all the private cross-signing keys and, if - * available, the private part of a backup key and its accompanying - * version into the store. - * - * **Warning**: Only import this from a trusted source, i.e. if an existing - * device is sharing this with a new device. The imported cross-signing - * keys will create a {@link OwnUserIdentity} and mark it as verified. - * - * The backup key will be persisted in the store and can be enabled using - * the BackupMachine. - * - * The provided `SecretsBundle` is freed by this method; be careful not to - * use it once this method has been called. - * @param {SecretsBundle} bundle - * @returns {Promise} - */ - importSecretsBundle(bundle) { - _assertClass(bundle, SecretsBundle); - var ptr0 = bundle.__destroy_into_raw(); - const ret = wasm.olmmachine_importSecretsBundle(this.__wbg_ptr, ptr0); - return ret; - } - /** - * Create a new `OlmMachine` backed by an existing store. - * - * # Arguments - * - * * `user_id` - represents the unique ID of the user that owns this - * machine. - * - * * `device_id` - represents the unique ID of the device - * that owns this machine. - * - * * `store_handle` - the connection to the crypto store to be used for - * this machine. - * - * * `logger` - Optional logger to use for all operations on this machine. - * An instance of `JsLogger`. - * - * * `ca_certs_pem` - Optional PEM-formatted string that provides CA - * certificates. These will be used to check X.509 signatures on user - * identities. Any user identity that has a valid signature according to - * the supplied CAs will be considered verified, without any manual - * - * * `raw_x509_signer` - Optional async function for signing some data with - * an X.509 certificate. Used to sign the user's identity so compatible - * clients will recognise this user as verified without manual - * verification taking place. If you supply this you must also supply - * raw_x509_validity. - * - * * `raw_x509_validity` - Optional function returning the validity period - * of the X.509 certificate used for signing, as the number of - * milliseconds since the Unix epoch. If you supply this you must also - * supply raw_x509_signer. - * @param {UserId} user_id - * @param {DeviceId} device_id - * @param {StoreHandle} store_handle - * @param {JsLogger} [logger] - * @param {String} [ca_certs_pem] - * @param {(item: Uint8Array) => Promise<{ signature_bytes: Uint8Array, certificate_chain: string }>} [raw_x509_signer] - * @param {() => number} [raw_x509_validity] - * @returns {Promise} - */ - static initFromStore(user_id, device_id, store_handle, logger, ca_certs_pem, raw_x509_signer, raw_x509_validity) { - _assertClass(user_id, UserId); - _assertClass(device_id, DeviceId); - _assertClass(store_handle, StoreHandle); - var ptr0 = isLikeNone(ca_certs_pem) ? 0 : passStringToWasm0(ca_certs_pem, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_initFromStore(user_id.__wbg_ptr, device_id.__wbg_ptr, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger), ptr0, len0, isLikeNone(raw_x509_signer) ? 0 : addToExternrefTable0(raw_x509_signer), isLikeNone(raw_x509_validity) ? 0 : addToExternrefTable0(raw_x509_validity)); - return ret; - } - /** - * Create a new `OlmMachine`. - * - * The created machine will keep the encryption keys either in a IndexedDB - * based store, or in a memory store and once the objects is dropped, - * the keys will be lost. - * - * # Arguments - * - * * `user_id` - represents the unique ID of the user that owns this - * machine. - * - * * `device_id` - represents the unique ID of the device - * that owns this machine. - * - * * `store_name` - The name that should be used to open the IndexedDB - * based database. If this isn't provided, a memory-only store will be - * used. *Note* the memory-only store will lose your E2EE keys when the - * `OlmMachine` gets dropped. - * - * * `store_passphrase` - The passphrase that should be used to encrypt the - * IndexedDB-based store. - * - * * `logger` - Optional logger to use for all operations on this machine. - * An instance of `JsLogger`. - * - * * `ca_certs_pem` - Optional PEM-formatted string that provides CA - * certificates. These will be used to check X.509 signatures on user - * identities. Any user identity that has a valid signature according to - * the supplied CAs will be considered verified, without any manual - * verification taking place. A PEM-formatted string. - * - * * `raw_x509_signer` - Optional async function for signing some data with - * an X.509 certificate. Used to sign the user's identity so compatible - * clients will recognise this user as verified without manual - * verification taking place. If you supply this you must also supply - * raw_x509_validity. - * - * * `raw_x509_validity` - Optional function returning the validity period - * of the X.509 certificate used for signing, as the number of - * milliseconds since the Unix epoch. If you supply this you must also - * supply raw_x509_signer. - * @param {UserId} user_id - * @param {DeviceId} device_id - * @param {string} [store_name] - * @param {string} [store_passphrase] - * @param {JsLogger} [logger] - * @param {String} [ca_certs_pem] - * @param {(item: Uint8Array) => Promise<{ signature_bytes: Uint8Array, certificate_chain: string }>} [raw_x509_signer] - * @param {() => number} [raw_x509_validity] - * @returns {Promise} - */ - static initialize(user_id, device_id, store_name, store_passphrase, logger, ca_certs_pem, raw_x509_signer, raw_x509_validity) { - _assertClass(user_id, UserId); - _assertClass(device_id, DeviceId); - var ptr0 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(store_passphrase) ? 0 : passStringToWasm0(store_passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - var ptr2 = isLikeNone(ca_certs_pem) ? 0 : passStringToWasm0(ca_certs_pem, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len2 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_initialize(user_id.__wbg_ptr, device_id.__wbg_ptr, ptr0, len0, ptr1, len1, isLikeNone(logger) ? 0 : addToExternrefTable0(logger), ptr2, len2, isLikeNone(raw_x509_signer) ? 0 : addToExternrefTable0(raw_x509_signer), isLikeNone(raw_x509_validity) ? 0 : addToExternrefTable0(raw_x509_validity)); - return ret; - } - /** - * Invalidate the currently active outbound group session for the - * given room. - * - * Returns true if a session was invalidated, false if there was - * no session to invalidate. - * @param {RoomId} room_id - * @returns {Promise} - */ - invalidateGroupSession(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_invalidateGroupSession(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Are we able to encrypt room keys. - * - * This returns true if we have an active `BackupKey` and backup version - * registered with the state machine. - * - * Returns `Promise`. - * @returns {Promise} - */ - isBackupEnabled() { - const ret = wasm.olmmachine_isBackupEnabled(this.__wbg_ptr); - return ret; - } - /** - * Mark all tracked users as dirty. - * - * All users *whose device lists we are tracking* are flagged as needing a - * key query. Users whose devices we are not tracking are ignored. - * @returns {Promise} - */ - markAllTrackedUsersAsDirty() { - const ret = wasm.olmmachine_markAllTrackedUsersAsDirty(this.__wbg_ptr); - return ret; - } - /** - * Mark the request with the given request ID as sent (see - * `outgoing_requests`). - * - * Arguments are: - * - * * `request_id` represents the unique ID of the request that was sent - * out. This is needed to couple the response with the now sent out - * request. - * * `response_type` represents the type of the request that was sent out. - * * `response` represents the response that was received from the server - * after the outgoing request was sent out. - * @param {string} request_id - * @param {RequestType} request_type - * @param {string} response - * @returns {Promise} - */ - markRequestAsSent(request_id, request_type, response) { - const ptr0 = passStringToWasm0(request_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passStringToWasm0(response, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_markRequestAsSent(this.__wbg_ptr, ptr0, len0, request_type, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Constructor will always fail. To create a new `OlmMachine`, please use - * the `initialize` method. - * - * Why this pattern? `initialize` returns a `Promise`. Returning a - * `Promise` from a constructor is not idiomatic in JavaScript. - */ - constructor() { - const ret = wasm.olmmachine_new(); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - OlmMachineFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get the outgoing requests that need to be sent out. - * - * This returns a list of values, each of which can be any of: - * * {@link KeysUploadRequest}, - * * {@link KeysQueryRequest}, - * * {@link KeysClaimRequest}, - * * {@link ToDeviceRequest}, - * * {@link SignatureUploadRequest}, - * * {@link RoomMessageRequest}, or - * * {@link KeysBackupRequest}. - * - * Those requests need to be sent out to the server and the - * responses need to be passed back to the state machine - * using {@link OlmMachine.markRequestAsSent}. - * @returns {Promise} - */ - outgoingRequests() { - const ret = wasm.olmmachine_outgoingRequests(this.__wbg_ptr); - return ret; - } - /** - * Push a secret to all of our other verified devices - * - * This function assumes that we already have Olm sessions with the other - * devices. This can be done by calling {@link - * OlmMachine.getMissingSessions}. - * - * # Arguments - * - * * `secret_name` - The name of the secret to push. - * @param {string} name - * @returns {Promise} - */ - pushSecretToVerifiedDevices(name) { - const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_pushSecretToVerifiedDevices(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Generate an "out-of-band" key query request for the given set of users. - * - * This can be useful if we need the results from `getIdentity` or - * `getUserDevices` to be as up-to-date as possible. - * - * Returns a `KeysQueryRequest` object. The response of the request should - * be passed to the `OlmMachine` with the `mark_request_as_sent`. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - * @param {UserId[]} users - * @returns {KeysQueryRequest} - */ - queryKeysForUsers(users) { - const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_queryKeysForUsers(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return KeysQueryRequest.__wrap(ret[0]); - } - /** - * Import the message keys from a downloaded room key bundle. - * - * After {@link getReceivedRoomKeyBundleData} returns a truthy result, the - * media file should be downloaded and then passed into this method to - * actually do the import. - * - * @experimental - * @param {StoredRoomKeyBundleData} bundle_data - * @param {Uint8Array} encrypted_bundle - * @returns {Promise} - */ - receiveRoomKeyBundle(bundle_data, encrypted_bundle) { - _assertClass(bundle_data, StoredRoomKeyBundleData); - var ptr0 = bundle_data.__destroy_into_raw(); - const ptr1 = passArray8ToWasm0(encrypted_bundle, wasm.__wbindgen_malloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_receiveRoomKeyBundle(this.__wbg_ptr, ptr0, ptr1, len1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Handle to-device events and one-time key counts from a sync - * response. - * - * This will decrypt and handle to-device events returning the - * decrypted versions of them. - * - * To decrypt an event from the room timeline call - * `decrypt_room_event`. - * - * # Arguments - * - * * `to_device_events`: the JSON-encoded to-device evens from the `/sync` - * response - * * `changed_devices`: the mapping of changed and left devices, from the - * `/sync` response - * * `one_time_keys_counts`: The number of one-time keys on the server, - * from the `/sync` response. A `Map` from string (encryption algorithm) - * to number (number of keys). Following the sync v2 semantics, a missing - * entry for an algorithm means that there are *zero* keys of that type - * on the server. If the caller has no information about the key counts - * (for example, because it is processing only part of a sync response), - * it should use {@link receiveSyncChangesMsc4186} instead. - * * `unused_fallback_keys`: Optionally, a `Set` of unused fallback keys on - * the server, from the `/sync` response. If this is set, it is used to - * determine if new fallback keys should be uploaded. - * * `decryption_settings`: Optionally, the settings to use when decrypting - * to-device events. If not set, to-device events will be decrypted with - * a {@link TrustRequirement} of `Untrusted`. - * - * # Returns - * - * A list of values, each of which can be any of: - * * {@link DecryptedToDeviceEvent} - * * {@link PlainTextToDeviceEvent} - * * {@link UTDToDeviceEvent} - * * {@link InvalidToDeviceEvent} - * @param {string} to_device_events - * @param {DeviceLists} changed_devices - * @param {Map} one_time_keys_counts - * @param {Set} [unused_fallback_keys] - * @param {DecryptionSettings} [decryption_settings] - * @returns {Promise} - */ - receiveSyncChanges(to_device_events, changed_devices, one_time_keys_counts, unused_fallback_keys, decryption_settings) { - const ptr0 = passStringToWasm0(to_device_events, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(changed_devices, DeviceLists); - let ptr1 = 0; - if (!isLikeNone(decryption_settings)) { - _assertClass(decryption_settings, DecryptionSettings); - ptr1 = decryption_settings.__destroy_into_raw(); - } - const ret = wasm.olmmachine_receiveSyncChanges(this.__wbg_ptr, ptr0, len0, changed_devices.__wbg_ptr, one_time_keys_counts, isLikeNone(unused_fallback_keys) ? 0 : addToExternrefTable0(unused_fallback_keys), ptr1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Handle the changes to the end-to-end encryption state we received from - * a [MSC4186](https://github.com/matrix-org/matrix-spec-proposals/pull/4186) - * (simplified sliding sync) response. - * - * This behaves exactly like {@link receiveSyncChanges}, except for the - * handling of `one_time_keys_counts`: under MSC4186 semantics, a missing - * entry for an algorithm means that the number of keys on the server is - * *unchanged*, rather than zero. - * - * This is therefore also the method to use when the caller has no - * information about the one-time key counts, for example because it is - * processing only the to-device events or the device list changes from a - * sync response. - * - * # Arguments - * - * * `to_device_events`: the JSON-encoded to-device events from the sync - * response - * * `changed_devices`: the mapping of changed and left devices, from the - * sync response - * * `one_time_keys_counts`: The number of one-time keys on the server, - * from the sync response. A `Map` from string (encryption algorithm) to - * number (number of keys). A missing entry means "unchanged". - * * `unused_fallback_keys`: Optionally, a `Set` of unused fallback keys on - * the server, from the sync response. If this is set, it is used to - * determine if new fallback keys should be uploaded. - * * `decryption_settings`: Optionally, the settings to use when decrypting - * to-device events. If not set, to-device events will be decrypted with - * a {@link TrustRequirement} of `Untrusted`. - * - * # Returns - * - * A list of values, each of which can be any of: - * * {@link DecryptedToDeviceEvent} - * * {@link PlainTextToDeviceEvent} - * * {@link UTDToDeviceEvent} - * * {@link InvalidToDeviceEvent} - * @param {string} to_device_events - * @param {DeviceLists} changed_devices - * @param {Map} one_time_keys_counts - * @param {Set} [unused_fallback_keys] - * @param {DecryptionSettings} [decryption_settings] - * @returns {Promise} - */ - receiveSyncChangesMsc4186(to_device_events, changed_devices, one_time_keys_counts, unused_fallback_keys, decryption_settings) { - const ptr0 = passStringToWasm0(to_device_events, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(changed_devices, DeviceLists); - let ptr1 = 0; - if (!isLikeNone(decryption_settings)) { - _assertClass(decryption_settings, DecryptionSettings); - ptr1 = decryption_settings.__destroy_into_raw(); - } - const ret = wasm.olmmachine_receiveSyncChangesMsc4186(this.__wbg_ptr, ptr0, len0, changed_devices.__wbg_ptr, one_time_keys_counts, isLikeNone(unused_fallback_keys) ? 0 : addToExternrefTable0(unused_fallback_keys), ptr1); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Receive a verification event. - * - * This method can be used to pass verification events that are happening - * in rooms to the `OlmMachine`. The event should be in the decrypted form. - * @param {string} event - * @param {RoomId} room_id - * @returns {Promise} - */ - receiveVerificationEvent(event, room_id) { - const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_receiveVerificationEvent(this.__wbg_ptr, ptr0, len0, room_id.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Register a callback which will be called whenever there is an update to - * a device. - * - * `callback` should be a function that takes a single argument (an array - * of user IDs as strings) and returns a Promise. - * @param {(userIds: string[]) => Promise} callback - */ - registerDevicesUpdatedCallback(callback) { - wasm.olmmachine_registerDevicesUpdatedCallback(this.__wbg_ptr, callback); - } - /** - * Register a callback which will be called whenever a secret - * (`m.secret.send`) is received. - * - * The only secret this will currently broadcast is the - * `m.megolm_backup.v1` (the cross signing secrets are handled internally). - * - * To request a secret from other devices, a client sends an - * `m.secret.request` device event with `action` set to `request` and - * `name` set to the identifier of the secret. A device that wishes to - * share the secret will reply with an `m.secret.send` event, encrypted - * using olm. - * - * The secrets are guaranteed to have been received over a 1-to-1 encrypted - * to_device message from a one of the user's own verified devices. - * - * See https://matrix-org.github.io/matrix-rust-sdk/matrix_sdk_crypto/store/struct.Store.html#method.secrets_stream for more information. - * - * `callback` should be a function that takes 2 arguments: the secret name - * (string) and value (string). - * - * **Note**: if the secret is valid and handled on the javascript side, the - * secret inbox should be cleared by calling - * `delete_secrets_from_inbox`. - * @param {(name: string, value: string) => Promise} callback - */ - registerReceiveSecretCallback(callback) { - wasm.olmmachine_registerReceiveSecretCallback(this.__wbg_ptr, callback); - } - /** - * Register a callback which will be called whenever there is an update to - * a room key. - * - * `callback` should be a function that takes a single argument (an array - * of {@link RoomKeyInfo}) and returns a Promise. - * @param {(info: RoomKeyInfo[]) => Promise} callback - */ - registerRoomKeyUpdatedCallback(callback) { - wasm.olmmachine_registerRoomKeyUpdatedCallback(this.__wbg_ptr, callback); - } - /** - * Register a callback which will be called whenever we receive a - * notification that some room keys have been withheld. - * - * `callback` should be a function that takes a single argument (an array - * of {@link RoomKeyWithheldInfo}) and returns a Promise. - * @param {(info: RoomKeyWithheldInfo[]) => Promise} callback - */ - registerRoomKeysWithheldCallback(callback) { - wasm.olmmachine_registerRoomKeysWithheldCallback(this.__wbg_ptr, callback); - } - /** - * Register a callback which will be called whenever there is an update to - * a user identity. - * - * `callback` should be a function that takes a single argument (a {@link - * UserId}) and returns a Promise. - * @param {(id: UserId) => Promise} callback - */ - registerUserIdentityUpdatedCallback(callback) { - wasm.olmmachine_registerUserIdentityUpdatedCallback(this.__wbg_ptr, callback); - } - /** - * Request missing local secrets from our other trusted devices. - * - * "Local secrets" refers to secrets which can be shared between trusted - * devices, such as private cross-signing keys, and the megolm backup - * decryption key. - * - * This method will cause the sdk to generated outgoing secret requests - * (`m.secret.request`) to get the missing secrets. These requests will - * then be returned by a future call to {@link - * OlmMachine#outgoingRequests}. - * - * # Returns - * - * A `Promise` for a `bool` result, which will be true if secrets were - * missing, and a request was generated. - * @returns {Promise} - */ - requestMissingSecretsIfNeeded() { - const ret = wasm.olmmachine_requestMissingSecretsIfNeeded(this.__wbg_ptr); - return ret; - } - /** - * Get the number of backed up room keys and the total number of room keys. - * Returns a {@link RoomKeyCounts}. - * @returns {Promise} - */ - roomKeyCounts() { - const ret = wasm.olmmachine_roomKeyCounts(this.__wbg_ptr); - return ret; - } - /** - * Whether room key forwarding is enabled. - * - * If room key forwarding is enabled, we will automatically reply to - * incoming `m.room_key_request` messages from verified devices by - * forwarding the requested key (if we have it). - * @returns {boolean} - */ - get roomKeyForwardingEnabled() { - const ret = wasm.olmmachine_roomKeyForwardingEnabled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Whether automatic transmission of room key requests is enabled. - * - * Room key requests allow the device to request room keys that it might - * have missed in the original share using `m.room_key_request` - * events. - * @returns {boolean} - */ - get roomKeyRequestsEnabled() { - const ret = wasm.olmmachine_roomKeyRequestsEnabled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Store the backup decryption key in the crypto store. - * - * This is useful if the client wants to support gossiping of the backup - * key. - * - * Returns `Promise`. - * @param {BackupDecryptionKey} decryption_key - * @param {string} version - * @returns {Promise} - */ - saveBackupDecryptionKey(decryption_key, version) { - _assertClass(decryption_key, BackupDecryptionKey); - const ptr0 = passStringToWasm0(version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_saveBackupDecryptionKey(this.__wbg_ptr, decryption_key.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Record that we have downloaded all message keys for the given room. - * @param {RoomId} room_id - * @returns {Promise} - */ - setHasDownloadedAllRoomKeys(room_id) { - _assertClass(room_id, RoomId); - const ret = wasm.olmmachine_setHasDownloadedAllRoomKeys(this.__wbg_ptr, room_id.__wbg_ptr); - return ret; - } - /** - * Store encryption settings for the given room. - * - * This method checks if the new settings are "safe" -- ie, that they do - * not represent a downgrade in encryption security from any previous - * settings. Attempts to downgrade security will result in an error. - * - * If the settings are valid, they will be persisted to the crypto store. - * These settings are not used directly by this library, but the saved - * settings can be retrieved via {@link getRoomSettings}. - * @param {RoomId} room_id - * @param {RoomSettings} room_settings - * @returns {Promise} - */ - setRoomSettings(room_id, room_settings) { - _assertClass(room_id, RoomId); - _assertClass(room_settings, RoomSettings); - const ret = wasm.olmmachine_setRoomSettings(this.__wbg_ptr, room_id.__wbg_ptr, room_settings.__wbg_ptr); - return ret; - } - /** - * Enable or disable room key forwarding. - * @param {boolean} enabled - */ - set roomKeyForwardingEnabled(enabled) { - wasm.olmmachine_set_roomKeyForwardingEnabled(this.__wbg_ptr, enabled); - } - /** - * Enable or disable automatic transmission of room key requests. - * @param {boolean} enabled - */ - set roomKeyRequestsEnabled(enabled) { - wasm.olmmachine_set_roomKeyRequestsEnabled(this.__wbg_ptr, enabled); - } - /** - * Get to-device requests to share a room key with users in a room. - * - * `room_id` is the room ID. `users` is an array of `UserId` - * objects. `encryption_settings` are an `EncryptionSettings` - * object. - * - * Note: Care should be taken that only one such request at a - * time is in flight for the same room, e.g. using a lock. - * - * Returns an array of `ToDeviceRequest`s. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - * @param {RoomId} room_id - * @param {UserId[]} users - * @param {EncryptionSettings} encryption_settings - * @returns {Promise} - */ - shareRoomKey(room_id, users, encryption_settings) { - _assertClass(room_id, RoomId); - const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - _assertClass(encryption_settings, EncryptionSettings); - const ret = wasm.olmmachine_shareRoomKey(this.__wbg_ptr, room_id.__wbg_ptr, ptr0, len0, encryption_settings.__wbg_ptr); - return ret; - } - /** - * Collect the devices belonging to the given user, and send the details - * of a room key bundle to those devices. - * - * Returns a list of to-device requests which must be sent. - * - * @experimental - * @param {UserId} user - * @param {RoomId} room - * @param {string} url - * @param {string | null | undefined} media_encryption_info - * @param {CollectStrategy} sharing_strategy - * @returns {Promise} - */ - shareRoomKeyBundleData(user, room, url, media_encryption_info, sharing_strategy) { - _assertClass(user, UserId); - _assertClass(room, RoomId); - const ptr0 = passStringToWasm0(url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(media_encryption_info) ? 0 : passStringToWasm0(media_encryption_info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - _assertClass(sharing_strategy, CollectStrategy); - var ptr2 = sharing_strategy.__destroy_into_raw(); - const ret = wasm.olmmachine_shareRoomKeyBundleData(this.__wbg_ptr, user.__wbg_ptr, room.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Sign the given message using our device key and if available - * cross-signing master key. - * @param {string} message - * @returns {Promise} - */ - sign(message) { - const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_sign(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * Store the fact that we have accepted an invitation to the given room, so - * should accept a key bundle if one arrives soon. - * - * This should be called whenever we join a room following an invite, but - * it has no effect other than that the room will be returned by a future - * call to {@link getPendingKeyBundleDetailsForRoom}. - * - * @experimental - * @param {RoomId} room_id - * @param {UserId} inviter - * @returns {Promise} - */ - storeRoomPendingKeyBundle(room_id, inviter) { - _assertClass(room_id, RoomId); - _assertClass(inviter, UserId); - const ret = wasm.olmmachine_storeRoomPendingKeyBundle(this.__wbg_ptr, room_id.__wbg_ptr, inviter.__wbg_ptr); - return ret; - } - /** - * Get the list of users whose devices we are currently tracking. - * - * A user can be marked for tracking using the - * [`update_tracked_users`](#method.update_tracked_users) method. - * - * Returns a `Set`. - * @returns {Promise>} - */ - trackedUsers() { - const ret = wasm.olmmachine_trackedUsers(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Update the list of tracked users. - * - * The OlmMachine maintains a list of users whose devices we are keeping - * track of: these are known as "tracked users". These must be users - * that we share a room with, so that the server sends us updates for - * their device lists. - * - * # Arguments - * - * * `users` - An array of user ids that should be added to the list of - * tracked users - * - * Any users that hadn't been seen before will be flagged for a key query - * immediately, and whenever `receive_sync_changes` receives a - * "changed" notification for that user in the future. - * - * Users that were already in the list are unaffected. - * - * Items inside `users` will be invalidated by this method. Be careful not - * to use the `UserId`s after this method has been called. - * @param {UserId[]} users - * @returns {Promise} - */ - updateTrackedUsers(users) { - const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.olmmachine_updateTrackedUsers(this.__wbg_ptr, ptr0, len0); - return ret; - } - /** - * The unique user ID that owns this `OlmMachine` instance. - * @returns {UserId} - */ - get userId() { - const ret = wasm.olmmachine_userId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Check if the given backup has been verified by us or by another of our - * devices that we trust. - * - * The `backup_info` should be a Javascript object with the following - * format: - * - * ```json - * { - * "algorithm": "m.megolm_backup.v1.curve25519-aes-sha2", - * "auth_data": { - * "public_key":"XjhWTCjW7l59pbfx9tlCBQolfnIQWARoKOzjTOPSlWM", - * "signatures": {} - * } - * } - * ``` - * - * Returns a {@link SignatureVerification} object. - * @param {any} backup_info - * @returns {Promise} - */ - verifyBackup(backup_info) { - const ret = wasm.olmmachine_verifyBackup(this.__wbg_ptr, backup_info); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } -} -if (Symbol.dispose) OlmMachine.prototype[Symbol.dispose] = OlmMachine.prototype.free; - -/** - * Struct representing a cross signing identity of a user. - * - * This is the user identity of a user that isn't our own. Other users will - * only contain a master key and a self signing key, meaning that only device - * signatures can be checked with this identity. - * - * This struct wraps a read-only version of the struct and allows verifications - * to be requested to verify our own device with the user identity. - */ -export class OtherUserIdentity { - static __wrap(ptr) { - const obj = Object.create(OtherUserIdentity.prototype); - obj.__wbg_ptr = ptr; - OtherUserIdentityFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - OtherUserIdentityFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_otheruseridentity_free(ptr, 0); - } - /** - * Was this identity verified since initial observation and is not anymore? - * - * Such a violation should be reported to the local user by the - * application, and resolved by - * - * - Verifying the new identity with {@link requestVerification}, or: - * - Withdrawing the verification requirement with {@link - * withdrawVerification}. - * @returns {boolean} - */ - hasVerificationViolation() { - const ret = wasm.otheruseridentity_hasVerificationViolation(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the identity changed in a way that requires approval from the user? - * - * A user identity needs approval if it changed after the crypto machine - * has already observed ("pinned") a different identity for that user, - * unless it is an explicitly verified identity (using for example - * interactive verification). - * - * This situation can be resolved by: - * - * - Verifying the new identity with {@link requestVerification}, or: - * - Updating the pin to the new identity with {@link pinCurrentMasterKey}. - * @returns {boolean} - */ - identityNeedsUserApproval() { - const ret = wasm.otheruseridentity_identityNeedsUserApproval(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this user identity verified? - * @returns {boolean} - */ - isVerified() { - const ret = wasm.otheruseridentity_isVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the master key of the identity. - * @returns {string} - */ - get masterKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.otheruseridentity_masterKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Pin the current identity (public part of the master signing key). - * @returns {Promise} - */ - pinCurrentMasterKey() { - const ret = wasm.otheruseridentity_pinCurrentMasterKey(this.__wbg_ptr); - return ret; - } - /** - * Create a `VerificationRequest` object after the verification - * request content has been sent out. - * @param {RoomId} room_id - * @param {EventId} request_event_id - * @param {VerificationMethod[]} [methods] - * @returns {VerificationRequest} - */ - requestVerification(room_id, request_event_id, methods) { - _assertClass(room_id, RoomId); - _assertClass(request_event_id, EventId); - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.otheruseridentity_requestVerification(this.__wbg_ptr, room_id.__wbg_ptr, request_event_id.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return VerificationRequest.__wrap(ret[0]); - } - /** - * Get the self-signing key of the identity. - * @returns {string} - */ - get selfSigningKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.otheruseridentity_selfSigningKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Send a verification request to the given user. - * - * The returned content needs to be sent out into a DM room with the given - * user. - * - * After the content has been sent out a VerificationRequest can be started - * with the `request_verification` method. - * @param {VerificationMethod[]} [methods] - * @returns {string} - */ - verificationRequestContent(methods) { - let deferred3_0; - let deferred3_1; - try { - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.otheruseridentity_verificationRequestContent(this.__wbg_ptr, ptr0, len0); - var ptr2 = ret[0]; - var len2 = ret[1]; - if (ret[3]) { - ptr2 = 0; len2 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred3_0 = ptr2; - deferred3_1 = len2; - return getStringFromWasm0(ptr2, len2); - } finally { - wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); - } - } - /** - * Manually verify this user. - * - * This method will attempt to sign the user identity using our private - * cross signing key. - * - * This method fails if we don't have the private part of our user-signing - * key. - * - * Returns a request that needs to be sent out for the user to be marked as - * verified. - * @returns {Promise} - */ - verify() { - const ret = wasm.otheruseridentity_verify(this.__wbg_ptr); - return ret; - } - /** - * True if we verified this identity (with any own identity, at any - * point). - * - * To set this latch back to false, call {@link withdrawVerification}. - * @returns {boolean} - */ - wasPreviouslyVerified() { - const ret = wasm.otheruseridentity_wasPreviouslyVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Remove the requirement for this identity to be verified. - * - * If an identity was previously verified and is not anymore it will be - * reported to the user. In order to remove this notice users have to - * verify again or to withdraw the verification requirement. - * @returns {Promise} - */ - withdrawVerification() { - const ret = wasm.otheruseridentity_withdrawVerification(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) OtherUserIdentity.prototype[Symbol.dispose] = OtherUserIdentity.prototype.free; - -/** - * The result of an outbound ECIES channel establishment. - */ -export class OutboundCreationResult { - static __wrap(ptr) { - const obj = Object.create(OutboundCreationResult.prototype); - obj.__wbg_ptr = ptr; - OutboundCreationResultFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - OutboundCreationResultFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_outboundcreationresult_free(ptr, 0); - } - /** - * The established ECIES channel. - * @returns {EstablishedEcies} - */ - get channel() { - const ret = wasm.__wbg_get_outboundcreationresult_channel(this.__wbg_ptr); - return EstablishedEcies.__wrap(ret); - } - /** - * The initial encrypted message. - * @returns {string} - */ - get initial_message() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_outboundcreationresult_initial_message(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The established ECIES channel. - * @param {EstablishedEcies} arg0 - */ - set channel(arg0) { - _assertClass(arg0, EstablishedEcies); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_outboundcreationresult_channel(this.__wbg_ptr, ptr0); - } - /** - * The initial encrypted message. - * @param {string} arg0 - */ - set initial_message(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_outboundcreationresult_initial_message(this.__wbg_ptr, ptr0, len0); - } -} -if (Symbol.dispose) OutboundCreationResult.prototype[Symbol.dispose] = OutboundCreationResult.prototype.free; - -/** - * Struct representing a cross signing identity of a user. - * - * This is the user identity of a user that is our own. - */ -export class OwnUserIdentity { - static __wrap(ptr) { - const obj = Object.create(OwnUserIdentity.prototype); - obj.__wbg_ptr = ptr; - OwnUserIdentityFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - OwnUserIdentityFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_ownuseridentity_free(ptr, 0); - } - /** - * Was this identity verified since initial observation and is not anymore? - * - * Such a violation should be reported to the local user by the - * application, and resolved by - * - * - Verifying the new identity with {@link requestVerification}, or: - * - Withdrawing the verification requirement with {@link - * withdrawVerification}. - * @returns {boolean} - */ - hasVerificationViolation() { - const ret = wasm.ownuseridentity_hasVerificationViolation(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this user identity verified? - * @returns {boolean} - */ - isVerified() { - const ret = wasm.ownuseridentity_isVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the master key of the identity. - * @returns {string} - */ - get masterKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.ownuseridentity_masterKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Send a verification request to our other devices. - * @param {VerificationMethod[]} [methods] - * @returns {Promise<[VerificationRequest, OutgoingVerificationRequest]>} - */ - requestVerification(methods) { - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.ownuseridentity_requestVerification(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get the self-signing key of the identity. - * @returns {string} - */ - get selfSigningKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.ownuseridentity_selfSigningKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Does our user identity trust our own device, i.e. have we signed our own - * device keys with our self-signing key? - * @returns {Promise} - */ - trustsOurOwnDevice() { - const ret = wasm.ownuseridentity_trustsOurOwnDevice(this.__wbg_ptr); - return ret; - } - /** - * Get the user-signing key of the identity. This is only present for our - * own user identity. - * @returns {string} - */ - get userSigningKey() { - let deferred2_0; - let deferred2_1; - try { - const ret = wasm.ownuseridentity_userSigningKey(this.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Mark our user identity as verified. - * - * This will mark the identity locally as verified and sign it with our own - * device. - * - * Returns a signature upload request that needs to be sent out. - * @returns {Promise} - */ - verify() { - const ret = wasm.ownuseridentity_verify(this.__wbg_ptr); - return ret; - } - /** - * True if we verified our own identity at some point in the past. - * - * To reset this latch back to `false`, call {@link withdrawVerification}. - * @returns {boolean} - */ - wasPreviouslyVerified() { - const ret = wasm.ownuseridentity_wasPreviouslyVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Remove the requirement for this identity to be verified. - * - * If an identity was previously verified and is not any longer, it will be - * reported to the user. In order to remove this notice users have to - * verify again or to withdraw the verification requirement. - * @returns {Promise} - */ - withdrawVerification() { - const ret = wasm.ownuseridentity_withdrawVerification(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) OwnUserIdentity.prototype[Symbol.dispose] = OwnUserIdentity.prototype.free; - -/** - * A pickled version of an `InboundGroupSession`. - * - * Holds all the information that needs to be stored in a database to restore - * an InboundGroupSession. - */ -export class PickledInboundGroupSession { - static __unwrap(jsValue) { - if (!(jsValue instanceof PickledInboundGroupSession)) { - return 0; - } - return jsValue.__destroy_into_raw(); - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PickledInboundGroupSessionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pickledinboundgroupsession_free(ptr, 0); - } - /** - * Flag remembering if the session has been backed up. - * @returns {boolean} - */ - get backedUp() { - const ret = wasm.__wbg_get_pickledinboundgroupsession_backedUp(this.__wbg_ptr); - return ret !== 0; - } - /** - * Flag remembering if the session was directly sent to us by the sender - * or if it was imported. - * @returns {boolean} - */ - get imported() { - const ret = wasm.__wbg_get_pickledinboundgroupsession_imported(this.__wbg_ptr); - return ret !== 0; - } - /** - * The pickle string holding the Megolm Session, as returned by - * `olm_pickle_inbound_group_session` in libolm. - * @returns {string} - */ - get pickle() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_pickledinboundgroupsession_pickle(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The id of the room that the session is used in. - * - * Nullable so that a `PickledInboundGroupSession` can be constructed - * incrementally. Must be populated! - * @returns {RoomId | undefined} - */ - get roomId() { - const ret = wasm.__wbg_get_pickledinboundgroupsession_roomId(this.__wbg_ptr); - return ret === 0 ? undefined : RoomId.__wrap(ret); - } - /** - * The public curve25519 key of the account that sent us the session. - * @returns {string} - */ - get senderKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_pickledinboundgroupsession_senderKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The public ed25519 key of the account that is believed to have initiated - * the session, if known. - * - * If the session was received directly from the creator via an - * Olm-encrypted `m.room_key` event, this value is taken from the `keys` - * property of the plaintext payload of that event (see - * [`m.olm.v1.curve25519-aes-sha2`]). - * - * If the session was forwarded to us using an [`m.forwarded_room_key`], - * this value is a copy of the `sender_claimed_ed25519_key` from the - * content of the event. - * - * [`m.olm.v1.curve25519-aes-sha2`]: https://spec.matrix.org/v1.9/client-server-api/#molmv1curve25519-aes-sha2 - * [`m.forwarded_room_key`]: https://spec.matrix.org/v1.9/client-server-api/#mforwarded_room_key - * @returns {string | undefined} - */ - get senderSigningKey() { - const ret = wasm.__wbg_get_pickledinboundgroupsession_senderSigningKey(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Construct a new `PickledInboundGroupSession`, with default values. - */ - constructor() { - const ret = wasm.pickledinboundgroupsession_new(); - this.__wbg_ptr = ret; - PickledInboundGroupSessionFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Flag remembering if the session has been backed up. - * @param {boolean} arg0 - */ - set backedUp(arg0) { - wasm.__wbg_set_pickledinboundgroupsession_backedUp(this.__wbg_ptr, arg0); - } - /** - * Flag remembering if the session was directly sent to us by the sender - * or if it was imported. - * @param {boolean} arg0 - */ - set imported(arg0) { - wasm.__wbg_set_pickledinboundgroupsession_imported(this.__wbg_ptr, arg0); - } - /** - * The pickle string holding the Megolm Session, as returned by - * `olm_pickle_inbound_group_session` in libolm. - * @param {string} arg0 - */ - set pickle(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledinboundgroupsession_pickle(this.__wbg_ptr, ptr0, len0); - } - /** - * The id of the room that the session is used in. - * - * Nullable so that a `PickledInboundGroupSession` can be constructed - * incrementally. Must be populated! - * @param {RoomId | null} [arg0] - */ - set roomId(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, RoomId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_pickledinboundgroupsession_roomId(this.__wbg_ptr, ptr0); - } - /** - * The public curve25519 key of the account that sent us the session. - * @param {string} arg0 - */ - set senderKey(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledinboundgroupsession_senderKey(this.__wbg_ptr, ptr0, len0); - } - /** - * The public ed25519 key of the account that is believed to have initiated - * the session, if known. - * - * If the session was received directly from the creator via an - * Olm-encrypted `m.room_key` event, this value is taken from the `keys` - * property of the plaintext payload of that event (see - * [`m.olm.v1.curve25519-aes-sha2`]). - * - * If the session was forwarded to us using an [`m.forwarded_room_key`], - * this value is a copy of the `sender_claimed_ed25519_key` from the - * content of the event. - * - * [`m.olm.v1.curve25519-aes-sha2`]: https://spec.matrix.org/v1.9/client-server-api/#molmv1curve25519-aes-sha2 - * [`m.forwarded_room_key`]: https://spec.matrix.org/v1.9/client-server-api/#mforwarded_room_key - * @param {string | null} [arg0] - */ - set senderSigningKey(arg0) { - var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledinboundgroupsession_senderSigningKey(this.__wbg_ptr, ptr0, len0); - } -} -if (Symbol.dispose) PickledInboundGroupSession.prototype[Symbol.dispose] = PickledInboundGroupSession.prototype.free; - -/** - * A pickled version of a `Session`. - * - * Holds all the information that needs to be stored in a database to restore - * an Olm Session. Can be imported into the rust store with {@link - * Migration::migrateOlmSessions}. - */ -export class PickledSession { - static __unwrap(jsValue) { - if (!(jsValue instanceof PickledSession)) { - return 0; - } - return jsValue.__destroy_into_raw(); - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PickledSessionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pickledsession_free(ptr, 0); - } - /** - * Was the session created using a fallback key? - * @returns {boolean} - */ - get createdUsingFallbackKey() { - const ret = wasm.__wbg_get_pickledsession_createdUsingFallbackKey(this.__wbg_ptr); - return ret !== 0; - } - /** - * When the session was created. - * @returns {Date} - */ - get creationTime() { - const ret = wasm.__wbg_get_pickledsession_creationTime(this.__wbg_ptr); - return ret; - } - /** - * When the session was last used. - * @returns {Date} - */ - get lastUseTime() { - const ret = wasm.__wbg_get_pickledsession_lastUseTime(this.__wbg_ptr); - return ret; - } - /** - * The pickle string holding the Olm Session, as returned by - * `olm_pickle_session` in libolm. - * @returns {string} - */ - get pickle() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_pickledsession_pickle(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The base64-encoded public curve25519 key of the other user that we share - * this session with. - * @returns {string} - */ - get senderKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_pickledsession_senderKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Construct a new `PickledSession`, with default values. - */ - constructor() { - const ret = wasm.pickledsession_new(); - this.__wbg_ptr = ret; - PickledSessionFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Was the session created using a fallback key? - * @param {boolean} arg0 - */ - set createdUsingFallbackKey(arg0) { - wasm.__wbg_set_pickledsession_createdUsingFallbackKey(this.__wbg_ptr, arg0); - } - /** - * When the session was created. - * @param {Date} arg0 - */ - set creationTime(arg0) { - wasm.__wbg_set_pickledsession_creationTime(this.__wbg_ptr, arg0); - } - /** - * When the session was last used. - * @param {Date} arg0 - */ - set lastUseTime(arg0) { - wasm.__wbg_set_pickledsession_lastUseTime(this.__wbg_ptr, arg0); - } - /** - * The pickle string holding the Olm Session, as returned by - * `olm_pickle_session` in libolm. - * @param {string} arg0 - */ - set pickle(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledsession_pickle(this.__wbg_ptr, ptr0, len0); - } - /** - * The base64-encoded public curve25519 key of the other user that we share - * this session with. - * @param {string} arg0 - */ - set senderKey(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_pickledsession_senderKey(this.__wbg_ptr, ptr0, len0); - } -} -if (Symbol.dispose) PickledSession.prototype[Symbol.dispose] = PickledSession.prototype.free; - -/** - * A class representing a public-key decryption instance. - * - * This implements the decryption part of the - * `m.megolm_backup.v1.curve25519-aes-sha2` algorithm described in the Matrix - * {@link https://spec.matrix.org/v1.11/client-server-api/#backup-algorithm-mmegolm_backupv1curve25519-aes-sha2 | spec}. - * - * @see {@link PkEncryption} - * - * More details can be found in the official {@link https://docs.rs/vodozemac/latest/vodozemac/pk_encryption/ | vodozemac documentation}. - */ -export class PkDecryption { - static __wrap(ptr) { - const obj = Object.create(PkDecryption.prototype); - obj.__wbg_ptr = ptr; - PkDecryptionFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PkDecryptionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pkdecryption_free(ptr, 0); - } - /** - * Decrypts an encrypted message and returns the raw `Uint8Array`. - * @param {PkMessage} message - * @returns {Uint8Array} - */ - decrypt(message) { - _assertClass(message, PkMessage); - const ret = wasm.pkdecryption_decrypt(this.__wbg_ptr, message.__wbg_ptr); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Decrypts an encrypted message and returns the plaintext as a UTF-8 - * string. - * @param {PkMessage} message - * @returns {string} - */ - decryptString(message) { - let deferred2_0; - let deferred2_1; - try { - _assertClass(message, PkMessage); - const ret = wasm.pkdecryption_decryptString(this.__wbg_ptr, message.__wbg_ptr); - var ptr1 = ret[0]; - var len1 = ret[1]; - if (ret[3]) { - ptr1 = 0; len1 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred2_0 = ptr1; - deferred2_1 = len1; - return getStringFromWasm0(ptr1, len1); - } finally { - wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); - } - } - /** - * Creates a `PkDecryption` instance from a secret key. - * @param {Curve25519SecretKey} key - * @returns {PkDecryption} - */ - static fromKey(key) { - _assertClass(key, Curve25519SecretKey); - const ret = wasm.pkdecryption_fromKey(key.__wbg_ptr); - return PkDecryption.__wrap(ret); - } - /** - * Creates a new `PkDecryption` instance with a newly generated key pair. - */ - constructor() { - const ret = wasm.pkdecryption_new(); - this.__wbg_ptr = ret; - PkDecryptionFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Returns the public key associated with this decryption instance. - * - * This can be used to construct a {@link PkEncryption} object to encrypt a - * message for this `PkDecryption` object. - * @returns {Curve25519PublicKey} - */ - publicKey() { - const ret = wasm.pkdecryption_publicKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * Returns the secret key associated with this `PkDecryption` instance. - * @returns {Curve25519SecretKey} - */ - secretKey() { - const ret = wasm.pkdecryption_secretKey(this.__wbg_ptr); - return Curve25519SecretKey.__wrap(ret); - } -} -if (Symbol.dispose) PkDecryption.prototype[Symbol.dispose] = PkDecryption.prototype.free; - -/** - * A class representing a public-key encryption instance. - * - * This implements the encryption part of the - * `m.megolm_backup.v1.curve25519-aes-sha2` algorithm described in the Matrix - * {@link https://spec.matrix.org/v1.11/client-server-api/#backup-algorithm-mmegolm_backupv1curve25519-aes-sha2 | spec}. - * - * @see {@link PkDecryption} - * - * More details can be found in the official {@link https://docs.rs/vodozemac/latest/vodozemac/pk_encryption/ | vodozemac documentation}. - */ -export class PkEncryption { - static __wrap(ptr) { - const obj = Object.create(PkEncryption.prototype); - obj.__wbg_ptr = ptr; - PkEncryptionFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PkEncryptionFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pkencryption_free(ptr, 0); - } - /** - * Encrypts a byte message and returns an encrypted {@link PkMessage}. - * @param {Uint8Array} message - * @returns {PkMessage} - */ - encrypt(message) { - const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.pkencryption_encrypt(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return PkMessage.__wrap(ret[0]); - } - /** - * Encrypts a string message and returns an encrypted {@link PkMessage}. - * @param {string} message - * @returns {PkMessage} - */ - encryptString(message) { - const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.pkencryption_encryptString(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return PkMessage.__wrap(ret[0]); - } - /** - * Creates a new `PkEncryption` instance from a public key. - * @param {Curve25519PublicKey} public_key - * @returns {PkEncryption} - */ - static fromKey(public_key) { - _assertClass(public_key, Curve25519PublicKey); - const ret = wasm.pkencryption_fromKey(public_key.__wbg_ptr); - return PkEncryption.__wrap(ret); - } -} -if (Symbol.dispose) PkEncryption.prototype[Symbol.dispose] = PkEncryption.prototype.free; - -/** - * A class representing an encrypted message using {@link PkEncryption}. - */ -export class PkMessage { - static __wrap(ptr) { - const obj = Object.create(PkMessage.prototype); - obj.__wbg_ptr = ptr; - PkMessageFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PkMessageFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_pkmessage_free(ptr, 0); - } - /** - * Returns the raw ciphertext as a `Uint8Array`. - * @returns {Uint8Array} - */ - ciphertext() { - const ret = wasm.pkmessage_ciphertext(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Returns the ephemeral public key used during encryption. - * @returns {Curve25519PublicKey} - */ - ephemeralKey() { - const ret = wasm.pkmessage_ephemeralKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * Constructs a `PkMessage` from a base64-encoded representation. - * @param {Base64EncodedPkMessage} message - * @returns {PkMessage} - */ - static fromBase64(message) { - _assertClass(message, Base64EncodedPkMessage); - const ret = wasm.pkmessage_fromBase64(message.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return PkMessage.__wrap(ret[0]); - } - /** - * Constructs a `PkMessage` from its parts: ciphertext, MAC, and ephemeral - * key. - * @param {Uint8Array} ciphertext - * @param {Uint8Array} mac - * @param {Curve25519PublicKey} ephemeral_key - * @returns {PkMessage} - */ - static fromParts(ciphertext, mac, ephemeral_key) { - const ptr0 = passArray8ToWasm0(ciphertext, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passArray8ToWasm0(mac, wasm.__wbindgen_malloc); - const len1 = WASM_VECTOR_LEN; - _assertClass(ephemeral_key, Curve25519PublicKey); - const ret = wasm.pkmessage_fromParts(ptr0, len0, ptr1, len1, ephemeral_key.__wbg_ptr); - return PkMessage.__wrap(ret); - } - /** - * Returns the raw message authentication code (MAC) as a `Uint8Array`. - * @returns {Uint8Array} - */ - mac() { - const ret = wasm.pkmessage_mac(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } - /** - * Converts the `PkMessage` into a base64-encoded representation. - * @returns {Base64EncodedPkMessage} - */ - toBase64() { - const ret = wasm.pkmessage_toBase64(this.__wbg_ptr); - return Base64EncodedPkMessage.__wrap(ret); - } -} -if (Symbol.dispose) PkMessage.prototype[Symbol.dispose] = PkMessage.prototype.free; - -/** - * Represents a to-device event sent in the clear. - */ -export class PlainTextToDeviceEvent { - static __wrap(ptr) { - const obj = Object.create(PlainTextToDeviceEvent.prototype); - obj.__wbg_ptr = ptr; - PlainTextToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PlainTextToDeviceEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_plaintexttodeviceevent_free(ptr, 0); - } - /** - * The to-device message, containing `type`, `sender` and `content` fields, - * encoded as JSON. - * @returns {string} - */ - get rawEvent() { - const ret = wasm.__wbg_get_plaintexttodeviceevent_rawEvent(this.__wbg_ptr); - return ret; - } - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.PlainText} for this type. - * @returns {ProcessedToDeviceEventType} - */ - get type() { - const ret = wasm.plaintexttodeviceevent_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) PlainTextToDeviceEvent.prototype[Symbol.dispose] = PlainTextToDeviceEvent.prototype.free; - -/** - * The type of a {@link ProcessedToDeviceEvent}. - * @enum {0 | 1 | 2 | 3} - */ -export const ProcessedToDeviceEventType = Object.freeze({ - /** - * A successfully-decrypted encrypted to-device message. - */ - Decrypted: 0, "0": "Decrypted", - /** - * An encrypted to-device message which could not be decrypted. - */ - UnableToDecrypt: 1, "1": "UnableToDecrypt", - /** - * An unencrypted to-device message (sent in clear). - */ - PlainText: 2, "2": "PlainText", - /** - * An invalid to-device message that was ignored because it is missing some - * required information to be processed (like no event `type` for - * example) - */ - Invalid: 3, "3": "Invalid", -}); - -/** - * A request that will upload a dehydrated device to the server. - */ -export class PutDehydratedDeviceRequest { - static __wrap(ptr) { - const obj = Object.create(PutDehydratedDeviceRequest.prototype); - obj.__wbg_ptr = ptr; - PutDehydratedDeviceRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - PutDehydratedDeviceRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_putdehydrateddevicerequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `rooms`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_putdehydrateddevicerequest_body(this.__wbg_ptr); - return ret; - } - /** - * Create a new `PutDehydratedDeviceRequest` - * @param {string} body - */ - constructor(body) { - const ret = wasm.putdehydrateddevicerequest_new(body); - this.__wbg_ptr = ret; - PutDehydratedDeviceRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -if (Symbol.dispose) PutDehydratedDeviceRequest.prototype[Symbol.dispose] = PutDehydratedDeviceRequest.prototype.free; - -/** - * QR code based verification. - */ -export class Qr { - static __wrap(ptr) { - const obj = Object.create(Qr.prototype); - obj.__wbg_ptr = ptr; - QrFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qr_free(ptr, 0); - } - /** - * Cancel the verification flow. - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - * @returns {OutgoingVerificationRequest | undefined} - */ - cancel() { - const ret = wasm.qr_cancel(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get info about the cancellation if the verification flow has - * been cancelled. - * @returns {CancelInfo | undefined} - */ - cancelInfo() { - const ret = wasm.qr_cancelInfo(this.__wbg_ptr); - return ret === 0 ? undefined : CancelInfo.__wrap(ret); - } - /** - * Cancel the verification. - * - * This cancels the verification with given code (e.g. `m.user`). - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - * @param {string} code - * @returns {OutgoingVerificationRequest | undefined} - */ - cancelWithCode(code) { - const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.qr_cancelWithCode(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Confirm that the other side has scanned our QR code. - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already confirmed. - * @returns {OutgoingVerificationRequest | undefined} - */ - confirmScanning() { - const ret = wasm.qr_confirmScanning(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get the unique ID that identifies this QR verification flow, - * be either a to-device request ID or a room event ID. - * @returns {string} - */ - get flowId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.qr_flowId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Has the scanning of the QR code been confirmed by us? - * @returns {boolean} - */ - hasBeenConfirmed() { - const ret = wasm.qr_hasBeenConfirmed(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the QR verification been scanned by the other side. - * - * When the verification object is in this state it’s required - * that the user confirms that the other side has scanned the QR - * code. - * @returns {boolean} - */ - hasBeenScanned() { - const ret = wasm.qr_hasBeenScanned(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the verification flow been cancelled? - * @returns {boolean} - */ - isCancelled() { - const ret = wasm.qr_isCancelled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the verification flow completed? - * @returns {boolean} - */ - isDone() { - const ret = wasm.qr_isDone(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this a verification that is verifying one of our own devices? - * @returns {boolean} - */ - isSelfVerification() { - const ret = wasm.qr_isSelfVerification(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the device ID of the other side. - * @returns {DeviceId} - */ - get otherDeviceId() { - const ret = wasm.qr_otherDeviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Get the user id of the other user that is participating in - * this verification flow. - * @returns {UserId} - */ - get otherUserId() { - const ret = wasm.qr_otherUserId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Notify the other side that we have successfully scanned the QR - * code and that the QR verification flow can start. - * - * This will return some OutgoingContent if the object is in the - * correct state to start the verification flow, otherwise None. - * @returns {OutgoingVerificationRequest | undefined} - */ - reciprocate() { - const ret = wasm.qr_reciprocate(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Have we successfully scanned the QR code and are able to send - * a reciprocation event? - * @returns {boolean} - */ - reciprocated() { - const ret = wasm.qr_reciprocated(this.__wbg_ptr); - return ret !== 0; - } - /** - * Register a callback which will be called whenever there is an update to - * the request - * - * The `callback` is called with no parameters. - * @param {() => Promise} callback - */ - registerChangesCallback(callback) { - wasm.qr_registerChangesCallback(this.__wbg_ptr, callback); - } - /** - * Get the room id if the verification is happening inside a - * room. - * @returns {RoomId | undefined} - */ - get roomId() { - const ret = wasm.qr_roomId(this.__wbg_ptr); - return ret === 0 ? undefined : RoomId.__wrap(ret); - } - /** - * Get the current state of this request. - * - * Returns a `QrState`. - * @returns {QrState} - */ - state() { - const ret = wasm.qr_state(this.__wbg_ptr); - return ret; - } - /** - * Generate a the raw bytes that should be encoded as a QR code - * is representing this verification flow. - * - * The `to_qr_code` method can be used to instead output a QrCode - * object that can be rendered. - * @returns {Uint8ClampedArray} - */ - toBytes() { - const ret = wasm.qr_toBytes(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Generate a QR code object that is representing this - * verification flow. - * - * The QrCode can then be rendered as an image or as an unicode - * string. - * - * The `to_bytes` method can be used to instead output the raw - * bytes that should be encoded as a QR code. - * - * Returns a `QrCode`. - * @returns {QrCode} - */ - toQrCode() { - const ret = wasm.qr_toQrCode(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCode.__wrap(ret[0]); - } - /** - * Get our own user ID. - * @returns {UserId} - */ - get userId() { - const ret = wasm.qr_userId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Did we initiate the verification request? - * @returns {boolean} - */ - weStarted() { - const ret = wasm.qr_weStarted(this.__wbg_ptr); - return ret !== 0; - } -} -if (Symbol.dispose) Qr.prototype[Symbol.dispose] = Qr.prototype.free; - -/** - * A QR code. - */ -export class QrCode { - static __wrap(ptr) { - const obj = Object.create(QrCode.prototype); - obj.__wbg_ptr = ptr; - QrCodeFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrCodeFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qrcode_free(ptr, 0); - } - /** - * Render the QR code into a `Uint8ClampedArray` where 1 represents a - * dark pixel and 0 a white pixel. - * @returns {Uint8ClampedArray} - */ - renderIntoBuffer() { - const ret = wasm.qrcode_renderIntoBuffer(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } -} -if (Symbol.dispose) QrCode.prototype[Symbol.dispose] = QrCode.prototype.free; - -/** - * Data for the QR code login mechanism. - * - * The {@link QrCodeData} can be serialized and encoded as a QR code or it can - * be decoded from a QR code. - * - * This type supports both the format originally speicied in - * {link https://github.com/matrix-org/matrix-spec-proposals/pull/4108 MSC4108} as well as the - * updated format found in - * {link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388}. - */ -export class QrCodeData { - static __wrap(ptr) { - const obj = Object.create(QrCodeData.prototype); - obj.__wbg_ptr = ptr; - QrCodeDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrCodeDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qrcodedata_free(ptr, 0); - } - /** - * Attempt to decode a base64 encoded string into a {@link QrCodeData} - * object. - * @param {string} data - * @returns {QrCodeData} - */ - static fromBase64(data) { - const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.qrcodedata_fromBase64(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCodeData.__wrap(ret[0]); - } - /** - * Attempt to decode a slice of bytes into a {@link QrCodeData} object. - * - * The slice of bytes would generally be returned by a QR code decoder. - * @param {Uint8Array} bytes - * @returns {QrCodeData} - */ - static fromBytes(bytes) { - const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.qrcodedata_fromBytes(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCodeData.__wrap(ret[0]); - } - /** - * Get the intent-specific data embedded in the {@link QrCodeData}. - * @returns {QrCodeIntentData} - */ - get intentData() { - const ret = wasm.qrcodedata_intentData(this.__wbg_ptr); - return QrCodeIntentData.__wrap(ret); - } - /** - * Get the mode of this {@link QrCodeData} instance. - * @returns {QrCodeIntent} - */ - get mode() { - const ret = wasm.qrcodedata_mode(this.__wbg_ptr); - return ret; - } - /** - * Create new {@link QrCodeData} from a given public key, a rendezvous URL - * and, optionally, a server name for the homeserver. - * - * If a server name is given, then the {@link QrCodeData} mode will be - * {@link QrCodeIntent.Reciprocate}, i.e. the QR code will contain data for - * the existing device to display the QR code. - * - * If no server name is given, the {@link QrCodeData} mode will be - * {@link QrCodeIntent.Login}, i.e. the QR code will contain data for the - * new device to display the QR code. - * @param {Curve25519PublicKey} public_key - * @param {string} rendezvous_url - * @param {string | null} [server_name] - */ - constructor(public_key, rendezvous_url, server_name) { - _assertClass(public_key, Curve25519PublicKey); - var ptr0 = public_key.__destroy_into_raw(); - const ptr1 = passStringToWasm0(rendezvous_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - var ptr2 = isLikeNone(server_name) ? 0 : passStringToWasm0(server_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len2 = WASM_VECTOR_LEN; - const ret = wasm.qrcodedata_new(ptr0, ptr1, len1, ptr2, len2); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - QrCodeDataFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Create new {@link QrCodeData} from a given public key, a rendezvous ID - * and, a base homeserver URL. - * - * This creates a QR code which conforms to - * {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4388 MSC4388} of the data - * format for QR login. - * @param {Curve25519PublicKey} public_key - * @param {string} rendezvous_id - * @param {string} base_url - * @param {QrCodeIntent} intent - * @returns {QrCodeData} - */ - static newMsc4388(public_key, rendezvous_id, base_url, intent) { - _assertClass(public_key, Curve25519PublicKey); - var ptr0 = public_key.__destroy_into_raw(); - const ptr1 = passStringToWasm0(rendezvous_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - const ptr2 = passStringToWasm0(base_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len2 = WASM_VECTOR_LEN; - const ret = wasm.qrcodedata_newMsc4388(ptr0, ptr1, len1, ptr2, len2, intent); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCodeData.__wrap(ret[0]); - } - /** - * Get the Curve25519 public key embedded in the {@link QrCodeData}. - * - * This Curve25519 public key should be used to establish an - * [HPKE](https://www.rfc-editor.org/rfc/rfc9180.html) - * (Hybrid Public Key Encryption) channel with the other device. - * @returns {Curve25519PublicKey} - */ - get publicKey() { - const ret = wasm.qrcodedata_publicKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * Get the URL of the rendezvous server which will be used to exchange - * messages between the two devices. - * @returns {string | undefined} - */ - get rendezvousUrl() { - const ret = wasm.qrcodedata_rendezvousUrl(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Get the server name of the homeserver which the new device will be - * logged in to. - * - * This will be only available if the existing device has generated the QR - * code and the new device is the one scanning the QR code. - * @returns {string | undefined} - */ - get serverName() { - const ret = wasm.qrcodedata_serverName(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Encode the {@link QrCodeData} into a string using base64. - * - * This format can be used for debugging purposes and the - * [`QrcodeData::from_base64()`] method can be used to parse the string - * again. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.qrcodedata_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Encode the {@link QrCodeData} into a list of bytes. - * - * The list of bytes can be used by a QR code generator to create an image - * containing a QR code. - * @returns {Uint8Array} - */ - toBytes() { - const ret = wasm.qrcodedata_toBytes(this.__wbg_ptr); - var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - return v1; - } -} -if (Symbol.dispose) QrCodeData.prototype[Symbol.dispose] = QrCodeData.prototype.free; - -/** - * The mode of the QR code login. - * - * The QR code login mechanism supports both, the new device, as well as the - * existing device to display the QR code. - * - * The different modes have an explicit one-byte identifier which gets added to - * the QR code data. - * @enum {0 | 1} - */ -export const QrCodeIntent = Object.freeze({ - /** - * The new device is displaying the QR code. - */ - Login: 0, "0": "Login", - /** - * The existing device is displaying the QR code. - */ - Reciprocate: 1, "1": "Reciprocate", -}); - -/** - * Intent and MSC-specific data class for the QR code login support. - */ -export class QrCodeIntentData { - static __wrap(ptr) { - const obj = Object.create(QrCodeIntentData.prototype); - obj.__wbg_ptr = ptr; - QrCodeIntentDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrCodeIntentDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qrcodeintentdata_free(ptr, 0); - } - /** - * The MSC4108-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4108. Otherwise it will contain - * MSC4388-specific intent data. - * @returns {Msc4108IntentData | undefined} - */ - get msc4108() { - const ret = wasm.__wbg_get_qrcodeintentdata_msc4108(this.__wbg_ptr); - return ret === 0 ? undefined : Msc4108IntentData.__wrap(ret); - } - /** - * The MSC4833-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4388. Otherwise it will contain - * MSC4108-specific intent data. - * @returns {Msc4388IntentData | undefined} - */ - get msc4388() { - const ret = wasm.__wbg_get_qrcodeintentdata_msc4388(this.__wbg_ptr); - return ret === 0 ? undefined : Msc4388IntentData.__wrap(ret); - } - /** - * The MSC4108-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4108. Otherwise it will contain - * MSC4388-specific intent data. - * @param {Msc4108IntentData | null} [arg0] - */ - set msc4108(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, Msc4108IntentData); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_qrcodeintentdata_msc4108(this.__wbg_ptr, ptr0); - } - /** - * The MSC4833-specific intent data. - * - * This will not be `null` only if the {@link QrCodeData} contains data as - * specified in the QR code format of MSC4388. Otherwise it will contain - * MSC4108-specific intent data. - * @param {Msc4388IntentData | null} [arg0] - */ - set msc4388(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, Msc4388IntentData); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_qrcodeintentdata_msc4388(this.__wbg_ptr, ptr0); - } -} -if (Symbol.dispose) QrCodeIntentData.prototype[Symbol.dispose] = QrCodeIntentData.prototype.free; - -/** - * A scanned QR code. - */ -export class QrCodeScan { - static __wrap(ptr) { - const obj = Object.create(QrCodeScan.prototype); - obj.__wbg_ptr = ptr; - QrCodeScanFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - QrCodeScanFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_qrcodescan_free(ptr, 0); - } - /** - * Parse the decoded payload of a QR code in byte slice form. - * - * This method is useful if you would like to do your own custom QR code - * decoding. - * @param {Uint8ClampedArray} buffer - * @returns {QrCodeScan} - */ - static fromBytes(buffer) { - const ret = wasm.qrcodescan_fromBytes(buffer); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return QrCodeScan.__wrap(ret[0]); - } -} -if (Symbol.dispose) QrCodeScan.prototype[Symbol.dispose] = QrCodeScan.prototype.free; - -/** - * List of `Qr` states - * @enum {0 | 1 | 2 | 3 | 4 | 5} - */ -export const QrState = Object.freeze({ - /** - * We have received the other device's details (from the - * `m.key.verification.request` or `m.key.verification.ready`) and - * established the shared secret, so can - * display the QR code. - */ - Created: 0, "0": "Created", - /** - * The other side has scanned our QR code and sent an - * `m.key.verification.start` message with `method: m.reciprocate.v1` with - * matching shared secret. - */ - Scanned: 1, "1": "Scanned", - /** - * Our user has confirmed that the other device scanned successfully. We - * have sent an `m.key.verification.done`. - */ - Confirmed: 2, "2": "Confirmed", - /** - * We have scanned the other side's QR code and are able to send a - * `m.key.verification.start` message with `method: m.reciprocate.v1`. - * - * Call `Qr::reciprocate` to build the start message. - * - * Note that, despite the name of this state, we have not necessarily - * yet sent the `m.reciprocate.v1` message. - */ - Reciprocated: 3, "3": "Reciprocated", - /** - * Verification complete: we have received an `m.key.verification.done` - * from the other side. - */ - Done: 4, "4": "Done", - /** - * Verification cancelled or failed. - */ - Cancelled: 5, "5": "Cancelled", -}); - -/** - * A rehydrated device - * - * This device can receive to-device events to get room keys that were send to - * it. - */ -export class RehydratedDevice { - static __wrap(ptr) { - const obj = Object.create(RehydratedDevice.prototype); - obj.__wbg_ptr = ptr; - RehydratedDeviceFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RehydratedDeviceFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_rehydrateddevice_free(ptr, 0); - } - /** - * Receive the to-device events that sent to the dehydrated device - * - * The rehydrated device will decrypt the events and pass the room keys - * into the `OlmMachine`. - * - * # Arguments - * - * * `to_device_events` is a JSON-encoded result of the `events` array from - * `/dehydrated_device/{device_id}/events`. - * * `decryption_settings`: Optionally, the settings to use when decrypting - * to-device events. If not set, to-device events will be decrypted with - * a {@link TrustRequirement} of `Untrusted`. - * - * Returns an array of `RoomKeyInfo`, indicating the room keys that were - * received. - * @param {string} to_device_events - * @param {DecryptionSettings | null} [decryption_settings] - * @returns {Promise} - */ - receiveEvents(to_device_events, decryption_settings) { - const ptr0 = passStringToWasm0(to_device_events, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - let ptr1 = 0; - if (!isLikeNone(decryption_settings)) { - _assertClass(decryption_settings, DecryptionSettings); - ptr1 = decryption_settings.__destroy_into_raw(); - } - const ret = wasm.rehydrateddevice_receiveEvents(this.__wbg_ptr, ptr0, len0, ptr1); - return ret; - } -} -if (Symbol.dispose) RehydratedDevice.prototype[Symbol.dispose] = RehydratedDevice.prototype.free; - -/** - * Represent the type of a request. - * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6} - */ -export const RequestType = Object.freeze({ - /** - * Represents a `KeysUploadRequest`. - */ - KeysUpload: 0, "0": "KeysUpload", - /** - * Represents a `KeysQueryRequest`. - */ - KeysQuery: 1, "1": "KeysQuery", - /** - * Represents a `KeysClaimRequest`. - */ - KeysClaim: 2, "2": "KeysClaim", - /** - * Represents a `ToDeviceRequest`. - */ - ToDevice: 3, "3": "ToDevice", - /** - * Represents a `SignatureUploadRequest`. - */ - SignatureUpload: 4, "4": "SignatureUpload", - /** - * Represents a `RoomMessageRequest`. - */ - RoomMessage: 5, "5": "RoomMessage", - /** - * Represents a `KeysBackupRequest`. - */ - KeysBackup: 6, "6": "KeysBackup", -}); - -/** - * A Matrix [room ID]. - * - * [room ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids - */ -export class RoomId { - static __wrap(ptr) { - const obj = Object.create(RoomId.prototype); - obj.__wbg_ptr = ptr; - RoomIdFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - static __unwrap(jsValue) { - if (!(jsValue instanceof RoomId)) { - return 0; - } - return jsValue.__destroy_into_raw(); - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomid_free(ptr, 0); - } - /** - * Parse/validate and create a new `RoomId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.roomid_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - RoomIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Return the room ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.roomid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) RoomId.prototype[Symbol.dispose] = RoomId.prototype.free; - -/** - * Struct holding the number of room keys we have. - */ -export class RoomKeyCounts { - static __wrap(ptr) { - const obj = Object.create(RoomKeyCounts.prototype); - obj.__wbg_ptr = ptr; - RoomKeyCountsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomKeyCountsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomkeycounts_free(ptr, 0); - } - /** - * The number of backed up room keys. - * @returns {number} - */ - get backedUp() { - const ret = wasm.__wbg_get_roomkeycounts_backedUp(this.__wbg_ptr); - return ret; - } - /** - * The total number of room keys. - * @returns {number} - */ - get total() { - const ret = wasm.__wbg_get_roomkeycounts_total(this.__wbg_ptr); - return ret; - } - /** - * The number of backed up room keys. - * @param {number} arg0 - */ - set backedUp(arg0) { - wasm.__wbg_set_roomkeycounts_backedUp(this.__wbg_ptr, arg0); - } - /** - * The total number of room keys. - * @param {number} arg0 - */ - set total(arg0) { - wasm.__wbg_set_roomkeycounts_total(this.__wbg_ptr, arg0); - } -} -if (Symbol.dispose) RoomKeyCounts.prototype[Symbol.dispose] = RoomKeyCounts.prototype.free; - -/** - * The result of a call to {@link OlmMachine.importExportedRoomKeys} or - * {@link OlmMachine.importBackedUpRoomKeys}. - */ -export class RoomKeyImportResult { - static __wrap(ptr) { - const obj = Object.create(RoomKeyImportResult.prototype); - obj.__wbg_ptr = ptr; - RoomKeyImportResultFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomKeyImportResultFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomkeyimportresult_free(ptr, 0); - } - /** - * The number of room keys that were imported. - * @returns {number} - */ - get importedCount() { - const ret = wasm.__wbg_get_roomkeyimportresult_importedCount(this.__wbg_ptr); - return ret >>> 0; - } - /** - * The total number of room keys that were found in the export. - * @returns {number} - */ - get totalCount() { - const ret = wasm.__wbg_get_roomkeyimportresult_totalCount(this.__wbg_ptr); - return ret >>> 0; - } - /** - * The keys that were imported. - * - * A Map from room id to a Map of the sender key to a Set of session ids. - * - * Typescript type: `Map>`. - * @returns {Map>>} - */ - keys() { - const ret = wasm.roomkeyimportresult_keys(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) RoomKeyImportResult.prototype[Symbol.dispose] = RoomKeyImportResult.prototype.free; - -/** - * Information on a room key that has been received or imported. - */ -export class RoomKeyInfo { - static __wrap(ptr) { - const obj = Object.create(RoomKeyInfo.prototype); - obj.__wbg_ptr = ptr; - RoomKeyInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomKeyInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomkeyinfo_free(ptr, 0); - } - /** - * The {@link EncryptionAlgorithm} that this key is used for. Will be one - * of the `m.megolm.*` algorithms. - * @returns {EncryptionAlgorithm} - */ - get algorithm() { - const ret = wasm.roomkeyinfo_algorithm(this.__wbg_ptr); - return ret; - } - /** - * The room where the key is used. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.roomkeyinfo_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } - /** - * The Curve25519 key of the device which initiated the session originally. - * @returns {Curve25519PublicKey} - */ - get senderKey() { - const ret = wasm.roomkeyinfo_senderKey(this.__wbg_ptr); - return Curve25519PublicKey.__wrap(ret); - } - /** - * The ID of the session that the key is for. - * @returns {string} - */ - get sessionId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.roomkeyinfo_sessionId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) RoomKeyInfo.prototype[Symbol.dispose] = RoomKeyInfo.prototype.free; - -/** - * Information on a received `m.room_key.withheld` event. - */ -export class RoomKeyWithheldInfo { - static __wrap(ptr) { - const obj = Object.create(RoomKeyWithheldInfo.prototype); - obj.__wbg_ptr = ptr; - RoomKeyWithheldInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomKeyWithheldInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomkeywithheldinfo_free(ptr, 0); - } - /** - * The encryption algorithm of the session that is being withheld. - * - * This may be from an `m.room_key.withheld` event, or from a shared room - * key bundle under MSC4268. - * @returns {EncryptionAlgorithm} - */ - get algorithm() { - const ret = wasm.roomkeywithheldinfo_algorithm(this.__wbg_ptr); - return ret; - } - /** - * The room ID of the session that is being withheld. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.roomkeywithheldinfo_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } - /** - * The User ID of the sender of the withheld information. - * - * This may be the sender of an `m.room_key.withheld` event, or the sender - * of a shared room key bundle under MSC4268. - * @returns {UserId} - */ - get sender() { - const ret = wasm.roomkeywithheldinfo_sender(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The session ID of the session that is being withheld. - * @returns {string} - */ - get sessionId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.roomkeywithheldinfo_sessionId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The `code` indicating why the key was withheld, such as `m.unverified`. - * - * This may be from an `m.room_key.withheld` event (such as - * `m.unverified`), or from a shared room key bundle under MSC4268. - * @returns {string} - */ - get withheldCode() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.roomkeywithheldinfo_withheldCode(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) RoomKeyWithheldInfo.prototype[Symbol.dispose] = RoomKeyWithheldInfo.prototype.free; - -/** - * A customized owned request type for sending out room messages - * ([specification]). - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3roomsroomidsendeventtypetxnid - */ -export class RoomMessageRequest { - static __wrap(ptr) { - const obj = Object.create(RoomMessageRequest.prototype); - obj.__wbg_ptr = ptr; - RoomMessageRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomMessageRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roommessagerequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the message's content. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_roommessagerequest_body(this.__wbg_ptr); - return ret; - } - /** - * A string representing the type of event to be sent. - * @returns {string} - */ - get event_type() { - const ret = wasm.__wbg_get_roommessagerequest_event_type(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_roommessagerequest_id(this.__wbg_ptr); - return ret; - } - /** - * A string representing the room to send the event to. - * @returns {string} - */ - get room_id() { - const ret = wasm.__wbg_get_roommessagerequest_room_id(this.__wbg_ptr); - return ret; - } - /** - * A string representing the transaction ID for this event. - * - * Clients should generate an ID unique across requests with the same - * access token; it will be used by the server to ensure idempotency of - * requests. - * @returns {string} - */ - get txn_id() { - const ret = wasm.__wbg_get_roommessagerequest_txn_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `RoomMessageRequest`. - * @param {string} id - * @param {string} room_id - * @param {string} txn_id - * @param {string} event_type - * @param {string} content - */ - constructor(id, room_id, txn_id, event_type, content) { - const ret = wasm.roommessagerequest_new(id, room_id, txn_id, event_type, content); - this.__wbg_ptr = ret; - RoomMessageRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.roommessagerequest_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) RoomMessageRequest.prototype[Symbol.dispose] = RoomMessageRequest.prototype.free; - -/** - * Information on a room which is waiting for a key bundle to arrive. - */ -export class RoomPendingKeyBundleDetails { - static __wrap(ptr) { - const obj = Object.create(RoomPendingKeyBundleDetails.prototype); - obj.__wbg_ptr = ptr; - RoomPendingKeyBundleDetailsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomPendingKeyBundleDetailsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roompendingkeybundledetails_free(ptr, 0); - } - /** - * The time that the invite was accepted. - * @returns {number} - */ - get inviteAcceptedAtMillis() { - const ret = wasm.roompendingkeybundledetails_inviteAcceptedAtMillis(this.__wbg_ptr); - return ret; - } - /** - * The ID of the user that invited us - * @returns {UserId} - */ - get inviterId() { - const ret = wasm.roompendingkeybundledetails_inviterId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The room that is waiting for a key bundle. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.roompendingkeybundledetails_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } -} -if (Symbol.dispose) RoomPendingKeyBundleDetails.prototype[Symbol.dispose] = RoomPendingKeyBundleDetails.prototype.free; - -/** - * Room encryption settings which are modified by state events or user options - */ -export class RoomSettings { - static __wrap(ptr) { - const obj = Object.create(RoomSettings.prototype); - obj.__wbg_ptr = ptr; - RoomSettingsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - RoomSettingsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_roomsettings_free(ptr, 0); - } - /** - * The encryption algorithm that should be used in the room. - * - * Should be one of the members of {@link EncryptionAlgorithm}. - * @returns {EncryptionAlgorithm} - */ - get algorithm() { - const ret = wasm.__wbg_get_roomsettings_algorithm(this.__wbg_ptr); - return ret; - } - /** - * Whether state event encryption is enabled. - * @returns {boolean} - */ - get encryptStateEvents() { - const ret = wasm.__wbg_get_roomsettings_encryptStateEvents(this.__wbg_ptr); - return ret !== 0; - } - /** - * Whether untrusted devices should receive room keys. If this is `false`, - * they will be excluded from the conversation. - * @returns {boolean} - */ - get onlyAllowTrustedDevices() { - const ret = wasm.__wbg_get_roomsettings_onlyAllowTrustedDevices(this.__wbg_ptr); - return ret !== 0; - } - /** - * The maximum number of messages an encryption session should be used for, - * before it is rotated. - * @returns {number | undefined} - */ - get sessionRotationPeriodMessages() { - const ret = wasm.__wbg_get_roomsettings_sessionRotationPeriodMessages(this.__wbg_ptr); - return ret[0] === 0 ? undefined : ret[1]; - } - /** - * The maximum time, in milliseconds, that an encryption session should be - * used for, before it is rotated. - * @returns {number | undefined} - */ - get sessionRotationPeriodMs() { - const ret = wasm.__wbg_get_roomsettings_sessionRotationPeriodMs(this.__wbg_ptr); - return ret[0] === 0 ? undefined : ret[1]; - } - /** - * Create a new `RoomSettings` with default values. - */ - constructor() { - const ret = wasm.roomsettings_new(); - this.__wbg_ptr = ret; - RoomSettingsFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * The encryption algorithm that should be used in the room. - * - * Should be one of the members of {@link EncryptionAlgorithm}. - * @param {EncryptionAlgorithm} arg0 - */ - set algorithm(arg0) { - wasm.__wbg_set_roomsettings_algorithm(this.__wbg_ptr, arg0); - } - /** - * Whether state event encryption is enabled. - * @param {boolean} arg0 - */ - set encryptStateEvents(arg0) { - wasm.__wbg_set_roomsettings_encryptStateEvents(this.__wbg_ptr, arg0); - } - /** - * Whether untrusted devices should receive room keys. If this is `false`, - * they will be excluded from the conversation. - * @param {boolean} arg0 - */ - set onlyAllowTrustedDevices(arg0) { - wasm.__wbg_set_roomsettings_onlyAllowTrustedDevices(this.__wbg_ptr, arg0); - } - /** - * The maximum number of messages an encryption session should be used for, - * before it is rotated. - * @param {number | null} [arg0] - */ - set sessionRotationPeriodMessages(arg0) { - wasm.__wbg_set_roomsettings_sessionRotationPeriodMessages(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0); - } - /** - * The maximum time, in milliseconds, that an encryption session should be - * used for, before it is rotated. - * @param {number | null} [arg0] - */ - set sessionRotationPeriodMs(arg0) { - wasm.__wbg_set_roomsettings_sessionRotationPeriodMs(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0); - } -} -if (Symbol.dispose) RoomSettings.prototype[Symbol.dispose] = RoomSettings.prototype.free; - -/** - * Short Authentication String (SAS) verification. - */ -export class Sas { - static __wrap(ptr) { - const obj = Object.create(Sas.prototype); - obj.__wbg_ptr = ptr; - SasFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SasFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_sas_free(ptr, 0); - } - /** - * Accept the SAS verification. - * - * This does nothing (and returns `undefined`) if the verification was - * already accepted, otherwise it returns an `OutgoingVerificationRequest` - * that needs to be sent out. - * @returns {OutgoingVerificationRequest | undefined} - */ - accept() { - const ret = wasm.sas_accept(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Are we in a state where we can show the short auth string? - * @returns {boolean} - */ - canBePresented() { - const ret = wasm.sas_canBePresented(this.__wbg_ptr); - return ret !== 0; - } - /** - * Cancel the verification. - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - * @returns {OutgoingVerificationRequest | undefined} - */ - cancel() { - const ret = wasm.sas_cancel(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get info about the cancellation if the verification flow has - * been cancelled. - * @returns {CancelInfo | undefined} - */ - cancelInfo() { - const ret = wasm.sas_cancelInfo(this.__wbg_ptr); - return ret === 0 ? undefined : CancelInfo.__wrap(ret); - } - /** - * Cancel the verification. - * - * This cancels the verification with given code (e.g. `m.user`). - * - * Returns either an `OutgoingVerificationRequest` which should be sent - * out, or `undefined` if the verification is already cancelled. - * @param {string} code - * @returns {OutgoingVerificationRequest | undefined} - */ - cancelWithCode(code) { - const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.sas_cancelWithCode(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Confirm the SAS verification. - * - * This confirms that the short auth strings match on both sides. - * - * Does nothing if we’re not in a state where we can confirm the - * short auth string. - * - * Returns a `Promise` for an array of `OutgoingVerificationRequest`s. - * @returns {Promise} - */ - confirm() { - const ret = wasm.sas_confirm(this.__wbg_ptr); - return ret; - } - /** - * Get the decimal version of the short auth string. - * - * Returns None if we can’t yet present the short auth string, - * otherwise a tuple containing three 4-digit integers that - * represent the short auth string. - * @returns {Uint16Array | undefined} - */ - decimals() { - const ret = wasm.sas_decimals(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getArrayU16FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 2, 2); - } - return v1; - } - /** - * Get our own device ID. - * @returns {DeviceId} - */ - get deviceId() { - const ret = wasm.sas_deviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Get the emoji version of the short auth string. - * - * Returns `undefined` if we can't yet present the short auth string, - * otherwise an array of seven `Emoji` objects. - * @returns {Emoji[] | undefined} - */ - emoji() { - const ret = wasm.sas_emoji(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - } - return v1; - } - /** - * Get the index of the emoji representing the short auth string - * - * Returns `undefined` if we can’t yet present the short auth - * string, otherwise seven `u8` numbers in the range from 0 to 63 - * inclusive which can be converted to an emoji using [the - * relevant specification - * entry](https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji). - * @returns {Uint8Array | undefined} - */ - emojiIndex() { - const ret = wasm.sas_emojiIndex(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } - /** - * Get the unique ID that identifies this SAS verification flow, - * be either a to-device request ID or a room event ID. - * @returns {string} - */ - get flowId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.sas_flowId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Has the verification been accepted by both parties? - * @returns {boolean} - */ - hasBeenAccepted() { - const ret = wasm.sas_hasBeenAccepted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Have we confirmed that the short auth string matches? - * @returns {boolean} - */ - haveWeConfirmed() { - const ret = wasm.sas_haveWeConfirmed(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the SAS flow cancelled? - * @returns {boolean} - */ - isCancelled() { - const ret = wasm.sas_isCancelled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the SAS flow done? - * @returns {boolean} - */ - isDone() { - const ret = wasm.sas_isDone(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this a verification that is verifying one of our own - * devices? - * @returns {boolean} - */ - isSelfVerification() { - const ret = wasm.sas_isSelfVerification(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get the device ID of the other side. - * @returns {DeviceId} - */ - get otherDeviceId() { - const ret = wasm.sas_otherDeviceId(this.__wbg_ptr); - return DeviceId.__wrap(ret); - } - /** - * Get the user id of the other side. - * @returns {UserId} - */ - get otherUserId() { - const ret = wasm.sas_otherUserId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Register a callback which will be called whenever there is an update to - * the request. - * - * The `callback` is called with no parameters. - * @param {() => Promise} callback - */ - registerChangesCallback(callback) { - wasm.sas_registerChangesCallback(this.__wbg_ptr, callback); - } - /** - * Get the room ID if the verification is happening inside a - * room. - * @returns {RoomId | undefined} - */ - get roomId() { - const ret = wasm.sas_roomId(this.__wbg_ptr); - return ret === 0 ? undefined : RoomId.__wrap(ret); - } - /** - * Did this verification flow start from a verification request? - * @returns {boolean} - */ - startedFromRequest() { - const ret = wasm.sas_startedFromRequest(this.__wbg_ptr); - return ret !== 0; - } - /** - * Does this verification flow support displaying emoji for the - * short authentication string? - * @returns {boolean} - */ - supportsEmoji() { - const ret = wasm.sas_supportsEmoji(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the SAS verification flow timed out? - * @returns {boolean} - */ - timedOut() { - const ret = wasm.sas_timedOut(this.__wbg_ptr); - return ret !== 0; - } - /** - * Get our own user ID. - * @returns {UserId} - */ - get userId() { - const ret = wasm.sas_userId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * True if we initiated the verification flow (ie, we sent the - * `m.key.verification.request`). - * @returns {boolean} - */ - weStarted() { - const ret = wasm.sas_weStarted(this.__wbg_ptr); - return ret !== 0; - } -} -if (Symbol.dispose) Sas.prototype[Symbol.dispose] = Sas.prototype.free; - -/** - * Struct containing the bundle of secrets to fully activate a new device for - * end-to-end encryption. - */ -export class SecretsBundle { - static __wrap(ptr) { - const obj = Object.create(SecretsBundle.prototype); - obj.__wbg_ptr = ptr; - SecretsBundleFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SecretsBundleFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_secretsbundle_free(ptr, 0); - } - /** - * The bundle of the backup decryption key and backup version if any. - * @returns {BackupSecretsBundle | undefined} - */ - get backupBundle() { - const ret = wasm.secretsbundle_backupBundle(this.__wbg_ptr); - return ret === 0 ? undefined : BackupSecretsBundle.__wrap(ret); - } - /** - * Deserialize the [`SecretsBundle`] from a JSON object. - * @param {unknown} json - * @returns {SecretsBundle} - */ - static from_json(json) { - const ret = wasm.secretsbundle_from_json(json); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return SecretsBundle.__wrap(ret[0]); - } - /** - * The seed of the master key encoded as unpadded base64. - * @returns {string} - */ - get masterKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.secretsbundle_masterKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The seed of the self signing key encoded as unpadded base64. - * @returns {string} - */ - get selfSigningKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.secretsbundle_selfSigningKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Serialize the [`SecretsBundle`] to a JSON object. - * @returns {unknown} - */ - to_json() { - const ret = wasm.secretsbundle_to_json(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * The seed of the user signing key encoded as unpadded base64. - * @returns {string} - */ - get userSigningKey() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.secretsbundle_userSigningKey(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) SecretsBundle.prototype[Symbol.dispose] = SecretsBundle.prototype.free; - -/** - * A Matrix-spec compliant [server name]. - * - * It consists of a host and an optional port (separated by a colon if - * present). - * - * [server name]: https://spec.matrix.org/v1.2/appendices/#server-name - */ -export class ServerName { - static __wrap(ptr) { - const obj = Object.create(ServerName.prototype); - obj.__wbg_ptr = ptr; - ServerNameFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ServerNameFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_servername_free(ptr, 0); - } - /** - * Returns the host of the server name. - * - * That is: Return the part of the server before `:` or the - * full server name if there is no port. - * @returns {string} - */ - get host() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.servername_host(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Returns true if and only if the server name is an IPv4 or IPv6 - * address. - * @returns {boolean} - */ - isIpLiteral() { - const ret = wasm.servername_isIpLiteral(this.__wbg_ptr); - return ret !== 0; - } - /** - * Parse/validate and create a new `ServerName`. - * @param {string} name - */ - constructor(name) { - const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.servername_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - ServerNameFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Returns the port of the server name if any. - * @returns {number | undefined} - */ - get port() { - const ret = wasm.servername_port(this.__wbg_ptr); - return ret === 0xFFFFFF ? undefined : ret; - } -} -if (Symbol.dispose) ServerName.prototype[Symbol.dispose] = ServerName.prototype.free; - -/** - * Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`] - * for more info. - * @enum {0 | 1 | 2} - */ -export const ShieldColor = Object.freeze({ - /** - * Important warning - */ - Red: 0, "0": "Red", - /** - * Low warning - */ - Grey: 1, "1": "Grey", - /** - * No warning - */ - None: 2, "2": "None", -}); - -/** - * Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`] - * for more info. - */ -export class ShieldState { - static __wrap(ptr) { - const obj = Object.create(ShieldState.prototype); - obj.__wbg_ptr = ptr; - ShieldStateFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ShieldStateFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_shieldstate_free(ptr, 0); - } - /** - * A machine-readable representation of the authenticity for a - * `ShieldState`. - * @returns {ShieldStateCode | undefined} - */ - get code() { - const ret = wasm.__wbg_get_shieldstate_code(this.__wbg_ptr); - return ret === 6 ? undefined : ret; - } - /** - * The shield color - * @returns {ShieldColor} - */ - get color() { - const ret = wasm.__wbg_get_shieldstate_color(this.__wbg_ptr); - return ret; - } - /** - * A machine-readable representation of the authenticity for a - * `ShieldState`. - * @param {ShieldStateCode | null} [arg0] - */ - set code(arg0) { - wasm.__wbg_set_shieldstate_code(this.__wbg_ptr, isLikeNone(arg0) ? 6 : arg0); - } - /** - * The shield color - * @param {ShieldColor} arg0 - */ - set color(arg0) { - wasm.__wbg_set_shieldstate_color(this.__wbg_ptr, arg0); - } - /** - * Error message that can be displayed as a tooltip - * @returns {string | undefined} - */ - get message() { - const ret = wasm.shieldstate_message(this.__wbg_ptr); - let v1; - if (ret[0] !== 0) { - v1 = getStringFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); - } - return v1; - } -} -if (Symbol.dispose) ShieldState.prototype[Symbol.dispose] = ShieldState.prototype.free; - -/** - * A machine-readable representation of the authenticity for a `ShieldState`. - * @enum {0 | 1 | 2 | 3 | 4 | 5} - */ -export const ShieldStateCode = Object.freeze({ - /** - * Not enough information available to check the authenticity. - */ - AuthenticityNotGuaranteed: 0, "0": "AuthenticityNotGuaranteed", - /** - * The sending device isn't yet known by the Client. - */ - UnknownDevice: 1, "1": "UnknownDevice", - /** - * The sending device hasn't been verified by the sender. - */ - UnsignedDevice: 2, "2": "UnsignedDevice", - /** - * The sender hasn't been verified by the Client's user. - */ - UnverifiedIdentity: 3, "3": "UnverifiedIdentity", - /** - * The sender was previously verified but changed their identity. - */ - VerificationViolation: 4, "4": "VerificationViolation", - /** - * The `sender` field on the event does not match the owner of the device - * that established the Megolm session. - */ - MismatchedSender: 5, "5": "MismatchedSender", -}); - -/** - * Represents a potentially decoded signature (but not a validated - * one). - */ -export class Signature { - static __wrap(ptr) { - const obj = Object.create(Signature.prototype); - obj.__wbg_ptr = ptr; - SignatureFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SignatureFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_signature_free(ptr, 0); - } - /** - * Get the Ed25519 signature, if this is one. - * @returns {Ed25519Signature | undefined} - */ - get ed25519() { - const ret = wasm.signature_ed25519(this.__wbg_ptr); - return ret === 0 ? undefined : Ed25519Signature.__wrap(ret); - } - /** - * Convert the signature to a base64 encoded string. - * @returns {string} - */ - toBase64() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.signature_toBase64(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) Signature.prototype[Symbol.dispose] = Signature.prototype.free; - -/** - * The result of a signature check. - * @enum {0 | 1 | 2 | 3} - */ -export const SignatureState = Object.freeze({ - /** - * The signature is missing. - */ - Missing: 0, "0": "Missing", - /** - * The signature is invalid. - */ - Invalid: 1, "1": "Invalid", - /** - * The signature is valid but the device or user identity that created the - * signature is not trusted. - */ - ValidButNotTrusted: 2, "2": "ValidButNotTrusted", - /** - * The signature is valid and the device or user identity that created the - * signature is trusted. - */ - ValidAndTrusted: 3, "3": "ValidAndTrusted", -}); - -/** - * Data for a request to the `/keys/signatures/upload` API endpoint - * ([specification]). - * - * Publishes cross-signing signatures for the user. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keyssignaturesupload - */ -export class SignatureUploadRequest { - static __wrap(ptr) { - const obj = Object.create(SignatureUploadRequest.prototype); - obj.__wbg_ptr = ptr; - SignatureUploadRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SignatureUploadRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_signatureuploadrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the payload of the request - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_signatureuploadrequest_body(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * Some signature upload will have to an `id` field, some won't. - * They have one when they are created automatically during an interactive - * verification, otherwise they don't. - * @returns {string | undefined} - */ - get id() { - const ret = wasm.__wbg_get_signatureuploadrequest_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `SignatureUploadRequest`. - * @param {string} id - * @param {string} signed_keys - */ - constructor(id, signed_keys) { - const ret = wasm.signatureuploadrequest_new(id, signed_keys); - this.__wbg_ptr = ret; - SignatureUploadRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.signatureuploadrequest_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) SignatureUploadRequest.prototype[Symbol.dispose] = SignatureUploadRequest.prototype.free; - -/** - * The result of a signature verification of a signed JSON object. - */ -export class SignatureVerification { - static __wrap(ptr) { - const obj = Object.create(SignatureVerification.prototype); - obj.__wbg_ptr = ptr; - SignatureVerificationFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SignatureVerificationFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_signatureverification_free(ptr, 0); - } - /** - * Give the backup signature state from the current device. - * See SignatureState for values - * @returns {SignatureState} - */ - get deviceState() { - const ret = wasm.signatureverification_deviceState(this.__wbg_ptr); - return ret; - } - /** - * Is the result considered to be trusted? - * - * This tells us if the result has a valid signature from any of the - * following: - * - * * Our own device - * * Our own user identity, provided the identity is trusted as well - * * Any of our own devices, provided the device is trusted as well - * @returns {boolean} - */ - trusted() { - const ret = wasm.signatureverification_trusted(this.__wbg_ptr); - return ret !== 0; - } - /** - * Give the backup signature state from the current user identity. - * See SignatureState for values - * @returns {SignatureState} - */ - get userState() { - const ret = wasm.signatureverification_userState(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) SignatureVerification.prototype[Symbol.dispose] = SignatureVerification.prototype.free; - -/** - * A collection of `Signature`. - */ -export class Signatures { - static __wrap(ptr) { - const obj = Object.create(Signatures.prototype); - obj.__wbg_ptr = ptr; - SignaturesFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - SignaturesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_signatures_free(ptr, 0); - } - /** - * Add the given signature from the given signer and the given key ID to - * the collection. - * @param {UserId} signer - * @param {DeviceKeyId} key_id - * @param {Ed25519Signature} signature - * @returns {MaybeSignature | undefined} - */ - addSignature(signer, key_id, signature) { - _assertClass(signer, UserId); - _assertClass(key_id, DeviceKeyId); - _assertClass(signature, Ed25519Signature); - const ret = wasm.signatures_addSignature(this.__wbg_ptr, signer.__wbg_ptr, key_id.__wbg_ptr, signature.__wbg_ptr); - return ret === 0 ? undefined : MaybeSignature.__wrap(ret); - } - /** - * Get the json with all signatures - * @returns {string} - */ - asJSON() { - const ret = wasm.signatures_asJSON(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Remove all the signatures we currently hold. - */ - clear() { - wasm.signatures_clear(this.__wbg_ptr); - } - /** - * How many signatures do we currently hold. - * @returns {number} - */ - get count() { - const ret = wasm.signatures_count(this.__wbg_ptr); - return ret >>> 0; - } - /** - * Get the map of signatures that belong to the given user. - * @param {UserId} signer - * @returns {Map | undefined} - */ - get(signer) { - _assertClass(signer, UserId); - const ret = wasm.signatures_get(this.__wbg_ptr, signer.__wbg_ptr); - return ret; - } - /** - * Try to find an Ed25519 signature from the given signer with - * the given key ID. - * @param {UserId} signer - * @param {DeviceKeyId} key_id - * @returns {Ed25519Signature | undefined} - */ - getSignature(signer, key_id) { - _assertClass(signer, UserId); - _assertClass(key_id, DeviceKeyId); - const ret = wasm.signatures_getSignature(this.__wbg_ptr, signer.__wbg_ptr, key_id.__wbg_ptr); - return ret === 0 ? undefined : Ed25519Signature.__wrap(ret); - } - /** - * Do we hold any signatures or is our collection completely - * empty. - * @returns {boolean} - */ - isEmpty() { - const ret = wasm.signatures_isEmpty(this.__wbg_ptr); - return ret !== 0; - } - /** - * Creates a new, empty, signatures collection. - */ - constructor() { - const ret = wasm.signatures_new(); - this.__wbg_ptr = ret; - SignaturesFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -if (Symbol.dispose) Signatures.prototype[Symbol.dispose] = Signatures.prototype.free; - -/** - * A struct containing an open connection to a CryptoStore. - * - * Opening the CryptoStore can take some time, due to the PBKDF calculation - * involved, so if multiple operations are being done on the same store, it is - * more efficient to open it once. - */ -export class StoreHandle { - static __wrap(ptr) { - const obj = Object.create(StoreHandle.prototype); - obj.__wbg_ptr = ptr; - StoreHandleFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - StoreHandleFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_storehandle_free(ptr, 0); - } - /** - * Open a crypto store. - * - * The created store will be based on IndexedDB if a `store_name` is - * provided; otherwise it will be based on a memory store and once the - * objects is dropped, the keys will be lost. - * - * # Arguments - * - * * `store_name` - The name that should be used to open the IndexedDB - * based database. If this isn't provided, a memory-only store will be - * used. *Note* the memory-only store will lose your E2EE keys when the - * `StoreHandle` gets dropped. - * - * * `store_passphrase` - The passphrase that should be used to encrypt the - * store, for IndexedDB-based stores - * - * * `logger` - An optional logger instance to use for writing log messages - * during the open operation. An instance of `JsLogger`. - * @param {string | null | undefined} store_name - * @param {string | null | undefined} store_passphrase - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static open(store_name, store_passphrase, logger) { - var ptr0 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - var ptr1 = isLikeNone(store_passphrase) ? 0 : passStringToWasm0(store_passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - const ret = wasm.storehandle_open(ptr0, len0, ptr1, len1, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - return ret; - } - /** - * Open a crypto store based on IndexedDB, using the given key for - * encryption. - * - * # Arguments - * - * * `store_name` - The name that should be used to open the IndexedDB - * based database. - * - * * `store_key` - The key that should be used to encrypt the store, for - * IndexedDB-based stores. Must be a 32-byte array. - * - * * `logger` - An optional logger instance to use for writing log messages - * during the open operation. An instance of `JsLogger`. - * @param {string} store_name - * @param {Uint8Array} store_key - * @param {JsLogger} [logger] - * @returns {Promise} - */ - static openWithKey(store_name, store_key, logger) { - const ptr0 = passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ptr1 = passArray8ToWasm0(store_key, wasm.__wbindgen_malloc); - const len1 = WASM_VECTOR_LEN; - const ret = wasm.storehandle_openWithKey(ptr0, len0, ptr1, len1, isLikeNone(logger) ? 0 : addToExternrefTable0(logger)); - return ret; - } -} -if (Symbol.dispose) StoreHandle.prototype[Symbol.dispose] = StoreHandle.prototype.free; - -/** - * Information on a stored room key bundle data event. - */ -export class StoredRoomKeyBundleData { - static __wrap(ptr) { - const obj = Object.create(StoredRoomKeyBundleData.prototype); - obj.__wbg_ptr = ptr; - StoredRoomKeyBundleDataFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - StoredRoomKeyBundleDataFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_storedroomkeybundledata_free(ptr, 0); - } - /** - * The JSON-encoded encryption info for the key bundle. - * - * @deprecated Should not be used within applications. - * @returns {string} - */ - get encryptionInfo() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.storedroomkeybundledata_encryptionInfo(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The room that these keys are for. - * @returns {RoomId} - */ - get roomId() { - const ret = wasm.storedroomkeybundledata_roomId(this.__wbg_ptr); - return RoomId.__wrap(ret); - } - /** - * The user that sent us this data. - * @returns {UserId} - */ - get senderUser() { - const ret = wasm.storedroomkeybundledata_senderUser(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The location of the bundle. - * @returns {string} - */ - get url() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.storedroomkeybundledata_url(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) StoredRoomKeyBundleData.prototype[Symbol.dispose] = StoredRoomKeyBundleData.prototype.free; - -/** - * Struct containing information on how a to-device message was decrypted. - */ -export class ToDeviceEncryptionInfo { - static __wrap(ptr) { - const obj = Object.create(ToDeviceEncryptionInfo.prototype); - obj.__wbg_ptr = ptr; - ToDeviceEncryptionInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ToDeviceEncryptionInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_todeviceencryptioninfo_free(ptr, 0); - } - /** - * The base64-encoded public Curve25519 key of the device that encrypted - * the message. - * @returns {string} - */ - get senderCurve25519Key() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.__wbg_get_todeviceencryptioninfo_senderCurve25519Key(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * The device ID of the device that sent us the to-device message. - * - * Could be `undefined` in the case where the to-device message sender - * checks are delayed. There is no delay for to-device messages other - * than `m.room_key`, so this will always be truthy for other - * message types (the decryption would fail if the sender device keys - * cannot be found). - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - * @returns {DeviceId | undefined} - */ - get senderDevice() { - const ret = wasm.__wbg_get_todeviceencryptioninfo_senderDevice(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - * @returns {UserId} - */ - get sender() { - const ret = wasm.__wbg_get_todeviceencryptioninfo_sender(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * The base64-encoded public Curve25519 key of the device that encrypted - * the message. - * @param {string} arg0 - */ - set senderCurve25519Key(arg0) { - const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - wasm.__wbg_set_todeviceencryptioninfo_senderCurve25519Key(this.__wbg_ptr, ptr0, len0); - } - /** - * The device ID of the device that sent us the to-device message. - * - * Could be `undefined` in the case where the to-device message sender - * checks are delayed. There is no delay for to-device messages other - * than `m.room_key`, so this will always be truthy for other - * message types (the decryption would fail if the sender device keys - * cannot be found). - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - * @param {DeviceId | null} [arg0] - */ - set senderDevice(arg0) { - let ptr0 = 0; - if (!isLikeNone(arg0)) { - _assertClass(arg0, DeviceId); - ptr0 = arg0.__destroy_into_raw(); - } - wasm.__wbg_set_todeviceencryptioninfo_senderDevice(this.__wbg_ptr, ptr0); - } - /** - * The user ID of the sender of the event. - * - * Note this is untrusted data unless {@link isSenderVerified} is true. - * @param {UserId} arg0 - */ - set sender(arg0) { - _assertClass(arg0, UserId); - var ptr0 = arg0.__destroy_into_raw(); - wasm.__wbg_set_todeviceencryptioninfo_sender(this.__wbg_ptr, ptr0); - } - /** - * Returns whether the sender device is in a verified state. - * This reflects the state at the time of decryption. - * @returns {boolean} - */ - isSenderVerified() { - const ret = wasm.todeviceencryptioninfo_isSenderVerified(this.__wbg_ptr); - return ret !== 0; - } -} -if (Symbol.dispose) ToDeviceEncryptionInfo.prototype[Symbol.dispose] = ToDeviceEncryptionInfo.prototype.free; - -/** - * Data for a request to the `/sendToDevice` API endpoint - * ([specification]). - * - * Send an event to a single device or to a group of devices. - * - * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3sendtodeviceeventtypetxnid - */ -export class ToDeviceRequest { - static __wrap(ptr) { - const obj = Object.create(ToDeviceRequest.prototype); - obj.__wbg_ptr = ptr; - ToDeviceRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ToDeviceRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_todevicerequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `messages`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_todevicerequest_body(this.__wbg_ptr); - return ret; - } - /** - * A string representing the type of event being sent to each devices. - * @returns {string} - */ - get event_type() { - const ret = wasm.__wbg_get_todevicerequest_event_type(this.__wbg_ptr); - return ret; - } - /** - * The request ID. - * For to-device request this would be the same value as `txn_id`. It is - * exposed also as `id` so that the js bindings are consistent with the - * other request types by using this field to mark as sent. - * @returns {string} - */ - get id() { - const ret = wasm.__wbg_get_todevicerequest_id(this.__wbg_ptr); - return ret; - } - /** - * A string representing a request identifier unique to the access token - * used to send the request. - * @returns {string} - */ - get txn_id() { - const ret = wasm.__wbg_get_todevicerequest_txn_id(this.__wbg_ptr); - return ret; - } - /** - * Create a new `ToDeviceRequest`. - * @param {string} id - * @param {string} event_type - * @param {string} txn_id - * @param {string} body - */ - constructor(id, event_type, txn_id, body) { - const ret = wasm.todevicerequest_new(id, event_type, txn_id, body); - this.__wbg_ptr = ret; - ToDeviceRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Get its request type. - * @returns {RequestType} - */ - get type() { - const ret = wasm.todevicerequest_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) ToDeviceRequest.prototype[Symbol.dispose] = ToDeviceRequest.prototype.free; - -/** - * Metadata about a to-device event that could not be decrypted. - */ -export class ToDeviceUnableToDecryptInfo { - static __wrap(ptr) { - const obj = Object.create(ToDeviceUnableToDecryptInfo.prototype); - obj.__wbg_ptr = ptr; - ToDeviceUnableToDecryptInfoFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - ToDeviceUnableToDecryptInfoFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_todeviceunabletodecryptinfo_free(ptr, 0); - } - /** - * Reason code for the decryption failure - * @returns {ToDeviceUnableToDecryptReason} - */ - get reason() { - const ret = wasm.__wbg_get_todeviceunabletodecryptinfo_reason(this.__wbg_ptr); - return ret; - } - /** - * Reason code for the decryption failure - * @param {ToDeviceUnableToDecryptReason} arg0 - */ - set reason(arg0) { - wasm.__wbg_set_todeviceunabletodecryptinfo_reason(this.__wbg_ptr, arg0); - } -} -if (Symbol.dispose) ToDeviceUnableToDecryptInfo.prototype[Symbol.dispose] = ToDeviceUnableToDecryptInfo.prototype.free; - -/** - * Reason code for a to-device decryption failure - * @enum {0 | 1 | 2 | 3} - */ -export const ToDeviceUnableToDecryptReason = Object.freeze({ - /** - * An error occurred while encrypting the event. This covers all - * `OlmError` types. - */ - DecryptionFailure: 0, "0": "DecryptionFailure", - /** - * We refused to decrypt the message because the sender's device is not - * verified, or more generally, the sender's identity did not match the - * trust requirement we were asked to provide. - */ - UnverifiedSenderDevice: 1, "1": "UnverifiedSenderDevice", - /** - * We have no `OlmMachine`. This should not happen unless we forget to set - * things up by calling `OlmMachine::activate()`. - */ - NoOlmMachine: 2, "2": "NoOlmMachine", - /** - * The Matrix SDK was compiled without encryption support. - */ - EncryptionIsDisabled: 3, "3": "EncryptionIsDisabled", -}); - -/** - * Type to install and to manipulate the tracing layer. - */ -export class Tracing { - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - TracingFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_tracing_free(ptr, 0); - } - /** - * Check whether the `tracing` feature has been enabled. - * - * @deprecated: `tracing` is now always enabled. - * @returns {boolean} - */ - static isAvailable() { - const ret = wasm.tracing_isAvailable(); - return ret !== 0; - } - /** - * Install the tracing layer. - * @param {LoggerLevel} min_level - */ - constructor(min_level) { - const ret = wasm.tracing_new(min_level); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - TracingFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Re-define the minimum logger level. - * @param {LoggerLevel} min_level - */ - set minLevel(min_level) { - const ret = wasm.tracing_set_minLevel(this.__wbg_ptr, min_level); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } - } - /** - * Turn the logger off, i.e. it no longer emits logs. - */ - turnOff() { - const ret = wasm.tracing_turnOff(this.__wbg_ptr); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } - } - /** - * Turn the logger on, i.e. it emits logs again if it was turned - * off. - */ - turnOn() { - const ret = wasm.tracing_turnOn(this.__wbg_ptr); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } - } -} -if (Symbol.dispose) Tracing.prototype[Symbol.dispose] = Tracing.prototype.free; - -/** - * The trust level required to decrypt an event - * @enum {0 | 1 | 2} - */ -export const TrustRequirement = Object.freeze({ - /** - * Decrypt events from everyone regardless of trust - */ - Untrusted: 0, "0": "Untrusted", - /** - * Only decrypt events from cross-signed or legacy devices - */ - CrossSignedOrLegacy: 1, "1": "CrossSignedOrLegacy", - /** - * Only decrypt events from cross-signed devices - */ - CrossSigned: 2, "2": "CrossSigned", -}); - -/** - * Represents an encrypted to-device event that could not be decrypted. - */ -export class UTDToDeviceEvent { - static __wrap(ptr) { - const obj = Object.create(UTDToDeviceEvent.prototype); - obj.__wbg_ptr = ptr; - UTDToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - UTDToDeviceEventFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_utdtodeviceevent_free(ptr, 0); - } - /** - * The original message (of type `m.room.encrypted`) that failed to be - * decrypted, encoded as JSON. - * @returns {string} - */ - get rawEvent() { - const ret = wasm.__wbg_get_utdtodeviceevent_rawEvent(this.__wbg_ptr); - return ret; - } - /** - * Information on the reason we failed to decrypt - * @returns {ToDeviceUnableToDecryptInfo} - */ - get utdInfo() { - const ret = wasm.__wbg_get_utdtodeviceevent_utdInfo(this.__wbg_ptr); - return ToDeviceUnableToDecryptInfo.__wrap(ret); - } - /** - * The type of processed to-device event. Always {@link - * ProcessedToDeviceEventType.UnableToDecrypt} for this type. - * @returns {ProcessedToDeviceEventType} - */ - get type() { - const ret = wasm.utdtodeviceevent_type(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) UTDToDeviceEvent.prototype[Symbol.dispose] = UTDToDeviceEvent.prototype.free; - -/** - * Other Requests * - * Request that will publish a cross signing identity. - * - * This uploads the public cross signing key triplet. - */ -export class UploadSigningKeysRequest { - static __wrap(ptr) { - const obj = Object.create(UploadSigningKeysRequest.prototype); - obj.__wbg_ptr = ptr; - UploadSigningKeysRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - UploadSigningKeysRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_uploadsigningkeysrequest_free(ptr, 0); - } - /** - * A JSON-encoded object containing the rest of the payload: `master_key`, - * `self_signing_key`, `user_signing_key`. - * - * It represents the body of the HTTP request. - * @returns {string} - */ - get body() { - const ret = wasm.__wbg_get_uploadsigningkeysrequest_body(this.__wbg_ptr); - return ret; - } - /** - * Create a new `UploadSigningKeysRequest`. - * @param {string} body - */ - constructor(body) { - const ret = wasm.uploadsigningkeysrequest_new(body); - this.__wbg_ptr = ret; - UploadSigningKeysRequestFinalization.register(this, this.__wbg_ptr, this); - return this; - } -} -if (Symbol.dispose) UploadSigningKeysRequest.prototype[Symbol.dispose] = UploadSigningKeysRequest.prototype.free; - -/** - * A read only view over all devices belonging to a user. - */ -export class UserDevices { - static __wrap(ptr) { - const obj = Object.create(UserDevices.prototype); - obj.__wbg_ptr = ptr; - UserDevicesFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - UserDevicesFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_userdevices_free(ptr, 0); - } - /** - * Iterator over all the devices of the user devices. - * @returns {Device[]} - */ - devices() { - const ret = wasm.userdevices_devices(this.__wbg_ptr); - return ret; - } - /** - * Get the specific device with the given device ID. - * @param {DeviceId} device_id - * @returns {Device | undefined} - */ - get(device_id) { - _assertClass(device_id, DeviceId); - const ret = wasm.userdevices_get(this.__wbg_ptr, device_id.__wbg_ptr); - return ret === 0 ? undefined : Device.__wrap(ret); - } - /** - * Returns true if there is at least one devices of this user - * that is considered to be verified, false otherwise. - * - * This won't consider your own device as verified, as your own - * device is always implicitly verified. - * @returns {boolean} - */ - isAnyVerified() { - const ret = wasm.userdevices_isAnyVerified(this.__wbg_ptr); - return ret !== 0; - } - /** - * Array over all the device IDs of the user devices. - * @returns {DeviceId[]} - */ - keys() { - const ret = wasm.userdevices_keys(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) UserDevices.prototype[Symbol.dispose] = UserDevices.prototype.free; - -/** - * A Matrix [user ID]. - * - * [user ID]: https://spec.matrix.org/v1.2/appendices/#user-identifiers - */ -export class UserId { - static __wrap(ptr) { - const obj = Object.create(UserId.prototype); - obj.__wbg_ptr = ptr; - UserIdFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - static __unwrap(jsValue) { - if (!(jsValue instanceof UserId)) { - return 0; - } - return jsValue.__destroy_into_raw(); - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - UserIdFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_userid_free(ptr, 0); - } - /** - * Create a clone of this `UserId`. - * - * This can be useful when passing a `UserId` instance to methods such as - * {@link OlmMachine.updateTrackedUsers} which destroy the instance. - * @returns {UserId} - */ - clone() { - const ret = wasm.userid_clone(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Whether this user ID is a historical one. - * - * A historical user ID is one that doesn't conform to the latest - * specification of the user ID grammar but is still accepted - * because it was previously allowed. - * @returns {boolean} - */ - isHistorical() { - const ret = wasm.userid_isHistorical(this.__wbg_ptr); - return ret !== 0; - } - /** - * Returns the user's localpart. - * @returns {string} - */ - get localpart() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.userid_localpart(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Parse/validate and create a new `UserId`. - * @param {string} id - */ - constructor(id) { - const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.userid_new(ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - this.__wbg_ptr = ret[0]; - UserIdFinalization.register(this, this.__wbg_ptr, this); - return this; - } - /** - * Returns the server name of the user ID. - * @returns {ServerName} - */ - get serverName() { - const ret = wasm.userid_serverName(this.__wbg_ptr); - return ServerName.__wrap(ret); - } - /** - * Return the user ID as a string. - * @returns {string} - */ - toString() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.userid_toString(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } -} -if (Symbol.dispose) UserId.prototype[Symbol.dispose] = UserId.prototype.free; - -/** - * List of available verification methods. - * @enum {0 | 1 | 2 | 3} - */ -export const VerificationMethod = Object.freeze({ - /** - * The `m.sas.v1` verification method. - * - * SAS means Short Authentication String. - */ - SasV1: 0, "0": "SasV1", - /** - * The `m.qr_code.scan.v1` verification method. - */ - QrCodeScanV1: 1, "1": "QrCodeScanV1", - /** - * The `m.qr_code.show.v1` verification method. - */ - QrCodeShowV1: 2, "2": "QrCodeShowV1", - /** - * The `m.reciprocate.v1` verification method. - */ - ReciprocateV1: 3, "3": "ReciprocateV1", -}); - -/** - * An object controlling key verification requests. - * - * Interactive verification flows usually start with a verification - * request, this object lets you send and reply to such a - * verification request. - * - * After the initial handshake the verification flow transitions into - * one of the verification methods. - */ -export class VerificationRequest { - static __wrap(ptr) { - const obj = Object.create(VerificationRequest.prototype); - obj.__wbg_ptr = ptr; - VerificationRequestFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - VerificationRequestFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_verificationrequest_free(ptr, 0); - } - /** - * Accept the verification request. - * - * This method will accept the request and signal that it - * supports the `m.sas.v1`, the `m.qr_code.show.v1`, and - * `m.reciprocate.v1` method. - * - * `m.qr_code.show.v1` will only be signaled if the `qrcode` - * feature is enabled. This feature is disabled by default. If - * it's enabled and QR code scanning should be supported or QR - * code showing shouldn't be supported the `accept_with_methods` - * method should be used instead. - * - * It returns either a `ToDeviceRequest`, a `RoomMessageRequest` - * or `undefined`. - * @returns {OutgoingVerificationRequest | undefined} - */ - accept() { - const ret = wasm.verificationrequest_accept(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Accept the verification request signaling that our client - * supports the given verification methods. - * - * `methods` represents the methods that we should advertise as - * supported by us. - * - * It returns either a `ToDeviceRequest`, a `RoomMessageRequest` - * or `undefined`. - * @param {VerificationMethod[]} methods - * @returns {OutgoingVerificationRequest | undefined} - */ - acceptWithMethods(methods) { - const ptr0 = passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.verificationrequest_acceptWithMethods(this.__wbg_ptr, ptr0, len0); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Cancel the verification request. - * - * It returns either a `ToDeviceRequest`, a `RoomMessageRequest` - * or `undefined`. - * @returns {OutgoingVerificationRequest | undefined} - */ - cancel() { - const ret = wasm.verificationrequest_cancel(this.__wbg_ptr); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); - } - /** - * Get info about the cancellation if the verification request - * has been cancelled. - * @returns {CancelInfo | undefined} - */ - get cancelInfo() { - const ret = wasm.verificationrequest_cancelInfo(this.__wbg_ptr); - return ret === 0 ? undefined : CancelInfo.__wrap(ret); - } - /** - * Get the unique ID of this verification request. - * @returns {string} - */ - get flowId() { - let deferred1_0; - let deferred1_1; - try { - const ret = wasm.verificationrequest_flowId(this.__wbg_ptr); - deferred1_0 = ret[0]; - deferred1_1 = ret[1]; - return getStringFromWasm0(ret[0], ret[1]); - } finally { - wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); - } - } - /** - * Generate a QR code that can be used by another client to start - * a QR code based verification. - * - * Returns a `Qr` or `undefined`. - * @returns {Promise} - */ - generateQrCode() { - const ret = wasm.verificationrequest_generateQrCode(this.__wbg_ptr); - return ret; - } - /** - * If this request has transitioned into a concrete verification - * flow (and not yet been completed or cancelled), returns a `Verification` - * object. - * - * Returns: a `Sas`, a `Qr`, or `undefined`. - * @returns {Sas | Qr | undefined} - */ - getVerification() { - const ret = wasm.verificationrequest_getVerification(this.__wbg_ptr); - return ret; - } - /** - * Has the verification flow that was started with this request - * been cancelled? - * @returns {boolean} - */ - isCancelled() { - const ret = wasm.verificationrequest_isCancelled(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the verification flow that was started with this request - * finished? - * @returns {boolean} - */ - isDone() { - const ret = wasm.verificationrequest_isDone(this.__wbg_ptr); - return ret !== 0; - } - /** - * Has the verification request been answered by another device? - * @returns {boolean} - */ - isPassive() { - const ret = wasm.verificationrequest_isPassive(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is the verification request ready to start a verification flow? - * @returns {boolean} - */ - isReady() { - const ret = wasm.verificationrequest_isReady(this.__wbg_ptr); - return ret !== 0; - } - /** - * Is this a verification that is verifying one of our own - * devices? - * @returns {boolean} - */ - isSelfVerification() { - const ret = wasm.verificationrequest_isSelfVerification(this.__wbg_ptr); - return ret !== 0; - } - /** - * The ID of the other device that is participating in this - * verification. - * @returns {DeviceId | undefined} - */ - get otherDeviceId() { - const ret = wasm.verificationrequest_otherDeviceId(this.__wbg_ptr); - return ret === 0 ? undefined : DeviceId.__wrap(ret); - } - /** - * The ID of the other user that is participating in this - * verification request. - * @returns {UserId} - */ - get otherUserId() { - const ret = wasm.verificationrequest_otherUserId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Get our own supported verification methods that we advertised. - * - * Will be present only we requested the verification or if we’re - * in the ready state. - * @returns {VerificationMethod[] | undefined} - */ - get ourSupportedMethods() { - const ret = wasm.verificationrequest_ourSupportedMethods(this.__wbg_ptr); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - let v1; - if (ret[0] !== 0) { - v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - } - return v1; - } - /** - * Our own user id. - * @returns {UserId} - */ - get ownUserId() { - const ret = wasm.verificationrequest_ownUserId(this.__wbg_ptr); - return UserId.__wrap(ret); - } - /** - * Get the current phase of this request. - * - * Returns a `VerificationRequestPhase`. - * @returns {VerificationRequestPhase} - */ - phase() { - const ret = wasm.verificationrequest_phase(this.__wbg_ptr); - return ret; - } - /** - * Register a callback which will be called whenever there is an update to - * the request. - * - * The `callback` is called with no parameters. - * @param {() => Promise} callback - */ - registerChangesCallback(callback) { - wasm.verificationrequest_registerChangesCallback(this.__wbg_ptr, callback); - } - /** - * Create an event content that can be sent as a room event to - * request verification from the other side. This should be used - * only for verifications of other users and it should be sent to - * a room we consider to be a DM with the other user. - * @param {UserId} own_user_id - * @param {DeviceId} own_device_id - * @param {UserId} other_user_id - * @param {VerificationMethod[]} [methods] - * @returns {string} - */ - static request(own_user_id, own_device_id, other_user_id, methods) { - let deferred3_0; - let deferred3_1; - try { - _assertClass(own_user_id, UserId); - _assertClass(own_device_id, DeviceId); - _assertClass(other_user_id, UserId); - var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - const ret = wasm.verificationrequest_request(own_user_id.__wbg_ptr, own_device_id.__wbg_ptr, other_user_id.__wbg_ptr, ptr0, len0); - var ptr2 = ret[0]; - var len2 = ret[1]; - if (ret[3]) { - ptr2 = 0; len2 = 0; - throw takeFromExternrefTable0(ret[2]); - } - deferred3_0 = ptr2; - deferred3_1 = len2; - return getStringFromWasm0(ptr2, len2); - } finally { - wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); - } - } - /** - * Get the room ID if the verification is happening inside a - * room. - * @returns {RoomId | undefined} - */ - get roomId() { - const ret = wasm.verificationrequest_roomId(this.__wbg_ptr); - return ret === 0 ? undefined : RoomId.__wrap(ret); - } - /** - * Start a QR code verification by providing a scanned QR code - * for this verification flow. - * @param {QrCodeScan} data - * @returns {Promise} - */ - scanQrCode(data) { - _assertClass(data, QrCodeScan); - const ret = wasm.verificationrequest_scanQrCode(this.__wbg_ptr, data.__wbg_ptr); - return ret; - } - /** - * Transition from this verification request into a SAS verification flow. - * - * Returns `Promise<[Sas, OutgoingVerificationRequest] | undefined>` - * @returns {Promise<[Sas, OutgoingVerificationRequest] | undefined>} - */ - startSas() { - const ret = wasm.verificationrequest_startSas(this.__wbg_ptr); - return ret; - } - /** - * Get the supported verification methods of the other side. - * - * Will be present only if the other side requested the - * verification or if we’re in the ready state. - * - * # Returns - * - * `undefined` if we do not yet know the supported methods; otherwise, an - * array of `VerificationMethod`s. - * @returns {VerificationMethod[] | undefined} - */ - get theirSupportedMethods() { - const ret = wasm.verificationrequest_theirSupportedMethods(this.__wbg_ptr); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - let v1; - if (ret[0] !== 0) { - v1 = getArrayJsValueFromWasm0(ret[0], ret[1]); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - } - return v1; - } - /** - * The number of milliseconds remaining before this verification flow times - * out. - * - * Returns zero if the time has already passed. - * @returns {number} - */ - timeRemainingMillis() { - const ret = wasm.verificationrequest_timeRemainingMillis(this.__wbg_ptr); - return ret; - } - /** - * Has the verification flow timed out? - * @returns {boolean} - */ - timedOut() { - const ret = wasm.verificationrequest_timedOut(this.__wbg_ptr); - return ret !== 0; - } - /** - * Did we initiate the verification request? - * @returns {boolean} - */ - weStarted() { - const ret = wasm.verificationrequest_weStarted(this.__wbg_ptr); - return ret !== 0; - } -} -if (Symbol.dispose) VerificationRequest.prototype[Symbol.dispose] = VerificationRequest.prototype.free; - -/** - * List of VerificationRequestState phases - * @enum {0 | 1 | 2 | 3 | 4 | 5} - */ -export const VerificationRequestPhase = Object.freeze({ - /** - * The verification request has been newly created by us. - */ - Created: 0, "0": "Created", - /** - * The verification request was received from the other party. - */ - Requested: 1, "1": "Requested", - /** - * The verification request is ready to start a verification flow. - */ - Ready: 2, "2": "Ready", - /** - * The verification request has transitioned into a concrete verification - * flow. For example it transitioned into the emoji based SAS - * verification. - */ - Transitioned: 3, "3": "Transitioned", - /** - * The verification flow that was started with this request has finished. - */ - Done: 4, "4": "Done", - /** - * The verification process has been cancelled. - */ - Cancelled: 5, "5": "Cancelled", -}); - -/** - * Object containing the versions of the Rust libraries we are using. - */ -export class Versions { - static __wrap(ptr) { - const obj = Object.create(Versions.prototype); - obj.__wbg_ptr = ptr; - VersionsFinalization.register(obj, obj.__wbg_ptr, obj); - return obj; - } - __destroy_into_raw() { - const ptr = this.__wbg_ptr; - this.__wbg_ptr = 0; - VersionsFinalization.unregister(this); - return ptr; - } - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_versions_free(ptr, 0); - } - /** - * The build-time output of the `git describe` command of the source tree - * of crate. - * @returns {string} - */ - get git_description() { - const ret = wasm.__wbg_get_versions_git_description(this.__wbg_ptr); - return ret; - } - /** - * The Git commit hash of the crate's source tree at build time. - * @returns {string} - */ - get git_sha() { - const ret = wasm.__wbg_get_versions_git_sha(this.__wbg_ptr); - return ret; - } - /** - * The version of the matrix-sdk-crypto crate. - * @returns {string} - */ - get matrix_sdk_crypto() { - const ret = wasm.__wbg_get_versions_matrix_sdk_crypto(this.__wbg_ptr); - return ret; - } - /** - * The version of the vodozemac crate. - * @returns {string} - */ - get vodozemac() { - const ret = wasm.__wbg_get_versions_vodozemac(this.__wbg_ptr); - return ret; - } -} -if (Symbol.dispose) Versions.prototype[Symbol.dispose] = Versions.prototype.free; - -/** - * Get the versions of the Rust libraries we are using. - * @returns {Versions} - */ -export function getVersions() { - const ret = wasm.getVersions(); - return Versions.__wrap(ret); -} - -/** - * Run some stuff when the Wasm module is instantiated. - * - * Right now, it does the following: - * - * * Redirect Rust panics to JavaScript console. - */ -export function start() { - wasm.start(); -} -export function __wbg_Error_408e67f47ca7b58b(arg0, arg1) { - const ret = Error(getStringFromWasm0(arg0, arg1)); - return ret; -} -export function __wbg_Number_3890faa6d3ff057d(arg0) { - const ret = Number(arg0); - return ret; -} -export function __wbg_String_8564e559799eccda(arg0, arg1) { - const ret = String(arg1); - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -export function __wbg_Window_241244be8c9776c1(arg0) { - const ret = arg0.Window; - return ret; -} -export function __wbg_WorkerGlobalScope_8623a7c9030fbce2(arg0) { - const ret = arg0.WorkerGlobalScope; - return ret; -} -export function __wbg___wbindgen_bigint_get_as_i64_c4ecf48528083721(arg0, arg1) { - const v = arg1; - const ret = typeof(v) === 'bigint' ? v : undefined; - getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); -} -export function __wbg___wbindgen_boolean_get_c9c83ebd41b34df3(arg0) { - const v = arg0; - const ret = typeof(v) === 'boolean' ? v : undefined; - return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0; -} -export function __wbg___wbindgen_debug_string_a57024b9c6e4a48b(arg0, arg1) { - const ret = debugString(arg1); - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -export function __wbg___wbindgen_in_ac983077f137f2e6(arg0, arg1) { - const ret = arg0 in arg1; - return ret; -} -export function __wbg___wbindgen_is_bigint_8ffbbef442139384(arg0) { - const ret = typeof(arg0) === 'bigint'; - return ret; -} -export function __wbg___wbindgen_is_function_5e4570eb24ffa122(arg0) { - const ret = typeof(arg0) === 'function'; - return ret; -} -export function __wbg___wbindgen_is_null_7d13f41e1a2d5140(arg0) { - const ret = arg0 === null; - return ret; -} -export function __wbg___wbindgen_is_object_a2790eb24c211ea0(arg0) { - const val = arg0; - const ret = typeof(val) === 'object' && val !== null; - return ret; -} -export function __wbg___wbindgen_is_string_e6f02f0ea5f20a32(arg0) { - const ret = typeof(arg0) === 'string'; - return ret; -} -export function __wbg___wbindgen_is_undefined_6cff064c44e0d823(arg0) { - const ret = arg0 === undefined; - return ret; -} -export function __wbg___wbindgen_jsval_eq_0a18949a61670320(arg0, arg1) { - const ret = arg0 === arg1; - return ret; -} -export function __wbg___wbindgen_jsval_loose_eq_acf2776254a8d832(arg0, arg1) { - const ret = arg0 == arg1; - return ret; -} -export function __wbg___wbindgen_number_get_136b9679cab35cfb(arg0, arg1) { - const obj = arg1; - const ret = typeof(obj) === 'number' ? obj : undefined; - getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); -} -export function __wbg___wbindgen_string_get_d154f1e671052120(arg0, arg1) { - const obj = arg1; - const ret = typeof(obj) === 'string' ? obj : undefined; - var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -export function __wbg___wbindgen_throw_bb96b2010945f0bc(arg0, arg1) { - throw new Error(getStringFromWasm0(arg0, arg1)); -} -export function __wbg__wbg_cb_unref_be22cc64ae6946a0(arg0) { - arg0._wbg_cb_unref(); -} -export function __wbg_abort_32b500c4f9eab55d() { return handleError(function (arg0) { - arg0.abort(); -}, arguments); } -export function __wbg_add_18ccb6b4b9da9cd9() { return handleError(function (arg0, arg1, arg2) { - const ret = arg0.add(arg1, arg2); - return ret; -}, arguments); } -export function __wbg_add_2b945856b580d5ab(arg0, arg1) { - const ret = arg0.add(arg1); - return ret; -} -export function __wbg_at_facbe5ae998bba3a(arg0, arg1) { - const ret = arg0.at(arg1); - return ret; -} -export function __wbg_backupkeys_new(arg0) { - const ret = BackupKeys.__wrap(arg0); - return ret; -} -export function __wbg_bound_e48dc2f851c77207() { return handleError(function (arg0, arg1, arg2, arg3) { - const ret = IDBKeyRange.bound(arg0, arg1, arg2 !== 0, arg3 !== 0); - return ret; -}, arguments); } -export function __wbg_call_0f2a9af232c18fd2() { return handleError(function (arg0, arg1, arg2, arg3) { - const ret = arg0.call(arg1, arg2, arg3); - return ret; -}, arguments); } -export function __wbg_call_1c5886ab9c57d1c7() { return handleError(function (arg0, arg1) { - const ret = arg0.call(arg1); - return ret; -}, arguments); } -export function __wbg_call_35dba3c747ad7521() { return handleError(function (arg0, arg1, arg2) { - const ret = arg0.call(arg1, arg2); - return ret; -}, arguments); } -export function __wbg_call_39f824e18d9d2414() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { - const ret = arg0.call(arg1, arg2, arg3, arg4); - return ret; -}, arguments); } -export function __wbg_clearTimeout_3629d6209dfcc46e(arg0) { - const ret = clearTimeout(arg0); - return ret; -} -export function __wbg_clear_07a20ccd42c66921() { return handleError(function (arg0) { - const ret = arg0.clear(); - return ret; -}, arguments); } -export function __wbg_close_0c1f30aeb9a080a7(arg0) { - arg0.close(); -} -export function __wbg_code_5c2c992d8a3afb58(arg0) { - const ret = arg0.code; - return ret; -} -export function __wbg_commit_ebd6d9676954e0d2() { return handleError(function (arg0) { - arg0.commit(); -}, arguments); } -export function __wbg_continue_cbf53c725c127fe3() { return handleError(function (arg0) { - arg0.continue(); -}, arguments); } -export function __wbg_count_be9295f0aceb7d6a() { return handleError(function (arg0) { - const ret = arg0.count(); - return ret; -}, arguments); } -export function __wbg_count_c48ec9dcdccef1d5() { return handleError(function (arg0) { - const ret = arg0.count(); - return ret; -}, arguments); } -export function __wbg_createIndex_9e2beb35a103225a() { return handleError(function (arg0, arg1, arg2, arg3) { - const ret = arg0.createIndex(getStringFromWasm0(arg1, arg2), arg3); - return ret; -}, arguments); } -export function __wbg_createIndex_f8a090296c419c6c() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { - const ret = arg0.createIndex(getStringFromWasm0(arg1, arg2), arg3, arg4); - return ret; -}, arguments); } -export function __wbg_createObjectStore_d3884936b845900f() { return handleError(function (arg0, arg1, arg2) { - const ret = arg0.createObjectStore(getStringFromWasm0(arg1, arg2)); - return ret; -}, arguments); } -export function __wbg_crosssigningbootstraprequests_new(arg0) { - const ret = CrossSigningBootstrapRequests.__wrap(arg0); - return ret; -} -export function __wbg_crosssigningkeyexport_new(arg0) { - const ret = CrossSigningKeyExport.__wrap(arg0); - return ret; -} -export function __wbg_crosssigningstatus_new(arg0) { - const ret = CrossSigningStatus.__wrap(arg0); - return ret; -} -export function __wbg_crypto_38df2bab126b63dc(arg0) { - const ret = arg0.crypto; - return ret; -} -export function __wbg_debug_1ac2ea5532f70f4c(arg0, arg1) { - arg0.debug(arg1); -} -export function __wbg_debug_3853dbaf0bca30f9(arg0) { - console.debug(arg0); -} -export function __wbg_decryptedroomevent_new(arg0) { - const ret = DecryptedRoomEvent.__wrap(arg0); - return ret; -} -export function __wbg_decryptedtodeviceevent_new(arg0) { - const ret = DecryptedToDeviceEvent.__wrap(arg0); - return ret; -} -export function __wbg_dehydrateddevice_new(arg0) { - const ret = DehydratedDevice.__wrap(arg0); - return ret; -} -export function __wbg_dehydrateddevicekey_new(arg0) { - const ret = DehydratedDeviceKey.__wrap(arg0); - return ret; -} -export function __wbg_deleteObjectStore_ed0e7d0b256bead4() { return handleError(function (arg0, arg1, arg2) { - arg0.deleteObjectStore(getStringFromWasm0(arg1, arg2)); -}, arguments); } -export function __wbg_delete_03ff02bcb1b57138() { return handleError(function (arg0) { - const ret = arg0.delete(); - return ret; -}, arguments); } -export function __wbg_delete_27b012593b3f623b() { return handleError(function (arg0, arg1) { - const ret = arg0.delete(arg1); - return ret; -}, arguments); } -export function __wbg_device_new(arg0) { - const ret = Device.__wrap(arg0); - return ret; -} -export function __wbg_deviceid_new(arg0) { - const ret = DeviceId.__wrap(arg0); - return ret; -} -export function __wbg_devicekey_new(arg0) { - const ret = DeviceKey.__wrap(arg0); - return ret; -} -export function __wbg_devicekeyid_new(arg0) { - const ret = DeviceKeyId.__wrap(arg0); - return ret; -} -export function __wbg_done_669171204c3dcae2(arg0) { - const ret = arg0.done; - return ret; -} -export function __wbg_emoji_new(arg0) { - const ret = Emoji.__wrap(arg0); - return ret; -} -export function __wbg_encryptedattachment_new(arg0) { - const ret = EncryptedAttachment.__wrap(arg0); - return ret; -} -export function __wbg_encryptioninfo_new(arg0) { - const ret = EncryptionInfo.__wrap(arg0); - return ret; -} -export function __wbg_entries_71601bcb707d5078(arg0) { - const ret = arg0.entries(); - return ret; -} -export function __wbg_entries_7774d489e1da5f4f(arg0) { - const ret = Object.entries(arg0); - return ret; -} -export function __wbg_error_24e6ac605d438e54() { return handleError(function (arg0) { - const ret = arg0.error; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -}, arguments); } -export function __wbg_error_757e9472f8410341(arg0, arg1) { - let deferred0_0; - let deferred0_1; - try { - deferred0_0 = arg0; - deferred0_1 = arg1; - console.error(getStringFromWasm0(arg0, arg1)); - } finally { - wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); - } -} -export function __wbg_error_dbd3752906405f8d(arg0, arg1) { - arg0.error(arg1); -} -export function __wbg_error_dd408a7b3cb542dd(arg0) { - console.error(arg0); -} -export function __wbg_from_74f3d90e0ff11240(arg0) { - const ret = Array.from(arg0); - return ret; -} -export function __wbg_getAllKeys_1de66542d233a4a5() { return handleError(function (arg0) { - const ret = arg0.getAllKeys(); - return ret; -}, arguments); } -export function __wbg_getAllKeys_65d7deed4f9b2d48() { return handleError(function (arg0, arg1) { - const ret = arg0.getAllKeys(arg1); - return ret; -}, arguments); } -export function __wbg_getAll_358f5970d9bee84b() { return handleError(function (arg0) { - const ret = arg0.getAll(); - return ret; -}, arguments); } -export function __wbg_getAll_6b556cfcbf040afc() { return handleError(function (arg0, arg1) { - const ret = arg0.getAll(arg1); - return ret; -}, arguments); } -export function __wbg_getAll_86c18743042fe4ca() { return handleError(function (arg0) { - const ret = arg0.getAll(); - return ret; -}, arguments); } -export function __wbg_getAll_edf30bc7f595e7ae() { return handleError(function (arg0, arg1, arg2) { - const ret = arg0.getAll(arg1, arg2 >>> 0); - return ret; -}, arguments); } -export function __wbg_getRandomValues_26c0cdf963e46393() { return handleError(function (arg0, arg1) { - globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1)); -}, arguments); } -export function __wbg_getRandomValues_436a51d0629d84e1() { return handleError(function (arg0, arg1) { - globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1)); -}, arguments); } -export function __wbg_getRandomValues_c44a50d8cfdaebeb() { return handleError(function (arg0, arg1) { - arg0.getRandomValues(arg1); -}, arguments); } -export function __wbg_getTime_63fb0332e6c4ec17(arg0) { - const ret = arg0.getTime(); - return ret; -} -export function __wbg_get_4babbbf9303c1945() { return handleError(function (arg0, arg1) { - const ret = arg0.get(arg1); - return ret; -}, arguments); } -export function __wbg_get_94b5ec70e1f04bdd() { return handleError(function (arg0, arg1) { - const ret = arg0.get(arg1); - return ret; -}, arguments); } -export function __wbg_get_971a0c45d172643f() { return handleError(function (arg0, arg1) { - const ret = Reflect.get(arg0, arg1); - return ret; -}, arguments); } -export function __wbg_get_c0c8f8d7da0c03dd(arg0, arg1) { - const ret = arg0[arg1 >>> 0]; - return ret; -} -export function __wbg_get_d173c0308df22d37() { return handleError(function (arg0, arg1) { - const ret = Reflect.get(arg0, arg1); - return ret; -}, arguments); } -export function __wbg_get_unchecked_e20b893aeafc3fca(arg0, arg1) { - const ret = arg0[arg1 >>> 0]; - return ret; -} -export function __wbg_get_with_ref_key_6412cf3094599694(arg0, arg1) { - const ret = arg0[arg1]; - return ret; -} -export function __wbg_global_94a489d2e6a0c5fd(arg0) { - const ret = arg0.global; - return ret; -} -export function __wbg_inboundgroupsession_new(arg0) { - const ret = InboundGroupSession.__wrap(arg0); - return ret; -} -export function __wbg_index_bed5a9f21dfebeea() { return handleError(function (arg0, arg1, arg2) { - const ret = arg0.index(getStringFromWasm0(arg1, arg2)); - return ret; -}, arguments); } -export function __wbg_indexedDB_47c354eb27472a00() { return handleError(function (arg0) { - const ret = arg0.indexedDB; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -}, arguments); } -export function __wbg_indexedDB_9e20c97c033151f3() { return handleError(function (arg0) { - const ret = arg0.indexedDB; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -}, arguments); } -export function __wbg_indexedDB_ced363f3de8fb099() { return handleError(function (arg0) { - const ret = arg0.indexedDB; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -}, arguments); } -export function __wbg_info_726982aff9befe16(arg0) { - console.info(arg0); -} -export function __wbg_info_929f1b00bd4820a9(arg0, arg1) { - arg0.info(arg1); -} -export function __wbg_instanceof_ArrayBuffer_993d02d2d254cad1(arg0) { - let result; - try { - result = arg0 instanceof ArrayBuffer; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_CursorSys_383984afc1fa1bbc(arg0) { - let result; - try { - result = arg0 instanceof IDBCursorWithValue; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_DomException_55a5af63fefe4042(arg0) { - let result; - try { - result = arg0 instanceof DOMException; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_Error_61d8a02a0f3383a1(arg0) { - let result; - try { - result = arg0 instanceof Error; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_IdbCursor_9bd028886fa2ccf0(arg0) { - let result; - try { - result = arg0 instanceof IDBCursor; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_IdbDatabase_e9dd9f20c51d8d42(arg0) { - let result; - try { - result = arg0 instanceof IDBDatabase; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_IdbOpenDbRequest_b913751ffb9239bb(arg0) { - let result; - try { - result = arg0 instanceof IDBOpenDBRequest; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_IdbRequest_471b050024626dac(arg0) { - let result; - try { - result = arg0 instanceof IDBRequest; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_Map_9a4d6ead180ae3a9(arg0) { - let result; - try { - result = arg0 instanceof Map; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_Promise_e6e764b945c3128a(arg0) { - let result; - try { - result = arg0 instanceof Promise; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_instanceof_Uint8Array_f935dbb0aa7cdeed(arg0) { - let result; - try { - result = arg0 instanceof Uint8Array; - } catch (_) { - result = false; - } - const ret = result; - return ret; -} -export function __wbg_invalidtodeviceevent_new(arg0) { - const ret = InvalidToDeviceEvent.__wrap(arg0); - return ret; -} -export function __wbg_isArray_291e8fbbc73f8b2e(arg0) { - const ret = Array.isArray(arg0); - return ret; -} -export function __wbg_isArray_6339f732981044bf(arg0) { - const ret = Array.isArray(arg0); - return ret; -} -export function __wbg_isSafeInteger_f3d6cd19ccfe4512(arg0) { - const ret = Number.isSafeInteger(arg0); - return ret; -} -export function __wbg_item_754b49ed01198c29(arg0, arg1, arg2) { - const ret = arg1.item(arg2 >>> 0); - var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -export function __wbg_iterator_5cebbb86e33c6dd6() { - const ret = Symbol.iterator; - return ret; -} -export function __wbg_key_18fe06a6310bf3fb() { return handleError(function (arg0) { - const ret = arg0.key; - return ret; -}, arguments); } -export function __wbg_keysbackuprequest_new(arg0) { - const ret = KeysBackupRequest.__wrap(arg0); - return ret; -} -export function __wbg_keysclaimrequest_new(arg0) { - const ret = KeysClaimRequest.__wrap(arg0); - return ret; -} -export function __wbg_keysqueryrequest_new(arg0) { - const ret = KeysQueryRequest.__wrap(arg0); - return ret; -} -export function __wbg_keysuploadrequest_new(arg0) { - const ret = KeysUploadRequest.__wrap(arg0); - return ret; -} -export function __wbg_length_13032799523c5735(arg0) { - const ret = arg0.length; - return ret; -} -export function __wbg_length_36bd29c6848c2144(arg0) { - const ret = arg0.length; - return ret; -} -export function __wbg_length_ecfa2c63d3d0d82c(arg0) { - const ret = arg0.length; - return ret; -} -export function __wbg_lowerBound_66a1695f45ef6c88() { return handleError(function (arg0, arg1) { - const ret = IDBKeyRange.lowerBound(arg0, arg1 !== 0); - return ret; -}, arguments); } -export function __wbg_maybesignature_new(arg0) { - const ret = MaybeSignature.__wrap(arg0); - return ret; -} -export function __wbg_megolmdecryptionerror_new(arg0) { - const ret = MegolmDecryptionError.__wrap(arg0); - return ret; -} -export function __wbg_message_88eda073e68b1d26(arg0, arg1) { - const ret = arg1.message; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -export function __wbg_message_c141d5e68716b595(arg0) { - const ret = arg0.message; - return ret; -} -export function __wbg_msCrypto_bd5a034af96bcba6(arg0) { - const ret = arg0.msCrypto; - return ret; -} -export function __wbg_name_facbed56940f0fec(arg0, arg1) { - const ret = arg1.name; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -export function __wbg_new_116be93542d39019() { - const ret = new Array(); - return ret; -} -export function __wbg_new_227d7c05414eb861() { - const ret = new Error(); - return ret; -} -export function __wbg_new_358857d90afd5a2d(arg0, arg1) { - const ret = new Error(getStringFromWasm0(arg0, arg1)); - return ret; -} -export function __wbg_new_418fb92a013d5930(arg0, arg1) { - try { - var state0 = {a: arg0, b: arg1}; - var cb0 = (arg0, arg1) => { - const a = state0.a; - state0.a = 0; - try { - return wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined_______true_(a, state0.b, arg0, arg1); - } finally { - state0.a = a; - } - }; - const ret = new Promise(cb0); - return ret; - } finally { - state0.a = 0; - } -} -export function __wbg_new_77cc4f4f472aeb81(arg0) { - const ret = new Uint8Array(arg0); - return ret; -} -export function __wbg_new_cdf041679ded4c5f() { - const ret = new Map(); - return ret; -} -export function __wbg_new_d29ccbc1854174b3(arg0) { - const ret = new Set(arg0); - return ret; -} -export function __wbg_new_ebe3e0f6837f0879() { - const ret = new Object(); - return ret; -} -export function __wbg_new_f9d6489212f3b2b3(arg0) { - const ret = new Date(arg0); - return ret; -} -export function __wbg_new_from_slice_3eea173078478cfe(arg0, arg1) { - const ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1)); - return ret; -} -export function __wbg_new_typed_cceaf62d8d95e9f2(arg0, arg1) { - try { - var state0 = {a: arg0, b: arg1}; - var cb0 = (arg0, arg1) => { - const a = state0.a; - state0.a = 0; - try { - return wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined_______true_(a, state0.b, arg0, arg1); - } finally { - state0.a = a; - } - }; - const ret = new Promise(cb0); - return ret; - } finally { - state0.a = 0; - } -} -export function __wbg_new_with_length_3ffc1c56427c525c(arg0) { - const ret = new Uint8Array(arg0 >>> 0); - return ret; -} -export function __wbg_new_with_length_5d351ffdb6e3397d(arg0) { - const ret = new Uint8ClampedArray(arg0 >>> 0); - return ret; -} -export function __wbg_next_42cf16ee0dafc9e2() { return handleError(function (arg0) { - const ret = arg0.next(); - return ret; -}, arguments); } -export function __wbg_next_8f26b64fa5e9f64b(arg0) { - const ret = arg0.next; - return ret; -} -export function __wbg_node_84ea875411254db1(arg0) { - const ret = arg0.node; - return ret; -} -export function __wbg_now_8b265300afd5f2b9() { - const ret = Date.now(); - return ret; -} -export function __wbg_now_e7c6795a7f81e10f(arg0) { - const ret = arg0.now(); - return ret; -} -export function __wbg_objectStoreNames_94ee5410bc505cae(arg0) { - const ret = arg0.objectStoreNames; - return ret; -} -export function __wbg_objectStore_222b7add2b5c2770() { return handleError(function (arg0, arg1, arg2) { - const ret = arg0.objectStore(getStringFromWasm0(arg1, arg2)); - return ret; -}, arguments); } -export function __wbg_oldVersion_92fccbad82f5635a(arg0) { - const ret = arg0.oldVersion; - return ret; -} -export function __wbg_olmmachine_new(arg0) { - const ret = OlmMachine.__wrap(arg0); - return ret; -} -export function __wbg_openCursor_1015e5f363cc8494() { return handleError(function (arg0) { - const ret = arg0.openCursor(); - return ret; -}, arguments); } -export function __wbg_openCursor_6dd512fe9cbf9f67() { return handleError(function (arg0, arg1) { - const ret = arg0.openCursor(arg1); - return ret; -}, arguments); } -export function __wbg_openCursor_f34b182699875701() { return handleError(function (arg0) { - const ret = arg0.openCursor(); - return ret; -}, arguments); } -export function __wbg_open_66c8b00ee562451f() { return handleError(function (arg0, arg1, arg2) { - const ret = arg0.open(getStringFromWasm0(arg1, arg2)); - return ret; -}, arguments); } -export function __wbg_open_c5ecda93515ce190() { return handleError(function (arg0, arg1, arg2, arg3) { - const ret = arg0.open(getStringFromWasm0(arg1, arg2), arg3 >>> 0); - return ret; -}, arguments); } -export function __wbg_otheruseridentity_new(arg0) { - const ret = OtherUserIdentity.__wrap(arg0); - return ret; -} -export function __wbg_ownuseridentity_new(arg0) { - const ret = OwnUserIdentity.__wrap(arg0); - return ret; -} -export function __wbg_parse_1cc93481b0865939() { return handleError(function (arg0, arg1) { - const ret = JSON.parse(getStringFromWasm0(arg0, arg1)); - return ret; -}, arguments); } -export function __wbg_performance_3fcf6e32a7e1ed0a(arg0) { - const ret = arg0.performance; - return ret; -} -export function __wbg_pickledinboundgroupsession_unwrap(arg0) { - const ret = PickledInboundGroupSession.__unwrap(arg0); - return ret; -} -export function __wbg_pickledsession_unwrap(arg0) { - const ret = PickledSession.__unwrap(arg0); - return ret; -} -export function __wbg_plaintexttodeviceevent_new(arg0) { - const ret = PlainTextToDeviceEvent.__wrap(arg0); - return ret; -} -export function __wbg_process_44c7a14e11e9f69e(arg0) { - const ret = arg0.process; - return ret; -} -export function __wbg_prototypesetcall_8798824fd302dd72(arg0, arg1, arg2) { - Uint8ClampedArray.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); -} -export function __wbg_prototypesetcall_de8e0d9553586985(arg0, arg1, arg2) { - Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); -} -export function __wbg_push_adb0107829f02d75(arg0, arg1) { - const ret = arg0.push(arg1); - return ret; -} -export function __wbg_put_5e0ae8c80bb952a7() { return handleError(function (arg0, arg1, arg2) { - const ret = arg0.put(arg1, arg2); - return ret; -}, arguments); } -export function __wbg_putdehydrateddevicerequest_new(arg0) { - const ret = PutDehydratedDeviceRequest.__wrap(arg0); - return ret; -} -export function __wbg_qr_new(arg0) { - const ret = Qr.__wrap(arg0); - return ret; -} -export function __wbg_queueMicrotask_ac694eae12e92dfb(arg0) { - queueMicrotask(arg0); -} -export function __wbg_queueMicrotask_be5fe34a8f4cad4d(arg0) { - const ret = arg0.queueMicrotask; - return ret; -} -export function __wbg_randomFillSync_6c25eac9869eb53c() { return handleError(function (arg0, arg1) { - arg0.randomFillSync(arg1); -}, arguments); } -export function __wbg_readyState_599831d0754935af(arg0) { - const ret = arg0.readyState; - return (__wbindgen_enum_IdbRequestReadyState.indexOf(ret) + 1 || 3) - 1; -} -export function __wbg_rehydrateddevice_new(arg0) { - const ret = RehydratedDevice.__wrap(arg0); - return ret; -} -export function __wbg_request_64abeba15a72c084(arg0) { - const ret = arg0.request; - return ret; -} -export function __wbg_request_72a78988f2edecad(arg0) { - const ret = arg0.request; - return ret; -} -export function __wbg_require_b4edbdcf3e2a1ef0() { return handleError(function () { - const ret = module.require; - return ret; -}, arguments); } -export function __wbg_resolve_020f95d838c6ef25(arg0) { - const ret = Promise.resolve(arg0); - return ret; -} -export function __wbg_result_0501bea148306f01() { return handleError(function (arg0) { - const ret = arg0.result; - return ret; -}, arguments); } -export function __wbg_roomid_unwrap(arg0) { - const ret = RoomId.__unwrap(arg0); - return ret; -} -export function __wbg_roomkeycounts_new(arg0) { - const ret = RoomKeyCounts.__wrap(arg0); - return ret; -} -export function __wbg_roomkeyimportresult_new(arg0) { - const ret = RoomKeyImportResult.__wrap(arg0); - return ret; -} -export function __wbg_roomkeyinfo_new(arg0) { - const ret = RoomKeyInfo.__wrap(arg0); - return ret; -} -export function __wbg_roomkeywithheldinfo_new(arg0) { - const ret = RoomKeyWithheldInfo.__wrap(arg0); - return ret; -} -export function __wbg_roommessagerequest_new(arg0) { - const ret = RoomMessageRequest.__wrap(arg0); - return ret; -} -export function __wbg_roompendingkeybundledetails_new(arg0) { - const ret = RoomPendingKeyBundleDetails.__wrap(arg0); - return ret; -} -export function __wbg_roomsettings_new(arg0) { - const ret = RoomSettings.__wrap(arg0); - return ret; -} -export function __wbg_sas_new(arg0) { - const ret = Sas.__wrap(arg0); - return ret; -} -export function __wbg_secretsbundle_new(arg0) { - const ret = SecretsBundle.__wrap(arg0); - return ret; -} -export function __wbg_setTimeout_56bcdccbad22fd44() { return handleError(function (arg0, arg1) { - const ret = setTimeout(arg0, arg1); - return ret; -}, arguments); } -export function __wbg_set_014226dfeca53178(arg0, arg1, arg2) { - const ret = arg0.set(arg1, arg2); - return ret; -} -export function __wbg_set_5c15d3c5973de97a(arg0, arg1, arg2) { - arg0.set(getArrayU8FromWasm0(arg1, arg2)); -} -export function __wbg_set_6be42768c690e380(arg0, arg1, arg2) { - arg0[arg1] = arg2; -} -export function __wbg_set_a80955eb93b145c6(arg0, arg1, arg2) { - arg0[arg1 >>> 0] = arg2; -} -export function __wbg_set_onabort_fda794cb1089d6b5(arg0, arg1) { - arg0.onabort = arg1; -} -export function __wbg_set_oncomplete_ff31bdacaa1b3558(arg0, arg1) { - arg0.oncomplete = arg1; -} -export function __wbg_set_onerror_3dff0f2abceea5e9(arg0, arg1) { - arg0.onerror = arg1; -} -export function __wbg_set_onerror_41278ace6abe3973(arg0, arg1) { - arg0.onerror = arg1; -} -export function __wbg_set_onsuccess_86d76d6974cd57e4(arg0, arg1) { - arg0.onsuccess = arg1; -} -export function __wbg_set_onupgradeneeded_79b60102909f4a5e(arg0, arg1) { - arg0.onupgradeneeded = arg1; -} -export function __wbg_set_unique_c03185d3bf563306(arg0, arg1) { - arg0.unique = arg1 !== 0; -} -export function __wbg_signatures_new(arg0) { - const ret = Signatures.__wrap(arg0); - return ret; -} -export function __wbg_signatureuploadrequest_new(arg0) { - const ret = SignatureUploadRequest.__wrap(arg0); - return ret; -} -export function __wbg_signatureverification_new(arg0) { - const ret = SignatureVerification.__wrap(arg0); - return ret; -} -export function __wbg_stack_3b0d974bbf31e44f(arg0, arg1) { - const ret = arg1.stack; - const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); - getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); -} -export function __wbg_static_accessor_GLOBAL_THIS_466428f93b4eaa76() { - const ret = typeof globalThis === 'undefined' ? null : globalThis; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -export function __wbg_static_accessor_GLOBAL_c7aea38d4de089bc() { - const ret = typeof global === 'undefined' ? null : global; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -export function __wbg_static_accessor_SELF_42d4fae05e59267a() { - const ret = typeof self === 'undefined' ? null : self; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -export function __wbg_static_accessor_WINDOW_e0db14a0eba6a812() { - const ret = typeof window === 'undefined' ? null : window; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -export function __wbg_storedroomkeybundledata_new(arg0) { - const ret = StoredRoomKeyBundleData.__wrap(arg0); - return ret; -} -export function __wbg_storehandle_new(arg0) { - const ret = StoreHandle.__wrap(arg0); - return ret; -} -export function __wbg_stringify_f93a4ebae9231922() { return handleError(function (arg0) { - const ret = JSON.stringify(arg0); - return ret; -}, arguments); } -export function __wbg_subarray_a4cc58201c7359fd(arg0, arg1, arg2) { - const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); - return ret; -} -export function __wbg_target_13424fe1cdc436ac(arg0) { - const ret = arg0.target; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -export function __wbg_then_7026b513a94278a8(arg0, arg1) { - const ret = arg0.then(arg1); - return ret; -} -export function __wbg_then_72819b8d4e081fb5(arg0, arg1, arg2) { - const ret = arg0.then(arg1, arg2); - return ret; -} -export function __wbg_toString_2f0b0aec069cb718(arg0) { - const ret = arg0.toString(); - return ret; -} -export function __wbg_todevicerequest_new(arg0) { - const ret = ToDeviceRequest.__wrap(arg0); - return ret; -} -export function __wbg_transaction_0458565e8cdfb620(arg0) { - const ret = arg0.transaction; - return ret; -} -export function __wbg_transaction_4c999693e6e601bf() { return handleError(function (arg0, arg1, arg2) { - const ret = arg0.transaction(arg1, __wbindgen_enum_IdbTransactionMode[arg2]); - return ret; -}, arguments); } -export function __wbg_transaction_728366e915610cb0() { return handleError(function (arg0, arg1, arg2, arg3) { - const ret = arg0.transaction(getStringFromWasm0(arg1, arg2), __wbindgen_enum_IdbTransactionMode[arg3]); - return ret; -}, arguments); } -export function __wbg_transaction_77d93778cbec28c3(arg0) { - const ret = arg0.transaction; - return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); -} -export function __wbg_update_df04b6b83954c5a0() { return handleError(function (arg0, arg1) { - const ret = arg0.update(arg1); - return ret; -}, arguments); } -export function __wbg_upperBound_916ed065b0d6fe6c() { return handleError(function (arg0, arg1) { - const ret = IDBKeyRange.upperBound(arg0, arg1 !== 0); - return ret; -}, arguments); } -export function __wbg_userdevices_new(arg0) { - const ret = UserDevices.__wrap(arg0); - return ret; -} -export function __wbg_userid_new(arg0) { - const ret = UserId.__wrap(arg0); - return ret; -} -export function __wbg_userid_unwrap(arg0) { - const ret = UserId.__unwrap(arg0); - return ret; -} -export function __wbg_utdtodeviceevent_new(arg0) { - const ret = UTDToDeviceEvent.__wrap(arg0); - return ret; -} -export function __wbg_value_1e2369fab29b420e(arg0) { - const ret = arg0.value; - return ret; -} -export function __wbg_value_496e02446340ae74() { return handleError(function (arg0) { - const ret = arg0.value; - return ret; -}, arguments); } -export function __wbg_values_d512097b1a1a9459(arg0) { - const ret = arg0.values(); - return ret; -} -export function __wbg_verificationrequest_new(arg0) { - const ret = VerificationRequest.__wrap(arg0); - return ret; -} -export function __wbg_version_26237923fff15d6e(arg0) { - const ret = arg0.version; - return ret; -} -export function __wbg_versions_276b2795b1c6a219(arg0) { - const ret = arg0.versions; - return ret; -} -export function __wbg_warn_917d7f727ab78481(arg0) { - console.warn(arg0); -} -export function __wbg_warn_b62de6508e8608cc(arg0, arg1) { - arg0.warn(arg1); -} -export function __wbindgen_cast_0000000000000001(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 164, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true_); - return ret; -} -export function __wbindgen_cast_0000000000000002(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("Event")], shim_idx: 558, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___web_sys_4ec35d1b8222c725___features__gen_Event__Event______true_); - return ret; -} -export function __wbindgen_cast_0000000000000003(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("IDBVersionChangeEvent")], shim_idx: 164, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true__2); - return ret; -} -export function __wbindgen_cast_0000000000000004(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 128, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke_______true_); - return ret; -} -export function __wbindgen_cast_0000000000000005(arg0) { - // Cast intrinsic for `F64 -> Externref`. - const ret = arg0; - return ret; -} -export function __wbindgen_cast_0000000000000006(arg0) { - // Cast intrinsic for `I64 -> Externref`. - const ret = arg0; - return ret; -} -export function __wbindgen_cast_0000000000000007(arg0, arg1) { - // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref("Uint8Array")`. - const ret = getArrayU8FromWasm0(arg0, arg1); - return ret; -} -export function __wbindgen_cast_0000000000000008(arg0, arg1) { - // Cast intrinsic for `Ref(String) -> Externref`. - const ret = getStringFromWasm0(arg0, arg1); - return ret; -} -export function __wbindgen_cast_0000000000000009(arg0) { - // Cast intrinsic for `U64 -> Externref`. - const ret = BigInt.asUintN(64, arg0); - return ret; -} -export function __wbindgen_cast_000000000000000a(arg0, arg1) { - var v0 = getArrayJsValueFromWasm0(arg0, arg1); - wasm.__wbindgen_free(arg0, arg1 * 4, 4); - // Cast intrinsic for `Vector(Externref) -> Externref`. - const ret = v0; - return ret; -} -export function __wbindgen_init_externref_table() { - const table = wasm.__wbindgen_externrefs; - const offset = table.grow(4); - table.set(0, undefined); - table.set(offset + 0, undefined); - table.set(offset + 1, null); - table.set(offset + 2, true); - table.set(offset + 3, false); -} -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke_______true_(arg0, arg1) { - wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke_______true_(arg0, arg1); -} - -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___web_sys_4ec35d1b8222c725___features__gen_Event__Event______true_(arg0, arg1, arg2) { - wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___web_sys_4ec35d1b8222c725___features__gen_Event__Event______true_(arg0, arg1, arg2); -} - -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true_(arg0, arg1, arg2) { - const ret = wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true_(arg0, arg1, arg2); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } -} - -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true__2(arg0, arg1, arg2) { - const ret = wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true__2(arg0, arg1, arg2); - if (ret[1]) { - throw takeFromExternrefTable0(ret[0]); - } -} - -function wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined_______true_(arg0, arg1, arg2, arg3) { - wasm.wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined_______true_(arg0, arg1, arg2, arg3); -} - - -const __wbindgen_enum_IdbRequestReadyState = ["pending", "done"]; - - -const __wbindgen_enum_IdbTransactionMode = ["readonly", "readwrite", "versionchange", "readwriteflush", "cleanup"]; -const AttachmentFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_attachment_free(ptr, 1)); -const BackupDecryptionKeyFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_backupdecryptionkey_free(ptr, 1)); -const BackupKeysFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_backupkeys_free(ptr, 1)); -const BackupSecretsBundleFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_backupsecretsbundle_free(ptr, 1)); -const Base64EncodedPkMessageFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_base64encodedpkmessage_free(ptr, 1)); -const BaseMigrationDataFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_basemigrationdata_free(ptr, 1)); -const CancelInfoFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_cancelinfo_free(ptr, 1)); -const CheckCodeFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_checkcode_free(ptr, 1)); -const CollectStrategyFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_collectstrategy_free(ptr, 1)); -const CrossSigningBootstrapRequestsFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_crosssigningbootstraprequests_free(ptr, 1)); -const CrossSigningKeyExportFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_crosssigningkeyexport_free(ptr, 1)); -const CrossSigningStatusFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_crosssigningstatus_free(ptr, 1)); -const Curve25519PublicKeyFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_curve25519publickey_free(ptr, 1)); -const Curve25519SecretKeyFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_curve25519secretkey_free(ptr, 1)); -const DecryptedRoomEventFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_decryptedroomevent_free(ptr, 1)); -const DecryptedToDeviceEventFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_decryptedtodeviceevent_free(ptr, 1)); -const DecryptionSettingsFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_decryptionsettings_free(ptr, 1)); -const DehydratedDeviceFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_dehydrateddevice_free(ptr, 1)); -const DehydratedDeviceKeyFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_dehydrateddevicekey_free(ptr, 1)); -const DehydratedDevicesFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_dehydrateddevices_free(ptr, 1)); -const DeviceFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_device_free(ptr, 1)); -const DeviceIdFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_deviceid_free(ptr, 1)); -const DeviceKeyFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_devicekey_free(ptr, 1)); -const DeviceKeyAlgorithmFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_devicekeyalgorithm_free(ptr, 1)); -const DeviceKeyIdFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_devicekeyid_free(ptr, 1)); -const DeviceListsFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_devicelists_free(ptr, 1)); -const EciesFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_ecies_free(ptr, 1)); -const Ed25519PublicKeyFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_ed25519publickey_free(ptr, 1)); -const Ed25519SignatureFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_ed25519signature_free(ptr, 1)); -const EmojiFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_emoji_free(ptr, 1)); -const EncryptedAttachmentFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_encryptedattachment_free(ptr, 1)); -const EncryptionInfoFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_encryptioninfo_free(ptr, 1)); -const EncryptionSettingsFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_encryptionsettings_free(ptr, 1)); -const EstablishedEciesFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_establishedecies_free(ptr, 1)); -const EventIdFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_eventid_free(ptr, 1)); -const IdentityKeysFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_identitykeys_free(ptr, 1)); -const InboundCreationResultFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_inboundcreationresult_free(ptr, 1)); -const InboundGroupSessionFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_inboundgroupsession_free(ptr, 1)); -const InvalidToDeviceEventFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_invalidtodeviceevent_free(ptr, 1)); -const KeysBackupRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_keysbackuprequest_free(ptr, 1)); -const KeysClaimRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_keysclaimrequest_free(ptr, 1)); -const KeysQueryRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_keysqueryrequest_free(ptr, 1)); -const KeysUploadRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_keysuploadrequest_free(ptr, 1)); -const MaybeSignatureFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_maybesignature_free(ptr, 1)); -const MegolmDecryptionErrorFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_megolmdecryptionerror_free(ptr, 1)); -const MegolmV1BackupKeyFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_megolmv1backupkey_free(ptr, 1)); -const MigrationFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_migration_free(ptr, 1)); -const Msc4108IntentDataFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_msc4108intentdata_free(ptr, 1)); -const Msc4388IntentDataFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_msc4388intentdata_free(ptr, 1)); -const OlmMachineFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_olmmachine_free(ptr, 1)); -const OtherUserIdentityFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_otheruseridentity_free(ptr, 1)); -const OutboundCreationResultFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_outboundcreationresult_free(ptr, 1)); -const OwnUserIdentityFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_ownuseridentity_free(ptr, 1)); -const PickledInboundGroupSessionFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_pickledinboundgroupsession_free(ptr, 1)); -const PickledSessionFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_pickledsession_free(ptr, 1)); -const PkDecryptionFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_pkdecryption_free(ptr, 1)); -const PkEncryptionFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_pkencryption_free(ptr, 1)); -const PkMessageFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_pkmessage_free(ptr, 1)); -const PlainTextToDeviceEventFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_plaintexttodeviceevent_free(ptr, 1)); -const PutDehydratedDeviceRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_putdehydrateddevicerequest_free(ptr, 1)); -const QrFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_qr_free(ptr, 1)); -const QrCodeFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_qrcode_free(ptr, 1)); -const QrCodeDataFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_qrcodedata_free(ptr, 1)); -const QrCodeIntentDataFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_qrcodeintentdata_free(ptr, 1)); -const QrCodeScanFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_qrcodescan_free(ptr, 1)); -const RehydratedDeviceFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_rehydrateddevice_free(ptr, 1)); -const RoomIdFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_roomid_free(ptr, 1)); -const RoomKeyCountsFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_roomkeycounts_free(ptr, 1)); -const RoomKeyImportResultFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_roomkeyimportresult_free(ptr, 1)); -const RoomKeyInfoFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_roomkeyinfo_free(ptr, 1)); -const RoomKeyWithheldInfoFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_roomkeywithheldinfo_free(ptr, 1)); -const RoomMessageRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_roommessagerequest_free(ptr, 1)); -const RoomPendingKeyBundleDetailsFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_roompendingkeybundledetails_free(ptr, 1)); -const RoomSettingsFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_roomsettings_free(ptr, 1)); -const SasFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_sas_free(ptr, 1)); -const SecretsBundleFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_secretsbundle_free(ptr, 1)); -const ServerNameFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_servername_free(ptr, 1)); -const ShieldStateFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_shieldstate_free(ptr, 1)); -const SignatureFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_signature_free(ptr, 1)); -const SignatureUploadRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_signatureuploadrequest_free(ptr, 1)); -const SignatureVerificationFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_signatureverification_free(ptr, 1)); -const SignaturesFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_signatures_free(ptr, 1)); -const StoreHandleFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_storehandle_free(ptr, 1)); -const StoredRoomKeyBundleDataFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_storedroomkeybundledata_free(ptr, 1)); -const ToDeviceEncryptionInfoFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_todeviceencryptioninfo_free(ptr, 1)); -const ToDeviceRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_todevicerequest_free(ptr, 1)); -const ToDeviceUnableToDecryptInfoFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_todeviceunabletodecryptinfo_free(ptr, 1)); -const TracingFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_tracing_free(ptr, 1)); -const UTDToDeviceEventFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_utdtodeviceevent_free(ptr, 1)); -const UploadSigningKeysRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_uploadsigningkeysrequest_free(ptr, 1)); -const UserDevicesFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_userdevices_free(ptr, 1)); -const UserIdFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_userid_free(ptr, 1)); -const VerificationRequestFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_verificationrequest_free(ptr, 1)); -const VersionsFinalization = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(ptr => wasm.__wbg_versions_free(ptr, 1)); - -function addToExternrefTable0(obj) { - const idx = wasm.__externref_table_alloc(); - wasm.__wbindgen_externrefs.set(idx, obj); - return idx; -} - -function _assertClass(instance, klass) { - if (!(instance instanceof klass)) { - throw new Error(`expected instance of ${klass.name}`); - } -} - -const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined') - ? { register: () => {}, unregister: () => {} } - : new FinalizationRegistry(state => wasm.__wbindgen_destroy_closure(state.a, state.b)); - -function debugString(val) { - // primitive types - const type = typeof val; - if (type == 'number' || type == 'boolean' || val == null) { - return `${val}`; - } - if (type == 'string') { - return `"${val}"`; - } - if (type == 'symbol') { - const description = val.description; - if (description == null) { - return 'Symbol'; - } else { - return `Symbol(${description})`; - } - } - if (type == 'function') { - const name = val.name; - if (typeof name == 'string' && name.length > 0) { - return `Function(${name})`; - } else { - return 'Function'; - } - } - // objects - if (Array.isArray(val)) { - const length = val.length; - let debug = '['; - if (length > 0) { - debug += debugString(val[0]); - } - for(let i = 1; i < length; i++) { - debug += ', ' + debugString(val[i]); - } - debug += ']'; - return debug; - } - // Test for built-in - const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); - let className; - if (builtInMatches && builtInMatches.length > 1) { - className = builtInMatches[1]; - } else { - // Failed to match the standard '[object ClassName]' - return toString.call(val); - } - if (className == 'Object') { - // we're a user defined class or Object - // JSON.stringify avoids problems with cycles, and is generally much - // easier than looping through ownProperties of `val`. - try { - return 'Object(' + JSON.stringify(val) + ')'; - } catch (_) { - return 'Object'; - } - } - // errors - if (val instanceof Error) { - return `${val.name}: ${val.message}\n${val.stack}`; - } - // TODO we could test for more things here, like `Set`s and `Map`s. - return className; -} - -function getArrayJsValueFromWasm0(ptr, len) { - ptr = ptr >>> 0; - const mem = getDataViewMemory0(); - const result = []; - for (let i = ptr; i < ptr + 4 * len; i += 4) { - result.push(wasm.__wbindgen_externrefs.get(mem.getUint32(i, true))); - } - wasm.__externref_drop_slice(ptr, len); - return result; -} - -function getArrayU16FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len); -} - -function getArrayU8FromWasm0(ptr, len) { - ptr = ptr >>> 0; - return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); -} - -let cachedDataViewMemory0 = null; -function getDataViewMemory0() { - if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) { - cachedDataViewMemory0 = new DataView(wasm.memory.buffer); - } - return cachedDataViewMemory0; -} - -function getStringFromWasm0(ptr, len) { - return decodeText(ptr >>> 0, len); -} - -let cachedUint16ArrayMemory0 = null; -function getUint16ArrayMemory0() { - if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) { - cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer); - } - return cachedUint16ArrayMemory0; -} - -let cachedUint8ArrayMemory0 = null; -function getUint8ArrayMemory0() { - if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { - cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); - } - return cachedUint8ArrayMemory0; -} - -function handleError(f, args) { - try { - return f.apply(this, args); - } catch (e) { - const idx = addToExternrefTable0(e); - wasm.__wbindgen_exn_store(idx); - } -} - -function isLikeNone(x) { - return x === undefined || x === null; -} - -function makeMutClosure(arg0, arg1, f) { - const state = { a: arg0, b: arg1, cnt: 1 }; - const real = (...args) => { - - // First up with a closure we increment the internal reference - // count. This ensures that the Rust closure environment won't - // be deallocated while we're invoking it. - state.cnt++; - const a = state.a; - state.a = 0; - try { - return f(a, state.b, ...args); - } finally { - state.a = a; - real._wbg_cb_unref(); - } - }; - real._wbg_cb_unref = () => { - if (--state.cnt === 0) { - wasm.__wbindgen_destroy_closure(state.a, state.b); - state.a = 0; - CLOSURE_DTORS.unregister(state); - } - }; - CLOSURE_DTORS.register(real, state, state); - return real; -} - -function passArray8ToWasm0(arg, malloc) { - const ptr = malloc(arg.length * 1, 1) >>> 0; - getUint8ArrayMemory0().set(arg, ptr / 1); - WASM_VECTOR_LEN = arg.length; - return ptr; -} - -function passArrayJsValueToWasm0(array, malloc) { - const ptr = malloc(array.length * 4, 4) >>> 0; - for (let i = 0; i < array.length; i++) { - const add = addToExternrefTable0(array[i]); - getDataViewMemory0().setUint32(ptr + 4 * i, add, true); - } - WASM_VECTOR_LEN = array.length; - return ptr; -} - -function passStringToWasm0(arg, malloc, realloc) { - if (realloc === undefined) { - const buf = cachedTextEncoder.encode(arg); - const ptr = malloc(buf.length, 1) >>> 0; - getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); - WASM_VECTOR_LEN = buf.length; - return ptr; - } - - let len = arg.length; - let ptr = malloc(len, 1) >>> 0; - - const mem = getUint8ArrayMemory0(); - - let offset = 0; - - for (; offset < len; offset++) { - const code = arg.charCodeAt(offset); - if (code > 0x7F) break; - mem[ptr + offset] = code; - } - if (offset !== len) { - if (offset !== 0) { - arg = arg.slice(offset); - } - ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; - const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); - const ret = cachedTextEncoder.encodeInto(arg, view); - - offset += ret.written; - ptr = realloc(ptr, len, offset, 1) >>> 0; - } - - WASM_VECTOR_LEN = offset; - return ptr; -} - -function takeFromExternrefTable0(idx) { - const value = wasm.__wbindgen_externrefs.get(idx); - wasm.__externref_table_dealloc(idx); - return value; -} - -let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); -cachedTextDecoder.decode(); -const MAX_SAFARI_DECODE_BYTES = 2146435072; -let numBytesDecoded = 0; -function decodeText(ptr, len) { - numBytesDecoded += len; - if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { - cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); - cachedTextDecoder.decode(); - numBytesDecoded = len; - } - return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); -} - -const cachedTextEncoder = new TextEncoder(); - -if (!('encodeInto' in cachedTextEncoder)) { - cachedTextEncoder.encodeInto = function (arg, view) { - const buf = cachedTextEncoder.encode(arg); - view.set(buf); - return { - read: arg.length, - written: buf.length - }; - }; -} - -let WASM_VECTOR_LEN = 0; - - -let wasm; -export function __wbg_set_wasm(val) { - wasm = val; -} diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm deleted file mode 100644 index 7b5993cad492e7df01ab01f7b41e6c8866af2d78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7833454 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

wezmDhX|%WW(%l;A!O!a)@}HqKvwq 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

jA%L+4ZpvcWN{e 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

rExxs3Du)EGATQ#>3N`9Z@~Eo9yJ7RXj)!T6hqd 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 z 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

!x)l#YY5Ig)8@aJ`6{QiIDr zNIvx<2M&SRRQ0B#Amde=_v&ium)K2;xFp>&bJ(s%<{#JYBn`j zvo)_~(@E95T-Cs{^=Px8wWP|XdM;_Mhb(O26L2m$sh(G<9_G61(QljkNIq0EJesZ) z@z~dYl-F~`N%g!@^(D*6jmgtDwhf2pWpI$-8yK3)S&6a!l{Y8s$82c{db9WL&{n?gbq6r)Xd zw^p{hrLv($WxG$V>^7^6q_2AP{sLk3So6NkUEJ4FnG)i|;3-Xh4rCv-%FuQ7=uXqc z=}2p3BQ2GUHYyuAxw5;hG8BD1`kbYxrem#@jkQ!Z(Ws1l6z4*ApH+5-D*I{yH65pu zt(CEhToY+cH7aA<%(<04Xq6FUXB+E+TtTH1G~;Z#rLvhuWz#2D_I;~tl`8u|ffQ6| zthKV)mde;~FB^c_lPmkFRfagIM?bT)-E<&sfown`HRqtgMrGPjZ_a4m7>mx%Qf2Rq z$$^K?S}WV#QrS?WvfU?FcAHi9998!I*s@vnwN|#TrLy5hW&2L9?4wrMb5+@$+Afl9 zGFvMfX{l_qQQ64JmECQXAxWV#?Lmp~YOQRnrLu`eWn(8-cAr(&tIEC_lL!o*wN^IS zQrT3aGVN9}X8<0w%4(|Yp_qe0ptIJ>rdul0Hk^Ssr%$fz`&QZWRM`(=Hrt2JS}U7v zsZ6tip|aVNEBmQch8}{>V)o8QYM|qr1pYpmF*%(vbDveVkK&weezYh$GrfLiQBx<) z6-CYU1Wk$G5DyiI>Glrjuzj<(c&cEj`_vYY(UbT9T{i&1m3<)M}1==qj9=P_)ky-+QzFEBxH zWsS@ZwvAw8j$)W-k?jL?bT`03{|D%uQjgpoYU;=j$xQKShOEXN)YrXE#^jJ?V}!@K z9l18|+W+@#M#*CHov{xs)+Tam*mn)vQDfe)9dVsRAkD@dR;W$ocm1ZVMnZRHRx-?7 zu^IuzeGdI*^BV6!wS+DFu1?*HSVANsD`AuR`03f9m#A+8MP*d+G`g+0(U^qd%@jrV z6mO)67ick*<|@U~h{1U(1sJc`!tl>rv%;alI!<9NS(k82^5NH+ix+i2U(e|U5Abr6 zdtcHGYM=ItT0lK34_J2LJ!UE|coxkpBtzZpa_V+V9h}@4SV#`WmV$VlffcVe`v$$# ztQTnHIgLhcH<|ex<5S`g00v8!SS?az0_v=8wsM`fM;G<5K1u`fYxjs2vYK1EaZ%41 zs<|Hh+TunlXR;wiCgzeo>x+e8Pg^ve8Q@GI>eCmf?1XK-OQn8JyRDVkR|=|}_E#&i zuSCqJ{T0VBID~kRr~efh{r;8Qm(y;`LgZ3P@>Ndzt0h@ma!OA7D^i9WLU|vj{T0bY z{uLtZ^uHo3>R;)4+HJAzpnoOD;k3VEM$5mFhj7|ou~go_k}Gi9U$J)IzrvM2{jbr8@^p))L)Beh)HT0DX@YDXvra1JKEbY_& z%3|F5N+$Jbe?)1Rf=n)Kjd@Kj-i%WW(0!6QO!4t|pZ(2S$L2zcNz~WQ z+KAn0KXw&s&)I0kD;JrvJjx|45wk|?weI6=tdm8(yaz8==&2rUYKHzIhkm<5 zf1yMF-#PT#9QxFu-|Eo+mP7wahyE1~{RIyF7KeVbLw_*|Iq}vem^NF4Nb8c#qjI2L zM&jDFloC0VEDfqFu{O|A4*Z>@k58{ zFC3<;nqhi}&1Ti3>kAGQi3-Ll*V%gQdc=BcFmCIyja&LG(pHbIcF^ALpuNpOd#i)? zUmUc*bkJ@nG+;BH{7Ze>2uV6@H`+RJJb*$obngq$-4dW<^|(Rz-T>Wu0(3W9FtHx7 zs@$0QCJW)!qrbA~8wpkxI3vZ_VqVyeVU_ti3l8J0O)wfa@<7@*4|O__w*??~w*dL! z0Oa2WAom6!KNNucn*ih;0mz{Mu1CaY#fc#7V^3wsx0|CfS1t9+}0Qt!PX{6+wBA^`dI z0OSJ!$om73;{nL81t7l~fc#bykj8rcpb<)TARi1sPPPE~L;&*f0OZjC`0f$YLO^zA_YGypl< z0^~blm)h6IK|pHXB?RJiY*nx8wQ&%TY{jVGeX)xma$c>iUj`t55r8}qfc$v?@@E0a z8{&qTG!ujeGDGu_x&wKmj^m-3fw)CZ1|V+y`B$;a z@pp5~kZRu0@5Z#c_5oUpIUGr z?+!qYv;g_#0OY*^NZSjHVf#`5@{0k;{~CZC4M6^V0P+g~$a?~i>?vl5`g{QLa{bH`ILnNd0zl>tOdw_3P64{0C_lI@*e|`{}6!uMgWo{*Gz(ZJplPY0P_9- z~AUU+m zM9@C0OU`afJF4z)D82Fjj0<4@}~hv zHZN@g@*N8O^3CXEvsU9LSF<#hzyN`Jyt*0jWoy2|#{20C^w)`KbWp-vuB)8GsxP zKz>3A{M7dGqRYv! z^jaNz7sBQBY<6q4&u*>q*{w5ucIynE-D2iTvs=u3X?Ba5FU@Y*k+wGTrP(cJzBIeV z%$H`jnE6sjfSE4^CYbrs>=rX$it;n_rO69szBIc<;6V{@X1)~hX68pT9ZUsjc8l=5 zCJUJP(v(1fs!|V$S4pG4k~t6$+2^4Kn+eMOOadY;er6uI)F|b#ja%#8d2n)0(6u{{ zKhBA(>JVASFcjEQRUSoTU|SyKfkIfNLjc@*t0{$+B<$A`hU=2@Gnpct;8B(egze2AdP!^K4EaiEDP4? zcTSMb6KnOwoH$&b&^0&I<~iE)MAMAd-xp-XEkRb08D;$V-XJU96J*8BK~^yLWjuLP zkQFTEF*}aMJ;s*Io0zP4S71ygYfM%!zvC92mJY$bwYMi55;(y;~*+TbG(48jLI zPX7A$*o3QE)C3$e>ze2-vgHJS)`$7(e41AaIao%d_q3euOKgSr#?28kL{Iw>Jfdd4 z_xsv~mZilzs!G(;k?P&GEdPb&{`Cl~t)gNMs_)rCt&~U;RWy>)*>SRoT)3hJs0qqs zatp0L@DyKEtm-Me76ADQyNJ0CFnF>lc0o~C zzNJu8+v^GoHnQ&4+7?(~bbb)1777wV;aN3bEAf-bN9tbL=xaSX10tk>Gof+SAFtM~ zq-;&K#hQU$)J&tNrKWCDGyQl;;ml<6Wm>%Y>=3#xCX@GR(MXll|I#>7{RomdSd>QK z!0D=s{tSaZ+aLYEQKr;FD7l4gu8|TkPq6MC~B4UALJ2ixNl%L=Fl1+8Q>FphC zL-r-MQasoNoZo)cN$-Ia;6S?AN)2f+n2p0|0go(wu4;Np4c)?CkFo~XZpeaG*K?KT z9?%|;TyL&;@b?%yq02HM6w_N}Wx~>Jaql_tR{mXWe^ugNaci|r`{r5+Ti@n(CP{pM z(wwOriJJO9VcEk5N;?v(xtiGKH-1`NP>F1zQ5#&l)D}ji10N&{zLXr;C~(vbpjUc- z(rspswaEHyHnF?N8M=EAF|EVJm9dmyL;;1G9I*j1XlPN?aScMN+5zIEawq`ljR^O}% zw)<1zK5J{^v=5eHwQ{Vib?vW{?WV?>IIJRK@^z zKk9d5m`^|NEaMD*JCd&|*<{mhs)I!#L4sWSph=LTBuD_4@7S&i;YD5;;K-X~vJ8Qs zPVV9fiTi?I^5i&U?O=gXxf+lIyPUDjMn&g?P8<2MVQtAFGKym_VI5w?cdVLV!Ec|q zmvSHF*-A+D(pEt7D~*)Mo1F2Nc!8~U0=pm87223;XIGT=q~DC+T)arQm_&6MEx8=V zjI~pojY1DtIcxh{Y99vU2Gkgb0?zz|oym?5v99KU7m=By`D#@rS*Q+}4Aib%>Zi77 zvx65x-vK56JyPLF((IRdIHR4MLvN=kkA?CS<{${> zIei-oxJ9d@L9ZR;Dthii-|7AV?MBR1`mjgsrf=)*Myq8kKMMLkZ;Aamv55@X4$d&n zc5sIAebyb@t+}m9b_sU0S}`iH*q6gI1D(%XK^iv6LtIKdW)QFyNPBYlV)a$k>&lXT zs=A0B99YP?E@q&NODJ-H1Po%Mo!s??DmZ6zDL4uzPeteudxLe$Y-2>{wPtR_7KUoy zEb+|zT}vOmA13LMT4=`;085odUsxfEWF0^nR?7xUUnm00EQd<#6k-RnTtp^z#FOl9HU$t8A=wpBiY6!|XUE~8_G)5_Gk7Eqp z#Q`wR5F)imYsT7>2Vd&Z1}rmiktoSWLN;6xXfuQ4WOb89*cE19C>VAsTtZ$lO2Icq zn~D15sIzyDQ!%S}UM!%B=HdB0t4@RGL30z&v*dR~yxqk6?Bb{WtY`rp&JLl6tjzYv zXsdA(8OH4sj#^}`)LrwxDkq2USWt?iLcu&GHhq&kMp)iLdirrm44}9bulvVVW-AbB zLop`fFeEK$!j02CC=Z14Fy%qY^=Mbv%V{tO*_~mFhk=r&{Map`#QY?Cy0Ln@x`@TW zay!|O?a$bJp$ye5Lf$FX+s)gZy^Bo~DfnX|4T)gP!ZKQkGDDxacW z<2>}1w$c>OEka*vb97W{o3r3>Qxo=xjWe$1QNG=QMtuJpyYxvAFK|>5In}N8%!2%m zE8LUSrg@Bze;{I@MX?3291>itVIS3%-5d_;%Bi~}x^lec0bS|C@$#1FUMtr@`sU~> zR$d3vQGTJ^*MY(gV38o?ltF$Yg@ zbr9i9-IFBdFS4sY$zaHprfDy+vTQ!Jll#*C9a^oD{G3TGv(w7X()>WAyJhD^J$LKO zxI0*7^fR18CDl^v#6;E&OXnc-Lz7j?R!1cZleN<}r8jWKH#0GU@Hk}tG;ucI`az#lhNpghfN zEU@&9NTd_6^iJ-9ZR#MY6f8Yj%liz8n#_lEhxH{oV85S+-qC3?>0}O~;mk zOnWtc9pT|0S(%NX#RD#&;+>Su-oVJ+MOoH5bN*)GY0K!|y2RMN60RVzy%Lt4h400_ zcfC=_tFkGC-OIW-huj1pNSs4%6DF~x8X-YRY&J<8q-h-;uMoLea3=qDwlhF)@9p6K zisBNYw?Lc>VlvU=e52OqAP)1eok*%EC!pSE|(^ zFEq@!8bO!Rul^(Sa#q;)nV4((fc8XQp&O`&iZ=5riyGBpa`VNZI?Ogz#~JY2><`2s zY}9K}^G;n6eghnJ0!A?_=(0{mIK^8T2$*rc$DSbL@FMi^ocfT|oUahbnWg;gz2^$S z*#13%wAk|;d0wpu@QYSK<>zjzvcA8gdhSQ4+}(Tn;qJW|G4ld$3^sqCGW-~{#bEns zFl77Lj`TjLr64sVC~{;AS?blijfytRrmz9i=F(x8MhKI$BiNWoXE>{4J#clU+L=7` zdI4IJaj3qenQ;g)I%#1Xf<`0m3~iD`3G93dR>pu6odcjbZ7z)Fva$@9?0~(wtPBeq zE5p+Bvhuqt4OYGhRhhB!V5PyzyD4X^JVaTn?5sPNrPXgXW<%)-31(f*VQ9OT8EGwu zLEORh`csm?kp`2vlR(2(vwdz&;QRI5_6q4TBknMMq2^h2eqIX-_z2KoxmKVG`l;s5vs+>vCb2+t*-v<46&t@}pdZV3o znbwmIa4CM*8y!XSp@Ru|VS-n2hY_zh#}y8aGlf}l>{OC#pT~rMyS581bBQlC14#DP z$KPmEn?ePC(0X&R3}G^4M@>Y!f%`?3dA`r?xogiU4~9g!{OnimEKBI`BRVlh&0Wl& z;;U@sBygDt$DXv>*eyseOtjU=fUskg0J`DDSd-N*v53hL(GSPW42GtLDen&D5z0f9 z(+PZTQNaCN*Ki%>=$+@==$0jD*cY;_^ppqfVQ946Yum&gw6g`kTUi-+>`Pd7 ziycwDt_2t#3`?#t(HM2(0ivlau&_S|ciJI%Q(n*W>s>HuIj!LwQ z(^BqTCn#w3Jk?ICCZB25q&=;k9a?=6)!$2Rz@z_5IgT(bUdf-BO|-NRNwJ^}Mo!Ue z^+iaYvwKS^xi=EYpmJ_ ztZ3+ApG({`J4$Uh6h-Bs$WdyeDn8%d-ET#!;p1kx*<{T;-X*Svv7%&`Tn-c_+7%D0 ztn)ipvHPo?|H$5aFb?V>q6xBE*zixh7aQ)*w9O`M^I5|oUWwrlFGc(H$sIQw;=PzA zSRHVP5FBR*mJjG1i17gew6|NCO$FJ0W+;@kxx56DFvb3XMKkjdh_dsC zqHWB@M`w)cH+pPFSB!|`x+3Ieb){_`qVr8F`yo2tvN9t>8dGh&>B<(vdvs-#ck9Y1@6t7l z=3Q3y(fov!eKdzdS)(};${Nj4l^M;Wx-yzabY(Orb!9X;m&=U$30=WF=XbdcAqrq>=ahf&8|}`7vPN}QW$cqdU7=FjCK+FLfGHKjPjv-j ztm(mQ%IoCNn8uuK9DlYdppxHHOcFlvhAGT^IFi zjIM{q5d@YWhggV#ZCliP4wMu5L$17^MqQeZ)R`ED0v4_W*?Nx8WS-BU6=>kOu%@od zVNG41Loh?v6?kyE5@V%u#SqqVVVGta8VFTIO{UmZ6zc$MW5mLEjqg5U9%xk!`<;Y5 zUKmgxjPprOdo)YhObZ4FVdj%fY`c<28Dbb$yHqy*sk$5e4aSQf?^GUV>$H+qKf?f88-7eMNaB`MD(Gx zd)Dd3=n!%skwMXhN|o={Q_GepQjxp|3}||wTuf7M2qjZ%2s%@15;{@?2n^#ERLzin zBREVgqH@f(hWuxxHvre`^E2b|1} zB9vM*nA@kC9fN?=Y{B$n0hGosl{$5@O^g*xlH0K=ue^ zMGB(ytaf7mGYf2_=XIoUQt3OQZuj;MS_3%+PzZ>tw%^VePLyrBF znSYX}E~$ABwR|L*f!LnTx-I)(!0ms{!_2+(=F;3G>bs^bk_8!olm9%4hEKT16Jzi ziXe(lEa5lzXLaTNajrINvy&I3A7;3b&Du=s;nYG7v`eR#SmF+67)&j6TZ+K((S;_~ z9b%nt@L2Y&9(`va8=`*OQg+HVQ-hJOTG-~lls>w8M>_Nqx1`F(N32&MXM!W#NQYVB zZ}NAF-GXh78uBJoO-PRk*e90QM2@;=c|G>N+M`FRmzwxH(}jL} zu43LtR|r*WY0P`W(Q$x)IcI`_2h%ICN$fkFpP(<1%K5i#{%ub?B-;ultBy2<; zkI)n<_O{xT_8|muS9Vzdh)kZY-{;Y8%NWO1Cd_6I*BJ@g`Hw zAy3(iV(wi{R!EM`hf?}FKT7Sa3N`$+IFla;1J5W-7jOeh)OaPT;wR5 z(WbdJ4^gg?bCJzMSZ&Nhl*Pei%|keTvH?Tgf%ialc5`|~ZDHnPG5J94OgFGL-h$mrpeJBX8{K3TVISwrvI==Zy* z&hCe_PP^YN_1Km*X}9vx>_mEY6F{(Iz6}OhP7q#EsT^%UuRM_EDscP0r0mUk-#7Z4T2T}I6-jKg zmIMpxgjvIrsE%2Kp=-ja^avv~1fk4A`Vg_owrt$8tEAaOm}WYY{(?gBT*)(no|O{nA!j&eT-|jKvs>9S&gN_D_5N9^&Qcno76KYgmOKs z&FQ&L;MQ=Wb2>cPK*j(yCDeGVyKz1}bsl3>b*B3(3tr_;t#PA@fl$>{Hx$F~qutsv zt&r}fnnheEsb+zLHR)Bfy`tBv*b}PQ9jZ9ojX)DrR7EA}&abyZ#l!S&sx{V9Kkp9x zyx@5+@EQ+*kQOTz5IN@>SX&o-d)cL_G4N5!w+Po zV}n`gz(iJp+M6UFR){nogf9(;DI$9t1*GZZrI zPhwP>uod|0mgK+#v;hy$20TC;@N~+62WSJ{wXNJO2Oh;FOq>FEm`(B?du$%yc}Rkj zM6cAQkg234bSm~Wl`_q>kSthXjPev^0|aavAOM)@C`DMMgslw(t3L_&_IQTSz}$8I z%xa+-bS3(qqxY8B>{GQ}=p}7+1v3Y_y#fKImsT*j5R8%JW6RMqo_;Tq}}E-KE0^{-FY-NQNre8NYEEjcjfxXpvUHp=6EA3KeZ zxHKL2F`S=zzDP*}@x$|FLYLB`fzC>tSzE(?#$JT8+*VBPJ1Zzuz+UUKVFg)I*p=9a zGTYkHDLW`HKb5A_3Ee}PI6oglnsAo&wl1EJKGGbrau62MqxHSumSaO z+mI#0P~{aM?x+oi5NGtJx`jGUCo$BuLZA+t+~KWoK)XI~Z$R);Z#C^l4+a7bjb;F- zQN~@v+i0kug?oRI4+`X}L4xgkNFP3*N4#-WdTn1{-&H8!O-KzONjtSFB>P$){kcvs zBi@F$wKjgUJb}I8$Dis{&!O;x-I#E%!;e3zbpjJAEC-;*tk_X*r2E@;@VCFPBR$7r zz1Gx2eAlYok=PQDq?EBxiow#Sa!w}Ig6g7bN!BSfF+&QvL_2ji*V?B_0DhWhs_dw) z`bJkkKcXv@PjYQl`_dO+XHXUJ;y|eAgg&66SzW2!a^4*-{{9j51PY35*=dvy`VpxsOAB z$v@&9)HzEf$t$CDYzd>v*TgX;Q!VY(m#cdLm+E3BB>F)r8Uws+z)D2vVSUCA0G| z{oxxPj*_uU6^^TQNDAnNq(FyDf$XcRu{pQa}U|Q=C+r-1ZuEc*Fv1L@FF~zwXAO6;bWdmA($@ zD#Yn3;?uQalP%MR6q{^8;@Dlnz_X#q(K3CcITg}rY%ep=W@t~bML48OdEmP?2KwaA zfMOcS?h3bWe~mOL;C`Pe^NvLpSnpQviGm0KeO zVfGbGa1@j8ZIePUWTIOjf7dF0=V*yrl2~?HnHAr}XxUvv01?|v8^y_&v0I4puo{BJ zbn1FJ8GF4~g9vrG$wfQe6_Ot=PjyC)Waf*0ec0dqdH}$=?V{yMqJ!Boq9~>NK$oZp zEHwI$K0(GA9x@ErfWSV^-=>v9_m1b(gphgZ%dmI&6@Zzz~ z8s^KCej!v$2thmp>b^NLT#=hNHeH&@F`P^W$~vqoA5Vmj_wbP@&m4}kD-Rc1=z19_HiXe>Zbdf9?u2V&J zW8yklWWyr^es5^cq~tOZ4fGokJ*+GE6U$)V6-T*>;l~AcSt1R#>PC9-Y-kl%-rcP$ z-wx_ZT?1^G?3zSK7z&yMrbpmU>a27YxWG&nj4Gxxfl2iAIEsN5O_3akhw?CG&P7wzG{-T}R$dDj zhzH6#wX+`m5jd7#lf3srO?$XCB!%LQWJ(1(_vT%(q>JUJERg77ZTrH)jDK}hs2dO}N&?IF=HNVDg-uSV?Pm(-x8Fz&hSsGY!XNu=$ zI(4{~Q?^m!-J(n$%yvq-9?&m_%IKCM-XESitBR_PB}Itl)r&QQCP$&oRlfsGm^JmQ z8^Ua+e#396Uljagk=_WSI#|6T?yTt?cShU~Wc?D}PdfZaj>Vm`Ujm_qMc2{7VupDU zU=@cdxHPiBW$p7qhO`zWORq6-oDa_%LS?41#kp*_->j{5OHAA+CI)GDp@_Dg2t~B@Byqe#I*Pcn2+dfot;dkwl@@J1#hp00o_R>q z*10jsf#9aD@z4MdYg|{lHK;2zF=9=ap#(6%J;?*XeOOlsQ(Y0BHsz_ghi`ejD%cvvsJs&&P-5f zz?qHc(oudvO{)Jt;)q1kyv>#eZnA6Mh1sh_fQ{c4lVZ{H91w{1d=ie5_MFib$v(|B z{ZT;{a)1(lG;Y$$UCF~Qt`<-*1=q?LX>yM1ksXx6xRMs!%}(()j<`K4vEKmmre^+_ z%Z@M2O}w5VpO}Jbk0I=6m9WDFBI09Z8C0|rGy7Mxxf;q$3KoqsC^J`x?I)$(N3x2p zvzFmf)*g<@J2seKcmhgJSN^FS8h8w+gh@0j;;WGSZ^dbf_}aXvxI!OhuI3p%0N@Hm z&<-K24>d#E4^qm>-V4;f(FF<*@ZB&TReGRPLW_8U?u;%_!mp4zgt4OyX_~FQgA2eq za(F~nA+?MiX304QK&PsdjmJ_Q$dDr(K*!qn5Vm{Y+!(^rbf`&u#oK%Qh6GZq2t>Pf ztTK$#{+MfB+Ji~j(8*_9gtgDaO1eZRp8-FH5-rWN$%Bpr7~{bj8bqxz{IncyhDQ)< z>OW>Fir}&ZvfUpEPX9r!0_RYrMraDp(|(OtY78#Er~Nuysd3IO-lzRKQmJu_ zGcs3X50!D{-636hYoD$>A8rrw1y(|LV$4dy;Gm$!%%o|TNfYB4OA^C`ohMl}Lng}C zVP0S_g|e)g!BCb}Gk^z%RYMaKof4}`Je7qF7rKE_(8?Gjb1A(JLnGY9bB#4G6D+E% zWkZZfaX=g*hv$fp2>tJ-gC;;J4^kcv_Xj8+5`m0%Aiz1k(KwY+AMOIs4z9%?+( z&>7AdG?uJ{@HAHoSIe4NW12e*4=cEViiEi^ave-;WBF#t4D8hnxP$9g~T%(m7%0O70QE@Gy8Uc z@TTh*t*5OWpgZ`a=P>9jWd!FA$}tlA(oqCK{!X}Nq_|u8DODo zfQ7OFwyJ>)hTgo@CJBq43bN6dskfbkgwgm}Z9fLMX_pcMBAe zm9!5kKU}C`bVkV?e?X*t&!zf?+*fK?S&QXFXd*O{Sz!%dPJ0+xul8TqDEf5)zxZHv z4anZ$PcGDrDxVg*)CbM%T;WeH@yjMY)duo#9_@O^ucG6!d)CHpMH=D%+5S*hL3)KE zyucTnt}CP^KUt=?5+Gzs0PhcVZE=if z2>+qe{BlJ4%(LKc*Prg>a{-a)mNh$)Tj?ffwYoW{vA7BFA3qy-@tySzLV}B}6nmQC zT`BnU;kD%UFzOoK;~HL66PA>9jzy?u+Q~@J$}-_ zp234kAT-7}keXxs0vlprss)m>jj9Aw6lm_Pz{D^HT!M`5R%9?vj#ALkWf0DXXW%p| zuM#o}((mkIsYl)^kjFN1j%4i#hx4ET%#q9nn=M?^H%smY(dFdCwyZxr_%lto%~=PO z3%BY9oO2b!_OJhu${<1%aa;1pYarCNWb!rDxQAEkOboyz%jfV<Uz%Wti9v~tf% zdcZ=Nj^z8#0SUYxh%M0BN-7Lv37Ht1T$21?qra-|8X8$=a2X`E5|Z+*29XfSQ;WF8 z&JoXu0Ar4vxN-z6KM4Udr$PX)1_UgfgMh}9)u%v!<^T-=v*HxqZ$*GG+CTuFpZzcCGhT@XhHho5Vh2Z;5)$*ISSkRd0DU^p;&9B(T_;K_||&_Pp`dnOV=f zS_xf-MOX4fm2UHLYqv!;jX~~K1BrKAfX?YQ4#hKen?U4z-Bt{!m8YLNRkwLHbbHa9 zt~Q=XK+ZSF_=Zl>Csxs0-f!)#sHV}|W}X&&b9zfI%ro|O(fqvy33GaT{8YW=)zI5y zPH!7eR-U4_Ixoo>_-6H%_gj0rxTUvMjqMsATfsM{w`^AYjJ-|f?=47})7yVLRd0DU z^mgH#-Zq|)S2FL|E~2-X6&=YwF);79_EyBw7~5bGn7kHzb9&1T%wVJH9JQJWfR?^v zsWe-73+L}P*l6i?&`=o=oj_^^z}#`=yMTk`r|2nmVGztQJ>~t@o~lB(ebVvwqLY)n z9lpy9A3@jXwAnpL=(O2AtLgjGb$UTdr*pdpT&UA~gWWSEyJtv2r>xt#-Lr6x-NTpl zXvplIW!~?-C)qs<&5u&&YveOW9*-%e!!$rfdh*kk(3)&NlGq`I?GE+?k%%fRb&VuC%Jh)JVPUpUmg zVc@YPBWSzaS?JZzz(PGO)RY@K5ZP(5(1JO_g6{$gEjME8yDAJU z)PD=TUhKW*Hs2kNf?X@{=I{`4I(kiRn_R)<@eT|C&1j1JlO+&c)t}t#FsLLrn}A7kl<_J#Ef4Y zI9}T1l(69$C;_Q6U$?6gE!m3ORai1K^YSYIbMuU2xU)lW~8>n{q5 zLh~=gCDje@U2n5$fzSRI+kSFnBqZLKqAv-X|1?@&U?n-_b@;mSL$SAg7VFpps!uYRb^- zDwbIY4*r5E+AJC_WP4nz5_TPE#JL!Z*^DS5Mk7i>2G)J%Xq$<0jWl zE?1G<#jANkfGW~>>@`~JVoXc1y(^s_I1;66)1AM9BH#O3;*P}oG})Zo`$m7SHLOWD z)fX|I6p>oGzjR-VetZ{b~IX`dk zy3eb1h$vfoQAxhIUh6mP%ECxsc!M;6EQ5fOR-ord!Gll01#K1~H}tVy%cM3=SanADjY(>dhVpQDO$(=x9-z;l6@NvKL^znswwrp_Vz+ zogRW@Y8z$KmHgZD(I|Xo8U>opA9rLbrP-w7Me%JA!kq+;EaGb9QKcTDcTO=HCl=uF zuSw=+{rac+1sYI?JEe?=oPky*>X zYCLb?pQbmMaU*of%1a)qxn01HCGJm!Aig~(AbKayWgzmW9lY=|9vLsYxg74>%S2`M zvZAOwmtm>;zj}o}4WS7(LkZSpGX6$cmG;V0m+6%dkmD8EU;1?SZ|i+@90*eJW|exC@+6^U z`@`r(25#$>$>&}HS89&_<3w%K0oJ%CpI9f#vbH9FR|UrtGQ{pdfaE<|@zK{v2CG^L z8%EvkA~Lh@|Ix(bXw1S^?qy-&C@vsS0 z%hZPSrV7IQ+!TDxw?m4MYL)iE^F}>fW_=_ zdSXzCU6#xRq|ADIN|COfaI{w|06c?hj}r79zGJ+=Ox(0~U9@~)%akO8OZUmcQr6ax zUJn^u+6R&H6#HU?l#y8@8E`3|@29ly42?Ny;~c@&x4@6fv@ianp;IyHDJsiwt3eMk&3U zMF(x(2=4w@f(?_rA7({&$&7(a$fgy2F{ETG72d+i7k@F{nok>-nPf_LHKm=9sNy$3 zICHx*XEpsMpQA(-mUjkiLLjIvK_jvijbgcJ4N$u820gOmxUjB7S%to`<(QM?Nvl=J zg%hcgJ4_`ilTg!#RDvRuWax1ysFmd309;m;pofgLGM4Lfhw_g}*y&I&h>QO>V?{O<5*bjq28Y4 z8>?C9tZJ{)G%wZm71B<}8>^^DLk}3h_=vRIb2k?(0v$-kxas63()=RQ+Iv(p^@p0V z$~A?Jpm_0@;XWFFR6HHwYEO^ z)obDiS+ zTWg3KlvmZ*o9q(5QB}H@HIzmd>-|mK=hg=QY%Pux>nD%g5te}p+{-oBFYH+vZX{`0 zllE%r6}gWMM!s+R7i*) z(9+Ugnt3T1{L86;BQ@XIjX3j-7fY>usTNy*w_1PC^s8E8y*40TxuC+~Xyx`*t4)}* znd2l$R+9DO1*NhLhF=qOW>+XHZ9|^1w&DfHO5spNMD|q&YK~wx1GlGO%7lKEBw?`e zAtThYuAVtH#V8b|Bt^+MC(0DO0|$_(dN*#4a;W39sH9iVIKc(X1$UN9K69dx??ZHk zQ&YGh!Bq*eJNz~$c?)uyz->BfYmJVo2p_VuI_iOC0lMzqEz!MSk#iT_dnwWY@})Bb@6aFSy`bxLYZ9)&G{H5XLyt{Ziq#g*3mSSQcmuBDJXTl$BT6;wOw^p zF_qeGyOa^tY{xbUOe&91p0YCeoiP8jHh4a7Z3$=NJEHMj4*a^3*uI~usQ_I;?O3>u>WWYq;_CHdFN>j=6K1y;m7pdP z!QqOquB9pt!vIpNA}Iny)RSSd!j+q&91=_h1hOgp%|yEuMqW z&ne88v_Y!B-Ys=G1fXLi5K!= zpq`Q3)NDp#O3}!P$tW}snUxuT5mqQ0VOg2+7hzEr=P>{c0xKGULEB6{5E$ylI1aX! zUfRzB^{GIodwU?QP~Jm%B9wPg9)mKHyHnUGY_Tj7MbokIv%oDJV#_)5TVc8K4rN_4 zifB77{w&gXhEK>?6?I{^inx$eM%E-8%Xk!3Q^cAUbfZX{DwMKDpwod2bW2ivv%fx8 z+8F=27bhsb)r*r9`>j!&Dp+GDDoFgGJ=M{}h)7YOXP6=ZOX&~^dNP+<4E>yXnp`v)*$}BI7;cuqG@Xf9(S*}>kV{SY5|++L zhgz}ZHyT*Ve;bxQkYQ=sxYMxYgC{rX|1X$2L#C?{QIwu&QjY}E{D#ou3xe|BV)_(^ z+-T?*4H|OnC|Wo_cKpfzn{?z0k))cRhK|&`AR{4KRL6tjZsfy&mI9(>_7rL?N!S^F z4HmRclIe4p+^iF3a>Ckn`x;KcQ;XSTh3i4~ZmG!poO4Tpfn82~JC~jpnsKz2CNL>! zaG+aSjO{ep#zg`TSV&%HKckQ!&nhHa3`6@_%UbZP_)I$6wIjV>Q+qwht!o|rL+pQK zD>D`t;>aRx)*D^$8Cnx;w%mC_8o_6diJwmtoZvJD(pQ@3%cm z@PxWT57;&aA&}0HZf`Y*db@)jSL;A=oS=&!pHc8-HkK?#2;{O@K(IkJ(i}ZqL!XT4 zM>m$XI&?@fX1vIrK#pK5I(XyQY~)C{JufcH>?9u|c8t!%4&NAiL+bt^j;mHLY3P2_ zr>sd~bM5_#-!P^|hB z8045gIi@Gml+#(@SZvP~#+i5_w+?+n>+23l_#&xBb@f{&nz<$EnhqbxMYKz66VWcM z&02L+Vp5GT0Eczu+i?frxBv)}dAdn5A5qyPGaE#+w}PQcmhMES4_qx_x{s8APFt#H ziV%E);68g5%39I&ry=?c;8A4za3@aQL&mdK z_F*$j!a3S;n{}nw!lVb%4ZI+cA)W#~&H7CZfXZK1wb@=8p-tTaUf*8BaIiaoI}pHS z4_X7aFMxZ(rsLcTqQgwl7(`9L5FG}XMO|tCx4)FR57M^Yjj&wA^fGsjATW;RHX5fZ z$Sy<4t9KK!*C@jjJ?#0!b+iX2=}f-1OzB&Wf87gGlyOVe-XK%HG4k~QVa6eV{za4!$L8tKDyXfI+A`m;fQ z_IAo6W?gqDJG6Eu|5l^*wRB~zmPqk;iqu%#vvtL__=eVzY1V~Hgs4+flx5zjJV{x? zL*)s|k{()69h_KbvQ|mHeW|UGE@F1G!nMgkif!MZD4lIua$^pXZZyQDzrb&a%k+D& z(~JtE<^`ElY{HCL89`DZX@U?no^r9t7$28yDGAl&p*I<;B9hGdOeda_L^X4ECwn^K zrmBl>@0y$)KCTzW4GF0U=g@hRhrwz!IT%xOFqH3LtF6#$atEOOAQ7f_;%OM-ly*{E$g~^Onny0l1 z3E%@cjO%!nWnkP_)iszJI;wVC0D^H$e%Z#p++V+f+Z!xAr@A4)3BylV zi{E0f6I~Wy<_%*q!yHBwEx}DRXRA zd-AzdYN@1`twQSaQuJMKoVV*?}_ zu>0%SCaDqK*v~LbbD!PT+T6PxY$Lb;(eG*tEK(ffeb#Lnpre!tv0GUu!|V%XoftFZ zQ4+$&#dM%;M-w|_@q&R?3CUq1+z>ltvkBpMuT0k4rI2w`01}54n=6 zN=5@Q5Ooi6m{GYRi82Xrp6wle5%bHPXbaauc^+trI7L<=#aK%Zp{<2VOKTT7a_u&< zyv24y%bqd6`-_*TE9n0|<$*H)rce>DTP!I^M8#EYDc4ECEUb}UR`1Y=zN_+`MWgJy z>I#|NaY%c}xtfS&%MP^*&<1_henp9Fz zc*?^@e{E!7l{+#z5CnlPIaQvaiIrFIeJ0dNnf!WU8Er7NfQg@gOq0}XMs{ArTnc*a{Xm_pww(g3l$=p zrdizW;X_uDTjXbbp}$h&oQlWnS3P=1rPjGQ`mTN-WS3@*Q zr=uX6nCYA@7~N^FfYMtud)8<>s|zto9-P(PFXLG$odQH0u?~U1+>yzNE*AeH^;}>d^=NFgMEU3w!*KH>6~R-6G0sBaR7?5N6&el2QmovLX@Lh&*Q1 z4yKAg2ixw!0t>_Kz$jcL=KYMua;?*%5n46Hudf{jYL8%A~T z+>n*)(ADPXZ>)?7%Fg@Hju-;8dOD~EY+AE4+_%Ipi7fyR?U+J;$R_(PPYyhfXB@La zG=q1zN+0dz%50>LjjFp|s zEUwVCQhOb>5eZpF!(988+2%9#=nX9WRUA|?Ia`3fpfk2fiQE}+%d;n)Y>I9z+}`6i zq$CzvXg>eV?!(3OW*K4X;@JD7YR6T?r)##)()lIm!rY)^o{v2qV1FZcS9J=RQ56B^ z%odX`U`Di>bwiKr8ypgPzulr1l@-M{@BIckO6Si5*<8-S8{@JTGmpzwN6ZD-Ed1Kk zyFh*mrT%5yX%E@QJ;D>m!|C$h*n9ivx~}@p``mM{-mj$Nx5V#0_gWz~SaqO=q&Cy> z@emRwctve%#Y1P(% z00RmL5X2#ZsvRW=&=e1OKHuMOpZg-qNl0hrDbFHa(cX8TbN1`+egF1v>q>hP#a`j$ z^xo)N_Kn%ZqhW1}ypRM#3b%Zwha z#wfL_OuES+VPR}B0+(xCq+FcA?=dVB5s27H-W$D0licS^!G5%U5edNpWZ1OwT(ip# zflcp#Qs(z{Bup&Fdo{6llQ5I7C1GOkAYtxbL(*#Ikn24MCA`IR7(;IJ9JY{Gu?~VX z0GGyZaRWxH;^hF^bpu9gHb)7e{kVRn(SX5rmJAr}^1-94+V1DN813m_JU+P(+i+e@ z>j2BENEpoRBn(DfVlcOoFc@`}!Mv1&!JviPO!K({pWt4ljzD@;ixpi25MdLI$`%-YiPA ze1uNUQjQ-?S?VS#aoK74`LM4w7dB4kwQ-u;Oa{@~J&;9j@-@XZTt;coYnmyI7t|?D z?YB{y|IUmXr5Un)W`oHFB#?&P1nwUC(v;MvL4ZVOE=7M<5aw2(MT~Eno`sEQ$!`Cu zSLEmmf#Uw?MR3?wv;DNngQox%CPQY+8#eKAnSjs_5bcfLDR~TOWSHBd@n5j~5_}YG z#DMCb;iG?IdCnQ2K;tYfHi}`S2wIbuIR(*-Jf<7eY6F=7EQU-+*U4|=mgJva$}^70 z7#AHPR=&9CG179H02Q4CGVCCTVHW`mFRN%H-7f-0WAWP_#Zh!$*1p0?WqT|;YFT>$ zHxWpw1t1>^S%?S5MNt{uc zf-tYEYHcDl&&s^PXEREnLeolF&GSl8!seB-EOSa(-Ba9y^gYY>N1sMAc{r4hQT|9M z{{-caTAsKwMWptS=N>^wi0VN}05gwhjUfoNSt|77h; zj~7pv$b&cnwp460OkpGAyANiA_(PTH)N20krU}LP#Nk42QphSe41&Ae*XcHj6pumk z^Af|7dl;N%7gmIxY$hW1S(|j5+~MeGjPD+OLp5rzT%NUO6Xj%TuWmy(ffV%$CnRib z(#%la&m!sSZpvGZ@SThPglzPv)y35om48XZtYvn^CNq_2;KKCTh_b!IOZ|B zTE1+xcXeJnlXQXTw#>Y4diAbP6}{^}E_&C`>!uc-pAB7SM-%NB5Fy~9nr5P*^w!mB zrF0F5x2{bol`y1ohBTv;q0Fe9p-dy9H-+x*&1TWXHdi zOATDpXbNK?8|7~4vX65Vmu<$`vL;;6a=gXIF>Keq^hY0R@o}EumL`qsm~JO09a5M? z(vd(r37evssdC>@-CKq-}TF{!LnF;|N>dNxg( zkdTe*evS#x`Ny%-V;Qp^-k_q2=yC%z-C zmTrTdGSjg6FFP|!%dWNDX!+uzjvUo1dIH31Y-g>KbIQ6uz>|!)WJW)f@LBW&gyq4}Q3IA%uKpk~Z( zfDZs2-ZZoCXWGol1`!-13W9rEdMIEqB?Q#*vbFp*NDt<5Yp!rtw%txs6m>#_LU|CJ zt9cN>enbv};(dngZr^&_8J{LU7s^kO$E4eme6nh`JDsvO=^hvXC%u98uQ@k!N zNcymO)ck9c1FD|9hp@!r3lLjhT5Ks^op&^!1UW59RvBzb&H)f`K(>EfE1K-oyiIu! zQ=F_|aLn9dNj>pKzLim#>_3#C&hk{W8>V13nAfVhyOaNdHnStXBfqdsKVH*Qq}ON) z%>qDAHuRRd000&C0tO$bu=H7|qi|p8c-cPSxlv``a1v1qRMlwhzYV*a^G2cqH8rwf z^p{mLpHZF6vq==y>kV(e@NWc5$IH6q zx|BSApf;_}(_6D6&C}`y^=YmBHt5kTjR>&*>#VZI)@U1?YHTl?wWsFZY4@%C!Gkg>-P=x7!dAZ#K1s8Ug*CCnP* zz01bR25a+Jy`VnU+HV`{ml@!YhOl6xF>Wpx767}KZ6galW?i=@I1$>!41Z5^^z`_B zVCo~P1!uwrrascZ)Q>eVbz}B9Qw-$-1zH!!pW1I*m(S)fIBN5&saE5|ZB=fC!iPQp zlu<966N*`qFb4)pww745G@V++Z1R^{s;47!nT%%3(;&QFEXpxK%cN0_Wu%AOXd5WM z<7%9pYM3V|zZYnpT>jR&Hj_Yo!1D&m--wAqrcafmp&0X|@dKYWItxIpp>F?3+=k(XyHyZ@}AT?iFBcSW~BnowG*@N8c zOv~WIWoAG_qX=>@l2&W-k>8PAfKZaW|3$hGKIc+k#U4PIWEVP0?Cc74I1a9W#==p$ zin4+^8nOw`oom85k)ZKj&eOn~1@yEEMOHiJ3`&2KpWAM&VG8BK6NID;X`y>sT$=A z^k5BL<5)I1Mz07l_wQDi95%R?P0mZ7;pEUTI1GbvC^1`Y@}b|Mm_AV}QIVjzJ>29<>87P4`rZn^;OFIW> zRvu*4aP6VCqY}IkaLhL!g_2=kGPj2Uc_}c_?<-2p0i$br0-hLJ09=8?bxZBZ$6xH~ z0QD9Q_LQPRL5GG7YWPbP;bSvaC1({~MoTuz{~;QLkQ!%B5kY~P;x)kKTeD#o>cQQ; z(ONJKf|u}Yow`u3SEPXgdY1R8HJSJ=rsILtyo{1@{&^Za#!@v7y!eUwVo)(>WHWqf z6%)^^Wh&<1LK9%BBF<+-kJWeD;l*De4HGBBLN-%q)-WHl06WIirD00r$~DZhAukQ{ zOvp>aJgq#-G$9r+!J1#BVV*ZwTCQPoL;*Np4W3fNG&>J`>}hM5cQh)Pn1P!VOw7R6 zPqnT&pbz{denRmg1#_Acoec^m?&sEH^~0Jl^%A#oe!oVKWKmZ9J~0CKMGwj)!SMp7 z@MOoYkaAfY5zJV~8T?A0j&3P@b-&VItCn(h|FvrQYt<4k2=?Ot6RKr1O?q<8azwuVuWj!`YhKhCHP2Mm~|l(|CwgRa&7Vl|36hMSDYJ3P`O^YY-)7e zq)F#4Kf|eESudehvO>$$%3rpV>GDqYJ=0D$D3!HNNU3asqFkw5HdQ*&qp7Otl$$Tz zi>IkmKBhCJz-hC(kn5BP*SVM8GM%!h@Qv+FI^~;8gKX3(Wuf_{bV{nI>6F7P+TeaQ zL-!hVN-Q(Kv`$&CH|Uh~>`8S>Z`>~L#g1z`S}2`ZP0i&Eb(nF1|K3@y+1iWW5=8|3 zlTTUH_3jtPmBTHHM>f!Ts2cZSN6d!Ui7O=U#Ba#{9Zq9hcyOT9E+O*wF$;f2+1v86 z{^(Cyv!6$VfI=Tdh3R9ztx6C2v;(JTsZ_dNG1dxj>o>iyQb?l%+)N;!Jj_V#W`Wl6 z_xy#fi{6lpg-V`KG=c}e6eXwmoqX#h7rlqtPY;OA#mHZPqh2gK0*VkFL*yYh^d)|C&xq;4W9H ztW`NVpTbyP0?A{mnx@YuP?iSkitZM)%2c8K)7x)r?P-hrCO8f+uC{%~5Y#t0b#;a5 z^y$O$r|C;D;M=0HI8%k>gD>_*+;lnAT2%!EORIf^2^tSGd^;Eoj);7|j$<6*ny?k> zCwgpS{Xfs^U$1tke;vm;(yeJFx$ic7?kf1+ZN&$#q{z&dQ}MYkPDg}XU7=!J-Wx0a z^mU=*8$-pHUyJwKmb9vhH&&|Y<&`Z~G0tF@QL)EXUa4X}YpnROyvLhD#g|>nd~8U! zsp3tQZFu=^u!`A7y5g2=srtx=e|msQ#IV1v48m6$?@iu`W?hIE}e8CLA*#Sp;+#VHs! zD(mn%yr)PBYEQTYFUJ+x%8!v|1E2_g%(1N4I04276oNA0Or*-jFg?WCAS5o(1EU6G zIP?W-aH=HBBS8D{ysSU^L@7{%SPxFh`%mP6Mw;lsP^(wXUq}vw!Da&$!#xDZ=rAhm0Z=MG=bH45VE)JZTpqpfQUIoM46gLpHI5(b)SqIczD%+HCm5 zsrBJ2*5Y{;o(SYXWC9dYM>!X0l!Bn16?_0Ht-^R16W+E>*v}EJWD1h9jCh6~Hjqy? zd)jdPWcqbMFdlPt>ZR$ILnj<;7^<`*K2;L><1>OnqH``xA;y0EBLjpSW{Umd0POyM z^ffS#%j#aDIN|)BoXUUWXReZDgn;j?_C1<;y;1)HF46P_b0@dCVHy>9QjL`~D1lec;&XL+Db7Y z$|y(vu9A089NX>HdOE?$*h&(3Wjtb%iQb315x<5MGA)>V- zp6safGOd!4A=}U_oeKynm1KJabovR(d7&41?LVUS9~gA)rp0}Q^X*PyR~{H}pb+T{ z9)vL*D^Ml)p1kRm)+WTxI_HpQ3ydJ5RqRcPeU1NoyKjf zcC&i>3dfaaY(~03LeX*|;ZWEdutn*#t+Y5Q6llm6(un%*=m8>noHKank3L33kFQ&v zc$JF85%P+}K{OubldvM>CqiD4J0{5^6zKdm10PkC57HBg@B<0v$qug8faA7sJZlwS=@3CLZ+BM`he!a`u!bFYqbne#=nCk=ACVhj|pvLpfD{(<{4ZKF4Si#=1G;NmPIJ z{Jz_4nc!vbx>-3$ee#nVp%9Ji%qTkptl^7^LxwL5md`X}UuPA6BsT(vbB4}`qt83}>5!i!KT95Woi=Gb>=U<1tHIB;&6wXj=L+NO0vyP1f2Ri424tKF zHH=WhIC-(N^%MxCs?`Dd?N*AouYB`sTIVy}3+|LjIc<)H5O@=S;Bp zq>+Rpi8C3gxW-LfG=t4(M;w;gk^BW6FfM@kbsO=8lSFHvaeQ!U2v`|P%;F|l4KNdpHf7c zz9;Dfn0IjpequeLK7+zAE&-S10@XgwW(!u*3j%bljY*xTu zV)}Gcu1NdtXNnTSqG!kE;dhH897Fr!a}=I?|G_!LMs-PVa6u$_vdxLqSKjb;#5aS}A3N~re9SQnh5o)LP zD@!uP=kgp==1QYx%!1mMvdQm%Gs;S)nCgm^KGRl@>eZfFVciZunxFri}y=5?&Ch+GZV`$Roizm|X#AB?ehn06FOub?}0tf;AQd>I!PeC&vh< zlwFOrS~7xUy@i`$rV{2DcP=Fk-K?Iy43vY(S|b!od(G4UiMA43|GU%xPR)-B-Z+VM zLMc^(fgJ0CD+_p5Zc+;xnskh=0}RI^S=dNl29;xsIhlSrbtB{$yQB@HA_(_m?X)9M z);e9HF_Roc5lVqVH8h4$W%8^wCOpytn0`ZyfLWkH1Da7P2@5uhHWgtIq)CohHX$ri zWCj&P1~ebRyjB%EUXehD>YJL)fl1@n9Gj2WL6P+K60&AAZeUZL(;~5W*U%)59?0H?H{?jF^$yh#C1xBYv_m6K%l8%*~0pWQ(*?8!fi1Y$ufhjH7L7Cq%>q z5L5*NM!y_0abnVF^aQrtei<1LUSSPf!ooVCaV~*DG4cuK5)y71K^Y>r4(ci>2tWDr8XxzjXom? z1c0ZNvR>zuvR+e4IZS_6=^EIrQl{#RQl`it8u@RIU{~K(89n+D!G6ALc>;(MQGGV# zr^wHR{51K6ke?;Lq&#Bs5luZ}@_SuU{dh zt_4_VF~Gp<)Mruvq4_b3oDs!A;uRE$9dN;qD>>0)$~AW;t}}NM*JWIQ=jN|jEe}5% z?nonLP|hlo*#7k^v}UZX4hZY-(UR^wQzwPYu8@>TU60tx?fL!Zcam2=QfeKY+#5sz@)VE7}FfE!!7EC)EuQ{Pdr;r`{UBr?nSw zYcM*)&`lV)jGA&Y_Qkbms3`$^f-(By7t+hpO*W>>(~VL%F4d|w84k-B{c`4z;p~on zQrK5;-KanM8Isi}v=Ez3VK(?B3riLVQyO(&9leh%Q6~#-eO%HVF34Nk(-^a|JtXD* zEHWcthBKOVCL7EhD7S0BCr+P*JgLRmgegktWe_W+8vz2PT=6xg6kzWoVI5KuKynDx zQS{!V7+oQtEG=Ihty6Y4!`T;YQC9Znz0tNX^^%h4`BWi@2Q@lhx`e(W?q2_=>T3Fl z*Ny1Vter4-rkz~)8{e5KIn>iITILGciJZ1MKvK8zvH--(w9#^4&oGO>QWZZ{QCEEY z)$Iok*93h-1fJxJY8tbR6xl*N#}x(D@i*Hv0q|&~m|*H6o&YC>sUz+(K#sD>zhJ{7 z2KE) zw}~IXt6>WUz;Tu5%oid*rr&_S%q#hNbsB}j6$;s5Qn<$%X2QNqgeBIe1d>uMm+ z1{(A4Dy?9q1BzLwbYuhHsOvnrWF~m!>re5u3#AV5zDWXJp!a5C=}R{=c2>$H5LWJF zo2uj?o5X-sk>maF6>X~9Ew6EQ_Rr~Rmv@y}cC;wcodZ$YXS;mW;-*R;>l;2YJAy!P z3ERAFfsp5XY;msL7?`N$KSIt#HRtF)7f+daYg46%Dz~T9wjE7d>NQH9)aZO7t6fc6 z4my}vpdnIM9f_a-hD4lD&~2_Dip40Jm#iY3*&F>6S;LSk`C4S+aRm+o_~(%=B4zt| z$AKTOfeXU6D+$G;lqp+iGi`xyT`Ld`tZ4=8(g9QImRD>LD(fAjp$GWIC{_p6fPDy3 z9WLZ+hlQ|!T6Ar&i0CiJGO)_9j5Rb77i?Pz%eXR_kDor46&=gCd;{rBSXL8)1D1(o zn*8A+f777RfVADq5V0FM2at(Yz%pr}V1`9U7?dt{8q}JQ*RIh}$WM?TRvxSzANksfSl9Jsqs5-f!FYTp5d9d_` zpcX2zD9FZ*->(e@zHTNd^Ky)PfWZ|7rEj{m?3}z~|s(&f=A$r;m_v_8J z-I;BBF;a5j#dk@cv7J38Nske9CfFS5j%pv4vU_E3ir7MfiWC(VQjkmgh+upX+ZWe+ z@K7GB;`m0L&u@9jT~H6b!YD}OBWM`UhjhovU@cku-FiE@`!2u@0BNp6)lt!1tXgwT z{8I3fSfSUwLVH68iB%yttKQA0>+innF7~>yX86tFwf=$Jp}tsADZK_Olj9^cm~xQm zfD@-A@q{WRZ`~sRzpYx(RQ6_9nUzjOw^z}ICK#MRfs-U=Rul^sTU=5(&lkgU_K@)H z;V=pG4PEze@<-4%ovctzQ(6?@k?f*P7t&2p`>E{77Kvj>N-Uv*Qep;yXIR3D__dJY zL}v~v(?x@sQQSr!*%p9YebDJHV=O!3lf3Ex6DZO%ZN(xQNm=vOpxfea**MJpA76pp zhBfX*!@Z1fcm?)K+Zo9g)@)Oy0KITpNbrRJrWuL$MSo@K-srUPBw$`ZuW7U%Gw4up zQ`db3+b|L1ltYBPG}I7bw1QuFS4tW|A91t z4N!5PNYx*u^}Yatzvp``tox;#jaZ+D%fFPX1+O<>nSFk{`sG+zKC05rHto4%>8T1Hz}1=@wL z_B{HGX=H_VLcL)et+f`xwl=_zHDk2tZ*>0_D z_Jx!XuZ2av%--%O!bg@vDm6httIt2%V?=fIm1hQ6V91Kdi-7@4U`x}Qb5q_lZpy2Q z(W6)MYJdQwI(xl)0xXEGFA2oD!|Jn_!|L0_Kn?gltUkdF5AFhL_~52)2&>T*a1HWk zFZ+564y<1R8uS&gCf5|IlGDCD4PS(QG_Pv6U?qI#tJ-a|D|oT*90rTdLv2L;kQ0+Gh_&1=l^AIPIAb_Q^V&8fFn=tDb6VZu z`M6S^pHg{{#wL`<%i)YtoUQpgfo1RW*l?~Drb}hydrsa*92a)6Odfc5*+V&8g=3|9 zrBDTUxP$p3;E}0FVwrSMI-m-7A(rv#P2K2Gx+nckzy=t@>F-9l2!+@9N?vT#tsB)` z4q`0GTV7fh*g!!U4|vlBHYyeRNw2gzC5L&_RwvYBg*vTNjM9ZbYe{ZSs?|h8NpjYb zm9?&5@QN(+#Brh(gcSAe(c-~Ms)6u-3DU9O%qK`zJaec~VWZOrG78v|4k&ih6uPs|_J(dpHCWjQ&nu9;w;F+kXwCi2vpuD;P+(pX?oW{gzn zY9mj4VC1RI;H;!IvX@1k^m6EzdH|WxS0YcGZRaWEiH!;>YfabaX`L+?ba+FnMV@-n zHTn+3Y`+^nW`jP+leHxBw7eyP7e7f$bw*dQZ(Evrsc)?{NoUk-=|$x8B_Y znawYNKqEdPU;q;alp=#&(1-_tLXoHojQRNG))~e-D1RI(ZLKRxLq*_!9bu78qHq;T z_CaEeQr`}0y-xI#-J&AL6l^N>vE(vYu6vL#+A7=No7tN+Anp39%i`XbD+(=NF3}-$ zF}tad%;_S88nM{saH7Z@QaEl@5`S&QhvoMeTZl?g+^id;(i_?;m;0`AP`a(cRzRc8wROjFQB8H=j^ct7zK*q~pzlIR<5 z9DmUO=dmUzor|ljiWRNRW8?dxEvb=WUaXozR!Xb)E83}XR;_}GfeiX*2K@UXd2MJC z7OizUBjPU-yt6n`s(K|Iszh#8@D1~ix8}zPqiXXVx;2WYrG6g|{`13F9@H=jycAuh z&yQ>ag$5o z)n0W~QJvCFf;CQSNm1*fX9;s6r_ar-e!GR8C%BfafjaFX>zs)*m$4dpOKL`Z}aSE;4#T2cCuo ztM?kTVZ%R8uhlUV0}Zc?yN?}a#sZx(Da(7o%z4)WpQXd{$AKVBGTS13lEGvUm{4j< z$4&?iA$sb{a<$i)M?_m zAOi$o)#=3rvqT+>D_o&YoP2Q!>d1Sd*HGxJJGwB^W{A~OZ55rG!rUV-NrP2>9948? z(m_RMCOy*P$T*-N#QY}6uo*uH9|aMW9SI9mPkLE0c)I`~)_$#K=Ne{*siO|fyRjtR z-leGK;!FB;hjf*3lWwFS=yG&hfGi3%_{b&#{+-sfA~bt>4$nITb#$GF{TEpGaNYA_I@%au;q!x}=Ej%E-nZWLrFZ|x2>g9~;@*610{x0Gh z&7jWv_(JfDMOe?Iu~}T!8m#qvdzD>sZoQ%!KBwBxMlVSo(kK)d{!#j>pzv;-B}G5Ce%2+>`0OBUs3&$N{C9iH@Ha$lykUyx-#;_kg5f$WI6awm(D zd#~10gbZVGghmIX)CDbbm7UUKS|A~lEfhiVLpn%$;4m&LLf$FPl*md`gB3K*aBqO>N9%5;|uk zJGlJ-T-C#?*i%yWN_s$F)Wu2D{ppsv0vO~y6!=j(fR7J%E-E`nR(nTeMdyf2WO>m! zgfi`FA>^{c6VM!`)5uWZ27HjNY2i_$-g~=q5eWrvdKn@DA6BZ8tMVlVVh?54{AY(a z1NOopEr4FvYBdl!t9G!IoV^`sMDkF(=~AY0w^zBU<8!5Id#Iu++J`5aP*)#u_QkhqksXI|pFtHndrE(SuAaF?{p2Vz%4Ys&4)5#CRW_JCT%1d3U! zFhtl~goH5yR;;+M09xTC3Fo0UbWSZfEYd(G!d0*i)Hb}vh z*))k20FHg4OJMCRBhgrF_m!OTw)?8Q9~&AL()nSck&wkdV>D#J$}wkwT>_)5OKi}x zD1TitA&b}+4jLpWtA(Ob+-WcgG5I!?L$NK0o@)V+hJ~jzv6F^`k(M1Mt5YzPj*tba zl+`A3iXJVPj2Y<&kJOw~ zZvh&v%FdHGcpOndnk|L`=%9FSDNQtU4qKWxT}ejLZrnwXmW2;b_tqkhN$74JzG~ZZQcaJH-!fukjy5iNO}q>pu{MIib6jAI!RWVo7jM zC7zG$FuoyU)CB7(;02<%hc3Wz;p*aRl!eM6&%Rcfi6Fk84triGr>3i+oSJxua%$os z%BhKmD5pl=hXWK06_8N;;LCb2(#6j8$^}qF>CCzOieHcza8;w?QSo7`!#mumt|k2i@@4- zc+)D)zxD>|wdRer>u6$>f@Zq02(HLQiX?Pf_czh)l!R{UVkf%2o`l}mjZYd-{`(lo)g3wJ|p`P=|m3% zg>-Z?AVqp&Gblkive~u0C_A&6#xaa+PEI^qnKL}0?kO)ml^0LhhuMr5kLSfRs@L=u zK0VE9(d6dj;pc18cZilLXfHjH_26V!%u%I?qbHQIFe6HFB_cw!E$D<&exDA%$4Pyx zq&9YWzS|`O2n1aAh&v;2#uthxB9J&oic42~R=+8q4CQA?EzZJ>GE%Kb^EeA~0?Fp= z2>3YK#l01Ee%@pr-((%0rA3`$Q8$ntXHhSUZBdW=qIUI#MV$$YIUN@FTo2=C#;1Ci z0McV&affP)%d8&{vwbYg_K;HMXeP|^v{J0t1S&_K!2Cz*oya>y@3c(AnE~Vei4pT1UO6q8P9jIRCI$2vRCl zqm2gfi@hd98AvbmGG*%x%Fp#WbWim!pn2j!XeR-ki{vW(Q~c-YhI%LZuw|nY%eF z+(ua@FMV}ZGDMX#n0BE}IE2X)AW;$rNTtr;=zNsaI|Mmb8Q{#{K{{xj#ny*$F3t*_ zJS{U=q01JCc0Q9o@$Vq_<>aeZ%E+j;#@XD*XoWClD8QGpF6zewZc*&kz~=mstQbI$ z8JdBh#%}z?{H3Xiqu05fqfTHCr5Vmf%_=xd-B-GZb3IeX)8L#lQE;|O*Ckfe2l&P` zbh5{<#IsIHMIvZ^u(a{5v0}cJA-Ywv3lV*rTcjs(Q<;3E(djwYz;G4ZDL-G;usZnE z2}pP@V0hyiZR&^|iQ5_d>U8>L=TKA*Gc-B|i!?fhpd~sc&MERG+>=R9Y;wH71O(G* z8`7^@L0*v+2fxD+grT&{9Gr(k7QfD+ki`Rb&;YTmyHsAS{)@n!y2;kGjd@quB|t1+ z&SnsU5`zO(pD8BI4~Z@ZzIucv^`ZuVkiT9q1)P&+ z)No?d27qa&>D;Km*cU&;Bey4p-Y{iWG*Mtv=B@Jt73d&Ti-dSCTF5^41Awesv0G%A zY0b_Lek00S^nzTn1eq<^et@8<-sEl91-PRKq1#+2j8T7C&S=S~UT|@~! zdJ{bY?uG=gz?~5d;Eh#8lr`sf`_80SzLTL?Q2z}q`GQ}=bKuu79QdB?wf$o2fuFQ( z(S6I87z0K^&b_*eKK)yw0|xL2+6!DZ3xoAJ$PVMB%#^=)ljAHMu|0_TT7$o9yYi*< z^E(FJ90s(L<0~$cO?p^vO`$Cnr>Fyns2V$ux$=@VE^>C*UNlH;YjPVuUGSq%g8eoK zX#SPbKty$7Sag#yVc7Gtp(BswcZ408%C8rUGlF*~-+pfGjHm<<(HQ;;lL_m@b%c{| z{Cv1w?7~cb&D!y!wK|%|BGfclr@6QW$eJMl5o@hYzwh;F{XZH`m2wnWw77*k&P5WT zq!jp(zJ)F$j;brLt!BcA$8k;=0VE@g0Fned5y~m00HzT};KB$a1kng1tNFj4FtYQ7 zq$he7rWvc=MI_S7ptKiHJ$pegt%ehuPX6KC`bH}}f<$b?L~|J??3WFZ{1AB?9{EA? zD-A7%i1E)otvKt;UT;yV1(-5faHrNYM)(X8J_Su@S+mc4YC6hxDu4>~FFa9CG>Ot$ zbv*C&+I8fYdV__rkbLtM1`#R|SH%cfsL+s}DFVUsSrTuMhK;P!aBKEY|J z6XU8ZP3AVj`P1YZ+?9(?5us@-!TzHJi;$9tD%!GRlT%S9BV(FOcDofw_}7wdz26F- zu!SBiBOJvh97#)^C|BwHadBaOjhCxiua1v}Ut{I!wyTj3c}8kno~H)nd?Vn`(3mA_ zYN^KwmL@?|`3dqSq#6kDjg@QFKpOHoOE6ll0pA%Il!*ttewxeSO+Fxhio6L3G-!dBLvrmb_rv(3N=?tP7Rv$f<+T_U1kQ*)Gi;zQ4OQSFaWILh<;FL_wDd|Ebo({2ZJ2rwn22C?ER3Jzadar!{Qx` zr2q?>n8DWRf*^LnT0!>26J1EP<$!wiZ~ueQNc(^fiIqbI;5=F|C%JGaCCy^^F@6;- zJ0gtD{+3Zp!@K0+S0J+CV$kj=BE@*CxhkpQ+X3Yt=jW(;W>nW^-<%z`TuC#}^I? z= }Y_t4mBCd~zve|$!-O28%JIC1$(0#m2!&8lmsZo7D-$Pi@`vY95F^%AYt?W)l zQU#_(^F{sy1@{ZMkB9=HzZ)g04Z9Ww$EH{G2m{X^1smBg{yl{aHnm|%(}Co(s8s5MQYhZMQXFDUv}W37^_%&b z>t#XWyUi-6IsU-24@3@77(?VF(Q26OGbf|O7TeuPzMC<7AF<1T5ApGq1BKV|neXxV zqC!{U8A)0$9mc%>-AqA6Xvz8>Sll!5YFHm>U(G*oZtQo5#wc ziM$c$CIoQ(J=qiYUTC|Mtfg7|J$FIH%Y57XZbs|y9#wfUXs%4bcvXG#u^=p~?~K_@ zLx5DBHlRP#QeGf4tvKnup)Oy*IGdu9AYw8DI&HbvcB+EI)A z3erya6{H>gx|Fno)&H4GJ9J%I#~W^Ov4MV@*yF9c*c0+5_Jq8NJ>*vsdziGE*i&v0 zd&t+s9`ZG@2LQRG*i-Kv#BBvXpOtK?HRN$7cl`zh!EsWHn&%}#bFhSMO_YPz8k z24H-lNpq2pliOyi*85{+x6q#|V?O0Km(@`ZyPjo}$B%;3kjU&blHM*8^tQ+ap_H1v zcOlr1=aph2ol}Z{F)RD=qL@SYD9T14YEibpHJ2aTB6I9?Z=F%WL4G zRs0gXs1Gciu`2APm-Tt`<9X7YwUQHR#mtpb)AwNWZi8``TuA(;N&6b?WMA@)y0I!P#FQ+XJ zB;Xh_>*evxMgm}m^7E9>hxg}re<74FP`*SyyRb%hwzx5maRe&BdBUdY2~zzY(QiZY ztK*ZF7a@RDgmUz^;&>?6qD&~y!kyj(QL{YQ$`SOlUS6Es#N3ARDaxlqeun&ceB%u@67SeLU?DMcNRnWBIOst`%An(uugrzX&eqb81hHSAG7?<_{e6oWb%UA zk;`}&P)0F0hEt~tb2j}DvqJJ;SSrKNLiP*vgF=S+s+g`#b@5?PhaF!>9BT|;M?+rt zI%avt*KzWfz}Hf8ZZ)384JbN}ohnDsG3=K)ijI=cQFMenC`xxX9ZcSKGa2F0J8y18 z+QMBRt+ul+ddblkS^8Ue7s$NW=+GmB!kty7&TFnp64ho030679_lmi*N}NTtmB6 zUSWd^@?|#r2*(C*o%rk5>m(Dk^UB(a1P5_Jw!I|Ci4EY7l!_JTjP9q(6c;^Sw_2Mk zRD{FiE&%Jf8Do)k%gq?`UPi>)3_*ODvS}j-~BsCXtw|uNE z-`SqS`fM(C*+iERAI=$=AHjtr%HtTp#vTzk8P;WX$tI5JcGqScC@`D+z08I&GOq8` z@`hc?Yz7ecuh&ulA5DJ#l59g4wRpvvoIMAtB001i+Dwwa*iMUf|1&}-2lER4MDWc> zhc_Gh_5IF#)mhb>kkTTqbnq^3NJd_yT1O{!&pe`TNxn?q*NGEB-|+)8+L zD#3*%Ep*MiIPN_hzh3^&8`%+7nHz}X{SE)jEYa}0@mZdKI`8D~k}4X+SBo-2x0l+Z z)(ujBI&vghIMd4Ab8AV2+C7p-Z;`PSXLVn<=1(b8Gp&@yhBs8#z{Kqr##}yJP#$bpc#F6-b08g7RT zxAvQvD`p?bhdclO$#6TK&T!SwFkFHXH?HvO@63n~)R~=V7&0sD1@#rK{k9eUUOwc{ z{@_<(g*%&v99G#8kTBc>4MWFszib7DPGPn60>4FAvbQqy^Ma|5KdPY%qJcQbpIx?W zS8oQ0%^{MoUOK6i1Nl6ZAVB_kWgQ)yf*8ODNM*SK?(n7ZPEIm|c_TalRgCCJd3RI- z=0OgDykpC>!acnj*^JjC19%|dUD#c?9gcm;x=WHjjb0w*bx&v76l?LjOMWmeY05DwUJr~G~1*878^-uSGE zJP(MfZ)88xL{Be5T};E9Xp1|roP6o#CKmC}u!zS4i&%n1ECd#TE--6Z{5e^q^|-7X zqbp7lqe;wx(}2b|CrH(z*tB}Vhf{h)=lF11S;jG=w`9H#%=?5f?^%7rq>LEzHg?Ug zQPx^4+a!nDa;bTExv^<@(p>nI=t7jjaTI_7MsW`;*1R<>R9eo#oqt;oIIZ@i3>$4D z`3Jm*`Xd;231w0HCQN33^ewpb=ZxO&jvj)08(A*yjOQCT_F~}J08kkPh)IBBi&KkZ z8>e0pr*26;d;=`YwM47@a~t+XzXTJSUD;5teO z*ouRpPBKZR<+h|PD{juTWCD|5E_kk*55k^Qurz#kl3X&URD{$ zUz@>NBR4f>9k^!Tpaz3Z2(rK_)tSI45s)!S_zk7M5VOci<;~LBMNkM2A&Meal>G5^ zOb6Q%$oO?`)E>Bz-u+!n5;iH9W=GVkmTK(iDrI3@u%l}bJRiLo#A={}zi8k`7aI5x z2P|`bbdB*NoF|QrpAsX0AB`!6F`N|Vph-?n8b7*<{Ta*R)(zKE7Ms(Zc;k|VOp92> z*Xe46tVLU!fU2!FHpGGq(uM5acwga*;bqYhQ4wP$#_|f;1R*$D?QrT4S}aZWW@1xyCM#4Y&F=Us>B1+M)S`Bgh)@E1_QN9h{d^C=}y zyhQrSj`&ruK{G0qvJU61rFeghTsaBGe*cGcT?(x5f;v{zehVvnYBUEc-R_k?A83@(qNz=f4Hf)wApE8sGG8^oKs&uvUw6d;?+PHmE8K$Z*aeLhJ zQam*y`cgeG+Ts&-RCOSZNeq?jt<@oCLi`b*Fy>q8CZ-;q?1=Ahi-jbfSIdwALYXPY z<<=i<)@ucJRXFl&#sl&rTp~8ZE*W8VBiSg zmYqh^0vrT+jCqmO=Gc{><4L)h!Qpb@DWGg4Y+r=FqU--c{G4kZXCYHTeVn!5HqQGD zKZSyZpNkImhIfXm^vC+!Fm}z#irALpjhsA8ovWi3pBUCodHsfc0TYcDG;;ZW0lLA< z!Qp^z0Cx@DfcYA_0pkJP#%k#HKtQ(!z^tJg0kLZ6c7Z&aPAsx7qktjCr2yAp+ffq8 zAxshC247!L@Hm5}B_i*=AbuS`VC(lVM?jivXcS^pQ=!Bm3STX5ErJ624bU0AA+s6D zt9U~i3fJsrr#2|EMKL>0%7%3|NGgXl@21SkqDTwi*FeZGkslOi6vm10@K>_aV7FN^ zjk}t!F+G-s2l5pOd|*csJ9RQq@m>fZhiDN(1iV_C9F**gZ`U3NM@T>u)gAGE zP86ErYIogI?Tad9ns3`(_VQJ@RLCbBJM~jA*VNqZ{=hkQuOsyteEHh@(85RZAlbqCe2|2A<+aWG4 zXmyYQMxIu^sPQm<)gtgzJJojTW#aW~v0UxyszBB?GfSEY^nark^ivc<_|0D^hpj+Q z^4{n2Qn!iF6MDbf1nbES!ioS*GQXOIpKSx>CShpPdKX4FfsJR1uq;~L+x%`gK%DOJ zPP;CZHpd8qFsv?1G6k^xjCtN5P2!Wb-Hg66113f>!xE7Mf%Jh^aGjA|4G2u$zC+C_ zd;xF0$n)#9wXz>!i2$w)s#{={yk(pGNlLp5v+#R=PhGMp@jl^zfqA-J*E+Terioqv zOqdgCJMhp_g9nyh@SqSsT0sReYJv#*Z5A)aCsw4H7as~}%6un(XJwNbOj1*i5YmsPOavD|2q5x!zSAeeBxleN6qlK0`_SSDj z+4HlrBp!>y;c`_CCN($o=X%@tzFxEudZ8lr*-_oln79`D!|c zgfP4Tm#qKM?F7V_#PxV6i?#v^`>$3cKvXoA4H>Dx*;V4j2A*NoJ(vNikib&!nc0<8 z+la(sHP&J_JYF!1A<;XKw|w7i7(DZRHz`7Y-HTrq!$JyGB(;s|fZM|6yfZv8xv!Mm zcQswd;ziptywe8}G6yn1&vuH-?kEQO-Lk3xAqRZ{7poYG<6@!sQGFkfo=D%5 zn^=QYF}R?Vz#iOB@p1`jTALyg(rY(2e&5jE&5Z_f!Q41t<$_U{Da_nxbjr<*bs%Je z(4dDPo4%wmxgIa9yBkEQZ)%oy1$(H)Q9 zoVMvKkIVlMy*qdbE+Cs1hzUUC+*thc!T-o%DzM&k3KQ+AgI^Nuzt6pPHv1^SrurH~ z+aV=bv{ujNkYa*z5KD3q*%Ds{VWga?mh;d|G*+kCuXZB+no8$^s7uyYb^md?|CKPT z1%@?cc{CEYo*Tf7ftS#Uy6Iv!uk9<`?lpXc8vc{A%n|nWTaS6Kov82LUI;UIieH*J1*6ReeqzD zAXZ3;u@4c#PL>E$-EC4ZJlK?EOBVTur(h8Dw)PX;t*7vd=D!^ z-3HF0ab;@)as_k@Kzpvkc_V_BDB38Ck61TIXx0n|W+O0-&IE4dL5V740|4>| zU#3|FG=v|dUnoLXAx>YkVAcRT;QPRBULsvE;x*iTlHr@0%a(ZWpI_cwc439GdA=QD ziPb`0-x6i-T2^)hPtSd;@!)>8|J&^gD0YM@}6byr3aHqV$U>=bN`{_%S143fMQqFnbUsk zc0NpW^yI`1_Lhu!WB?&)7<%c;wK>E1W^PlqXkX?vwh4@$ri3Y5SidhSP$IMkoQh=G z^C**mQ0*k(lesnHHoE?54>JRq0jffyT`Cv|g<8D!qou z1n-SeYS1Uc1mPG9`4i+%TYhJJoGCa(9xjKdOp+RMU^0DBB$9$swW4@AmXE626g0<7 zs-Fwb%hl=&;#>W>1w(`cX8RA}m{(3d{XApxm0c7Oe3{^JRwS8aNF-qwS{A8(kA!qs zDa!HaI-WyRuR-}DpphF%*`9^FvxJgkwaKhC!&-!}bGnc(kn=(NuNbJw~aWccU7KEc5$l$ zzfiQ*imoKPK#@e*1!~(wdZKy|MG~{zc6$ZCF_Z%kEH4@ zp!(w5nhjGCv#Pk0`U)ApDDFE+*KGjFqj8YCb7!x^X)%6%4Q%t$hUiBk<&#@;lQ2Kd zZe`k#OQyC~`|k&o?5?0f+ONGsBEg}oDR-G}HKOm=Td+M%#J*sDv zqps4Gd2ehho`Tq#N8bJIs6WEXUK^CfjKQEnW+lav<*n2eCdq75vk%FpBjjeEh94%N z>YMfcO?&uez4|P@raK$`W_T@OV|*n4fijg1=Rf2cs9Q2x+*nPgH{eeFP;)zI`nj(E%N! zG{-j?WBi@%`i_o*0s~MIs}G0lC6%L2w2SIbszSe{a)K%=Cq`3K zujtS@rL;4pl&Vg^C>GR7X7G5G8QjKazRTw8W2QAt#UC?nMq3U|b7FnFA3-(hCp&?6 z#NpuF_KF=mW8DqVYn?HJg7h$Y)JiFfX)3k#U}`%(2mm*|ot~wpwrKqpD7N)e$htX{ zGCDJq`gv#@$wC^;C|cL_YFH7b9~)S46wnx8617Al1?Z%vZd*VWTdr;OCJ0;U{Ze}KC+b{iC-cMC- z$|7NV9h(ua8Y}pkHJBx}zChxv zQs7{Q)We(ul@;>bBzvxs?z)9r2wLDN)pEGsW7mPg%kI(*EfPh}8zs_2_D96DnxF&W zPLH&nnhvj$Q zc31dvD!TP9Zk?f(xMKZrZH|6Z6LClE5!6_Rw%T-h>nKNIRar$vlZN$HF<0rPEMRGe2a#-qrCq|B zQQ$%n*$KgiFh(h`bXMg&pA65>sC;R=Yd2>|OUZW#k-{d$c8q8Qj3sgaKz&v6&0YV} zQf^zM-hn=imA$&{n$=o6qQ8VQ>~jal!9LDN@cT#~u7P5GeQv#`qjZ;U(xF;)hS*dG z5Imjgv>LRBlf5fv$W$%*(9ig?XFNZ|2LS6VyjZCn}e8g5F|(C%4Oi67>mw zjd-x$vqNMP&km9$?y_DOARAEy0*|IBDHK49tI=!Cdr&b?UaXV4XTfKl+0OR#+1v?QE29AtGAsPl+Y0(A~3g+g5r zBWKo@lxp)xsia;FIUjl$RzXo9irEN*;*eR3X3ebL5RCkY6A_p>koMhy(hzmR4~@H2L$0N&3p_ z1AFuO7OK_XU~4DTK3A>wbMCX&RuzNDM3v21z93+8`Ww1Yx;O2Y4%~~i#7rN|zDe-3 zED0Vx$o?Lyy7TWZL(wGY1G9ed3%tdrkAwM4yV1nnI!z>-(?qg4P4r=>r3x`-1iDTm zrI@Q{lNF<2Vg4p68v982HD1x!hr_S2ipD-vNjLd0H~FA9`4nu@G|P&^*yj-fEUX|Y zI~(?QHkDsC#u7F>Q{k;;C&?zBogmxp*>SRT&wy8|n`H1)`+elktjim`%NxAQ8@$Wx z;nuorDx#1@?TypkBil4rHS~cY-4jp>EmwWQt`jZ*km%xSE@BR_b)|Q?iL}(KU9r|3 z>6MMIOBqxPXkIK?D_BEp^GCKB2JB4NC2z$Tk`h|nluFaj*R$TXJbWpe-LzC%hBr%! zQGc7%d;onLr;JH2nA!=QNh{pv1A^JL$a&)h*J=s8+2+)LVVm;}Du)tT z<<4xj`D9ReSNbfU_-BdStJ9+D(l3FMDW!DrtWxNhDaX*YGx`m7Nki7u5^k(Bc^3$z z8NnLR#Sd3}r?=&bFGfXmVTMoG$KA#o1}%ygK8M(U1z;EK24qE0)SEslMbD3vmAvYG zR2D6MME%frXz{~V@z_=oOLjZALK8756LP%Fc};GN5=4w{mDiZOIM97dSzq$4jdGo5 zjXb(yNx#a;Pj6;P%UBPvPOGw$TM_H~?obWG7#jmWqD*#FSuwK-L}W<7VMTS(Q3Ql) zqyFg{LoN#NJ&Q7;-9~q|$(HT+ttdRyYp0`>VuW7OgRSdK{tRG3lY;=$i~^^W!om3Zk0`h=hKiV)U86)os@OH zX7a)ORLz;U*6YP~joln8D?40f@6FuGE1v{vH!hJ}{C z@Fd^a1b*nbNLC7$#?o9PlVC^PB-kNhm12G2BCE|LNVn@r%re*!3`ct?5Q8yeCs~J) zM5Wo0ZLGWqE^?hK!Ncq@&pvV6)0BWc?%_j6Mz#eJl>QA93&6xrq&KNk#Y~+4JJ;IuVeUX80z3?C zMzN^Owq_5Av?=5z*J{DZ5%4sA^FR?iwQ^)uWwbL3(jJlBgo$xmVzBU2E`Lyoyb?N0 zvz1q-<_64^CA+<<3b z=cDW=e>xHAZM4P{w|5tOGU%9*&fk2pFF*dShA*+-0i-|1-9iopf7*928&T~8i+EmG z6hosr*%$x(Yf-i-`Ql#sh-t^xf4;+!XrUwd+{?j&m^G=7GBX6j2-K3Dvms*A`G}_a z#!UmPoJ`encVlU(Lo6p+kR!ftAan43_X+vpu%*Dvy9-Eohz!^;YFCn6cYHfYf5K7*hu& z-2DO@(!`S{`mP6_@;IPZ|i1k$yZHY=04pu@MXI>M){E z2}A*+G#3u5rQ1*;E=PKSf}v3v>DT6-Rt6#$$XiY@ODR>dVVF{r!nWSa5?i2&Vm6Xf z%c-HyLu^inTC%jZF*%2AxjpA23|#GXW#f=lE_HJZRX2*+JR6YjCVT@gh-fX^Pa#je zbE>PcYkJ1@XfT!n%;ok1_l|Lcu3Y3K$P3ETEm;QqX|Vj z`i%?yk^1S3c1B_a+7)THGfM?(&?}S>kws^2wTB@vH$iq3uInT)$k1@=R&5+;#ziup zSWBN^CUk`j)CublA`}K|+ijH>KJF`8EOiziIvEXZzn3gJ#+bH#$)c@|hb(R$6WY3* zTvxA$DrRje#l&XX!$vN(p2mU2p0Pne2j(yeNj1W$o7eHlxmrLc*$-zA-Sm-+a(zSc zr#A^DK+<-L3500}8xPn;M-eAA&6t82Og=QK@cjyyh7T;Xs>YA=S~Iv#I{*AGYp|K4|P|cl5)p`wAy4zmo+(RS)?k@Squd*PM5~O4#)+-_q7PXfR~=*_0|exRA@T+Zl0nD|6g0jOWYbCIp|&TL61zok zWEABOwlkmZ9%WPkNEi!y`X^UQu0$|hZ4xLT1FN3}Q% z_p{tv4JQ$8fog^E%2A`AT8sv;(Uc5B1FS~X+>bMbJ(+BLf`dgN8(oc)%x`Ohg!eHh zQ?y4rr*gOCx12ou=$B&KXq;sdBoXWtq9yiwrV+8>5TX5$*@0BSUH}s8`t7N=_65*VFL8UVH ze9D_r^^WOro0!zO8};q6mTIX#+Fv2Oo-F$4RPqn7{p#e2-=q-JETN;W(w{xaH@H=Z zbwDd6*#*C6?ZM3gjnMQ5NVOctmD1L*Qs~79Y4!me@Dp{0bX6J&32Q(6VQho@03-#q zX2YIXS{FS$UQjz2b`<%P(SK0Er1?E!7B&_eLm}iyTc;U3N_3hny+cS;g&Q|j%Xeo# zj_&OK4fH@_ZVF!L@LM%2beLm<*5M;IDcJc!`3ZGgrvtQoF{r{(daVv0Wfgk8?@dMC z_oKcrozFw)R2Pr5c-IG5Aa(t%E#7r5!-bYwSLTSMr>;CoDj4R_rFDthgKZ8ct(>Ki z?TE8oQTAvY&S->eY}58=tZ8f6a8+ECwoBt@V{d#?I~Ibc*c+dfRi5WFOj+mz=fezh z&RJs+c(pSS6M$C*tmsKi2rD{j6RkE%l$w%|ooWEe942$d0{F z2YC@Ot&n^MmlDC_gkoC~oU0l_OrGt5Jms zrGg_NKSX{w=<+B7g;( z&$3zDN>YrIBj^X-B$Gxk=7@N}2l=G79Ly#>3b7562~}Owvc4>Ejj)kWZed=j9{GW4 zK-?BeYxB!$8uywwou!(XID-wG^pel))RrD_0rDfXl`HjN0)9HTFB?2sm;Z3E^a6%K z@G?a@s{JdEY;GqlR47ftKGGZ(={ks$Z0luK4R>mP^6~6}?rC{y_j_6d;8qZpBCk>k)rJzyyIY!WNP*5JW`nQnS zaXe}$K1p$$o$d_gSrC?=c~=H%^yRVVIL+?fB#UHCr*oW6v+3sb^@95P)_&XizK!)= z1nsg}TVKOKn+?0&iQKt3;IxqJDRCO7GlG~Ie%L%2Ww1GG!0Dqhy#<^$TyMbXlQN%x z)1yl1n~?`ZgA>@oD1l4}pV=ln`K{c}yG%fdO(Y1?NLPLV=95Sxb`Jew(Fl=4(vKv7 zl|-awsVK-2O#%%StSHc!Y{eeHEP(Ok0!>d}Tuh!)ph2!Pfd;+7MqvUC^_xKR|C0Cq z(RE$bz3=&{A4k8o{3}lEB>SA0#3nH|B#_{w;O&MaG=w+_(7a1Jnm_m>!^s;Zl+n>Y zTA~yKf*24NK}B&A^;Q&79G;+VD~jQ&9R_r{Du`D@)gp@8s$6mFc8FqHwfK?u`F_{h z=N#Ei_|d*m?tSry);eqNy?)F!=Uj8nHP>8p;s*&dY!~d+p20eS27et-{)Ge@VhjJ< z1sV=c{BROY|Nj;e4QKh8oc|w5G`h!4%P%;7zGU?8CDHVqySfdWE76347WZrZes+l_ z8DU7_p?hi|4WR%Es$jxec!o~O($SSBmBN zQm&+BiNF_>a#6()fhFaZvN>!Tym+3Z`v+XuYe~1eP10S{vFKdVJP;bR}+tsL%Crpo@YeQoY2VHb@FgvNNmW|T`H-8=Ay;jK+%xD1X#7Dee*X>UE(ZiYU#|*;f)=SXf16akgN|-h zVDfJrTT9BgNBWaSDxSJ?R08?b+wB5ljZBomzQ%63Ft7MK9tDhUk5R(E#BiPTJ6hUu?caOpMB9i z%&kC=`XC#@^i@s1ul;4&|73vEg;nGi$xp@nGWqG4KTUpyJey=y{H(AAvZYnZ&H%hK z(H5AEc8olW*z?H%%8%)+!$JhkmZd)?;hKZH3`0 zv}cG}}vN6AWOCa@iOsu7;|K#v6^sgU+VQmjwkh6&!iiUE| z77SyNu|0G_zNSxz1=Qqg>TIC!z}2<~uD12xo2#u5(&K+0u4eW*QG`iyI5>ef!UoxP zDozx+7WG5dBf)fry-~b3iihOlQ&i|HadEa&I8G?@JNa?)t1&-DekJBd$S-wfZ;EV2 zug-9^D*tSneEu27u$rIg_|=kTSh~BHfz|>5o>0Ux&{{J`edbhu2vdbSmG+~<+Jy@# zmP6u(Ml&Y{c^!dfh0+n|sxXMU*lP;$36bL1-=WVB@Cw->viFDV8eO_KWLL=^tE`){VG^}-U8<+PcI0ison;q)=3VH2zD8EGB z+Z~Kvc22G92_6Y$Gk?87E#=`jvD8u?ig{`&uhp8hlx3UM*ZgH}TC;M7J;Rb{ILwOh zhz;;$=F0HtFlRdM4cQ^G2SawPc76G_kX|={^T3n z8YLjz5^lpO#Z9*T4`!p$5T1PYmJ%o(?(8mQLzqv!FOv@+A7&WGVXhs(Nho>3H{^ga za#{Y@JK3}i0P^KF+PwKd>&~1UdPruKH}D?&dwHwA3U!GqPqSt2{X=Xix8wg?YS&Q8Wty7s+COLAIWD35C0&XwyojXHz=>pt`ow4V| za4#>6_|6@HX#nTskK9zc^^tDJ2I+pV(S;{B&77{*8@T>F@$*d{^th3 z1T%X5F8R$Z>R3~k(5TL>UqY?=JxW(Q>v!`BBKv9=?pAl<221Lg7B$ipw(t9r)0N!2 zLRH<1tjpmqCUjT%{`$d`7;U_9-jl{%>A_dwzx$^(RgY|o|x9Ew` zx18Q}FFTWWQTAq)=_00b{Z2j!W8o+5s)G!e5N|**Ti_0(f4(B`m(n!ZS$ajIkII|l zYK=3DJBI`D)O5)f9~?wTZ4JN1hM&N|G0_|h0SL(`UD#c?Pj3qXeL*Gc+Ee&BmH)i& zS*BaN%C8qZcaO zk@nuvSIK@O0-yGI%y~jTmiuw`c0I}-NgLbhwdQYXLi`MG6@s@aMZEn;72#$zRaoe0#`C2AAWa!nAuLbpqG z!;>^N;oXy(1BL3~%!m$E)L*J+y^Z}!62;1_XE>-U(#Zi{2SRdAzgS%$QZ(5s((;Gv zKh19zvii-We@nWP^lv&3)n7mgGp=8&l;78po*|0G4$@W9I_V9r<~eF_d;Nt34yLb z3`#}b6n}~rFKMT!n`k~?xE-gLwCe!gnx?l1kJT;_OyF+UNABhdyA>0$fLORuclhm6 zlGLBeY~o0XV_;W$J$pf<+VPv`Fj9RRD^gdsXkXiT+zHqAno}?(i}EofUGAt~%_}0t z7o{&upPTMd=~72yQ?}_4>;3zfCsBOuLKF}3v{C#){kmWLR-B^eK%stT_6tnx-vtkO zba|pG^kwDSIdDw!MlkTd-3OaP1D5~lCdF&#&t8JHbpslBXCb{hy=@!M_SgGbz)rKY zudzX(?gP9WmD&JMK*OCGfkTm?z{f^yn^a|p@|rA3>PNNfXg9qZt1{2ah?`52shZEUi8K20%f#-l%)KxGqyShfsr-qtVDHMwD_8y0wEAHmy#z)R{sd7#fcQTgb(C$K^ zu{lO*sHHu3ydl1d{Sc3(QB@ax3R6x(`St!8j-SSe4gIZ%4InLXEp$=|f1`Hv@bdbxcyM;IFc`b3U`B_@x09|xVZdEzur63xKeh#BCks> zO1GrjeL=)~<7&;RmPa7Bt;E(!nBz+c(zP9ux}31m1Ybz&{VkM4?CFgNSS}UW2)ThC zU<0_F@ERP2*d2b|(N{}f?5>q{-8EgSrC0ekm~~b7{XG9>hMyOH52P0v19vkgA@^cN zaFxrh^1w9T3~RUIh+LFD&trRD`eM!XZU_CiN=Rt@+mrXBJKeXgAKmHRydQhjZa1fr zLu-4Q?e24H!g5;Mqv#?RrF-4l-gKWrm+TRm8?&CDx6_rrVqH5r?HuZTzH1X^Q5*LT zi9-FP@rv~M>Tnac?Ch->6eaVrY7iygz}(y*YR04j8j70XcdUB+2?qiK7Irmy#b7sQ zLvP}hbTb{Q)i;aXgFXmuP2u)NCio^M_@_Lx?Mv!4*|_|di~aIazJ`fL($LwDEfV#J z2*=4o$rTCo5!Nu6bMoFzYT$mbhvYt~1W{<`W98pizeCCEK&^z6i)0^Y4AgH_=AlMU z{U&8z-{`OZlrU&J-}KhE)7s@i)y;L?#gM(DC0FwD>5jngS34NyHT9GaHiziEu=0I{ zZ;09mN$_>2`wEMahFe-nJS+}}k#xp@04q2SzqD8h-vGpKAk-UeN|WeG+u)^|5Q}{N z83>RgP(W9D2NEN#IU1HyX#cEe94@-1w8j>N(#@V&F3&~qZ}I>pRa*eCsh&6V6``;# z{9pte)=*u1W9gM|)=RI+Qq7{Kj`7~Bj?o?cWfS#@-BiQ)7Fe}H<@{Lel-Q`>Vfx&8 z0hwn@1VCZ3((72yu|%ld>wHFjjBFgIcoRPuK7Ysf`mx*f>9mw)j+nVYet0ab$|rE~ z4T7p6_V@S1rcO!~;=38Eh?azIPk$!)7epl$Tl5h)$a8WrcDNP?MlG-;9^Ef4(3M{6 z{!XdC*Sf!x?k^xbq;Fo(@tJ*v z*TwYSFlFT^$lK1JYcN`2!NduLp=jP(&!^9 zCevFZ-dltj<$Zq7YjVh#^1iEDA)@mAqw`bFqdrHNLw?kjS75>p_;4B zg3z`jh!cVlzex+YG1l`$%nu^J(E9xWqwhmD=2tGf8}5F)kJ05^(x`C$ zo7sC}caS8CY2WTbAuFL-ga1gWVw)uJMONZB#i zVS01VfuT3OIX!r|2ZPaD<22oQp!h3|g9pm5>B9z*9{eyh^_MFZ9Wv?z6}v&I4ItG$ zpy^$psDtC7g4*_x4r+FB-u+qLdyNq=fY-?VK>anYOw-fQTiw*iTj{In zKifkkUB3imFMBGzUXOP zIiDfZ&SHk%0gK^;=t)xZ7}m%hX~A1VWC?N-6iL#$Zd{gLY()yaSc;VN;-E-rz2G-O zbJU4*bxF84hGG;L{!yBZ?44hgeWIYorQlgwb!K8-W}WFy*Pw8;X@$Yq-T-^*ywf@vp*?2BP7xLEXAr;2njQdp zpAzkFbEw0dlwP64nX#~eu}OjW>5&&8hFZ`2v^8Yar6gq4qppxuhYAM@UM3VRX|+pq z%q`0_7Jv3M?u=#br5^FYXPPL_eH40FuA(R$I7TQ8)(ZUZ`%mjfymQmhwK0d+mIuWtaSp$Odv8h2w& z6Y!XV`x^wK_rk=FdmDE#hK_WHEX|5z0&DCdxmyUpI;Kb#MxtN>g8MuGA0&BQ&InAZ z^+B`Yd+VL0%i)O0FKM^6i;8RoV5hj%(#*={Toun0w(sNg<0^7uaVLzX>@KdZluvih$+4AxAjUO(D1QdIFB{ z6eHD(N;^c97z}r^B9L5zdV}y0gyL9%u!bm2z7Opp z4+P(=E=Toh+!Kh(alIO^ik4qR_G-L3PMubB*3@$z*z|IAt@Y) z_K*l~9JWBTQphB$6=bz5h}==oVo!)QL#^H`(P9wSGxGQ8da9dK{@fM>6NHphKX1~X z{h(r!GU~4&ElY-i^5`UT;K&_WhpzI$GNe#KHWpj#`}Oeo zQm2i@d~~*e&_VF0Lb_EJGny?VU-?-O46TncZRzTf^>knpA+uH65V!G|X}g&u)r~jA z)6pK?)@;rK8*q(KWiM6$Lkn# z{45Yx$#xJ}lCs!wb(ef_fKa!kM&^7RXu?-T6>g6F_xq{`3heV1w9GIC*%`?k zzwtcxD9#*M?f`GijSQi^mnkMF%-1t9I8-3_eTf6H^xXVN?2ba|A7P|0G!Z&TAs$te z)QNa6*v_+DY5^lVOZI_~ogsUF$WD`Gy|%~@mgfHC8`p-VV54GjZw&9jrei&~HLKa* ztc9xrR0$UiggWZYI;2oO%oZ*7A_Ok?S>2TKE@>P*-BoVe0~CSOtuZnIa+599=$gpmfvs!txaUY4>NWD5<(y>L^xpF+IQb6+TcD^XHNX&^PSfidc(T zicpk%G?lT61Df;2dR^&kk?m^InIcvcQ(0Nd9Dk2>9D>o9Yx}cNh~j?LunTEjDCq2AvIj%< zEN$F|i{^}uCB8|<8Q$Ou6z1a}-1Hv0d}Hx+?9vQD$CqN4X2sZJ`4r{zv3#2Hg<|hE z0qZ#D2i>=Iy}BPy7@dYCWX8SMD+YqI2yjFIaP~IB(L3wb3-774di7rCF&Y%FFCBFr zmuy;`h~?_ZWGq)trj&;WIAZQ#d!tI(+~N2+jFzQ1+yfCYjquA7MZmc_&o$S0yb^|s zfIuH}Ai-e=pyTv4ZaYf`bok&XQiZNy{(6mjH%+iY|p$1NixqG~ZaJ8-DJ zC47ArZ&fv1+!8+?0BiVoX`p_Q(v<-MU}I`p`lH-=f9fl_qkd6C!r>iagzhwr8voke z5&LmX|0q%F3?&OQ8)yBmX95?MVlh3XbbLtH5swi}M7`R;(z!q}`61;;W4TQ7BRE!3ehQDB z?>r~=Jo)BrsJV7Q$+)TtK11|j)_z5*XTRo^+p;qERTK%xmc>BtM@;NH4kgpOU=!*j zVc~|wLezQkBSL!6Xt*Pk4O2E0SI3`wgjpO>q$N`5M<4LqT@P11AJ)88J?o=-?`?z2EK z0~C6)k0?GqMGj1|+T3tHL294C+?U8#I;plkOlt6H`A7*XUAeuyBAJJOg9;sM4#7W{jUFYjmot8;!U- zBfCgJmujA#CY*Gjn0_e!N~0RXb?&0wxVDNN6E@=49mXpQXXSdbBW;nt zU?ibHh*U8mHGg}6iu@qb&!)cWNDj)vSA_CLH>JaWrbou8fMDsq>3V98&poUF zWev>yBf|dAGz>NWtuWXKZS^asVKZ#vZ}3u}TR~X;DeXU}n*=Cn<2PDVT%aBzj1eH@ ze14-3cwQI0+j>}P@tfb&bg1z&2yD#tGxtz+gdX`-F@Eevnm3sNl3TF1I;utT&C;d927GA^lDJI7(>_$fYw9~;41qv#NB5J{EIF*OtK8)xG$py7c9Za6ckTxTl_m&gn8(V8#I&X z+VIS7N`okA&TS^mZm3d*6L>Bjt8kRCAmcb(g~B)RS)CXc=Aj0cIzue6zo0$N97%%m zio>@X(oV~qV(HwR@^;7MJ-oq88P3CpK)cxu*f47;Fi^BMO5ri)!=YaMt5M^`XNR~r zt{@np6aYOYN5QH{k6X#~EJzQ?7e}OQ;0%vfka(}M0=DMrWZPSc?c>6;q)c2VJDTaK^;?AK4l6w%)kI7=xF$r7S}k(p=QpUC^%w#elON3K$DhfBf4&3E`G z!ykswRTQ$ry__rS{b59{I7?LPpms*K5qK}qfrEz`C}zChzzCBZ_cAqXjRn{fN>Eql zFsEoJ@05l@PAb5=rJ*=)NvAyHJb0%?DV9%2Ly6_bC@1m{U$TN&LqRjKhB6v76gUx` znUYA2bQ3H~$%pm`0`_7rN$<359{6<5fYAZUH`2AxtuJyU<=x7&h@IyPsz+2&$XzM$pfnxR0e4f4Bq+sU|bmNG4@2J7qc|Gu)Z{`c57! z!a}kWs?pqK;wGv8mE@b(fiZOLBsZvF>2dxTzhP$&Nf*$B2Ta{pAaWGXcY&nWH!;wd zN!bJ}LAZlf-vz>+jX{H@=K;-kncW%6#UsuelI0=ikvV|aa4ZLsWiICBA4Em@n$!Sr zmafXTSAtOiwW5i1t3qdx?!ORlRH|#ElO1?r9RjTE-o_W{!vEk(gO1GI%KQs@@sjf> zJz&>LESFw9AIqf|FOXj+w{!!$kNp$`+7`?4AKFHGx_o1Eq`ICrAE~bG%||-lHqr%; z6jsx=9F-lfl*7Tlwr;@;1x!(tTAII&8ZQNBCDqQLYgwi!`<{SWRb@^n zBqRX+PO;hmCUO{Ix|Nx;VgqV(H*8y-nwp1&3Pho1*Z2L; z^JG2TK4I^wfSM8|%6phBCd_$k-I^HniaB4?#5j+~H0MP@a+eQ7F2g06HJd+|p*)aE zuUVxO|FG@||FCMgC{58(PJshEF!(FxF*fBi!Vzz?NvX1GdbDJj`7>7rLB+CwWcKW2 z%^L*&`dR@-(tI}EDltr1_><)G`_>ORgH((oL{+kCbcEF1F`1to2&`bMmcQlrV|#IrTPZ;RfUvj`%~^rEq+C z;pOuCEh|7K?}V#d1Fz;jNChk9&ozNhf27j@MlQk;uU{OvEF)v6mTpWHY5aKeR5Ty% zkf>w_gE$s#5ko4hXqDt&uEkidAf3tCYuUPyrkcFt*7P!R7!E%3VtqO0d#Z#r?8fkW zB-}BDpq^e50}j}@IKyF~4OzS$n>fL&@j(P?zYKd(lgP|346xG^gos>}5O`%+CHS@s zt1x8T6EHb>2jhL0K%iWRS3Iw<(nCnWbKiuYm(MFKaZ38U!eUSIm3`JkIYJlADgX<~ zc85vf{Y2wu7qDJWFQsf}fQbyMQzF-nT_qwYPsS{Js5ZA!%J!r!uw>arhU%p1YRz`I zgsd96Arc2gP6|aJ=^3RUxQ$9|)7adH5RObQ90uU=q@b%}otC65ObCqc6MU}O2~H5* z$>;FC3(qUbW4Fp30(?by1+YHK0nVHmsQ023ckLjYFFAcz9wk&>jqUTusiUaocnsme|<%UBe>Ugt^{7srmBtH-K<{>Jr;O0`tA z^lX2i@z8!$ug;3qw$$wG_iWBFlaei^3CrO5iKbQa2);K-QE*-)Ea7?vdg(X3!X z&B4&dNj3l0=W%cFymP6A=bhcU5g@w$U)lv@@@!>2FE<%OWj3L&lGY@dFbUPHin&W) zriA3ps@MffMb?CB*7=~h$4vZa-XG~2N_kFP;8B(E$;pTI;Wa_v_`ep%qTBbTY_S+) z27%NgzsP2SA9Abfo!Y^q5OYg|^G@g`I{#FW^DU)9fj%tHhad{jpf6i2h{imtkp3YK zoA4o9shb{b4AMwP@}8IQmJTZOQ*TrBpI@T7+@OItBf!(EB~k&?5*|cjAq&1M6Rcb( zcqJ^E&U!+{0!>y%+n{WI@cF?h3b!?kWrzk)0c@4ieozhoH5GM8Fc9@5AK8b92*NI- zxI`F{0wWEF4PB8v;xg|fU#^Qhp{x}4tK&_4c1GNg^`4~-s}>l3D{kGDNR67|?C@jw zI;GhelHlre>UX*1;vZkjbV~iEl`g|VKLm9j(bZA|9|7+v71TRqox7hsV7LlI#}WYz zNx!GxOy-TnC8c!aUi-1`;kRf)Um4~33?8QafVAqRP=(e18o%6hchWl*x%fN|W# zCtMW96D}X-$9-#Fae9)ITdydB6rnK^4+Q(9xojA-4?#z}+qO%$}-J31G zlX)MvYQGn4N5ee4jK;adFOeUF841cPlew)4Op z@EHTKdWhGeW~h#prkoCANFTwWbC zd)Mwvz=Vs}5go!nrhWe&t^<#7!KMntgz4FF5y4)9SL7fZ1$a0a&k2U_y^A;GN7(*t zB%6u+3&;$DU1MVj4vj$R8wy7(w!j6Ff4np zmb~1cDMk|vnn$&~TAXK+;*zRmw0+qf*Xwb4^@3@(VUYeK*lg#|5l&uGO%{9HxYT^C?bjQ=h8w*7q zfMEZ?Fv`kudL1)~+#^7g733MYw@^Aysaz;1U7$40balZP9l-lR-VmS6${QXjzp3~O z_(P0e^jzpqj+cU*i)->&Cgy?IN&8r@wO z$55yU1!Lt9DWV|j(~|-x58t_=0r8Iemo9~ApqP*GD|6L+uTwjZ>oKn#RVq`9DVi#O zSv9M=MZaMq)r9=I7O! zqvbxu&!E1iR3B6`Nt!*yD69EZ2UP4vU0CwapYqVFaKwsKYy!es;`r~EI z6}ouDx?{pRZmKD0UBP1!eCOu9-Y|0`68rkg9h>E?%ty<*tC@5ue3XqZZS1tJwVfATq2ak&aET%yBUJ1*hT5@Jw4OH0_yNfuuq;0!b4B)^hl z%K|h=x48x;&`YZYy0or^cU+P6ss%>>tGD!BLA;P`XuAaD{unu@oIL$<3b9}zj!evQ z%wS7)f+YE^=TR(ACHE=zsCTo}swRFR*q*nz9$k-Hg-iuGZfVc&+*ygw8QU|>%IEW0 znfUwtLlKw@VFv@jh2D^3Om&}5-MW4d=2h7zQ1nL9BRG2`s0VCX3Dne){QjK)Fxa|7h3pkA zaifP~`N+d&VLRSv^a|WL;|_bf5po9Wio&IE>%)Zx@Q1syj&%dLylns&Z9;nt09y_n z{4odc=jRMys%-$19so|DeL9<~L%LNQC5a+cm5UiD8_|`)Oq5G-@)l}0I7ESXFIK0W z32f6+_h-)-D zlEc@L1(#tTW*(TdYzyKSET&OQ#yEJw2GnC$pcU1!v%fQ6$o>d#&W~~z%nFre(;#d| zzK2-KR(6PubSF=K)Glzi1IZgi?m#q-pnLwF;{LT%m2_YSz3@O~jX zZKl+noejLFTeHIe%gHAk+Q?+_CRvJwtEHn5#iY0=`3dqNB^Vkq>?5*0Ue6&k**fZwF%)YZlxP;LtJy z{@RA6FACL&aF&gH1cbOYJ4q6-YoxBFC+<)O>_U7I z&f*GP6Ynx&-xT^H=L55H_vP4?f_ta?5_{1RdePDB#WL?;d`RATMJk_wQ=$D~uspQS zju(B7?PDQof#~d@zTD6%Sk`_(>*whdn^WuOURf1-Vt20#n6(!^R7i#ns`CeMywh?n zq;l_tT>1@UN0g32XB+eS29iI&UD&FxBroVIQ!pvlhWo3Pl$~K-V@1$w*em>+U|0e8LDZI+0s*C?m!=R_u60=SGXkPk{O`AAl}#tw3mfhp{CAzoLtd23us)?TY} zFUy0;_g_x!-2NHt;%;Fk1!V%VQ#(EDF`D`=;b)@)xi z@y+Qs{Cid@7PXV48seykku!>ASoD&fK?Kt>=PDSSsFy2$R#HDoI;CnsS;b6 z4$Gn0%1q3QL}#53Bsx$2M`J7C@6+c)W*%Si95S=pTacL{pF?Jv{K}^#Dm2egMVkwy}%BYV4nLq+CYcYkr~F)I}_Yn!c>Fm%AP`H%J<8)%i*C zu{WhD@?rh}Fbr0`XU{z{SQxDtER5DX1V(EH3!^o>VYJk5Mk}0L*nWt=Cz3EMap zA&Ik;7Kr*7p|pGf zhBUO5vewF2O2)DXzp-?~4G=~=_IyH(sYAllg8e>GkX_9g zx-{zit`gy!OGk1^whXiy&#sSn(y2rq7_4+}b01X;s?KaY6M;el*a`os60 z8(zZ``;>E z11C2{-8iC7>~H5-=(xTV#7Gr<+wN zj>t@{xE&J?VFbULDKS<)m%oj!s8{|3`IQ~vos;0es`ENtS)Q)@l``yhCT4d+3w0`< zg>cyDR}Byc$d`t^aC#}`MFXrhens*J=5?>$7#+jMr~+sp(2Ip#2oTv?U>8xcr4aU>P1P)V7Ua7E?d3lKWqCSb zd}!gPNktSZ@%OTRYq&Hu<2(m0w7i6JQ^s5@U!?q0e1D1e7h?GebA{c?NDU?L59T zyfYKund6<4vHTR}bMgHJ-k*=dx`lfH*DdF{nWkm?X+C7#V;^`B=1uOS~7z;LcvEG6zn~ed_6vR zqO4Fv&+>V0pV)gSH<(bNZI_S-Ljun*rHfQxZ?HI|CtCo46^4!GHy%EspHxP1<0B

C>f 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�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[iTN{T_6nIeaIAc-GSFC9t9~#gsG9?Os_q%IvEB5k1v6zejq$ z-CNc<4Wl9^>JSse3NQ9UIa*x)I^T(Tr|-+cbV98Lkq|!9NN_1cR7h2;8e0%Hii@_C zkWTtHyPe2Rn<^$LI`8+nTV=LfM&;Myu%i-z#_G@-`Aqmit1I+mn3{=IlmdZ}w&DrN zf}4iPnd;tG91GtV7IcRKV4~D=i^L$ELi$7Xb74%E823z#m9mP353NYN+1BaImC1I1 zmxBb-C)!*9-DQEUXx(&4PuD|gU$(UCC;vpcxGZ9oW>WGP9Vv&|6G8cxKTB%?;w>#1h)mN3|ZZH2!TgbD1>9RIF*Knhv;J0Gx%n zm2AhWwK}e{9Op~1t)BR8vjq^dZo5&y`=B*h?2p!Du|LN`f3$3o2>Ho@B7MW_+MtQb zAURj*L(%(&tm}1lki^IcIGzU-ael-ifW3f&T>%(}G%_l=WNDX6&-?sH_2N9szA`A% zahpxJYsskhvkPP6j-&2s8OomH9HdZ`FUqpg`oj-1SEc{>5N0PVZ|TorYmnoG){u9q zLaGfFx^aVQjLBD<_9h~m50=B(?V3rM4&5Y18(0uSBc#TY*MNALpJ>@zk6vi=tl5`(G`r~00uMoM6iN)wXNU}N+N$3Re|O6pjdI{*UWe-%!H~>jZjw5E;RPsE@V2C_RQie#XN-4+4ZoeyegHk&Z zOq;=Eh$H_Gc^<|?nbd@$b#?(5JU!zIRyTJ}HY?`Nr|A5kx4pk9-vBdr)-)CBP~$*T zmQG7fHuDi#I!DaXDJ>scE{maaQldz*L^?yV*rIWs8QF)W6G2d%`cT`%DWs;3%qu)c zaw835BxWtDDzbKM8<(lgI>qRbf)7&#qo>OlJBy1NUz&dGRXQ9`O~t${q?%{a1gzvN zEoqs*CiUF&D1UTXB^pil>d1x-@AzzC zX`4*Xk4XDx8)3vvre{ZRQtLL8DX0YOU0nos&I@oDO$~sM#994jK9)eSUa@&~So`+a zugZbyxPy}=zKjM~!qD>&bH%vI+;OA=+KHMgKbYI(lu%b#$U!b)w9=PIpRqKKChUxy z>jD8<(7TBEWYoe1ncQww31UJ4O zIJil`S7AHZA$Gwi+^DKAx`I)){9*%_2vg`31XdbVC&6ApGh(tqnqEx-~wh7kk*Cp7@UTHLCCx9PjH>EQg51ViLGv;>F{ix0yBn@^` zel4<_9_ZmfCfyoOp6bZ~gEpYzLAjS-aVi2)k()f=NbS{nNXT#&_6Ey8yVKY?uFw+vljorszwf`-&V#=8O78gpoXDynESYO1;4`+B;pxERhnE3wfI*QW_ z--CNPX9yK_qu+y7!phLX+jdE4`j-q9OvJmz@xd)NWj}+(2IEPn{B65r9S*A^T`|+m zsUMN5I+-W&OpFPKvm?GZ7p){ETDr&yXi3+?Sq_6Z%Gq!m8^PA}Ju)Lg#0v~tTm}qb z(>iumXUfzE25S!FMwJFGw;8pkHSeVVKujS%oFt?+Kp(Rej5=YRE)>zvOo6Xu^T}#$Re&l;d^~# zCBZhg8}Vs(WP^c*-G*wjq>)lY5g1p;}g3OB2x5lTn-!o>o19pVn$kLcjPz+7>%9>U7%9^7Lb|dm= zns2ciwR?-Y*pN&x{DD)sv~cdq`U0k$o`VWaSh(E?xKLH(Yrf6{KbAs7g;cew33j9X zX1|fxE$v1oio_0Qt9B!GmcB?C?x=*GNK-WtR?L-lBh*bJCh70+4Kdz=w#p?2r;o`w zLe6xw8wm@#Vga=^$xfi1(Qvt?Y9!IC)##hJun1+v{5fKW@ClTFwJ{L3#DeDWGkXV2 z8g<>rmV+I$cj`qjl|~JTK}B&saWiGQJDLD5+Fh;52dZ6prhl zo~#@oXR`nhoqH}EU*N&lxMcES6 zhiX&eELbd%vI4uQEoL>5GAZjL@an+K#nXYbj)-eD#54O#+Qw?)pjm{^cuvV$h}A^% zWZ`g_bxx?5)nq@Nkx4{@f#vZR9CWO;Egbpil1XpNZV13y!33OM>1&zY#E7(|=acBt zKZ7-iB^e7Cc{&?08_PM?A}CY=)%Aogg`+Tz=ns>(&LsDBkOA^j*F9&*z;1t1@gO3Jb4roQ-p3`B=kk-qv|K@q#oeSUZ=OiQt!>!~~@Grbu zNaIyW{#-~C#ins8q&dvlm=9@1Ueg&(h1YOlgF`~Uesenzdb)+8vKq%w)qi}VLbT}Y_{4Jr8_@_1P#eYh(ZyPCvj7o3hC3NZ9A9J&ylwM zT+(Mr+n#Qp?fBY$97&8EwjIZjM%+2H8&{mxMwSj)x`yYrT7=IN_nR~@5G??rStCWv z9t{6jNXx_HNJ!6-4m(nSjUI;ldD7D%E$5IKr3bB7wmC(TUfG`2p!I5!0>w$rOAfYs z1+{QBsBWFHmL5~M@o=6H@Go9Rv7HX?uF=$2nG z3?~5hqVjoO2;Dt41fL7(S<;s+Jq}`^3dqEy?vk%HpwjHQCQpSld#=gBkY>*{Iixhk znZqHE?UUq4NV9#C9JBN|*uW%{E>3VbP#6nllrqoc?x(*~`l?p-%Z>vcvUnUv#INI+ zNXK!^!r06y|b)@^75`WQN~*CVNAW^+B6)-xl%R)FCQ$&7(MI`n8!gZm79 z=jPH-eiqe=Z7}qZq!>hX_HPPy-_0ggDEz?Vujgg$q0PgC+^iD+)9osh;mjZ;Kv_>Ee7X^xO0v!M94t*)_86EC5lhu}`ODvZs3|v7V z8TXw$820Tx>Tw_RHXew#a{aaPLQU0~d6`8UAzx^AOHgCX%05BH!l;bwQ#%RJ(yf!` z3r)g|Z4(4>uwN3O1s^IiS+RgS=&qTZT#I=-aks)iC2gu64$@on1p2GFkspX07izps zWR9w5wT^%)wyFnHV}TVzvwR7?>-o8B4b6fYV6jN01hLQHp~EWzh;_iswf7wSu$YZxfBVr1&QzP0KKnlmjp^BesWTDS@Z; z??HGw4I2Ptv9Jo_Upc?Lv$2}cEKHRAHF`ZXi>8daC+i_L%fUtqpriUW@@j0B_>sne zApr}HKJQ0dFNw_(i^|*Gp*oNVn zclC!?V&PfVWt-)EzX7+u zlz=emG3Uba<-@a-RaKZ#dEgGhpbWj-61Ssy{X*c!?ee# za|cl-%{~6%IgS?b{W1Ysge`Vqy)iyJ2+%JZ>B?8u3(N|{GAj=sSoLw95*J(_VEN|x zBNonYGh@p^PiCGO6%>agK+Cl9=GbJkFfAcK%Un|Ogp)XVb_8ho@A2Kv+V3wHpkCX=(BIG1ZXh}aw0Rf{45K~@fV1@8QTT}jhvu*V=<HF=HY#Rp4Nhikv~i`V z1%*oW+1wTL)aLk2&;JLcOIzI$TvAG^1+J;YkDf-}v&AcIUk$DmA zc+C1hyr;~z!W-!{p}!140FW3mhUp>mcc45O(~W#>jF=JQp{y;QQT&t5F&@g=;_v^I z-|P6zbZpeozwPB`JVy6>&GwugWsl&J(1!I8I&t|E?v1b_>HdU&|S zR@?b)Hrh;o)A;jZd_kxtwYS*sR=q4 z@~P`Z2&%j}Nt>^*F%g?L4`c)1FuH>L71@O2a1u&=T3ji{rp|ccf^MzgsT=I}j;5Tf@_dmPwHHG~kDL=z?Igg?1+YV$rqm)J}7 zlCUNfdc>4!QUg9KQ>vz)Im7&6&7aZ}b~dLc%eE7GqTJ5v$&AA$U@)GBeRvcq@?k5< zQOkFBb6ja~Uab`Du~Qgf+Lv=`g?0r2Sue!$qfSheLb=gTn~ zy^D;dIxy_1>cHZGF`$#m#|&%(WMDQx_+uR40^YK5fGpd~0kUi_2Y7&aT0B58--er9 zB~+Ff=yGENJGKa*bK} zzd@uxU|&T-S+P~ynUp?QMnHKV5m4rUlMwA`gw*dVz0q9~g-s-3K1M+schoor`W|u- zak9(tJQ5I@*x6>_oTR6)Ie=pb#f-jh<@@~9vkGzXwgr8m*Jo;c8ETLdTa6fAT>u;S%@P>TGK-4Syp2@#sfic=(e;f;*!%1=qNe0?Ov>?y2MAWjC&DT@E zO>mv4B`RMo7@;~M5mc&chd=4iJF8l!&%&E=@c0FZOTwQ_Ht(s=G$AjAKiS4}t+p{j zwW8GY-Jy4iK)SPr-kEtX*ZQ`%B9yt19K!)ex4_S+>MXbvOzGAczdz1%hqU2s ze1sC*IXoLQ+({N>)D)O276L`g!$?*UPNGSc>gK!6yjo|u*`)dBxjt4T&U?- z2!FCwu1nQh;Klm>QsGZ{!(?7l_!HAcLAXiH3b4187M?ya{K?@&^@`-e+)D@b@FyMf zPP@y6Kf!p=B&=&qvut`sCH#rQU}^XhLs=_)939VA0u&A5Poz-_XS&g#P%M{*KWTsc zA=40I^fV7=)i%lE};ZGLY;ZMFo zIekI+6RpY>{>1o{kUgn{KS6t8EGCJusx?s$g;Sz$uh=kD>Mtw>QzfK~(zb~DP}jPN zjl#5}jyGzaL>;%l8;hw7sxm5r+KkGew&kddZDM-8dMaxeW6+r)oyLsePbyR)rzA56spq0~us%Py#6q-RMlgtT_*Ea;J_lDAP)uyy$bjMz14 zPZmA}#ln(APhpKh63oC@8^WKkkzx!7`=ZQAW%!dtJ!TxT;=<Jmwu+X<*P3lsZ%$qMqE$%mW`c(qZrO@Fyb*f0EUgk9_iYVk=z~ zk~|NZwwXiH--@wMSnpEj>SCYt%H*r#XPDs$SLU9)wZ*Yd7Mik1KYMF^#}mbyAk5_D z99&(S)%6&CB42m!H~DYm$$Y&hp2&M4)O;-KjW4<<@(tMrGAHr|f3vX()iIcJ@xl{% zS16^d-h5bDBPz;{yVt819HZ8YK6}v@U#zn#{ja^s*MwISS*1{@raN0dVc&0vg+hIe z^7m$|Fy*frP3bj_#@AVweZ9uY#9mL(q?aDc*QsuvlS^Y!{* zWBeeq5A3tDmWg~*e7!*c$ENW_KBPJbsQ*O1CH6cUipAKT@DdZ%yy0c?MwZE28}jmg zbtWIMzk~Mo2K#$s*5mcJe3nwE*& zrzn0~ew3AMm-WXEQk`Ky8`W^j?Q>MnbmW_}HR^+-$%GFbCSucF$rmszGuu2dk+pm0 z{fa;e$j149p>x+0d5?XTZFnNTDK?SygcPkXGb%Ar&0}Vk?>=$$p&zWgmS$hOe@MAnSm?-q`zL`NPtvLp{2vAle{b?a99dyD-YFY7I#aZ8zXYiw$JOhmYp zy@*4Okc&97{1C%%`XZ8m^$>r8u)!WrR6mu9*IjG=gDSXB}YC@lzR`XSd$m}8hV zA!*{gspO;$@zoN^j8rnio-5!@M7k;lMFbbQ1zaj;B@TQUT;k?h{$qloo!1;~1 zyK$fLT?8!Zp9WaTH(XLC<88BtPFyN++;AzCbTHU+y~-1LoYo57G?u|7j%Y2xB_cIM zT#ERk&h4-+-WGt-?o_s;%!-JXMf56Z?8V@cNxQN}L+tD}>r8u)LJ%PXa{h@n@f#`F z(qW<`E|{WlNoWRHgM6S%oa@Zk*ka@}u48Bh^EX@y$mbkP5_zJ+!6NQe8B-~%Oa4|x zwHJn9QD`B;0)m-9OX*}qaG5N>qCiVmM6i-34Z+4F&MAQ->Us7UI$*kHq7f~%MG3|OVt1hWiWsQzBFR@u|57L+w2xelb1dP!~=Dao{ zV?Z!tR&cj&Ay^blfsq+MZ1WZ4V2)VXgkhhdr!zX2p;G8x7@CzbxsB!5#K)rCYx6OQ zIAmg9RrWcWT}>v&8NCu82vX4g?BIv=}sG%LBz^+2<3p;=j@;XvkS)|QEpkC{v? z8N5+R=7K$+^k#{mJ3(%QN2`RqM8RcTat&klo$SlzsZL!ZR=S0 zrRxsuPL)gBiEKE$Y}a3++1mJ>*IX(Zp^b`m>8<&aO>NR|&@8HIzVb%;s(VpwnK1k) z#bpE+Qd@&{=2Sw<#bxAXCN9fWmaugq;AKPr*T^ijYB1XuS^cv zFlZJhOC>08%lnCZOt04lK@qGXPcnb1(N_ZTJJ&N@v49{=P(*GE4(kJ7R+Y;7 z072n%V&!ZZYI<=H7jaGV-3i%@s|^I)~ z&H9sXv=dqjH$QoA?Nys|?qYm>E6HjZyL(SRhHbC+>BnBDn5oLyY&oNrv(a+aSk79@ z(M7lH&Rfoy<)oI=Z8=?*GiW&t%UNeR3SG<=qUDTOPSbLREoXz})CT@+XL9448c%S@ zbS6Y{XkdU(GUgxa=@uSr0BmHZS?nVTzw-V}hRJ3BMOXW9 zJZ||i+IqUZbZfm+R%LQ_hMb+XmjXk%TytR5T&`Iz(QK|G^6$mt`ur~wFyX^kO|_9; z$EHaPs~RJw|INXhsY?gfj&LAb#!j4Mx^-@CKvNP+GT`Rmjlm2*u2XC_=6cl^JF_!H zfJeud+yjC7@Mq!hv+CsUeoi+3I7i#LbQJ@?_E9-|bhI0%3*GI`eb?kZz@}9wkJr;k z`j##gIzl0p_%abW?;9etb8(SVX?T_tN4ptl@zLP1cSrpz1ScbVhVgR|Ih}t`UR2?urXwwEcEGpE#;O4^y5ox{avsV z{EBdp>nwtwwU${x^@Qs$t?dpWt?K_@gY z0fQ4pwa?QQzCfuwUaT|e?%FJ%QhIuHckNkAvn@7SdUaCouG)VO`IDr7%hQR%`cC30 zqhL?-UH8;IMA#18{ON<`;~7NyKqxak%-(6NpD>;w$^-A&l#KP0rayfI+xmuuD_v-4 z28n6cV7fR>W^p^zc?6YvnT>~fm}>XMq^tWaE>!yU zYY~QYTQGF$fkqYAZXkqvz0|M}oT3bYN66fj9t^lTw8lq3{8OM0@@GrmajZ+(Rs3Hg zj^tl@o78MWKI!q*byS;aS?5DtU>YyUB?@PU1w6p1?CaKZW}R~82kdatPJ3^$|L58v z5^OANtq#XK937&xrxq`<&t=h_*n~Pykrsz)Q9$vr04Xbgio+Gb+J`Z$e!a z2Z*o=Ock@r&h{(tLN8nKoB00?+LGtY+#2!*8_b(3&Y`7dK6f%ALcBjO^`x* zEgl>=^YkF3YKKJGZ)+bCm6SnH)YE4fvGZ>|Vd)^2dN`#>0?Inpoqo;GZp!0rDDNQA zYX-*_c@UHxF;sger5_z0@QYr1di(lyPXJx}{Lp=dXrO?c)8tw6ye0+d1xlFfiTSUw z;d^elIP^Af%i=U7MSZX}kc}xY2FFJR^P%+I&3Q5;C`&L61%_@yX-JZNz3qB`QJB2m z_QEeJIjRt@k$dx_28(0%mCqTBIVE|^!9lVtgzG#>1Caa{#zd+k;wsumUBv+Et&!r> z?E@i=(O!VrMhi%D?A zV+E|PC+&!{^ujd;6X*hF`j!X12RJjq^Jv;eEZqY<(6(R6i^aG-;w+unuNi~mK^`|} z>p~e(rQQCn>0Mplo_iKi%=jv=f5_ybdXY;iuq$5qf?HqfG;7|f1z=XE)a z^m9^{=oAWH&#^XzsHvRdSZ$~OR-NvRoyN1O+U_I(6`3lavFMTDzwjhT`&y>#AJjr$ zY+>^XEuhe-h5Uxr7P-s}ij|YMO3?q4+E^3YAiUC=YeTEIT_lo9*+&b{)JCg+4v3vo zsjjC4x0#9zNJ)!)mjaGt$WI{(2MP9%CWACE>CF)qPr*`}0ETEMbj5cu# zmx3M}(*N%F=3FK_U{Yjt&{8d*9|DK)%cu)QgHDX1TAViRRRoT#9pfbo@G&m23)D{> z;e?ku_1weJo*0(5nhomf_;9usPgl5~w2QUIpw7tcBar<4#A>vb#h^`%>Ii|Xh0EhX zBQjMx5uy(ohF<)G#&g1hN4OwBpc7wmSMhWXEeu;$?t2#ho5iH4fbTKY2S8B5<$yQtXessX@%kuaqH zVCfy41qzxr-JTJ%`Y9|X@^(dA64RMykwDKIVs9~!^ricQ8>%rCg??XDE z6r@B=*-L^cCfqEEGvxdv$`UB`dcO|f0x>N9c5kNONU+;g5_@3l32ed<3Nf0R7&Uea zBR|@0>rzAOGkau+qAI%1AS4fpr!m18r z(3J5+sPw(QV&ChjYx7!{hQ6Cfs&VPMN&2MMQy2rVBlx-etMmnx%)&@rr5Hmp-6aCM zsDXI(lI!H1oj%g-;grO)>Py$j>*QkO%Ggci+Sk^{Ac}Yqv#|k05FnYpnZZo@5O`A- z&fo(7AYEdev|2yHN0j2nP|>O23(!+>%I+|t2Z4uCnCYI;C<2$5?&i=U>EeRlhtWyB zEPT+IByylY)~AiRkY2ze{;Z{m@4#x}e8?B0(VYZp<^t+}yd^|ykv2nLe{NrtqixJeblY`;ySd>laYeI@V@|Z z&;*5haZxpAI+c7Ru8i|4U>Ia>GN_B3hpw_1(s=ZgA{3f5d0AXWG5eyOt80ef)KYWa zN{(&}c$0;zW<^4&zY)F!4KnM|8BG%;A++_#V?dX@wPHCMjbj>hdKhfOH+2&HVSU9} zY8lR0n!J~*{Kz&o;)8rnY@9$3^Llb*^R%8w{F8d(^gpMkLN1{29t-Ii(z8mVU)s9v zjG3K~8>PgsFlr8Sm%5b33Fd%W$Bn?^a1Gs6dxxPI5ttj?l4O(}EEkKX8s;qoOYgf+@d%3(L<=WgfL+J{C8q!7+YR!4a9Yb-W|6zpxTiC= zzA{&c^3>*@nI+%j6ifvS}jT9p$ZM}F|@m#yuSe~mG(++Z}SWYpJw_e;`Txu5^%(tu9u!{An z*ml(5dhv?l;8)6yVft2?5wLt?mg0bA_b&3cMi1D#;L)39`xNpE%>fT2&SB#-|N0{R zQNH}j=YHq!uyZD_FUEc}hmCMuPS7|Ay11uIXlASwR- z^wab7VZd(9;cSy2*32j)XvrQ-2_R*o zb4abth+b#;K#C%RjGB)I)iJA$J(FxBwRL5=UZ4qhZ5lg}XJV{Mg0hVS;L~@S!vic^ z6X3rt+fEH@gad@H?R8aCV8o@_m! z$ZoLuiP-@p)jnaW=vAoI#zhInOGj@g>$Q9eF<$aF3#~@7&2)#ECyxt+0*>6MFrPij zrkB0o3*cvd9YNT9!1K#G!(R%FIB2M$oAshF)*#kR_F5~znLF~VKZYE@4dmcGxlFCS zpu}cPz+kr3-VSD>WGn6Hdj0EAJb&nG~Fj%*}sc2wpQyxlCk zT@&V$Q#+c^h_^k)2YQ5pgln>KGOwC9$6LmELs@Uzd{>@(noKwaq7ZyH$*G(R{Y?R`lN^j}zGBP{p)A81BUyE>eyoFc6NF;cc%x1(|q=P{ZK1I}wDs?*6 zLJe(hYol~JBHx4-ma|G9*PC=1lyni+I(1qo3dSB837>K;RfP+U01)Tb0LG-tfZ(K^ zOXt@{oj`=am{f^Sr%L`;;kICHj~Fbxn0sAC$S(KBU=@-ok_Oc3ye&|t3nie3><(0K z<8;1AKENBsUBBH&!c0-ukaUJV+8Z*c4KZREE&cK75YyEwy5a?fDeSP*D5WzDii_d$ zSi+qi`zQeszN+>yXJM>XFoxk%g6?cAX%qXEWToTmC`yoY1;S1uhpThxAOd#yq=Z^+ zj1G13*Go_hz;)Vv9D}E84Dd;Yo^7=H`WPh_Z1F#S(;uG3ov%Q0p0pKoFQV@NbpkYTDl^7H?6OYA2u3CcSh6Z z-<_ibbOX#}yN4;@(-ox9)R0t#Fq3_taZad4pA6FWMLCl)p-`0Gq)fkS2kNQOe@nr2%ZI&oxlbqfvp*|I!9yR|RRm}V`^S<>qhCa-SbqwCnrv7aea7{yA}0&Lvg<2cUtV% z;`F*Q6-0}OS;$+9~O~v_+-`k4)S|pa=-&`E- z_`R_>+3`Cs&UgIYUhLNbvi!bY9FD&~zB3v2iYQ+?Ydm zsEut5h{re^5c2IN`AW4kp6tol)S`8npE#C+AxWJzmvszh*gNw2Ga3aWwHG`vyV7!T zyG8me&V2d|heK{BgDpqF_a~lJ27wK($oJlH4ObSiX)JDn$&?+DVq+tK9(y)x?q|}s@3zAb z9r@pE_zP`|RbE(OS>fAxqx#-#`0aY1`Tg`AyY2W;yIl7(A5o@ut16jCm8Szt?YvQC z>3~W*tNV9^CQ>JJfCO_X7_c`q#}%UOuj|R13f{sVzGJAy;Q=L6 zOLD)MeoQvMWAi|I`7VW0t9}QKkZBinl&wM`%Cx4>kL8JRx2($78=_|@LPZc6%~`d5oYC!it^)rCLlHjHBODYoO1l6{^Z1IpYF`uMVx#kAyJ}zZWNo3otM;>E zRgE3=Xjko>N<%oB6Xku4ycyD*I0JkI}12GZRaS zB=w{g4jO`$V*aTn<&E3kNDY3A*vdWGqjEu1&}zMe_|P z1(yT~XNnL^`kQcJPC456e55*0Nw87~mm@v3;_zkoN(i2%n4&JMKlpNExteAJt*ZLO zZGQ5GGa_Qruo}X(850&n9(QoPI%neEK$^#Esf-~^hPio-a@B{2O$%b#H#N|1_Qp491Cd3@z5uoasF=1wu3< zLNrUBQ|sxe_xOJaOvi*1Dg(?=M13$}D|$CUT}q9|Wjuh|1m(xWsT=<7TQ z4ESHZlL_GFX#3XRs-Vj7&bIzm`t&W^{Zp7$thoI2E!&j|0*UHOusAXaJx{&e(Nhx& zqtqyv=2u!LU&*qKA??ZQo57+w`;!hCmZoGES$%VE$E}7N^;(aqPJ-^qm#K|JvlHa9 za?jXR2}m3}$Bx8FwB6YQ-l3A{zFy*cCWxb+mQ)n>_k^Qt2U>(9RaXalV_-v=10d2@ zU@H^AK{;W$+WGNu$7t28Pg5o_-37CT?;9L@36*DK6x*uYzX?TZo;^hmU!sB3amK7gjJUlhu*= ziJxwQWM}A*>M)wM`&{Vpv?dp-J)$QJ_karV{|eb2)~jXd*6!MCLr;`j)8~aK*IRf2 zq^l}u|A><=9a{zI9)Mw0NOwx3fQq5r164*HkaX3=E1ETi=)}rF8h8v7wYjK);gOU@ z!FG;5l&V>|Q6fQa&PMlIu`5ybzudJlW&g`vSETH(j;>7EUyTcdWhnd16)79G5-8iH zWPPZ%B5@}Qn}=Hf@Q1ijyovkAX1roATl{uAl)%k`D4N9~>9iw?>h7oT0t?W$pN0iU zDYA18Qh)OPR%)1Q>s*v8)mzdvoUBI#VeLZJfnngn2Qf%mVU31JK>jvkuv4H^6giKY zEjf>!qlEL=5!EjGN5Q~(df+@=f%6=yJL@^D=$p2nwI2M+526qvT%W55R~w^Uc~EKx zEAf}hC4aG1*-C1_3*;}D_@E}|FA1z+l?+BI?y~Hqxrn_8wWSf963s>Sa#BC&@SJ!D z1De+p_HxYfJJ`!A6g^sO)y(lnlg}uyb6wY3b{cq1+zHtTi@{KFA zm;ZrzRyxOWio^eiR)uBQ%Z2OBUIhQEvX}jT0ee}uguUq77s_7r?GpBa>QJ&5LI?(4 zx0t=?(`#ifCj)yq-DWSU2KK_@r&c`m^{VbJE%5?xKlpO)3K)Pdab`(p={d&sZt zvc=ZNZlwUa6~YVmRyU)p`a>yYe0cv*7y3qJtj6`FRQ<{iN{5GCUZMF6?S(=;QvSqT zrDy7J8UD+1qmo^j^%mE>oAzM0^~kMCKG@`Q5xj+Nv|CKa$}hQjD}CETK`_a7CxIXz z>2pvgy1h8HOowOe$sn+Ya91V2#E@h-c_m5so4!F|mX?kckUx7K#XkGjP3Y!1U4In57{`=pqou-aTF)^IYsDAB z`kK+aKQ~I_hqUiwzxfw#rjRVEVQ|H|Z%|`}B38PWOggg{s0AGX4chxbO*AaKDhqCP zQ=e$v{kDgSY3!!OTrGY79txMXSIUTwL(BT`SfZ$sfB4cQb({9wTC-_0TI_mJ-&^sy zYzc+T{1GjSn*g#2B(c~Kz4brST1MRGetv^ZoIn6VnY3g9sw@51?Yv;^@t*_9QGAx2 zqptJ=>+z|6er6uCar%KR>E|A#9O@UkD*wz-@>-3A!n|0ZW;Q9)XUwFv(9N}wZju%@2aUHe@U zI`BPlPn{_F^sd1H1g}so6k1Wx;m}o<&%0|#S&XkZMd&H-dOZ=*$SuSjCrtIU8fzc4 z!Z_Pse+IuG4&)&nFOHid zJ(GHIyI_u4pH5XM>OWSzCJnMy) zqwwb)G+~ava2#(8-x&@m&#AGscs=ke&a-99khmE2`F}lAOJ@sX#OB*%0V!U~4S4t& z^Ch>Q>Uos=f+GLm%L9ao_~(zomk5okE?D0V-~n~N{9##Mjm9q6jk{DZqj{FoDP5T2 zSTR@%!ab*LuL_`F`lu9i|(nNY8}y9BIR8zB{NqkYOrB zKq!RSr_`teiXr{MO_5Tj))?lczggI-lonO`PgJ_6LQqz0D5qljd1MV378;&egO?I% z4PKooF0IkvPc27G8hny|a(8>YFn<6}l_%uWXXK;iG44WD%Af0}T0HZi{#SCI74b5XrCo zp~lvME-edDOoeR>8ngM>V!UpWpI%OZ3|LpVyPZ6$qo~ozw1nMT17T3B_}z$$X=^ni zZZX!NT8qM*(se(6F0AK}a_yfQun}HigmaHJQMs?XE)WYtTi*rM{2RJ$BYqkl9gI&@ zo6jC|pOliX-l(Bw1ace!Ndk+Id-Bnj6)ZAAj~q4fvDl*C@#!(rlRiC4T7oN|F;<0! z$p@Zqf=Ck1FYKR1!WlJA!HDdzVddD1xT6wj_}>IpCl|>xYi&pVF+nvZuTEQo&Qz06 zt+1>l6O%7PViVIQy8m1!ZxMukuIQHX5huuUb>q!=&W*RgayH%;X1Sn24$)T3duub} ztPrCID^83)@;eoy(1qQFP6@#B;%29?OumW+yOygviA%pBl1wq?TrS>4zE?2kl@jvo zncMNRF)&XYv2cwv&2+zIWjlT7B$yo$C63fM`susare00P2i1QJ;V{~E4KUi68E{wJ zF&H1|A~?OAG+=E8xAWKF3!7DiT+^Z>Y(%<_7-Mj1>?@yKd?7i@0GliN7$UTQ+0ln2 z*e7uDGX?j^fU__T449Hd&kvv&wfP5qyVwt1H-y;ql0u)LI>YeYXIr#5gjnAnu2 zndBUn=wO`eR4v8jE#pL@)VAm$RwYVJJ(89vHSIxKBF8kxFe1Zg#m`@?nhjgcoL1gR z`Lm@)sDSMYzG91#$!g?bZ--+)DwWT~wK($8lf@)f*!ns;6zIp?cbOYSlaK zj3_wERqu4t9L8r7U%eC5L4lW&&;F5hety`jJIykj5k@Yq4&Q#2tHXXarH499kPdYi zCmrfAM%wByT?r&|qGVbIgXtBBp-wnqvX?U6c5OG+(}6c;{3f5e4aUH=h5x-eIDw6q z_rs*x1}J*}2toU0-q&R62bHU%FIt+@>sZ`7>eHu5PgxovN_j_==DWjO%^DMH9>%iR zyH13_Xtpwx#%S)lmJLa4K46tSt24?NbIIe+;|umY7FMEikhmSgK}kB{5d7hG;cE=> zqOss)7lyt{=yDdT4NB=b^{e`9ihkD%qgbNT{Tj#uockaMb#g8;XIXC)&m2X7gyWmT z=Mz*Te7;{*lGh^(eU+?>2@;NV%!VZ=+%e)yB#77uWU*A(@TA7+#Y=hdGJEgSFVG8Y zX4j=I)oX%hz-5|W=?Eb)pmTZ3`6D&;^g(Ji>4TT4W)o~-Ju6{NCi^izwB<1$VVgiw zG{AZxX=eK?S}4nNKe;L*(mq|G$%L-V!uIHj={KWn$?}Y@7+&ML54m^i$_oFOuDE#Z zs^M~+BwwKgMt!qWv8rlL^0Bx7T2a@Ott^WPO{^$?kFJz6?m30`sJmF@y}!rQjQQbc z2XCkjH3g#T?q$JKb#jps`8J@fF8;8Rs;Kg-|f(}!PTvX=NPOEnqEPrc{6Z1{_MqkQy< z<56<>MhR!u$@~o-!R4nf)D~W5XnrEe^+44=;5jUTO}y_hrhrzNnDfv%w^0=N3trqu zXa@XyALa3cqBL0j++2+`OhjIcB;A+6cwx7biBjMXzeG&OK*fR99S#54KXTnKz(n&! zkQjW`m|Zhk6yu`Sou3>z9_54iqyUC@-in9uzT=NZ>>@qRCHdr)+&HC_A$W6gcheFl z43HfgKxUBT#_`G6P23UhH4FEu%=pSXs9u?ygP3*tyNP!A7%dam?@Hh*wUXnbj9VCw zp4YpR_db`LfrlYwp&W&;NJ2cufmH$7I~KP_{$p&lGB<3n*zh0!D z)g0diuh;WGu}M-1lR~(+HOV(9(&*mIO(e!OTu?7pask1W zNPJcF{{i$K!57im<69C*gn<@E8f4?TG5|Sfw2VW9r8$7KJnGXYN#ht{_oqmMr;;9| zL0Zw|0I92@J5|xe&KKUZ>H|-CR{i<&;&excVz~~Nw`DO7fN?&KLvV>h!QG@n$4PI% z)6UH!@BrUqizM88DBRl+eJCcp>h;*GB~fV|SY<}z)=@A+TdpHI>I)c_1a=Rnn^8-5 z{8gkifVvz;@JMfaN9#uIFR71s?J4^F)FF3BWQg3_mKpQdlDaV*-b_8Oitb^+Qxqp= z>fJYz&u8I&cJk!=xFQbnhq?B0Wr>09>~a1CS5<2#i!e*Mf@Bj*a7QEA5;rm;b`wJ(vd0?9|Nb7kl?gjq~10sPrJ+rLpma-Du$($}3}aQ@Kwd9r6cwI%!C zgzT62>}umv(30<`ulLoyz~{S|Kw=zo zmdeTMf<~GyZmhI?QMd!-d%t4TRkf%(J6}F)$@lS4Uk-LNatvGxF_xvPmG5#QCJYc> zQuW0}WZf-7Bmev~$9N|5<&3y%$=RLOJsxAWa-!Ts+_(gaUbLlT=VhkZ7EWC(=Rev_ zHO=8Tv?DB|)#ZF`tsywxH zax+)0Nc7O$d#l(h@NWWr2IB_fn!t%pi_l(o3T z*Bhvzmo-$?gpDepYCOUN^t_s;(SL%g%SE!@<;34o8=_gCdP9B1f^ zGpZ+Y5RGNW3Z81O>ldvYRnOH~OC&nC&%Q@kmF1Rh^v~(RwsJ+xQ#ALZH)(@~3FP?* z%We*eoQJR)i#%zkEXa)2a1MomQQ1V(fOO8S-$Y`QUPqC$EK3C5@DxX0aQBJk-RT&P zf&cupuPM*TN$`%Mt(KFqepRbU6fo}II>Q6fIKr@Eb@=Os15Vvw6k}QGi&NaFBvUt- z(bEymfS4Zq^yY! zBY|b?gmi1hTB@{SVKa4QmuyU}im;v`A2nZPpB=?`4z%pLDSnJ=z_jVeL51ns6PBA`pzQH_=WrArVkT$cTof;aijFfxfu0jC_EFl8VpL zbSABk-h<0J`5ryivzi=caXgCE3h;ez^~D#?l}Q*2nnu0Bs<4t&H=J{o;)rpx@2GSsF zAZ%p~q+!-TfS2=api~JB6pUyQHqW!643#-;Qx>$_*It5`yv3R77E?2@F!}31*=()( z@7u45Qnt<<`|a0wDZ7|?vdG%jAN=Mt-(lWKInvsiw|0{?+w%X>b6MR~N15Vkp*Sm= zj+(MZG)DKt8W-wY>(_E}-`b{y2y(tete7UOE4}S?#`OjySl!qtBS#`j>wMdzK0QtP zu&?nUUE!d~lFut$j3AU98?3Xr<^r{zMBV;$voBVyz?vO>tv8(zbg_i&fQ$}ri_OhN z65=8t5N}e=eE~>qxiyZ+3|tp1Rc7)I*;KEh18MBW=v_o%6w69!yax^RYo%A1OT#!f zl_dJKY!{MI@22QslHh9EKE`!S!Rog}jVzTBWDm85GZE)ew`3PQ0bR9u%#ue*TEPTF zC3&U0tJ8)rBbjL*l-?_A1Cn-On?bm#jLk`s+&4wcDReCQOzG$&+<{V*chBtw;$=bE6 z7G%_2;a`iUr4OwxW}Qj4IO|M1D4kul`-^U}Rn>s0s9cWgnlsH4c+34+(=O96Ky+p% zFy_coI^k0dRm9ON%eL&eRh`PxFLQr-g(sn-@r2NP-#_E)W*+~;jG;Y%FnY{1hn08@ zA1$!QI)ggHF|qx~dPx*-FHuyjExVogq&(eZSC)hI+P8r!en?6@I0b|;9Wx>uaMD_? z{Z5)%E%6V>0RSqhcHrYsd0$LKG^=I5FhP_n8dtSK;1f?ht1CPG*bvbkUk*2q=_bFy zc3?}|yq1s9cCYbVV)g z*A?SnpRNcE8$n3(!}^VSGQEa6o78U@e>`sXSKY)H@ISolq`&DVlZ;)an}+ojNru`? zi7BG`DXoin>N+bNW#we^lefAjbSCq%`5BG{jX4Z=T=~OrQ|c8sL-r#*WK5LP=ouzi zjm+#($4XPM<9=c%wM@|^k14m(HezTb?=Ug1FfZ5E0=ji7*5r+~R*N|6cs9TH0JF!k zW{(xy%i~zqUVh~Ig5{YTQd65Xt`*O8AVt~FmJfdu`>D@;ErYn_>re5utD0je!te1L zMn?4H(==n|X4+0qofHk|xf9HNj0ON7)7-(FM1}VVl#!7f=STjUs&>1=pt8%YLUp!8 z=~|7!TeI@2##);0KazM*wV9|C+7T|7Zj_`qN&1f^yK+mGFenxqA67MLWSOPpmZfVs z?r1NAdhK2)6bPC1m>9GCsrtBWB66+oX$~UnV;e;NtPVG7SmjWIHD*}kuKjOl7pSiJjdZA*8`e$R%E8aQ+nt!HV#$u zsI~a_q1!M41FQPcw_BUg5dG_+hqlOC5HeSSbrm%UUNpP#!bsjwIIwS5LJm$B-}vrTEzC^4X_c=00YZZW}6x00V>Gj5HPSb ztz5`d`}V87KrVSy)K~%-Qu6_baYrm22ytc7l+`%~kN)6#8%nIHny$h_>ZjS9~YqSX(EC+(3hovIiRm? z%%N&zzbk;g+S6x9&xYt7=L7mu1y*yO2JsCqEC~1hZ^6Bvf2MHnop1r1bBF8ZyC93; z-43q1xk_NZpDQ|9!$7D`{!^}+C!dYBnq@#Qb8O7h!@Y~tgQiPFzgUjJ9_}q@=cp$P z!`La39m_|}e-cO!o)_F3(I(iY?%-Z4k;MxS_p%$%;10%QE8H8tQA2V~eGTsIM%m1P zd&8>=$`NaANL9Zhad0o$8{A9woT}8Du5QA;-9V^|m_{xH_ZImY?o{OK;9l}IxR-nl z?p@Ui_p(Qkd>4Xyi+m04E%J46FZm)hOhkFO_d*BvUTAQy@?9A2Epj%@rpVdBy`vuP z9Ye)H(R0GRMP|-kzhf5MTRdJ6?zI!}0>s;`*_Q9R=47hKL?kYtTxR03;RNyS;i~)N zx^jQFWQ`zR8GSO5giQp9SB6_YX5c1m_tS~7CM?GcsslL7v9Q?pz2Vu0=za5nyyRja zuMOp$Eg)})<23=ErNDC*X90oHVK}9-7nW-aN>sKDs`YJaBs2)mL+H&@Q#bi(esUCJg5JvKDU^L!B-m5y6TyO_5K0%?U`plQ3z1 z_s-P4jT3;mN$}~JlF&Q@e`&3ig}~8$vLjFxvG9L_@fV=t4w?8YKegObScF>IZ}Vkb zRJf`Qf*ef~&PPNC+s;Eooq_<7q!`<%Xj2Uv|G43bih#Vw;gLoc|LY8`3fEo}dakuc zp|1mUJzag9%Cih;b>-uMQ}Cx-2;3!CLXowByDc4u-D>WRs6!(mu>DWv5n2Pw)f5en zp8T|nP~*YfTK)+g7Nr+>ZWxOqz4GueBL z+wJ!?jtXUb?;2&(qy?`ifItI5*4yZT7ke>0+!vk##TRt7wXTOZ>c~C}Kx=4UppD5A z!VbbxaJHHso){V%$N;BtpbCNft~E}q3bE;Ovm9dvqv@eQ(@<)!gceMrqESF73PM3j z9CKP7_m*l{__5QTf%P$+Qo}b{-C*^KB)JKgqYP?{)^elMY<9<*ZR3TGn-4z@;*vTE zh!cLijQkm0DnN%rumB*`Teg*T*n4kM$AU&01gzQzXc!=w4G@|Es7gZVkSKf>1Q#}+ zO{{H1dBe}}P;7jg7BdIfsqSaaI;<-;zX86mhoM`r2a!~aJx;d(z-60h8|0I*-p{@l zv$ydY1oRr$2PBzf19MRwtV>)w1ONw8C!cWuu;icJ!wjBJe(2f!Z2|M8&ej&{YHgwJ z))p||VYLNo#o7Xxy--_ZOjaG%Th;jGGohvDYSZjy$g>fquFk=FW%5ajVL3}?D}Uz9 zXeoR||3B+<^5; zvC5Wi!+JXm>kZ~1bJc+L3UxOQ4Op*seA<3>t7n1lQfF|=c+%JSpsvW018nNDyq*T@ z4FiE%9{}t9%qy9M7$VKFx7wZi#%*A@=FLf@~`&O`Cai=)( z?Wp>HQF^6ey&|fTu)Qs?tTe3m{f^XFydwE%JJzd*!g`4u6|i394zv~S3b-MFSD-6N z0lY7F$pa+CpPEeB9SbT&#~If!C1c7-GI~E)FH=`x4yVC-4ffqYjjxI@LRc>_?3mGZ z1;4<0FXO_D^HMHgy@On^&(?8)yD)~WKRniZM^-Yfl$Q*U$X4G7g4fYqcHrtCa zN0w4{O{^Cqzlrr?KhME>cYCZ?&-l8Thr@a?>cL~osPA+rD!!}?d*LwiV!fRbC_w!j z{@IpY6YDMJX>D^{FNiioUjixmI$bHO_b^!RQ8=ct!ehNl4ZI37rQ>n(ps$_Wg*HUH zW6rBEtaquf-YSSdz!*dvhEkw+wkRZ^N?=x`wLvxBQ2g5>kYkQ&_Y>QuYwE1 zdWQ_|BDsN#9M-!6??vT}_}ZiEQa>L+18F`Wpm?{&NE*Qn>0_z1HA-sEm^-4DXv%`8j=}c66XwtTpe_ZyEd$s2zmnPY#{YC2N5l|K~!M98Z}p!PN~5fGgn3bi=>T^OZZx%=J;!fK@9Vs zGUg}A35QLr_oTkOWK%rtNrtuE#ClO9l7aL<3)TxahKvpCRr3%j1R-ZAV+#jX^`j50 z7t3AhKnsT)B&4KZUnz;%ql{5yql`YZQO0PSZo+a><wP16BX9091gL;|XVsThi1neaA)>}b%4Zi)Z*fx%aDb_; zuv+ZO;s%P>0(cZRz(|-e7*Hk}wOK)_1E*jBhkn@sDG8f_js$1)LZ6 zCh|N#oVVV@dD*A15YBtrqGbHEzP^xp@ntB!1S?v*Vd=ib#^<=hLa zm~-!P4E27Eb9GkJyHdX}{K}2QrwlXZo8OIduYygZ54@9;&9;pjB{LXB=XCD1VAW`a zuzI0y)DW2Xcjnx?GQCK%?Ij${)rk{s@-%2~QEfwe0oOGk?@9{iURGLdvEI<$6%IvS zhSTt3PV-W}3!%M5zJ~S|`4-N-!D-mg-lgd()%OA%kq0owlrN(Eci`N6;r}J)UhmpV z1aR~AI)`JgIc*}jCZ*WWCkMF-^)0rOH-p72)axyXuTEyF8Evosbt5`c^f5C#|)Pe?|J zGg?}E6gsVoWoMwVr2c7`+ZH0Qh;T{3h7nwg zn((dhz_J1V#$M)La__8S1ZL~pdZP_35eos5;io0(*p0DT&T32)rH?pvB>8nO^9peWq^Mfn;X7Ax&KZ`YPrAqgofxxo zf;97p>3CkiHVA*Rl*2E&O^1mSh^cKT2w3jAmKGX+0_PG$UH-i6y@uJ;YQeMhYpq2F z$n+IOnYg1asf#1K#V(B{&b03cl+ z&^vU)Nyhdrr7>Gu-FX9=JFJzmraP}ga|5soeVjWl+z0O8=Fa;!zpqAH51WI^0)n7$ zUZIitV1Y&gBQT-_09YewtThtIdRUcz7L63lOC!a8Ww8?39=7o9H zJuNWrdAsz6=2)LlvvaugdYD%#tEE;gFz>i^^(>cO2lE0EIy)`6^!Br%{F%G-Qsdvk zrT1@spU4n)0xq-#=Dqi|xZ22IdU}{Q3_{HwFFc1!uUvWA{gp1`N)O7Bcy6h4VcvON zdY3m{dPxSC-sS%;TzZ*bwz%{zThOJ~^@oRf?`nm4CEWwe+pa?AgL(bt87X497tagx zYX9Vs!_OY(HA@NkX7&JMj{cPjYr?$atuXJibLll8m3(UF1@rnfc!~mXk(BmTYQntZ z=u?RxL~zUgRWFD(MDx1zrXJ>9_!BFmIPe5<<#3CuX%) zmtJ69a~pO;JTET9SbtV0b!x|~Zd$)-zhI?JV(jTbfnnC)!HV%=fYfyFv$ zH!VO;>I&>K-U9Qo_R3A-13J8jWYeXWB;#>dUy(#VHC=jHo37#A-0IT%goAl&&lKi0 z8y|)^)?_ECv6lBupJr4U%u7$1jf8?aA;VBKz%ZN^ z%-eNNnAb*Nt4r?!FzF!(eh{N(tF=)LEvD1=h92^ z8M*Xg*+@prhIu8!?t5)3%-dz&`3u0jOxA)+uO%09>19;eD5DQ;lrh>S=NV-V<~{#W zHb2a(X8BRp3iFOLr)X_7R#mnD%*%R(Mw*5^?VA_c<^H@by_gZ02wF~;ORpuJORpuJ zOE1XF8(a()-;2_5NGA^#0@jMW{DQ;f~+RrB@cn!DkHe-U$~V_3m)JdKV0>2o7@D703%` z8OSRatNr{&B^t=9^)k8ia_Y8>-Nq`WJqJlGJoDJzY1jDbv>~`*MWc}}19MltO#YXW@0d?;S}2@^Zd| zkz=WFtK|-qUI{3@6ldS3kKj<`Y%p0tiFqS9tT`9RTV(buU3!BvZf?B@8kK?!@6UJKuSBfy@6v*EDmShG7fyPA$8KE=W^yHmm*@rsa9aO z>`*V}rt;L0isdg}DiRfC^HEjy=L_tfP@^pu=N_q?_&rS<{wg^0nz7XC%v<$su|T`9 z3SPOA56w@{+Nb8`x!tzfI)6&-MR&07%+Fh3T@l8?x>Uva>8etO4uXXkSf}Qys^}*N zkQUW+U~ki1Q?m`f`H*@Mb4#uoRG4k*h^Dr3>3Ew{ow(U>GA-54M^mxiyfnoH)m5|= z*2Rxk(34PetFb5UDLj15r*{eHT9yBMg|fj9JIe4xK|PsAO+eSNi<@S)J0Dq00Qy-D zM;_QcwGgmNzbKx5E3n%nmw;l6t&fg&%w>v~^Se(CKzva}+LN~#-1HfpwZm;GZ z>L@l~x(E*Bi)Jt%*fJ=l0(kT{%3SN_f^Kg**Io-tP#4|tRB;}szGz{WT1WCwEZ>Go zgeRWWEVn1G^E|^W(UmJO*0YbPt6h-vZHmYMFYOi&F;g?p5RE`jmEAn4n)XP1_ABaD zRs}f)!|P-dhGw(k>_C`@uJPrW&Va>jtAHv=cj_b1-vH+#c0BnE<^|B{B|B}3=$ReC zL6tmlvl|A~THEP?bULpUz$?sHA89Kps{$Sx_7JZR>SSZj2=ePd5LB}fMBZ6T(gC%u zqcOnB;*y@&yZE}H(JfrMo36sA8k<#=z&+VEzP67SEW)sWYL3ii_XR0U`@5v{(UXLY zX@!5|+_z36fPJwX_h+8GsucKD%joh5Fcg;%W&0MZX@=wKsT;>q$-EjbUKkICtl)Zr7q9utK-%Qf&WpE`Ua)%$ zND7`+?c6!FbisDHC=PAyqMg>RfNwLMIaj-cv#>)^5J(Zd0Tk<8?K7yirAZQv%3==G z8>TWqy-wJOohC{OKygwOvnhz8H%$9qc=Y0RX>*#kZs1*@Uh5t_dxzC+GhA?yl^{$x@>J2Xd9Iw<+!B2RFXcpd06n-oX7?9=&EKfLxem;|#igGpLu9d0AxV@aSzuZy2C`%_{wN zQ12oS^)8tW^}f?gOrkfi`O#3SMXr`h9Mmh_B_V}FqC9%LJ=AL+y&-x7Hx24N-{=jY zcg&}-CXZgUa}(+{r^XPyVbLt8H~4zYhI-LP214O(ZXnbGP;a+Ez31<1=%Y8VA+(lu zw?VzXaZoQ*lHLkUYK;mhRW_I54C;m9{$GN6VV`^&tHPjOdTK$acR(uscNV?DYe&ZR zf*!pC1=KrWQ17#h-cSspIZ&_j=sk;&^&Y)*qBo4ZmWV|K)JyUiLA{cJ$cXu%-jOz_ zcL4r1kKVwle)O3~Z->-@^XRo?i%0K1Rh_BdgsuVVr4MbCG1?||f7XJ^@5ZB7&GMsc z7S!9;=vJuLYXBKqQlYkc8^{ZZ@Wh?K#6(uf|F^awOK(Pn?h?k@Js$9Oghgec*E`SW~RSc zYw(8TdjaPC-Fx)9$PJ%HE_<8ZZhK77oF>b z?a7gV3J*#U@Rs_kp#7n2;#8J6&XEZpcRyiRgw^De)I(-QAcppoaQNTW7mIAF1q^6) z%1R0>$jh=k5QQK5Egx|Dox!<=GWn2u)IW|Q@Dl8?2P3Hzak*^X?xygxYT z>zF^ybKE6u`FBVjk=BzXw+D+lv{(P>sUeuS*;j!s=9se~`lR)c?8j36uhDg^LzZ*k zh&lbx&{kQVIaX>fzJ+=%v}2Tb>Rn%fe-@yg^@%zS39J0Yk_vWWrKtzqJ&so-*jcF; z09gH`26xC}_FZ4(63B|hJzo>VJB}@i=34-3=&1*@DQ!K-%zAECu9w@%Ko>EECL=Y% z=96~b<)|tQ+4gX?AvnxB+3q;sZeZKyvMhH|kW(!X?QE#0BJiBKEqFGRA0T(X)x3)g zuPDwfe-@4B`+s=ec7%DSzohPm1In$W2SmDhgK(>{HG zy)2-sR`e-dDHW_Fcz8_F@Q?G=?NP;Ig5%3UlP>2GqLWM45G{ zmMru(9$_P0u3IzaX01KzT9JJGCX-m9wTE5SWvwkACA}f~PAOlGnBOQKsNeI3G=78Y zRfH5&SMRbv1g}9zz#$ZBL2~cSmS;Xe`oW8Z)Y*E`{9=}IV`sBJtt3%k4(cMQ%J6|I z{4n|9CZJBlQw{Ndrt5!ay>HKdd(476D~6HQtDv7BXl&3LLNVL6QYx)xG$k^FX*XH8 z%wQ4A)<($~8sigd^fry}kZLj+ZB!+m6&MSuDTK%lS1Bp`XKvSg0UNewxsxT@*#obl zXb;@gz*CfacZ#7xNG9J!{&QHN>xJcP53@bsOnU%QqkQbW#QqNPJX9sEKH0$*(qUk} zVaTg7^Owwgy{%*&#bhNPx01v0JHBLXp%j2Ut7O4V7M9A+vk_Z)QL}Kl;NNZKat z_d8Z@PlM-p@A`7xL@y_7Ok0aJ`D1n%(SaDnHdt*$kTeKI5gkxx8~DoIo#IDkgEQ_iP>L~#NK zrPFesyJaN0K(<~k@LVgP+xj|m{6dwmY3ejPA8Mq;6+mBf5~L@(DO?A1I{Ft3 zboAsV=v8v2sWG~$uH|crLQ3(zYK8(a`$}y1@mt6Pc4<*)+Lg=bVPBTP?r$ z0m`fU@_ZB*6c%S&pR3RmQk9YIU7Qc3Zm^@m|9O4R*ZfbN2jkc1xGK(ZMl5g^mU1-F z%17OqMHFF_M_Y5XIr(4qrCxu9PQ)3EU*7x*LXT;TcDlU|Wt}vwCi9Wre3>h4vwfga zAT8EJPw$1Hd2ijMSKKH?kaS)vm28sklY|df*VuC}XkZ2%jwDf|O~cn}8IodP7nUK> z5!x?*PV#7M!fz~-DdCxr#Q-s(6o-u*GnwPcjvU*%%yDa2%ub+Q;~4Tv4dEV>s&M{qN4$mbPRm>-x0A-8cEN^lzMu7)uvBfaD3CJ;MS&38C#}L z8I!-YKE+C)Z0S?vM9`;hj@hnH&0wF8R$?l%`DHuE0>FX|lad3aOed&GGiX{-%KB`Q z5jhkqlIE|ZQQEgD?%~2IYIs@LV!V7hkRO(z{!*7ey#_m?lKbPbob4{HBq10vPb7G| zW?fiQHf>_Ez)B>yZCE%%z!BCe33N$)CGpJ!K`5#?)oWOKiyE;YZM8nk^dhuCVa|>8 zR9xYvR627yI^9l`brpT^4>ZluIc4R1m|p+x<<`gCa_!N~-2#S^y;_!a>VR_Qr->G6 zC#)J+KBC;X{}G9BV^*R33|~~t95T(vcksigo`ptGd21B(H2xr0;~T5AYt#s{Yu7+6 z7TT({n<;iC?=ywbI!lypiHXBh)Ovk9X&r0xP3BW{Gxft@GVrO+WuA_;$)7`~^0+&r zvYLbBF#@N6uJqZgaS&@duGVoX9!y~aAu=C(>j;wAh}J(Ou@Q}HWYrk&c=RLKG%$y( z8sj<#m$@!`^cAqIj5v)z88{yJc%R@NgH7~dn0M)XKGjML^h|1{!SSQ#%D#c=16pU5 zDQcnC>(JBvv{-z~UnZN$kFOC+nGBrsWR9%TmwZE;_@*cadMoom0h=6DszvWIIH@Au z?z%Kyv!g8Bbi6-AyyZm6mQ&7P^jZJHl+jGzS4G~(-?reyv znLF}GqUSfjYD@)~>VA-e_)fIUhZ)(C!YoFfuX@%no+Q$Tk)@=DIi?WdfH!FI8WgPb zTxbWK%~{K(GNn1^pN+6^D5l*hhd46i@6KMEbkc-j^qOzOPWjMbMsfFE?h4KE?*sSt zChq~CW2Y@I>5VVe6#RSzZ;W+r%~a`~Rb0CAzjudpvTpOG8b(i?A1dSjfy(s{*t`;w zct2guTU3r{KVQ_9rqOQ8te3AeFQ%w5f*D-bi^D4HOY(XwXkM{8eX!B?f`0th&a0x6 zwx4=^Jl>f#5HxB(ldOr(jP)4Kg|uJ$I~DqEzy0DY_fEy!KcHWHF^t2Q)^0|0<*iX& zd9L$@Hc|;SOf}fu`QqrOl!Y@#pPUm^{;57Y)YZ~s9K`wGAe$CUM*BBK5Bc;6>G%5d zFzE+fIv(wyOm-z}*=wTX>e9HSX$SYme0q%ZsDEdi^HwK(K4U$!)Tc*DkNNZnX%3l{ zJIyc61#&kYL#pyvCjcTNeK}rj5Y<;H=$=30z+qe58P`k8u3yu{xocUsrG z5vFPb2~&Xaft**EYP$UFGh>Liz((qqmbwB1Qdcp6V~4;TjvY>mRT`UO>*{P%?7Eu4 zg8gLm5-+sWYhR!tT_75|(WBFZmfExkasc{uYJ*sFWEeBw=XsTd1ZzRoE9wJ}&@;22 zp}%#zmH!9g&7tkC%rFN2jzMU>*{5zXXO;C(fHRZT0ygr_FaaU6GgfnYo%ba6J)KYv zc|G6x0p@7|u2Nfac})`YRr=q(sR3$jgE7Q^m=~vd@Vz!d;S6_@n=OP2O%iVzzqwAy zPxf&5@l8}MpXuJ3oPCw15f+iCP2veBEX{MGq@WS*H}P(m38z-I6bW}qS#fCU4;YIA z4QROqvDKK8l(i~u_mYs`qvE-d>Q>uUg=EZ2Z%|C?e0S$oT+4|h(X~~vq$S!KP%l5* z?aqT7?b+H$`F)zJ&V}SWWOk>=1PzbbWx#9mB{1oj4`JnSn==K^i zqF%LsUg_wuq_3CBr@B!i27h2sHCwGy=UZYTNOG%h$QPDUS>rktTDL~3$*+vz#(RrQ z_w>T9OIlWhib_~jRE39lds|<(JBPAX@9eUZ5jH^CYmLRQB_EKmL{pi1am-*LNTg;o zMLyY+?|v&>Rn_dj%(S$Dub901aS83t`m~x;?j=N`sieNdiE>97_I0HfY*3u9U#e#> zu;^cBl&oSMNv50J<_AX6DDBjJOr6KcNRyH^e)mf|E7< zBMn14I8LhW{D^bxL8{ajdKZg?jVR~+@yB$8r@>}o4L)wA=!8*}CQwsxwc@Mx5~e|( z8l2pQsmJC=z^i^O9pIMr49fkXDs6z2%3a-F?jFk3=mbc!VaS<2$RS4bGb!PpR6=JU z%c=!RFn^YNtJ$i?g_^4ON_KPaJW2m^l`#;?08ATrX594FQ{QT-Bj2}D|HGc2GcvtS zM&NpJQ-gO#F&iy_H41Z=hBR+(V^7itJUZ}cW$W}I1+wzI= zx^va}V3$ETnweEF)*Bn9W1*O^D~LAQ?0ocRuL1h&_YF zHsdYW)1=Kr;r>a|Cl#`VZ<+C&1h%nlM1CllKR=5gt%HIPiM`fySmAutY%zVe)F#&l zBr2D>6$p~~Xop@zZ1`&P6yxKv?x>NlioH9l=?Jz4T&Rl~b*Jzik~qNB zt||tMAIa(qL_@JZ0HDsR9rpwP%6A~wo}LS!-ubaj=xndOa2z21IV_o<>|^uB&5laR zJ6=FU@ORP`FwTGMmcYsXc>rd)#{fT%t#S^jl*3>vI4VJ>82~5KsgnEw3%La4%%+9OIf!KLudqcD|YXo1? zR_S3o+RI7CC3C00OY9g08|Q0^DXmR=F~B5o=#Awtf>?m=8|zGEQfg#{IdZ!A>e3HU zHR%$WtS%xc+3Q}5L+t^j86vxM9k?obhpx4&q6c;5yHWNyViVikR%`Nc z4kBn1!Tf=;Pz)`~uxcP-zN^z#;cf3Q!!UXLN+Y|rDA_$=TZo}N^mIO`4vZf5((G3~ zXeSHn?S9|ak_gtjOeZ_GqDs8@b{{aTO`B+wDo9DG^*FJTb_jqsNV-_ZhK^xI%jQbQ z_{U;3h?lxvTr&ECxf#vred`zc$NB}XFnR%B8NHyB(F^y)QPE8hR(VtDpL}1S)l2{4 z(`fb5uPx1(rBCk*@Ao$QWehHRz|&oNs^YeZRh+Q|{cC~t8ihtoPwEP!X3ZsZg`&jOOIS8Vfe+4(Co7Z!TNS^nk~cuvgf9dGA>FhMI%60_71fmEqFfe@VSp8!%ObZOT|{P3yrO;Tjwyzh+B%{&E7BXH-_+!? z2x1O*$z`$p21ir!Kp%;3)Sc_aM;E&`%Vp8F6c=10>)VEW@dC?{tcLEm&eo`14}d4m zk&U(pYHHxD2v1|J10e9Y2+j7-UAj`?sqSWnOp{gzh$y3V8{%G3*dnOwlE?mo7*>m* z$dkHT1cmFh2d?~-(vgZ|~ zsI_PALEaiv;A&f$;fX;X9e&I%7hy%x)mfU`FkF&#tOBU@O+Te88u27ojqMZm8?zxp z#7z5_j{BFU{7c95o99RM`zd770VR+{MUh119v80P3gB;Yj>gzL%G8#eJd$B_G;R9!TK`e@vxdo64sscNsz?@ z^8LUAE`OI~kFq#h!+D77aGf#X=iSJ)Xl4Fxd!3m^3in;?L|})y(K>a{QdEppflTLk7<0s+(&fZ1vpJ%a_LZ zrmNYUkb8pp`!4=Yy28u|mhoyVs20qs%@SH)=Ww(25eL0TE>+(Y)m;jEQnDJ>o&dY` z3KQNdkWX#`=zK=es%;TElEDQ8C8m>SDaqBLAdqjg#}+|xb>uxeZs9T zMo4Nn^8@ZOOoSvnXPSejQmbj7;nw3Mtym_Fs>|oGWB<;keAvwcSC}C4vAta?rdL+ilcv-FJm`|ZQwO2TR)J5Yca|(D3H2h zUdJO@)#R_M-BkBh9D2=kH+T#|ko?Qdo`Q%*8~k$QQO3@iM3T@f1W`Wem#oE*W=l}R z!)+U8#ClHkuE2#&6r{UBcaQDfp|io+~9t%+%mBy_4PG%{rY#<*Y74b z&36y>UR_e07Ljwj7jk;iPLLk<_xF>=3zdIxyKHk(`894C7E>=j=o^zmUbHDMVkelU zV*+OVfLbt91MJo`9iB%!rSTY+)@Mu%Ok*-E)t~toHZ{l12O?ec;^;@R?>Vt*82do= zcsC6HL$moeQh#a*+HDCtkDi~=z=-r;BQTB2x!7vM2P7XZujcF>evt$tLeMndA0A!LJ zd`iiCv`92bCLd1Sz(Pr)r8PllB>S#xEcUZe1iO|MHQM@oCt0sZxDAr6$b^C^rG$@G zceIK{vn?@{3;r*76o#ec?kB`sZW7dpqiQ*mLnB`Q(j}fm%L-|3DU;@w^3ohI?Qml6 zSNuHZSfXROhzg;jvW+T7u*Qtpp^Y&+R})^PbZNf)PWEo?tmhT8@DUK-_-F^wE|%(g z^QxS^Rmp$dh|=w#j#xkYMN@L`QTW7t{s%Vp#6VfqHVc)%; zLg^wT9_V+f8a32mm6ipSycv=YlBJLXrbi+m!y=M(w9UjhY)j+br*6{53(MPUg|A}g z?YoyF9{zc?^}BMSE&4zWcd-c>syN5cvs&wAHK%Qr>K=>$^ArihI~N*U`}%8ZLx3%qS3joO;_C$~L_ zTgNFlXAGd5;f|tGqSf1R<8W2F-i(<+ed?J(1N7TBs8WZF8E~MJ#1GZ7lvT@8RxL}p zY85;}-Duv{h7_qEy`*S5*u6v;=A-y?Lo}i_B%9Bx%rQkel7@g$TQs}PIvF$w62zvj zd@)blS$A_h)SszC1c+GEbB_iC(xse&OsdC6jajU_VF7AH$7`b9!7(mnR)H#wZVQJt zOK|=hh)pjbFz{!0W~`0KZJrJ)!C6RvrsSLzEhG)wLgCv~gyGFpg@>R`6zVH4A zad(n;c=<#P5l_6qPAAA9+)Gy0S$bM9_l&MsS!Z-**q_!FE9;c5SXlyJ@?nFVfqB|2 zt1lyjWLcfml`>^neaX_!vN~*Oi_RN;)u&}yebc99S$*Hq&a(Om>HL%}>0Z;c4W&i) zX_||Cn$Q(-X-E(z-?S8w;7v}H-f?^+kUc78ar4@=Tf)L1Qx#eH`uhu7|(`Z9~bBkJ5YpaG_;8D??>50;`in-wJJMj`9=zoO$CiKf%!>Jn39f zR_1K#>WA^T_CO{sb^JfMXs03<;_m4(#VB%3$0_YZzt!n9h7fcZ}eha+~x@K0J_Fk^$u6XT`G{O9#9pj)VQwHYPYV?=}s=x{54#t z`7K<^;QMHQ6LEAfpW_jqbz#hYq?W_IK$l5xBE;bU_r=Z=u)(A`VWeHj2W|u+Dd%T@ za41TC@p8Uq_D>}`lJBpQ-nGgQwaK`cZGO-j=XjCkp#Sk2b&*w%C%32<*t`(s$A~=K z$Hr48AN#*|2uvq`;D;3Pt}8_yRZ;YCZ^cHzW7rEYRBdtW=yy;tf60=KiN;Z5T36@y z0X7uWfDiCQG*S>?#`^lOuFE&YM|7nYlSqs$I{Hg6xZ-{sQUU{Yf~&!EME)2T{(vK4 zCBs6U^gkkNo_=t1zum-=<(jiNv{SZ|;yYq7n;C`89y6+nxFODzYI+x*bxyvlDTI5R zN6~9R7O0`5+93@x`CC&%!!hL`YLQNb9jZ@R3uF5Fr?xY|w1<3P+MeiWrYB{tGVRjU zJ+|&1Mh%?!vQt8Klw}A(OMC!IhIx!cP{>*9%2(z(S!l{JqZOCoJ{MPdhAB0OB%ohD z!!3ysYNlJAyxgdm5yzbj&1xpEbMQQkx8ZectfaAzD+y!4mzd*NS{l-A&YX|#jQxomBuhBzRv_1LutI+U36K57(9l>SF_m_kogHr@jjAF?8 zc<*B*Wh3IsF9Pb!Q)2{bmR4Qix?OdJD_OU~52$dGLS6^tMxx0wlAG}&A*OiV)!4?% zem7n!i*S_CxH!gIyRJvI7ZGS~@(YKe3mC_(kQpo#J9q|GsnWcV?XyP z-)Of8Vy!lwQr$hfvXXAYNqldSp-gF>fh#riYz87K^AteALy7fY%(VeQkZszN_1 zin_{_#MJ62tAL13+A6>Tw+Tx9-IFAr{iC81#$(G3^=caE@)+*R zmOE}yjx)X4Nroj||{QCHzKg3gH_l@=@ zxz@Fr4m!K6(|YoYi(Mwv&BNH5P5KXdR1yB5(v{b6>fTkS4a0}9M|X1H&E4FEXyOD3 zQYld9l0}`Z>CCpJMAYOxUQLWAU;)Wr=N3~|U%2n#B(;J?BGWYXfo>oo`3t}1XQm*2 zBOlXvJhPF$q`Vn+DX^Q5H2zF(ho7+qTjQNi(gjBt9bnxj(8 z)HK}x>dBtFSY1sI}&vhA#1nh^5p3vYV&3?$}UTf|8 zh!AkmpZPQ~;Gzdf%kaYfuZyzsJE$SVMPw~*YqNT@B--FP;m0o&>2I-31=1Q7n88<$ zBZ@hSQffpxNY?|JU*`J)po`)-B|heQLc%*@SeF3yRV~t!q^*-kYg;FJoC#s_h-Lun zf@h}s(B-1mD>RW~`@5;k1B?kH2;|5w^M%(Ts0c2PdT(mzKjU!x}6f%d>dse3E? zlqa1FOq5UY0<1wCu9_dx48v{SG$#8LyFOTBNzmJfXZ(UYv=xs4 zO={vI$8YBFwKv&%c@%MwZJd8N+4@3~t3;7WKcEgK(x^}Nwk&^hHVc>bQcK?c4F1~<8)?@g6c4%tNSJVBPm0Le) zENFqi#svMOD;;FY41mHE;EFBFNA}8uG)Lv-zZahsd-8NfSMHnmg>7dWqWQ>Y|DM}t z>CG+UtZ{1JgozyW0-vjwcQQfJiZQ*Gm6Gqj+KitUk(Fp|5(}tU@&||)D_&gMKNt@U z#12=3g9RBhb&EMC76*w5XoaVD*w&e zz@Z)+AJ_zr?9$jg06Q*?DMW88AME2KkCN}dh*r@k#oIf;1MrMq*^x-QUOSrLZ0}Z( zExhHJZfODJ5GIc>_C5R-q%q0$0-&%idPV?U5C3<|-t=tM$I|p>_s^_QCgsQi0*)!z zTCD?Wbm8+s25Jz!aRA#Fb^t+1I~B>m_KL{+8loZK6Q#^Kq3%-Verx@QL8r_BJn*z` z_+_*rSK8lc3z}xik#wdUcP(E)M~YO@T2DdxVT&L_EQu+CF-#JG44_1$gk8pk-dpWZ z2%;zZM{QsxdtV3E(vf`SHn^XTRDX=%jV_I^^f2j3pLRCMfl|71Z-8h-IOyO}SQDOR zA1yXV_(|#V#i1d+8%uAC^X{9a7p+TsW&CPJnJ!Mg{v561bftY-{N%C?x?F&yW8t9D zL0`xwrvWA1S8Wke%XwlBzGb>B?G>B$8Y?R*M}j2XgVq>~ugnth#$bF+rgbAohB(#s zG*_Rl8xg7E;LEncm+%AVKV|U#WsQ;wPODOcuCC7Bk%ZUm_E$)<&=BLzc7E(Bi^jy@ z(7V)y+RFeZ=Sv+zH)yDFWZS?rJd^2HTfN`ioi2G8!GuiGDnAlvKp(JWWPq)3LL!z5 z>c>NOYas$*oxvE9*rh8Yw``Qj5C0s;iA_|)a6CjqK78goQS$NinDoQn#%lOUDL=!N zIW^VDPmUaq^1*x$Ar+H%-pZW7GfzH_fuBDr-l3lPkv}J+6SDc0k-N#?F#1_(P3&Z# zf|L`9R{COq@)SvOCHpC^F}*I`jhW#3CpGoC++NwtD~F<%cUHS`zMNsL{U%G(B`lAr zXpB#QG>*nRcpciq^khf=CV6Hp-;$2(g&?c8)JKqPtM)>;mB{cqq5xfiSWZ56Gn~`m zU{Ior|6cTjYWWl#iCP%BCQ^g{)qbTTFVQb4RCx$WklV5{f?UhRQmqf@iXh*qD}!QK zSG1bRTx4zX*-aq740yAGRod&x{^!^c&B7kHU!gFx`6C*8U5qeSG3M7wAWK0@Y@Rfx zE9zeQTW-grx>8F}C#P<7mAcVYcD1h565ktD@*XbK@lGy4jCYVXHDv(SlJSNKC;I0s zf=2x`!>ItyEG#Ae_(JPYo#*szg&!M1|zNx02Af zeDAHU%jl0`-?>t-60Fv_%HQoMvhTj}N-cD#Kw;<PXUec+6qrA5-KwnwPj088YLIJ1E+Hb~_yO z!!@dX#J!%hcSxuWguv2aZl|0WU{+2EuYM?Fxid-}eUh2AF0VIkDyJ@W*QWAvm%4*f z6F?|LM>1sMWfP4k`LTs+94}{a{w8fak1RY$US@$WKl#@LLlQva+Kp7D$`fUbSgw0G zw+4T{@4O=3F5ZBNJS`9zs+UB>gs#xW2*R#7)!kFWYSKax=RM@|n#*qm_s!u%_XN>v zIG%WhB2FNA>d9yRAbFy~#K{GgI^pBxPz9V?OIZ(l@Wp2QIz>zxaiP*@NIzg{i7TXG zIqlht%0S(UFV#@l2QlJ6zNb(OS`706W_}q>q8J@oe&ab&(SS|FyeE+X-+v_uQ9n-p z7W1Boi)bzgaJdCs%g@5u_ub;s`p_o(kXo%tJ_giiUssX??^Uknuqn|`+q3QrYyl#Pk#0Sm#YiaX5HG8{O0A{BnBQ8J@7J#EBlrI z&re_g$UEF|LoEHNR_~7$QHLEz7G@E0m4$N~3AsPw?~A;-aPQqp_@N#wa1D3SioY7( zE^hGA*mWsI98)Zb#nhh`(Dbi`CmW)#Q#j{qn4g;ka#2p?VN`#6Woy3c!!DjzEGVw3 z9p+`NcaEzTyvJXylcQZ!Wc3@Ri2Wcge*YTa;0fSCWlN39`)#ZX?fl}&R zg4&VaFT$XzIE#Rf87_+9iYDv;H(*_o!6cD{h_o*;qwU+QD>AgYZT%ma-K zcmzdi8qUbR1Y4plq@*aSdW@IB1yw1LUb<9mPX64+*x_cTN7Mm5#zc;dzQ{8aSSjv6 zz&YRJ{P3Sa9*c?KW3*YHsz%92u2aqwYEqEikp&~KH%DSQMD*Xn*vh}6JY4KY7hkTK z$LZ@`g;m@2WqMI@4{BS8<{^#HW1mm8e2%BOXDh2h@i~OF&*e5+A%=7iDjEV1X*4HTl&#GSm9wK>Im zIfD;eiT(lj2?5L2Yp-%VXdW1r-wB=247phvF!kh)<)hx@@8+2pX+1tqP8y@J~=1!RO6dS<$?+Df)(<@%>jxA8*$7 zELq@eU|H-eYguxbmOG(?Y9YJi(;d1&g+81*N;uvc;XFC17G9s9BKERnd{!z)OoF`D zRtA-TASIdn;40F?h(c{^TxW<{(Lq&z1N+pgEZ4WF&&y^)_AmTj7?g2Z?V=d9Ly7Kc$E?+oPQV`vf|cjQ8hZqoTh){I@eb4F>FYfkDK7y%)0 zl;2`S{k7)m6ZVC0j5Ro_UPhBMQ?k3$G3JxzPxk9{jP+;XoU!o)MA+Svbj+mE7+OFO z`d-T&o)&D4^+G`LIyJ5+SE9zr2m<~g)#Rj%7#HpJlXrrsWGPA-PW_4|BZML?nbZvm zGroi$Tdg5kN5;D};*l~V!U-bT95`=DeUlYDYn^LQhz3aN!tjYSKsM+Q&EnYuBL<&@ zpMG_@B0P66_j=pwoW`Lk+*wfC>zU-3Lb?Ha?>%SB2(}zrMxX6d3o+%-w}q1PevhGR zsM#dv*HTHk_J+|Jq1moGXfj(ZoKS&8))l7y^`;s+CCkJ!$x+y0IK1_v=epRm1S(Hu zbXY%&ir7KQ)yO1s1zyz9F{&|ZR#NVe)?p9?ek$iZvbzY}k{r9uh_9DNDEXlEDvLaf z24>~PfX1Bg#v%O{Wp#BK72gvi&CCVmvxgBgp%%b5`&4@=nV!9AkA%4i78|xEYxkQx zaTcj!8-L@roLJGu+8WW1C>(^cBHM#xE5ewmfpjV?6!)E8vU+2kxDV8x2@E=)+lJ^b zu{OVC4>v{+vE9^3Q6e?AlrmYA;?!wq7{;U~6_ox6OQ|BcjXQGNNIqHZ>XJyWq4uS6 zMkKjk+pqa5#9QbP5DqpqUL8HGEARjR%s$28Mp>gUqtALnqt8=bU8h#EZ`Sn&)tR8e zM|5AUEm@DIiUlmj+X?nfmR|Q2lGe@nFrhEzS(x)##)nIiQRBXtNky=X!Cvgy0h^bM z`d>PmeT4ZbidjV24Qi71?v;SP3`t+guMn)2RoQW5;|ER1^qa-k*O-Mbj=%-bmb}0X z;n1Efr6EaiC(#Q5Z$ceT$D|aelM13AZ&(Nh=IPdpwpcf7j^&U?H^Hf3*C*dc+lX&R zq=96I5sMb{`%xJ)9W3Uad>J*D%C~^9XDM@&PqEP=Y>s@|6AEz6Ge++H(L zn4f4!n4!r~nNa|088%otUS$91br3@9o>kdXRj306>dAdCb<-GBt$)*Q|4l|DYMUYP zfbyK-#xa2J-eUJ_&VW+*5`V|~Xa-IeSF4$}K8sg?aRTeA#_iNma|4_otlN&6j@28w zC((11l*X1s&tYj88@(>Wx4qQU2ug`c7@F0lmEy+Nx9xj3zNUO$8pS6a8I|<}+&gWL zoUAyGZh>4K#u=JjvN-~ELea-*#osYsu{uQWzJBL{E{9tdB(_N->r+`&Znm-Y|<(r z69-;@`%9H0^BG-OfxMe4R+A6?zB-&rJsp8$Fjxn1Jt?v)i)L$(MP%A0i)^wrX@G}h z&{X+qEJIh!w~=$dQ5sGhAtwpqVO@O#G)q+eYJeuifQd)c6PQ2%-ZaKLT;$XHkk`zPssoVP zK$xb8f=NA&XJ1T94l&#}`&h*ubvkC^iRC+HdQ+q&`uKYcnBpJQBdK)!l-9#Tj8c7phvN1u(ZlLcnuLcem2qo`n&@wb{axfA4y7GF z#Y?WDoK?4MNH0+*cgKH}_7}fZ&!KF9zpmgU>)W0!@sBec8+ei}9ZDD3d!Y?OnSQ%3 zmSo-AvlZcswdoRlv1G`;94cBplwF`N7JG^;&lYdbR)&wBuO+mRY(@BJRZ+b`pTgsg zQr3kJ*7KWsTIDX(SH5R1;=YlZ+%9gpznc3{+upyV<^CG(LulO}(h_G;uHDJ1x}QDQ z{-*Z#IpK};0-s9L;#TO2^tr{YYIrMT-Rz}A#8J7kIwKtjUmF92es*;!iYPJ;%u!@h zv;rP9vWSs9eel$G3}LLr^2QKt46Gq05EWcW&HL7Ix|t?JO)k@yqK@Oj&|+3!>6bu~ zY@<;2?OB62v*!(^jZlvU?{Pn~5;K1{rDw|NnxU+08DC<5*Vy0iO0)QMO{jNzN%+1T z5`ltg&1Y8h)=*ZnGMlYyZG{a3!VzwVSv|!rp?|6TnxWJxTQqHmPKF}=L+PNd%RFDN z&X#S@0@G&CO;_sUl|yn{fmThv4h@3;7zmez(ymC?>4SAc>2vIZCcC-u7rK8ayWD>= zlwCTf)uC}|Ej$X8$tv#7_M+Qy-K{v55FxNy`bDz95{_7iU8_y=z7a|{(`p+_xc3}O zydV?~0=7Nd;D2Q=f+ZNDFI0}{3&T5Nj+7C*G+jNEEw$1vw!f?GZ(y93{$Cv`nO+<+ zSsD^WyE})nPAe#IMCku!Q(CL+`=9ECtg?&K4P=n57W1kLn>Bd>zo8wRObUI?ncHGIGJay_eFlYNh_PZ z=S80zjEE3l3zX+}bdmoB&DW$a8sdo3jYH{@^r9j3k}|*0{$6B%n_N)z`9=PFJ`6bp zeb#L6@*o&Odjq4y;cF+HeGOG`iaX!-Y`K4)U5K1kk2(eol~xlSTl9!6Ld&v?QZcm@ zsbiy1@ASo%iAIBDNw4}nNH(PB^Yl?;4lju%hm4~T$;LZb;v|OWsM*pYFxF63NR)zQ zhYCh(%91Akpw4}F1j?j=WCb;wQYEOetT*tA>yi!zWX^P^% zKr&;U6vv8meGnY7C7ii2R9Fnn?3$_oqr*2XjP{~M>Dp(;AL?B5V!>i!D}B=*qIOoB zwSle7Jd)U0p7x1DLVL31Lyn=E{NK{c^&zAttWl_?b;f5|N8rEpp(!RvjBgOlC`qVa zb)v|baGpV&dTFYYCWC}QGn56nI+O)&9m;~P9V)mK#(oA2QrNjYfkDgy#%g%KYl+klp`hp?+N3RIRirkHcus-#-DJ=rOp|f3s=%diIFpirH^89DUASM;M z)!`w}Y-M37J5l!hqFCc5SVS(b8t7}SrbWZdB*N-}<$5I;`@|UqA7MnBU~2M_Nhq`= z@1toS9h?-JHIzP|yF&$MrN&QaKR)S^UD}OZWp5NLg~w; zpKj!YjxFY}E|)h69(l`9_(8$VA8^H6hUh;1rK0?$fjlm~Nfv+eJvI1ETb?T2|0Z*W zIlbooEzzr1DKN-?Y-~!SbW>W}dv}Vf+TOe0@M0p<=}xEJ>9IT7cDgAo+ntKtSz>pV z*`2E0VP6LCEVes|-RZGA-F7FoJKD&+iIoPG)n#|s=E|MA-RZYGQTHQRylO}1_OzS5hwJSln$mEz|WBYX3w`tQ!FtI*D+`x|MF z69AyrQ%{xeZY+rby#2r6^3c>PsoeY(~vL@Q;Ltn;iK9 zdump>A0<+0yo%kbC0B@k)W|y4LLyN+uPz+{ST_OzbK~R27Q9}rCmzv`U)*Rq@*}-l z1%0!|;-BsP(DCrhzNhTYJZi8|Lap8VT0$+}AD{KUe}{H!n$1-63 z!s_rjTGCR7lJ~5c-HG`E@%+jWn1jKmRG~%9pa!o%4vcgLam;rRC2lv(K^RqXWp81)$13?7%Kh z?Y@rjO)tJVc^jOUD_T=+V`+N#bz8S(-4ADL-;A-%=(~h{6yUr3N$5Bxz+xV}t9bW^ zyRTz)tUG@xA+pmnUCX|iT0Z)f=w|9$%O`ifM9Pgu z3RrW={f!0{CuR_yl-KJ#(T;qdoF1(`w2gPxrD^gGbG?Ga@nWdEk)+qGg=)FptUa8r zeX}fe+@?sZ(?^UCqWI*G1Va1l-FG?r==hGx47Yqk6(k|_m1nPkV5LKU3t=HvVXVbi00xBrD)Agr6ohhf$| z_esLN>A$>b%je(sxs#RcTZSL{hw(>Zfg^DA=NkR7d{?8JVC#zji&vK=2eDbaUNqp~Gxtl_CToY`TO6%HE29v0Mw4Y%Pe{XN}-!1jCl zn-Je@y4}WBSq=ziS7GNi>h>sMLMm-gjkH+}SA<1va^+2RvTKo*nzUwv zX;3A1t7Lkg%?T0XZZJRn7mSKMix?kKqsw&5CzOJ?5r>{r z1kGUmmJ^{E3II&hyqd4SnR92_>7-s&%@jom-DrLZ3{dM5ihvdDRu8NBIK-qqH&cNc zYxPo0JZJDtb!teV;P1gR-Pkgt*42U)Dv+JAE&P3rDDK;)$tImo6SrlZ%6yHSD9MM$ z(V3~ei%^04)Fc*bDTuK~yqK*Vjz;+dD8@QH)c-knEqQrn(MtP~eUg0K+2({FOZ?VT zrfYY0+XA}Ug%6=;a_Gx|q3#nLyr;(d`}I8LK2GySYIR$9(vd$x1l^T9IL?`7tGEsm zNq05ZJp_xpkgJ&RBKBvMl|v7H8yu6Bvh$ql1*!YJ+|zz3hmF+KH-xcQg_%r_R56rR!vbH=^|vmj{o&_&M!-=SQ0WR51?}LRZjD0t0sfE zr&SZBi^L8JjkxY>SU`_HHMZ^=i)TDLur(;y zdpu0^R~y;`u#YJq%mQN{+9Me%u`3yB=0#ItaYCe2E~g?$Y&mvfG>DyQri%D+qsGS# zm^7uk*@Ip}zH7WoDMM4)yr_jLF?De07~Z}(2_rxP&AB&cK*!A= z{E=bvM@ShR+%sCD5Cv3XT0vb9)PQK+Mid7`YpBXGJ%XsGYU>aMToA+%QCzB0bE*^r z0t~sI@0@G@9+K=hJaYO-JfgjR`?1zsbIsS9Yp%IoWNiu_Bwm|UWR^3E>VQlW!rOSp z(6ni2n0`KA{E@bU=5qG@-O*LqH8KJWCgHxE4d`tRWUkRzXaK64?_%f)SI@P%R4cv6 z#&Ystj5Vec`Izb#d=+j_)o-iMRnqq~=B~B9(JwKB&nK{z`ULih2YmLLqHuUu-3R1L0g&B(VdVqbO=8=!iCwz-LwRM5*e7R4pG9 zH4hOUr7rQ-OSn@ceAFtGc8d3?_b(CD<<7piSaB#x<0mxGs(e}0!45O|xu_TmU|Um5 z*?NM~Ugovm#v9t`_6zZiLKac_ylnG$&AWYisa|k_UVr{uks48?sz%Heu9oR>_InjY}R!sitg@^#(Ut$%% zi#=nX;RU6CI>aH%Q&uK=nS3w{ZMwgMN;%5U%A6qr11JeDsty&TJ%tFByc_HHCqE(` zj4WqRrpvYTcH^$%HC%|Tyow7TO#ocKii9q2s)PI>W!4B zXBCwF2>=sP*lF8dnYfhLEhO;hB<`&<@BRvvM_KVeR(xqsPd4)8sVJGb$y{J$SM?jb z0PYtrZTekRryijLXTU&q^7p1GE~p4k3l*A`2tC=z;1rK^ELt{kRJ(-kT3sN0=-*tbJx>}G8|_g_ITgIu%0w_~Vj@4A?L=u zci*>n@SZmh4UddX4c>h(+rV)Zu-gXl%luTRonun4A>I@3k?5Kumj)8I(rJPlnZUG7 zb&huvMlYDUIe)s~72H?eU%e#%@IJgZc&rPZZS5}ePL}-3*^+;Gs>GSW)G$|K${JHc zHuPAYHSg5lkU_&T=}mtxFE#S)O~X_E^z>Z*g(8u&5*AAlz|a3LE%lZn4j^HF5Xo6% z8!7^xxV1xuV8z@vO8_5%5!CM$kyfay>NeE|+gB*55Wa%mnB7TXNjmX|r zTw>5wCaYI*F_e`iYatd^brz8X)>Vw+HJWqk)|d^|k)k#~U<&b=z;*JqgvaCd_-Ovv zNXoX@a+XgqdE!5b+{SS{Vn9Q0M^O!x2a`51x^} z|Tbo1df6I=Pl^4K1^4FJ1^+LAv*00p1I+=9*hHzdqsb2prO_;95L0`kv zLt$UV#y?u1jZOaZ-&SoMv@Zbpj{W5r1T2;$zCERSr61 zPGuQG5*~iiuIrZ*Sd$pmaW=!@fKS4n+7}KcMfNC!Y?MP7I|3%z$s!en)gx4=ELkAN zOny@&E7OcHMv)|mv!O^H#yQnK->8NfhAm?>It??>wsl&i3$!Xq0JBC3bTQKU4PA^h zg*w5C52l_CH#LZgFfp*4Z(#lfZ&PV8Ikc-`D2;Q66ZZ(NOg``mvCF(Hr8jY=l~u$h zV%i0DA~I9}{mpyt{WfayzUx(o8iX{{A$T{SCj-#r!!w{K0?`gv@jX@qv0N)ieMA#oW7&RfL<^Ome<6$E;BR z!UYCGb+>WU93_>a$)+KJfw;)Yuv%$gkC(7wZo>Z-9=BKt()jN%EZKFe#MIDujNg@)R_yu{X1J6eVNiy z)Kx-!AS-cGl(!h7;U35 zJAR3GG(YeIH6+!U=NihgVZGyKwbWBUkBK@qb_vj;sg@HG*n(MCREtUYPB!+kQ;s`` zZKfQsSD1%&GSY0@?o?9NojmWiA)KH->`*w-(wbc*ZAu;`Hi+5SPQob;3X@GZNF$}1 zVT?|Z4-4+x(Cp^Nw3<9}8@G4vPfou;wM@c2N-0cH2MM#Sv|>Na=pOq;c`o@D?$#)c zu_8ZXTBd2>eTK*Co7V&qZ>&DjgBk}8XYSDjO3$dv;pS}yZOXZz=X-9 zMo?(g2*wEQI_b(ht=pgCSn!(qsBPD%sRn&ZY6eFqEz&YXVFXT(!2t6Jv@-HS=HF8H zek=qAvYdSCxtasv$oe!Y{#w2jbBYGip^+8kPv}kuka=yq?MbtCZE`-m8YFd z0k~XKTSFejEh=7%8l)}clH3mMI{l}g3s~IFg#*h{BC}=(`H!g{N%LS7B@kUNn?0&2 z%lWc7mNM&sTnk(2#h<#aw1>Z&ZUMAj>_N0|mn_^>zl418b@LA>6&_MdH~seq=x0hk z-%9e~7u7Z<->ua+&1~ZX+2&uZl`T~)FL!3`2VTFQYSVBFj{Fsn@H(mxN#lO;pWHLM z0-PQI$(vYcPdDAm=~!x*zTw|gGBQI%S|)E-KQMG8@Bd}s!D;i=tHof%MgUyaM`g)_ zxL2btFiDoL?GaCtCtj^ZY%?|yP~=C%U#uk%@ex#Dv}-I+hC{O@s1E`WWoDm?lJBnx z76z(_Ge=n#;j+n->vW`@NQr@n42uiZaI^n-%LhL zSCr@v55vO2CQnw6v3@>nvrzQjG_ z8$9=MnG|@k!06S8e3xADn(B3cm4r$Tzk(~~2yZ1{+wNt(ntbdgc2u(jrBUGwNVe8~ z*rX0;K$2noLsn)tbK9;kr+~95yJW&bkh!CGq*rxCY1kA6-;CxOGOjfjwlFo))S6Gs zbMlU1)9f9Cp~%U5#Oxb)YaK4dGG`Qs7W|Gu?qD<}f8E1$O=}u1hCYAlZwVwy{@^t| zxK<$$RZlcVTr23h7$={372b_PBl&z&jmbL{3}mCJm(>%ceUzy~2Vd(&_4_s6y<5F^ zx6m}Hx05ff&jz(*8{vKco%oY2ucL50E?=B&ueC&sMBLRAF^=v6+pMW5Wk5^?K?Bpa zVGGWMa)-9^ByC%sh|vje#W$W)aj@l^dQQbIx^Kkj*&8MHmBvxa2LgcP!Tc-TnIU^vSdeikfV|UQ)&{P71C%g zHnCV9GsQxmY);(tj#90*zQjyNHT*Mr?BGM3<#e3i%B;5hJ$MH=mYtd|8lkB>(pU}O zNj<;A(y)@L4{;UA-^W$ja+oX9D|?jdHm>I)&%V6Gbt8FLy7tD^8i+BCW>=N>pe0DD z6-u6e6k>(Ietz%F`tK5E!wIFHdfQm*XD(UU-7kb;|`YM$x%s~!2r<3`TdmxnyA_9Q+89{OEyIs<-s# z_3D3^SHCt?&*EVZI^a3U2X9N)5;4+-#lT4=nmMnb-jko@z`*v^z}8U{4X{6PLjc=O zWCU!Kyn;h6Q@tCAvsr^~R=ot%B-DHFh^0$g1zzLhI=oNh@RBUt(2?u|8SB$6s`nBi zU=nc==f^D2J8-0)3)}mVb@KIx7Xj@P+^15IWitor$}wBF5KF8?)sFB*-BN zcBM(=D(}p&uH45Hj%-5^9##PjFvvC6080h#jhdGo%qmSHWICFQ06Uwg*xhR&>&bia zC;0X8goiYV#gHb^aL9zgnfdU291{sMhZA`OuKZ(UcgWdjjuw#`MI{XcCekFvLB;^8 z2^m*}EcNjKtH2!j^kjy&y%y|Um8glo)3{T=bD3BT--^-!+X-^~I7QNIY3w|Q6EO?i zohL`0t~}*;QyoKzv+G>m+jZes5~vrAO973xBY!xtqS>){TrI> zM4k}2%5ahpik@d+;~$#O-qc!jo(4>(9Z@^^6jwu=7;ROwi4%D86nMj&!33>#a_x?d zA`y1YT_G5p{w~LYTw=mPU3E;yPy%#?r7Bx>y$uyf`i0S&Omq376CHKkf)|{Z9pKrd z*?a*%;Ac5=D%+T69zx9xex4g!b@(~UR{YkXRGh^+rwK)c87{ME8-_^}F&bn?IVU%h z;*x#c5(PyDnOrdn!}YhFFYSmZ401`}(6B^~oS6XyR<#S=Q_y;-nooe+5}(f(7)TPl zNGf#Wh_&iDgyz&`PzCD%IP6PCA~KRXsMx+`;-hTwB%n?^X)W)hHBNYU=;N}VVt<`| zIQ)J~n7UFLFotA2ligO|_1%UXh1&=p(rw5}`<&+Cc`JEbd=wz&cW9eiSC22-_= z>P3EhY_2igC|e@_QL`q?3R@{BUwWZ3fZ1pyzkiD}FKDoP=ivxF%Q>PIV3Nz_0Cxs} z0n`Ad1Lp%+#t{H(gv*Kny%6B5!K&}*he;jD#doLGB8UI7OUNa>6gYL^G^ zW(yj5dO1m$3}N028;!3&uLjPzE0$}^4E6Ei|Ck@ij6u%d- zslIk=P~b2|ya$>|s42GyR@NdD{8HA7f?{9!LYk0zUmaSLZm`MTd0LgRc6W+qf0d8% z)zRAtrjW=LG5r=A=gTT@wDlDsQbpER26;{~>e&_DN3owg_p1yD5i91-8LOa?0isYxENR_)H&ZJe~ z$6VpM=n54F0CRVACB-Y0pgc}5QPT8S-V>a>=>~HL%6oDRzpxCh;sSZ~he5EDTd`bN z%tVAKQKU=4VlWF@6@g~LF=LefYf=gfoWX)je=I`4Lij(le9H9P?EK?@>2|)E1|_wN z<_I$krmEZdfEmU<46tPyCD;8xZF(P3M3vI}AFm1!Aqf++w)gH=Y9#xyb!^tnlYDfU z(8a8%hG%@;sN*k9b)O^utsYYk5zE>&RiO^{dd1Zml6B^jSdk&yvE5f}U#L!t3ytbz zMqFr~6$Hva^v8rqe3J1~z{ms<7?UxqmqI?5bG1!9p;}W(4+Q9{%m`UtiEF7tX`62d z_Cx7OULjJij-pz-s?(2wD6UmQJKQ{~oBaL=SCXg}s+aRoR#?_O>vUsu5UI@ml6%(? zd5${2np$*9AjJVH+8wFRl+&7YMNXL|%3c$*L|I9eB`S3=sH+6OuB>C3UO|1BB@5v% zNnM2TYBzO3%7J`~}vIYmKeoYHm?PkZu*J2kCvar@7&^d}6O zQj@MqaBLlHHDMsQV}cTbo6x9$dzm_nkP(rx3eU!>*GwlL`w7T#f>}w^>`;Q2c1tZB zLnnEMIbn$@VI(gKu^h4H4cIRg$z8`mcF!avSJcF%j=g;BhC0bJEdf%Suv{*m z49;0>kV-cAMXaV?|JqhP8()8%uN^cecx)=?3oNT_l5Q;BOy3!)DdB*TJB}T0I6!tm zR)mwtuIe%OkQSq}6MqV*96}~g!Lrv@0-U{3db#>T=eAZar|aP(i3folpFpds=&dJcqZYmkMSA z8h`dAbtb~XF($%4r@ai$HP;nR3KH?m?&u2!665z=kRnm@cekcE5U%DO5kJKN-f`mR zG)7y7eC{qSI~vNSV{;PnE&3hZAsNUBXyQ|nNe4}dLcL<6P<0QeyP@9?-iFzjlWO2T zJB<=ghObL@uhGI~aMhRqVGNDS;I`GcjNMASbn#qPbS^VXwjwT*z_D%x zE|bW#i4knOywey;A_Te!yUEj2GMi4svWTHge1U*b|ImD+p{($pu~1&1Jg&01l51`| zaF~`%CxwDqaf~9#rgT>!VJupxjR|O1N)(!SBNyb&o#rQyv)!gz%i!g%-mN=!G?7p} zE#4j(f4Lt9t(zD^@*61L#ITXyV0NAaH;vkCF@1t-1nju)1uu?5hGdd``Imw`E(Cv^ zQ3MV!nd9K%_E;*=g+^*;Qki4!^EX)ItPa{Vl(h3ZF+xOF=kv4CyQEr3nQTeDuCGTq zMCR5@;X9ms26?R9f#2+Z=G={dpj`0h_ci7(T+q>Y^l3X9U(29FIJf&S-vL_WXvC*w zjz)OU9E}i(IU0qVhk349Fu~5|fMk@bo0-LQi^(-oS~_d|LxHSxG|r#j(FnJToT7_x zG;(T!rnzDAsHtW6mOeo??JbVR+gCao^?mMWjKVkS2)cl2uDg7wQ@9WVLvWj zfQ{7@C*~Hb7mGj+%oUEtdcDn##@my+qYfMAdc@6vLf}`<@)g6uX znwuSswAuUg?+tbZyO zPr5Fs3Z}^|u0`&fLC1Zmn(TtE#gS#M#gT^Fh`Ex^pL7n85`9PhY#@5)Q#lvU-Phz? zEZfXwb?0I^%wJoai%7`}xfjh~Hp(KvKwX@(UK~UBn@zt*(6-Ko%7|EM<$m2U=3fzV z5hvf0Zw5=l+>(?vso=*cVSp_;JY!;U=9}1Q`NYDUN~UJ!3pMnIt3iDtL4SzPHGv!9 z+5}wP^;q_%G{GqIKTXZ+xX`jWABitCjf=70+N8LN@k)O4n&7XX{ndOwxKe<@d_QdG zHA@_qin&sNbY8Gw>NI>m@_Seo`yN|7IFCEi2C5k5MCKjBmx$Ri4-~}l#%BL%@xh%O zAN_BJQn}w`;pdRr3RUhs*4{M3VYB;~pqLXv8K}0cMvK>nY0S@(EO?+ zg{1BUMHv~P;hIi6ahM@=Z#m~Wpg*?mJ1<>>&!dH7G8HZl2oSdZd5?!lwpa$THKA3Dg)gyU9rb8 z{QdiMEkZ*!Rc>b zv&F%<(H)G;b^3XRwXmHFWR!+M2x8=RVyIf&jg_C+-Kh0QB{Iu>y)lqjhf^IV`i|)v4H+g0hy_&l* zEG6REMDjO*bkXicdFno)ZsBgkfmb*dBL}O&-FT^o^H@)bl!}uNfki<_?g*>_+>KR- z@=~o1;RZy5n1o6bxf?l8#r$Q7+>Hc_SUcPtS9|>aBd$;BZp=r=rneQj8{5c|jK^i% zJT4RmsK`Ao)n)F+OV8tO#9A5?3@rATBLvH0HAhIB31%W_b9ZBB!`(#^7j-ZiwvXbB?1SJG_RHFiA$lb^Y)!mIJnD$kh-Hk^frJvN@ zc=YMG8+rKx?nb=e%w9-Xbsl#kU!T|Ai0;p1U7Nd+kvc9MAmeefQY8j4g zXPVrNh)WYS-_)X5-Q7sB#oc&9eLzW@oC0N2%iN7{uj%ZDyU|Q&$)9iDDoV2MVJ7rJ zzvgbtNi}dE?nVwGkUG#d2sxrCp3mI~SB(iE#?ZJ7Zd;AZ+^K)@To&AoIQ8*lwzwMu zmq}zcxf@$L-Ry1*8bIDUNi}yj&IBt%?nce1tb>$u*Q4BxW4e#>lG`!29m;xf#N3Tm zl;@F*Ji05-BZ&#r#(2Zscqet#bbg4u1$N{)+VKgp7k~UEAuseNZ{LZt!Mqe2YZtMThzQ#He{RFLWW%Mgr2-F+6vQ%?B?Y zJ@xZx>@fQ``VKq7V15m6u|4$~?CJj(o@S?sDv7vd6o$#~U|;`TnM9UaB3zybg}TByd| z8+mCU`Ve>RfNs|23R%qpegZ=D=Id-%AgB`*X=u4tNFKG^A}6UwZ_O4IhJ8tB)Naic zlCKV|Xx2kl8*K}mOwre>nHI9?2iYlS(NrJk4=`Tn`6cv0jl4k{P+5g}14y(jD8SGP z{)Mqo=w9D6QaN4>Tf&P*$RggeA2C8C(#hD3vtop*1aZbOi9H(=4I0u!^=nAA(cW6q2>LzZbmlLs6?!&nxy9=$L%#VK)N9GniXU^eE{JxV zEb85dF3I)QglQJo-$1%mVcJHJwTzWj`6#!dfe#5n6p7Ob3q&+@5vb_wH^>4EQD1MW zl3gm^QxtUwb45k#CZFQ~qyb2!PR1fX#h`Qd(Z*fYx(gZuWiM#TJKz{8C^kALU$KGU z8`m~g+eg5U36?Gymylk<+t>2d+x9vK3LgEwe=iO96WElq0Cl_x_7&iKUEJSWEEh<& zoVF=b9$TWEgOaz9W~Jpbo`Y%DdH9~JZz3T%0Tm*`{#T7SadZ|`KPJ?{;0lz}ViRk0 zIhzYV|L_uh+0-dw<0Mz?`%#?v8Y9&;MtLrj6-h#bkkv~Fl*z_iM{>{2Catnj%1c*jO{@gN@{quy)d+8co?VdR z6*vYQl71jxd}w@L2%#v-prIVgMyKRKDP|uf&&81seIZId<#{f;$^B2KRuMgGbiY}0 zLiB_za?^=^MAbP}kAU6JT^2f9Cb)?2a{6YQIbl^OkUZQxzXGlQvmjBvfL2*#yPWRSxmQLcM@7w=tT!(ysTwKnAw&Jvh|tU=c(Hz!nCDb z62o}A=d4{NUgWpp1k_{gePJgzc@CJKCZ8NZ~E2_J=9AA_12no_ZDbdr~WX2 zsH!RPl_XomKO^V90hRo3`&Qq*j1*v8ZftyqR7Xg5=m-zn@&GpX95AT)Oz*zLTSRHn zlv;9wxxHs&-h;RA(kn)8;)srYRbI2Dt3TeCDw1%YJrBHt=xf_Y2s0;j7~?>zBA*=9 zEKvy6?1!Ok(S!`G_R`%M7MT)Fv$M(B`^CiE@XEE|B&hVXU7xmMk|i1us6w2fR;$rW zw>Ynn0eAoUm_KvvF6>ypVi_F6Rj!b_=(Jz0|zq^Y@^}u6+>XUCt27`zs2qWYG<2 zr#6tfv8#KmGv1Jv{oZ(x?WGjs_6FS(YVZFgl(7tjs<8n=hM7={r2hb?~_ zZuCwRYP}6p6*IlhjM&H{ts>3iNgJ2;?TWj(^l}mi_6cE|tG7guKW4t^=U{*XxWc8v z(A;yg>?)mH7h#F(tWE6s2m@CyLG8Mk@9V9j*+BllRuR3}+EgWSPu&!hONKr|;W2%4 zlUwQRZ2$n@R4{;_DOlSD<_bcErf>z$;H6=J6DkK^Bz`OL5buO3R2zA2al_FD2RIez z17ZkDchyRmRT}>>0|!kle2#`6k7F1ZQ6NNV9Uvz+847G* zC}Pvtcu{1%)u>h)-Er-+>Rg{=3M++((W1Lye8?Vt9)v9OT`fzsn^mD*a<~y}I<60M z4-1gs#L)>|PY)`M{r&%`hH0P-ib8-ROmrc_0SfhAX`IJ39=y+ACP&FPf=>x~u;R%I z$=0Y18mqTMbE>>wPP6{_HQJ+5#OtQr#ZO%M%m7ewdN@VzF70brgvl(x4tA9 z#A}w!aQbJH%#g(Jw#Qg;&`M^gsDC9hWLp0dB{S@nfWV;5_YVArO=j3l6znW5@s z#`rT&W~h46NzW!Tyx@-GQB9Xjv;8cS86JFVQw(5H(@m2FNcNnKn8Nb4arm(f<6Hmv6AhRHG>yVIiAeY>ExUh44&e zBfOivm?T){|4Lm#HM+6-_FL^`XxehE{75yMwljT_B3a*(i%=7}^X4LKmwI)q)Hw9= z5VHk4=|_fA+S3Sy<9CI#-8=OvDIn{+ZVmf{To$po6yL8T0`^9pZ;;6%n@zFG^2#kV zj=N#B?B#oI&{x{!tt-{>3FlYl`3C70dtgv9ICQjix0ktQv8MEfGAQj`_7uqp)yJ0N z4#Hk?z(X8f{?mfxo=!r+R;oa5=Do-h3gT5$!w#A!6f}4=gYRIQ*u^Il?Degt^@M_0 z!}IW&?-}NbHTB?I3K{W+{*tE6AE^V0G^qIf@%t;QdXTGKXVBM zTUuQib@v}Fp`g$aqVArFgn}XJ?*CXqK~o2Vcu*j`rMm8|@9+(AZKNc=n1q65gap!` z>c~^rRNY1I@O^p-1wWcc-EEaJU6D|*r@q6tPdj|eA)#Pjb3#FG{*(y?%N#jWPbf(7 zsS^q^+m!!N>R?b;reV4q4Ot6C>TDn@Cx=|UTi|ao-7Ip1$%6VZ&O0S&SeP&JI}kr zw==0TQ66>IDIW}0Tq>>!JAB16O*?#_OTT5JKY9Lyf}KBALcu3J>MkS{>@k}$cRWI> zw!^nb@;F8SZ$iGq*NXWL-{o8;A7J1%<1)ByH7@gnf)~$aVTZ4|e_Im@1}=N%6AEHG zSn5D+>wVe@1vOW1-r)-&*ql_`u(9|hw8*Ss`2a=mVDx95P_S-|HK9w4=pgsAW&*|n|aX(&fOW!wL zbeG$L-;#_zh4+oo)2U#3YYp4zFJaSNdl78eKe=k-Jl;Zxx=O1>S_1$$j-hhU3Oiy> z_p^MV6gk^*PK-ryeMn6J$lI7&SclYSW`e4L`mVKk?X~2!E@T{D$T!3#M*3;~c3g$R zj1D0qIwSe$t^7_*x20Y}wQUNp<}mNc2(-x*y7niI)!(BJ0J7*M3+j+4nc{##osF0c)nBlZQr`cLZs9tmBgc7#G$WkFtLrp#+3a5) z#{W?AU1-_6!mCRE|4D663lErob1NC^&kp(<;vsa%f}*%&dLrhmdJrEPXjI%I7jCgp zA2W8tm!0KECDyUG*WtF3hsL9x&R z2<6N{DC3jPK`5!{AXrf#T;J0s8D#IMad;(f+=|{f3v@OZ*1AZav3(K-m^+AP?1OvV z=hiBUs0a=FB^7wN1n#xs9Qho6iw>?!MXhjnFM&Qg^L-9x%E#H>~sYrLhuX8Ck< z_R?oxp@m_r0r~hN)g7@wVJT1nJFnhOzP+92)czVSRDK&51p2L9sQMPw;yn@kS|IuM z%Q+$pjLel!VXaZqF8Zl3l;uWoeHg_AVpDrL6rZSde&7ls>e%bWKZrd z<1VdCn1D(izOo)2lF{|-pPqd3NzSt^WQX+m%ZMBI?B}gOy9+M&c+VC zxA@3zeF4jvkl^rd;t_K*ueiYHCPPD2CPae(LUbBRPwNVv=DCW7_)B*bj|e_Vh{5S@ z4_|3IZAWpFC3Ov&gnCkzHud=i&VbeD#Q*S@1(@WES&Z-$XoPaGnC=>hW~TH$w-0kW zB(vd4GMjq-@EO%a8{>MDk>dOZ{K>AIru7Vkc9h=MwbGFyN@fFQF;3DqRm=R?#Q&R% z20*T944h?(=D4+Bn#RtgbWJm5cs5NlV@1<6v!*3mHO)+Hss?~NTXhXTn{~|s)ntk- zFlEzc%4R}sQ$*X0#{#bLZ*^r;h@v?1|8zzcG--pwUrCzrx}?d^3p#@qI;Dn#7Min# z7g}|yn%ASCe|Y3#(}X+vT}WRHdgm;8O13!z=_RRuJ=UvwDH*=hj5L*<2BBUHEcOoR zt+S%a_5;0bh0e}WXD8{AAq|VdDn*^0F^*W{OUd=9)=dtU>w7x4kdF0x2;7b!S>ZE1 z&c4MxJiU_H|Ckr!#@%A}_xart*@eTqWm6{hSq0x$xZCFMX73iWONUtl-{vu)l6eDG zjI$r)cfEnOY}7u2U+p8cWE!jh^mS$SoxE5y0PO|Sf&OkelSZ+-mF#PIvCaBrciXcw z`Q47}@x0jCc%iFNL$@hJ`>e+mYW5xj(UojuADQYbWa?tjqN>%3MT5YKC9BnnQj_6@ ziuJ+nwl&^uHzeEL4nwCEJ57(5v-cVVIc-%74I0lW%*mosDOD;?7Rb~Cy``v9i7Q4W zB8fI36_d6NiU@WCDW+97-fkyrrxN=~bLeQN6w~8QDM7o7eu8!vrC8A^#fnZTR&+|S zqEm|eS4Jz=j9U(oA=69&Z^nvFFIIGV5wjV^*r#q#5bz5Ch&Yj&sK$zMCaSTbQ;ij! zYOLr~V@0PLD>~I!(W%CYPBm6^s~03Kw12jY|=_;j7#xogyJBbsa&gnXQEG8Kpv{fjXosQ}z*E3D7;LE2hh^ zuDE4}bmfeIL9Td1wxk=-;F^vWim z#PG%DbaQwG9V%6g9n!&K6~X;mYaJXb<&7bLx7Id4peQ5L;hXoS!w=M0OF5-aq+066 znw0mqU#_`^;Ilms3J;a7Lg=2`Tz{fT5496J#MlR4A1JVNt)ReGY(N3AM}~rVT|ogc zNrnO~?WS~_h#gXD*?xmKrH@nkP3IL1KU#aReFkZ&qk%kg*ro@7+H`ip7@EWUuLFvqy;d4D&*eQzq)(LhX+@}K? zqc39}?kGZ+8gsN5KcL5LvLPXqypn}wl~^YCRVoo}$+WaewhC>KKjdzZ{G%%IBNz=5 zOWWS4GD82qrshMZXzss-f#f?7l@M@FzF_#BrJbBJ@p zLgmf`{t|-_NSh#=L&&%t?6iel2gMq6=q|YuWEgMFk^{X(pJkAW*V>lR{Y5vx^~o7b zF-vl5pi{(XRFA^ji~?^%*Wk1Q+-Pt?T&h_$)1Vf%43`7$)tt0z7%wwGz zh(5-_i)QdY?fzvRm%t4B;(N&+5eMjd2xCt0mQ2QA1{z8F(B-y9mnr65W?PHT-Tc$_ z{%L~g*+&0Y@3W{cg`f!N1=2nC|PiC_bhUy%DqxzhA%4{OKN-+>7jUrcFzVH7=VN)CZ#J zkGwk65f1IynYUQr1#>REEq5;9ejpxNN!r_0kb(=&fWkhTYg!nzi+)YFHJSA$ea5XO zafQ)h%GvNXwU+?aWE5IboZ(;8;|wR<>By5QNOk$4$x|R!%lM#b+LN0PM4!&@ab~wp zLpAG0#>9CJO^#A}_*0!?^3l@%?8MWKFg!@Jk}bnr2SdhG#TZ(iGjGdgG_`%=F50N{KVus`W%7swHPR?A7t|BV)Kc~7k7|} zwWy@n;Utskpg(bxUEm}W_Gv1tOHq4Iags@+em}~D`dKJ2FD7RY_h2>InaS%oGdT%I zjzDG?ag<4;Vn54-itTV?0JpPDHv1VVmsBs~EE7MB8TMWS#7}XSNuy#v%!G>VkQ6Gm z!%Q}$TNO>Tk%L#(;Qk1QnVcuk5J794_o*JuXyH%xY_|?mhDd;%CVYBE}R-{30BnH)R>KyS$Z)4 z5*-~zhI)(G{gS72`ViN;&*`9U0*cl+6q={w5_DK_xrp#H(TI1Yv_J9Cys2CSN-QGB zi#A^B@uwS4hDtcdX@_Y|%9etr@I3lmlCQOt9~6xC5zupStxqed=53#6w~?VJ^HTy!f>F}x5F#2A!v z$QsU4Wj)S&6z&>PW0Z}uel#UODUVS$pebwdRz{lOIH@ae$qdX6mU8lP-)EU6rR~1_pjJvD_EOZA*Da7N z&oQRAZQxNwNH%PJY#+~xY?NC{esFyN4DK+%%INe?OM;ztF}p5TJAIc~nV(QF#!|$; z3mzsy-*hULPW8q{;cP5HFBbNm)pu)!?wL@iFs1Q*SZbV38@IZgV1eGmk%W$|($`5+ zBdU?lz#rQl4VyV0MZSZgLT0(=ct=YVOS-aRaaLEdaxa=K3(J`!-Im>5?0om-Vv!2C zsOaEgFvq@OiI@tF2#)%x#ahp<$+o-Jhfl<&sk%VZ1U{RGr@Qi}_U+g0oMH_%jFEiz zwN zi#sc15@Y4~rD^@F5ccaNZ~L!!KBOft{;ZHyk0#Fb9c#5ZBLus^jwlB9)mvruh^(vm z5;GQIf%tj*L9-xtPnj!AM!ri zyv0Zvn?4PgY$^%^Ta&qLhYG)u3+ctlj-q3PmCu~R4qwNGCAT}cfa~pCKz+&uNu*_9 zMo&cvNmk7%Mh_QvMfqtW9O;msCPHk?WdZB9<|K2Vb6cmFQ z3Bpa#!bmE9d^tw&_~{_chY?F#p8F|c2OFVW;LJpy(Rt%^5CmSWei$(}kS8Ai~WYebf_T2bI;}0*4Vxig|UQy$PhD1pJuA(xRwsGA$L2=P--#lVSQPL5nDTo9n?*Je}pTizZRe7VZ>#ffyH6OrN&{zbb=n}Fk*A3a2T=a zK_sKOLx^fJcL?-qjDm@^Ajzl*Ze8&U&g%;0Pib8}jF-m_hGSAye>jXd6csxdif|MM z*oMQ1m&Fc(z2w|a7&|DvD)u_4QGqgKOff>Sh)A)6$77ZSYfT24G>@MS(lYK4(Q1bg zGu>)BjQC*bVh$q?#K6mbItZi+y24?^khL8~+-8coZRP18jj#Q55C)$vilkUIazZxs zMmOwq5JswDX`x_+117YPmGnEVhzrIJ8V9a&81eGh!AT6LF%badD9_iZPxKL#(fhb9 zfjNrS!Xi%F@OW@U27c~Z^I^m-v4aOowbt0dsiHu2{_Jcp5j{61s>cqBYpyHEIyau# z9leF3amaJ|TI%@z|C&nO0w=D8aUSiR$euBuuVrGV~Zl*?KEUe(IE7fa~WJ^T*eq0m%(lGt8iHxi!ZR2 zN9ZyHPsL>+c9859FmC;HkR~pZ$W*|Zwv8|EG@~eLrHdtWOY338c1D`{|LLDjKUorB zlx1HJ3Np$Il!sM@D@V9mZV0S}^?JBOKw0F)LC!F1_u??cL`9`Qsvkx?s>*BTlW930 zWEsTtLuxiRiHwd^(=_eZZ_1*|XU}#Vh~E<3{kA&=*=gRE3j=}&S%$XT~b@S&;4@EwFFxF^hw_q$idn>}gYRGY^R zuE=*3=Z=IG*EAyC5z`!btJ@0H8f6O@9r`O~@;jMw znhiyC1kqqbB5I>~msj%*)_VRqEl&X`lStNB z__2tZ(0XB%Ez+^I$)R29)G)5Tb?W?a?|dnW3-bI%`eY1#omYAUwy+;5?}|@bnN9fI zKT{$|Hd4SuHk%I%pG@*-$v-JhlvymKoSj34|I3XOPM7v$X-3&R*EY3qmUKoKCzO^- zwMur`%>d}@l}(Ig>y`YL@Et=pNcD|y)$eir#x6dlD{(awx(-*ESl?77IF17}XLr|F z79)DK1|GLznsC{Kbfc2>e(C0>@le}dg_Gd+iKyg*6+gXMu*xYq%5TMfPHZ7J^M|4HD3|DGf_ZEH)>7yIS)=^!%Y$7lrvD#(vIV_^IY2AV7R25hk zpkT42S}%xhH4k8K|tY#l=pkc|CG{q7J*F0Q)Gl)+z8M)sVCYW zq=&-iIes%Jj4JorK{?Y+iW;9Gy)p+KXk7HRb(=8aslmWq>z)0 zEe#pjXqFylhoD3(ZRX75h1bDY46orB>~)9)4LS3Cjl=~%@mxuit#m^k?W;r&5Tp>{ zO>_{Utc}46T?Dl(Vjiefj0or`_E52w4?6E77)t5Z2fUYLg7cYU6&f*Ev0@dAJilPTACbu~DzbucR^Aah`hDG3r7!MHVN^K8u-P?}kuiuQvtgc}5gsw2ujIJ=$v{?rTpV?BCrBKd%)y9n| zn}y|jxlX#6%BHzOIoUJ_hqAImWr+mId9W2_CwSb+b%twK(WjvtaYj6@6ei3V)het! z7HV4&qyYaa?$QrqVY<>u!*UGUaEM20eW|p=1cOS5r8`;JP;o7U*8^L3k(E(m*=`7^>Unj0rU^y z!Vih2YDxWPj-K?GR133`P@)0%}>8 zvtKhOg=3tsj7T<)*mwub$eLoEEsf{IYcvmgZd1q)!fe|E)x?*V#>`<&@9X2P=z%r) zFmJ7H6LmNs5FdjMD~h|)ZA5h#E!Aw~r%QN?E+>awNaQSBbf?{nQbyb+1eiQRvOUHJ zKa2T9;U{dUaggawz zBXbxE8dp35v!+}KX+*e#0YD)ouTGpv;ZRxj~5Z@od-mZ)RRq{MjDm4SvBR0v+U zD2G?s<`5fjnuCnpQU^H*e#U%1tn=$OdlHz)&bg9>1Y~FbK3JWqm*8Q?Q@r=^<6j=+ zNW|h8-nK7Ip;!z@M;`xjl>E-MfC_ZuGBUUx4GN3sBlQN-s&>GP$c&l^A=f`8FceHn6jg$xtYnnX8lgNZB!A+)!($hH(>) z5c@-Wc~3Z#uvBWfjxG~mxbR8o8FK^f$|9^t6qdmbml)Mb`KV8lFH$lnp;)w)Yrw1d z32~bS$2dV9$y{@O)SyYmVTi;CT?UC?n1x~RI+4R#YlBjhh3ne=H3^kklD%0tco|cM z4lmj;rky;ePp&9BG`=i%q7XH{ZBiFGMYasDYn^gX@4?o{jjA0osQ+u$9~eyV@weu6D`(8uMH%PMc;_nF7g(5vEU~t=SZo zjkLM;9^xwPJ;VLYT&2yCh8htmt}TppTeEOiS=t<-m@pNvM`1>pb}(ef^ldfey#y-I zXVy9Qa5ap{dP4$}49pBVig*a!mNP4TxI(oE@bnU8?PeiG6i)IH6Uk)_Q#swpq79QQ zTaz@|E=}-_=Sc|28pHUvoT*kGp=@D^+#jVpC739WQJx`->Od4>(DWz_PG-(S(SF@o zPw~^yevE6D{>vGOHN}oNeAw|~#ZGF$41;dBaFZ35U1oN$atKxNuBc2u_8g$P-I0LZ zkgm^?H{4ZQe_ixf8ic>W7U9mX?v4-%Les2pBma=DtW!-@*rr(4MxNS+>>8_o4ZqLv zyBDD><8@8i8@9Q1^MrtsreC-$>{mN7y_}7PUy1!13%@qebF=Kg9Ft;jV_Zmi9QBDj zYD+#Zf|y{n2LxjTXzdH|pvJ}sNZrUdD<+S;0M6{nwi~csS220mDrZUp(!|R$@v~F5 zHZ=l)SOju}Y0N0@sOkK%GZwA-x zZ%BLY(t^&qbF^YwouZ5C7=3#;S*-G$)E3|fNl=#N-bo~@P@-EKtRevgJ289 zG>c1XO!And?b(ma=#d2=ya;nY_%G?^=aX`LgpbTd(GJhSvBE%~F$jRA{TIS~4GrLD22gD$*^gc8TdAE%>-& zfA*Jda)yeKV&WAol=~f9G7%)k`GC?q@z?CF2^xPFW}6^+=c$LHOp;61#PPSG-iE$` z(*4K|Ts`x3S5ISp_!KoGu#bLcCd$(61Q*kh^hQ%>>)fzNU6h?XR;>@NQKtHu%)it` zxx8M|ZqnG;#TqGhgCX=$kw({Rlh1F_)FRVJ3K_GS^iQ?5#@G!O%{j-D5ls8#F?J(y zeRc0p9#!*>{2qx9LsSi8%6M(JdDHG_yTfe`IK*#Lo<7l%dp{#{8k*DeVsrUDiDh)+ z(?5MKzXu7U)AaE$S9y}&$5o1GjH^uazvrrOJ7gXXMvOJC+E&~tKYYB0e=Uwo83uUG zxKGKk7_-G953{RdQ2cucFEdUnp`cw0%BrmXPlD(jadVg*+4!OIJkmiiC*fNp4?L83 z`ZJ9ib>9)9><)#{mXWxo@3F(Zz3`1X0##rH>uWq0E2HcXm0rDtl-H~GAUmq32XdI# zh*s!9TUd}?LXcer{oa8rA=09cdQX0qU?2|*Zv~;-qRi{{dW;?Q21k6YkL1|tMvt*u zU%iYJS{toiIJuX4SH#%W;pMY1078d{*io;ALIZCv$+q#5ZpMwy)&Rxrt+RUJxbuYA z)oZp0^g6^IVK)+cgxzRdy#kD0y0=i>uAttU7Tt>3*AH9f?Nvt2Bkb_V77=7V>!$dxT*SM$Q=vV160#`0zzOM;Q<<3U6UHJjU`40zPUs- z@nnJeh9KR6XfcNq`&T{Ccnm~OC?lT&VK^dTaURmmk4Pxmj$p5akorRMHZxQ7sajvu zStHmp@R_`FONH9yx%H>iL2^J&(W{iZ7A+#1I<_{o47OT_MQp2fc%PPHSLv}u`-C2= z4SC*We<~Qq44);giiu(t6N9vX5yk$@_QZB;C05)rdIDToc$`H5qD$O;$&|biGbsF; zi>4T21{f)z_C*sWv`FgvK;qzq>qd{_#LAT#w0 zL~N;|vQ$Zi%BuvQ<&uI~OT|TOH%A%SdO=gKLX@6l0uL?H=-W42SQilF=n*$JQ2?=L z#+z`DV$bBKMfTfnD!Mf!2$@>2`U!?r*3uGd0J@J~VX?q~hv+hong}nsQyyY752vyxkfd43g`C1rqFGSy=v)j7SG z!>*-ZU^iSY16SWDZq5M{gHjoEC@ZHCI;RR}jYa1TcLYbpVqdfEb1WMc!6vaQhGDQS z>{?AjAPS;r(PnX*QX(df82(1%0r{(9NgrVtSiusvggjePZb|3D<#*xD-{EfGAjd8{M>3vkYlTSQaN^{81tyQUJ1jXX;;=F z8+6sEx||J2BDTRg)R(U3dfrxL1hq!hDL78-#d7E0;0V;PDZ}B4Og^D*)WEESzfTu@d`_Xk#6{fnAlxyOT3oLddqa9C5~(Og*Lv5 z3*^-w2EnueCQEaSoe9;Ta$6PFYB6>a(@?mCyI@&0#?I94U%37JljP?!Ed$i1VayiF zq(K@nc9>X=7(1+@6)|>)V;n*ZfSy4TjXFHW4pR;3W~OCZX8HLfZ7&dG*Cq?Vs$;~O zsvAn;5Mx)jzQur|TF~*T({UH(5p3N^?s+Y zn7t%?OHzr{q1>VvyK+;E-5Pv2wKi2p)oTVk#?IQ|=Cp2BcSrw=>kgoLnlW~5DJt%2 zYEhUG#Q`eX9jVTAcVxN$kW*&mZ3$K$jw@MtCMk5)%AKz0Hw#BXo=xaCgg+8PLD;Wy z*?aU)k9p86uBONG^9|}%iZG!`LyGX%Vj+*Q)7dp1{bLbK61RWXaw;ytPGPF}RQdT% ziS^Rg1dz_e>isY{2 zAiHPs5hm2yi0a!z>%_pm+Z$X&)Oa<-*g@77V^>CW7Vx7FYBz-KK`m)c6ev_)oWx`7 z7<~9Z1n)6+RM5t2GvLf(>=-Fib;$S=n6`!kWEW%=V(hxi`GbuWXD9v?P;ED>WkC#F z1_|$t(#zE!I=8iYIpZ5XGXIH4P(f6S8db{Ds0+?0h|TC*+?4oSK%HvA60hTGF?Lji-_|O&7&~GC2hhV`y9kx2?uyZj)U+mleAlQpMO=7EDIQP@8j^M5g4N zCKt;)jiDq$po;{Rw8q#Cx5U^jq6@JqL=td0t4N_t>>P{D+=nYCxaPJ4ZW45)#n@R9 zwTj!visKX$6&3MbkFk3rb<}nh@3i^1R;X8lm%9>LxshZhsOo9)qR99&e+n<7brV^O z^&2SO#ITXS!OYi=A;SHkHd{=e;Bo*v?$f|K!tC5sG)Kw^?RXM{pUW~fvV#+gTuX_! z$5OrER)W(5?C{Pd|1*!V``PE`8!XC=_vbs}K98}R-PXv@2Q1D16izlipk?u5Tq&3{ zkeG@~2o$@--Mqd9D9WZTAs*<`=1;BM;_cF%G;$A^#i?Cl6|dW*1$SaD@RfCP9U>&7 zS8tNX7Oo=8O5dhpo7yJ5Vj$4bj{Uqjwr+oRxEOr*`6imd_WjwhlHIgAYYNJ!-@s2i z#Ohy)Iv~U;G?qqP3Y!_^ft&#MNncD7Hh_Pfm6Cc3^SISD1x#jd5-Giw;pK9BGToj$ zv`;2`#ws{xmnq8sfaD#Cxncqe3T22i%9iMtS~$BF@45Hy>{`RX+6@YRUjuc$^KpyEjyKrWr^;}^J@)fH-;))jd)#WkDj zlXC=2c=s9Hb9jbrt zbFjTCVb2vw;VcM|I3){C^!{o|SpC(NdS=NeHxbHnlqV@`84@r>cxRj%t^beq@Co>s zHP_-4FtRd{{FOO0<~Czy>!eqfKJl(&D44-W3-L60NtW2ztMUoTgFbhNPf{KZ+5Xys; z=R&WwoSj=s6iXd1*&IJ}Ocbj)3U%}wQVH@43f-J2IumbwYl3(?6U5s>5O42W=i=>L5N}J% z#9Jr+h9JmS6>WBU)e6~$NYrrNra!L~(A!Y{)O#<#l6L5PD z=$*3{5O8~%1>9nvyc(-ZI9BaV!p-QaPV1^p>nd_Ws?CM6B-}jZY;jcy_x&K@md-2T z6qgnxTuC$C-js=())@;Hl4L6l&%DeVg=uq{HxkNX)8SAS`wnhu?pL9^7ipP_X7)#$NF_6|15-lcU7 z5Edx|f@viFqC6U^!>s@mNFLB)n4zLsw5G}u=rf@#fj$+=66ljM*BS!74kN;>8O8|^ znxko)a*n1k$~l@wDL28$I4_5hv2KP@xX)n}?sFK0`y58$z7FGwo$g>mJSTs6GYTj> z@wtHAY~%?dENnB)p|370iKSVxNp1Pf1|1V+It=s}t`E1%KSelIy8@yZoss9bKc8SDld2$Yo0|al?$0}4{2~1q(NQr7q}IjVOlcT+Xz~T$Jn?(`I}3n zs=+6=T$S;-CM#gqeQ~4BuryZf8l`ro?<^&1$@ zk}HH4I;j}B;B6gLP`wQhmz%bl`@004Ik)n6xLqNM6h@#8j1v8_i2s7Wiyy3h_U)+(W=rB$-O9GgyW@}z3Lq7iSX5~Q_ zEJz@MF=k*C0vI+X-8mTEIly&&;Me*L$+jtXCL$U$*(*&?zy|9^Fnljr$A7=-T5pLzX!1S<`d}lzbyv2;5W^zYyRy!{sy;S7NZb5=o z`{P@)eq_aQ-Bp^LqB5u^qgTk?HXkcvvr6ZPIoPSaO>`iDi@s$VL@}#KT2t>4~I3CvsbdS>H0mYZ|okHJPts{WNiY({MQ-lIUM%L}* zWG@BjN#tTS_lYkA8`pY*5B;?cboZ{9)1YaUIlD!k6y^6CRK11llO|$m-_{#%AN-_<4~DUsIn-| z&Z$~o!%j&NP>#&kYgWQhf@n4n| z&4?!dM6AC^MqQTNrp2_10?>`Npr?N|2sk0EzT$-Dcxq4j$aj!LIM3T6al zkqYT(iY#&Zpl~1QX!lKKC=VfdYfNHH=|#*TZAh2&Fy?i6L0}}PgKI4?k|vI_VU1P? zq7V7KfCj_xA8AZH1CpYrJwy_zW25-b#r@goKY;&^BX3!u>)t>$s_0Y^0a#;ERB3c% z`tR!@bF#W~f+w(^h)O0Ro1ImnLOZ#_8LXHcWgO2oSj*hjd<^>-sDun^5!UaB8YwM+ zjRn;v2GW(^^IQ%8A|UFlm6A7CooP%uXH{6#ShZ8En)j$d z#tVp632%}2yxi0>(&8JoR!e&^7+CJ)NP~E5HL(K@D74`jgel5th4Jd`$^u&6&hQB* zjK{}cq5Z)&dWyn?b-V4_~K#-gMh_2q^< zFicaSvj5=p>_p)x%p=3XYi7!BMzi$}Tb;yFQOjNWCHS=m#f$^wrjItU=O%4zAD1C$9takWKRalli$PgSyNE!vB#fgx~Y-+pAPGXS%} zCv6{J zBJG@!pwe>k8=%9e=nv8yF99PJs8V)-y0H=?_L5b6TK15}4|CJaS?nPS$=7z9Apl%O z&{ia5iuYO61E{G`R^$#LI(DDFW6^kf1ko{hW}_WfsJ79LH$yCf>Hgq@=9NKuCnk@0 zz!pO+tWH1(6R=`VAeH=v`h-8IgcRm{JX}`!S9ve;7gv1g)RliJ)4+6L%v?aEZHAZY zbft6WRCyW4ZTlpEIjBP5NrZm<6?`ZHkWE1#iy1f~3(IV36tgH4FpDq)PckK-WSH+# zCVBVi3ONkv3e}y$sy(ZBD4(W$PG!u7d5mO}Fz|H6#C^Ap+ zVX%N-XrH(_qHsjG!$A1G=Sxl(GxpEZ4eOpHliefUX(a~}g9wgJ$6ZYV%g}Nj6cDVA z0V1X`6d*=zDk0)kmvU5~a9U77l9L=2a6}yyq+)A9MFSb_KM^vR0`Z|{ek~|y2L*P| zQ55BpiaM6`9)meZE7qn*$8)!Nz{)was|^_Aq*1j|lab9HBXPJ2C)rG)q7;^44~WJP z5m~pU3PK4t;H!@0K_?gdrf7kdr}8OT*Kc*I=(d#at|9KR>)L<`8OBlf+%#mc*d(88r`vwys9#ODcRl z){b#~;oZ(V!=0ySRC}G{yUbv<4uT{6;f7DcFI;5!r6OWZW6}x zVzFw#HNbMRmF}{Ml55>$@(OP6l*`M)PJHUgYsg?1yq?mUZr*7UfLALG*&HMPIRC3q zkPqGH$J{E`x+XZer+_`mUcJ4x{4Oubbs~2RP7quO6tw^I{V&is*UNlM$2?$EO9|fd zV#*u%0a!Z1S5)i|TtzYUxpo~0D6QeAp)R5$p!8Hy9f+)-=71ZbYTRiG54@*8UgP0` z6MeqR*CY2@r{HgDSo0TO(xT`>)tqu|u>}=oi>&YB$V;>qs#=1sKRs=0%vOTGOR2vH&)wpcZPs) zayS%|Ki{EQvJ4#U`-rrX@-ZsVKIjQuwI@OO~7MAZCN^A~_2Z{R_bdKT@c% zygc7cH&FY7EHkH->!N#frKWpz1(8F#^4_qnd_AHo&J+Guk^*eatu;RXGj3}l+D8(t09QN7A1hjr!UQC$&k<7*{A z??ACzs}JioP@J&Gk|}D3)oOt`%P*>$_FvbK?gf{z|B#oKARCMKJ#M&U+#hBbUeAbu z=i_Ug1ZD!>r)?ZaBOAtLigBp315+(wL_Y0GK{OO+^UTZJJou68CRSVxEbAt|)&6(;%y8E8-BO@f;z` ztRVTHzla;ie`}_;32DwkyXJme>hM*Pdv5`oxSJkc+p|`0G0)G={3u_(KQfz#NnD^I zc4NzxLMZO;Dl|{m^ZILy*Hw&$t*|TjlgBa><0vgWxHo;v-oj9Iosc1*_`h9SHll0_ z_JBgOh0UbRL)h#wA+_1C+#Z{VL78p#VPbfUT^JVQ*!j&Q)yBO&T+yf4xxU)7=uy#g< zTnQ(Ae^x?jJ&WJr_h@&z&Jvgv(sd6ogl$(B{;rU9-7LwP9T#?S9(IbTvQgHy&R!w2 zf#n0QQ6hsHY1v(~>t7c#b*|Sg_F~#g0=QT5cs)58&GR5&l?d!M_vFN^D3N)zJNcb{ zp`pLlAv}Qf8ijvglVJJQ(@GYjCZ%YY9j+)aSu(FWk9w7ja(=t_g~iN zPeA@uK>l%%-)+m2#JT8QfT2f9BT4n!y!uU0ya+lMKgkzgWq?0U9=Qk8ZgE=9XN(KR zjDhFb$b4%}5CMk29r1`phEpU=&oB|Rfigk>zu{G&z-?8K$mr7OR2V8b)$hDlyX+f0 zjCxquj7Wx;j;_@fi__uP_*#kU`S9!TS~(U>T=VAWS_yB-YnK7c9kcBce!1-bk%@9B zPS*-lEcw2uAJlS2SH54+RXGWjNYn!0TO@*@1iEu;>w!7N16h$R?b*^>8-Y1Jtk>HO z@o%@Qg%#Z4FOtf$*qEm^kWgy!PWN`;(nSZuk>~0xD7j4guHJ+H*imX0PPd z^rK2MD7F$i4C?B)S~zUtm?D70EZOYGR6L`ihy0vYD?Jv0b3}J#1?ft4aFak|6&O@` z`IyRX8f4=tV;I=c6SmH5QUNvG4dDqC@z|53sFAuj2X5JNy*9&L!a}$s(yyN(8dtn` zTvsqZsVl>COjqDJqASBQrYi|NS;rg#3Z9VT6!Sufay%4V}X{Q(g960iF6Ac3iR-MY8CJm zR4njEbp`xGx&r=?u7E!XNO_w8#&U(V+SFhnQ`%1@rO1|gHMK#=HbN$^jy~9PUE!?R zZUfQp_w0_oOPTDtJuY?+_h`omp6VX)I#aeDiAy$L^}qyiHf1#)>)D^}Y{V=s^)O4e z8kwF@o(Say%HyFt+zUFbjFrp2<}u1l9($3mT!(rg>QeH^UgQ0Lb8sJj0i!qobwV7K zLpy*_ItMXI#v)U z4lwMyqyGy-?xaHHHLhVqc}NtSM$3GRtkhB-3FUFh1i}zAxR&L4!iJQjbBbnkc9_bO zlxISDg7Q=-E9%X-oOk9Z8~0P5m;XoHPkDi|bh*lllqHB%UZO1Buks*uj)d|s>s>F&Ydz%X`El1XXaW-=Ko9`}1Sl}%3N(OBWDsOXbaTf< zm;nR~pkVQ0!UPK=f&v4`AZ`@=KHpt+x_f@;m+j=;yyYc(PWAawwQJY@Rl9cW+C_Od zly^`bqU=UHa`rftZ=WI}hzHE8-2M(DaGQvXDrkq=$N6&1$}9-$Fgkxfc?@ghNVtED z`;Ue9kMsUSxIfALGm4!pdz>F z3h@oFEAo{8rf`b7Cc`(|xj$&{EKdgKV~sH_%>@%!td|f>|8S|pmSe4~iw!)#!5}KL z^<75TB+*hMysz>p%A;1MF?eE(GA{ov$(!5?z`3OCDOB}%7qXZ$EEKkWIu=Jd@PnWx!&nfaSd<)^l=F6zYmWHpQ+Op|dr3%oXU^> zn=s)M4x1(qH3}^2C8@V@WWEWbRD8aziyZATP&Fa7YiG{iY5MThp*BT!*aw_70$^_q z9}luU`px=?gF-=YF6gC{^u|1FRK*{-iVg{MFpFJixY<+Mq?78nkHB2DE>B3$sD2R8h&e)lK1uZ{$-p72?Clk$2j73;CxapzYqPqM8gMc9ot4$~cHjdOaUzwx|VINH4d-yeM= zztWE!Xt3}6}wy%64>b4t|pDWj&wTJ5YXyf=kk8FRDn{U*SH8by)jr|hcsNq`XrXpFSiR7Me+=5WGyXwt znJ0y;Du3OK19cnYWom=11xHaBGDTS*ODvF0zqvma?jPdnERanFrZA&i8-Z-Pr!_1l zc&sn99;iFP?9UbuwE$#NU$HXbUVrrcJoP6vu$0UL%gsmf4RiM9$v=rvu&VhBIu%qQ zC$#35GoB!iwHJ%w(Zzpe`2r;mPES2b7v}-(vO+++%s&sS8)(2?eC9v&N9d}%d$?!a z9bjR4x9SBD)_^bv$SNcLHV015%{$4w>XYIz67;OW)8c4|N8o$W$kb3E>^##^x_xAzAkXJ4vXx1J)$0)}7i;UGxwwC`^0Y&9Ti>9!nlca-VqAP=>cO}G zYzV<*CkBFC{1zuprgVFGSh(J#B8EjLb2S-l7oO2X} zAw-J>3BoAz1d&W+s^P#G1$gVMa|!w!ZVmhnjU`s|c3okrZN&uTBs)q*wVlLfcuF7o zJyC91H^XtVgolXDXw2Ge9w$4X01dojEyu|c|KW#2P!hm_{TZIxw|<=;auzw!lvSJ` zC(AlEqjE5$zr&#tQ1N&>@)yXm@2l(+-x;^~#COIl zKJndmjoit>YV0ckJ=H+G)v6iwC8Q?_~{w0)3;+K)?2u;ja&^JItNv09$%u2-VHAyG$2%xa73 z;{|0dP^4I%>#o=5x>JHIFVH)c>yGtfX_Kt8KeF>=tsQP2)Xm!J=&!kQwqqa@`TwWJUbT#NSvEmLe`SoF_|U8oOR~(xv6PlZN^ipX-hz z&@3uV0X3Eu9k`bwmMw4}hn`lX^O$V2T%^RrUb{6aP=+iQMyPR~>>(x+A=jO$Jt@VI z>u$=p)9!4!?wD&75;VV?CoS>wQ2a@|coPj(a=V^{n=cLBAzx-u}vrt*I+{r;+RKJ%RW;R!1`GmFv#r6vRH#n(GdAL0=>z zG!qZ!$r^wAibYA*Jw%G=_YCLBhFo_;i1(1|ZkVFxAJe%^o(&+Y20x;rYCM|}~BRu~XEg9*AVloc;WRHSj` zF0Q$`fSUj}HZg1Dno^NaLUvhLkqASk{1laww2|v>NDbA^A)(o4Bir3Hh-D8llDSPJ zlBZQMPRmVtg&^>waQ@lunE&%#-hq$--zV4yKY6x0J5N@|(YdnSZHp5Wa<1!|>Fy?; zdAhqZ9Vt6%N6LQeie%o_Sk9~=PS8tmaGA#jXV%9vfy6)4ghO$|hS(#sNZj|~{9b?b zXEFP(l+-*{HowJT=DIkWGI2e{L#jW8jp*H3l15P$DUd-jmS-aS*0(z4^_udU;{SN@ zLzu6pKXnvOHNQoR)87L`Dw?Jeu4Vjb>>4US8C>r#*Kyf~(@KuVeK@NW3UQh%&J;Ju zwbvX|eog2alB1D?jL3vqmmz0u{#Q3|XXtS_n%&~PTv->lcygydpYs~>cutUKon5dV z&7GiGsGNdcYLIA|iC`IVxQ%BZ*bEY7rv!JxV!*KZdw72u67B{G%x~`EMUa3gs>?mr z$rCm;P#T@Rc0}Q1T6mr+o{^Xy{#usYRj>H2Y0ES|KZt(zuKA+@ zrqhnPMqabCb`3e%>>684EDzcgm46J<&_dsYNQ7RQFPrNCd!P#pm9K!m6VTu{s~S7u z`BYBG>`PW?mM8CDbJz0pTX*QkWWa8a`>0B_KmgqfW_}ktd^H=Vfr7{=J0=! zx0qZCQ`+K#+$v`Cbu&R&!=mIen;CL1%x zRcwym9?04esmTN!N}9bECbWvoR|`58k&{+^8+MFrS>{%~NPrFRmtBV^bwR6k>qVed znHi}}S(acot^mIOzV){iZOrasZWY|vUikLWJJ?{PNKzeucC|d~Wi2epiNvsMMe1;* zm1f*+YLfp|t`dsQJhROW{HCzkRqppuMg#|W!uas>H7YA`GH_X@VQjqFtfm^vd(HA9 z;8?VlVuS39jC7X_0XVx~^E<@}zH@0H2aSHcWEAeX4IX1%;z!u>o@jLCpo&t}`rVek z^>@UH1JK#8tA4G7e5?YLTVMe{2-Odi_1R)iO$&s1Eh-oI7~uJyWyH8fngmt>6_&@e zlbqOrOYm@D&A?_K>J!gFm3G)ur1#k z=q-%JBv~8mO;0mpRnEb7^AC|9(vIzGSNIpyS=fSOiWRJkGiuC%uOn29I>7>X+yr7h zK{D)|9cw#LBingMwiC@3I@lw}k*`|RdG|{+(xhLB6Z7N%{4hKuJ|5yqiFi>=T9tiX z7}M_iVpRglI7JOMb6q;Xa#?b>Hfr_~5}w>Cy8?b)o^0{E?di}1+JSG@@IajP3L}I& zmVg}-brVQdMadS{(~iZpc0U%fB#5aucybtM+Z@Atbj5^gg%j988mRH1avQ281)+F; zr{hHjzelcQoClWb1y>>|YUFdzV4ysvIssKFevhh5pO0{r2;}b(DC?+&p^)O*!c$0n zjfF32tSc}@#}V=inpB(_?Ufk~*G9xFbzx4Pcm0S&A_G*Dr_)^t@ps5#{Iu-S5(Ar= zdR#Cfdrby|s|mpx6bcY)pc4{+5R=DRUO44#MBn(c-$p4y<~BPc_yyW)9L+Kc26pL9 zOv4dUC$k(?#iLgOi1u2^$E7A~^-ppX-E2-%RdzJUw);G{JWu&yMu z2r>@}QM@egq~EBiG1R6Q>t0_@6*0%z^&m3dq+{3$#sftKLBh(qjgQY)%a6hq0^u}d zatA^gqCiiZpo?=5aGbO6Mvd&EcX#u&B!UYFvZhd%rtZQglZ#1R>E#KofwCC0^!pZybSi9&f^rCc zttp+MG}^hp#ZjrQ?S$?MjJ!+&C4s4=hm@AepYTWb^061`cuLiR7{$Rr(m6Rmf+i^; zaU(oP9#Yqv$6IJ)!f3;|mEoDzF0qjA$frq?^7B`rc(xBd7D@-+`WPzN9pmB;jvLgC z%$;o9*!eb+9=y;U=HicEl^r7cb6>DO$(13&Y2jtwfSqEg=**Gj2u_pZ_ehNUSE0SL z%a6|VH_)uZiP@l4TIMs6q){WC^rXe&l)5}a#!1k7E}T1s19g{*1~dj>@iov8rl5~N z)idkfr@eXI>APpMUEe*u(XcT&sYWMI)AU;3MIA83N}3nSdR04jeu)y4_R7uIpuIZJ zLwhxJR}tOy%h`38hp{v3%6fw4y>4UrBigihTsnzDd#T6TP3rJu;EovuFn)P&9KbSXTV_eh=1B(A(O|D(T5Y5 zKn}`q_vPvgh5n4x8O@zZotYYg*E=*+s57aX3sz@msvlWm>asa62@)tQDl z(Kf1cs58}zG{csZEnv(hbvAB@_3CU4Ljm#DQLE75wzH|T>l*58?Rlv)qG4LqS(nrq z6CS}-kvhBX*-~dp#}m}q__@^?)c5q&8QTb+C3R+oE=2yc)R`91&PScWXcwx^a@vqO z8akP`~$0rRc-WGozueK|6T39lQm3mP$$gPH4$Kx~@K&FPi>)0|&4&|6I6-5Aj;aKm4I0Vh%|MSx zt%AmuK8Wcgw3p z7^Jh{Fe_{j_ywxKN7={L>ZleQ0U8a^_t$4_|JP>g2er7ueIjw%+gJw}RTkSFC9vzk zOXsLyOTFk|zfJe4-7TB%@q`gK2qSJ11~s4()OR#S3t`~s5eZIdUJE&S^JI)KQ#-yY z&VOluq?rXtVRG7qH+K4REe5ijrU99H3-@oS7qlbIH$?MPqXu8QIRNUHg6&Qn*Q}^o zlgW#eZ0Iskj@9Cv=vQ z-vsabiGv9BnpbMfr434XN26&Sg-hvZx!F-BhSpIDi+n^FacEt47&+fj974^G;-`s4 zL6}3j1P0NC{(3$E1%TP444W+`IvOKneUSWPcNRpgDIY{5#`a=}31%zjCmJb8 z)7aJAfRbhlH4VLg6Cak{r8o9%A&4icMFrszw2IIPwb7(hjxT5>E8HrtX$@~1-tdT* zB}O9i=ZTRKIJ}9C>XzK^ikp!UXlB(M=gzk8YtZq4CzuULfXjFqU)-a**@dC8=8EVA7O>+^zso7-rVKY<%sAcV%48 zTI66tm#4@<@=WD&F!6FwsKO&hZ4tsjk}xtVrgJkKF zgbf!lAKlT#G^zM^IuA~h(Y#^ICNKJKWRR?>7Sf5aCHT1`NY6-pD!D%&D2lBI1|F~! z<%#>+uJ5wHDzdBXp>Pu){BDHah~3aXBsbrO2ImS#SxtZkfg>E*Cm^w>KayG8CQYIS zQ6J_KJjXSMjc+urY!z$tPrTxKv@{`cXH;d<-byruuxsdox>0;kPa18h1)(hRg2*61 ze8JTSp&SDFICYPwzOGKm1~mQsYf0nDb}=zLnQ)OZe3fpg8)d;5n*c9C0K}Wt_jO_$ z3Bhy}+^NMOwe2tJy%cEiW^$}YUe@J*8|cB7bth0bl4T-TeZ;UM(&}v+ZOfXtR1!d9 zbJ(}VFbVMFmOhCk-L$@Rx_uPgQBsi)MAyb^ zL;A5ZJkhoB+OU4?4o`G#ytZFI_Jk+8HeMUikA2~Zu8r45_2WQzqHE)|G5t6gp6J?m zZCpPNg(tc;UOTEEhr<(H8?R01$C2B*Kk`jl9vFgy;Ebt89kQtex_#5>Bt0 z$>17-f;twXW57-1WTJDCqRZ$e77OTJZ_6vVS&6`A`a|%V?gCfn1HJK|dF>CXP3_O{nD*x|zJ~V4gaoC$EA0>Q0Pe<`z8!?uHBpuEh(#{#4_2i1ZQ`K| zP*mi{@WPynhKuQ$Kn`?iRGBL@aBRe?n{>#m8ZAANWDCNhEt{q1iq{flNbN9TBFT+r z(b%e@^*9~s0VX>|5zE6CKZ`Y6d120I7?Tps6>EuQYvGHtbc3~26227S*qE3JU#Q*L z@l|TU7hZDV%Wk1-J-)D*oA?4DHbAUs<<=6^DQgKRlpCEA#?Qhgo_5hXiCri~|7SuFW%cILbK zirs&FuT@sfzGaoE;&FLKNnni+3Je6cJ! z^F<%@)%vEWnX14g0cE6a82mc9eGbBkdE{5?%Ys(RGRw?~2Qp+Gi(OQOoZeciaflhW zCrLlBlAoaErFyPpnaTCsIK`oT*!ONH!8m02c7t3m=K5pIVfMGW-Q|rn;q@5zYg|wA zeqFzLPTD!Qhv%1ZrQ^_3jlA3LIIk{}rC$IPJ2qB5=TP#v4HTB5MJ!ML>~N7 zh{I;&m->;vq1vbW%x4YtqAyUtTX8=O^DgNNotTG&YtK`sPqrb^@@(YRce1xy>U5~b zuz|y0rBiK6QuCPV!e@U}R|x;e)H?TBI(DkDb-Bqlq@+Tn=rEgL=k#}nJy(i<9MqFsa54k0GR^yI6whF5U=Iya{8QXY9X z0ku8(DkVpsooIW`O0>i`sS+g25JRZz5%ogC4LpEHyY5qp*e>4fuwHJpu%0UAIXSu6Edh>RFeR11;yL7}ijFu#jsWLXSPF9D5(rye@yu>=A5J z%u~c4-N1a5+eP<@9b`=}r$-fWsNetX>qjHkq2G7``2D>n2zjvI=oNlH^24vQ=Ah?T zH2mKAkNlpi-zEF~V?DoAzvW-o8*e$zos>IylY8|^O*dq|c0p!UNmz}3lKKSjlWkRK zR+LO$uQ|%8$EKN=%YR<&!huAR7)a9yshRUW?pm0WMUwh__f4!2p#}lX7mA=Cw3QnI z|3{U{0@*Pvjznwj(G}Bks9mvdY(RnZA=ZE+^6JNAl%`um6PWdAyTi28Di*k*2Tci~ z-FQZge7C^UeL!!hiq;nPYlFf!)$l^wwlJI`Cqr_*GLi3ARmtyL9O z(%HmO7(;7Rfas-XOpeYd_GRHDq}m8w6;#dNq8ag?g9B(WJ#Nu~|EWXqp~sC!3BXk~0v) z!2m6E6dX<(dFaT+U3AiFIfYKLT7Yc3YJ;w}l{%4uii9-S0v)k`6`whhkY_n11-c;j zKW3+_EI)hzYuK$`K?O(Q8d^pubL6d+M=4K)_s4kuIKJfUanM@Kq+)*L| zg6lRCT4$ZLW!e1N@~p4+eBIk#LXGEw$&l$|hqG=rB4=%6xu&B!r}KR;1NT0=r*;wp zjOSI^ZC={sdL|d1C_VEh^0J*VW76Vs$ZWCD7d}U5htIuYZNWIMM?Ljt&*ymNhV;(R z9pDe*I3@;%IM5f15RYLL@fnJJ&@hVe%NrP8uMX3Iozx*~fDvuWF44~K?%E{)hDJ5U zvhljI4HpAHn&6wx>!maxouH5LK#97E68%Uu529Mr7Kcqr>^YD+@UKwiMQ)Y*xxo? zpHJQ?U6&Kmrz`%e(_+>R!ZmcoPCKb91jwxHGJrvt1R`X!5)|_j%-KZ6m57BkaYT3% zL^0mBDhkD;6f6Gj1jSTE@>TO0A7yi26#Wo&E;YJS1V!GZ9lBltpt>#rP+gw~pzX*v z1gczMW$8+rw^ZEjM9IZa!G^eUwO!dO{h*Gl_V*wobX-2UoHFESZqGBeMB1xE79}E$ zjcnOUVnW|ayD5NB^kn+!w`9=-Rm^KBg=3#zuimhKxeMH6a~9 zp!t3S*EmE(q!?J>;?nfHFKDWjfN~hdPsbQ6TvUGcXF5e$v=~uU7>169n6%KyG;$+K zJAZ>S)kv-92lY+LTQd7->Mk#)Uwon4YJy#)hL?e1x|ZtAU-8DdnhzS4)7_c)mJytH z9h**lmwfo*3)M$W3=8fwzrXteoHoiACW(m~Bs6bAJ|s zzaxG8`F4gdUc;7J8qFI~+Ei|VvaA){Kvls-AHOV5DmBsAhj(0VrB=rbTa}JuDQJ$s zq~L^^4BY!sey>0J$0_^pmdY_h7Otf<;~g{XK@sShM?CYSQr~0fPdw~10_2_;?WD{x zBuvM)?i<_ziQEBqGNl23cVxEf@-86xBmCsrlXH?l_AahZYSSH8LX0h=)WbZ-xX>Y) z_(v_CxHcckJzGX8bD$JN0m35Z;X+P7vyJx+40;^4>;&zY=5^85uphhED5EEpOEoU#%erALa9deKA+Ty7+cF%kCUT{gfK%P z#ZV~Yv|=aIdFGR9)a%npQLk+;0c=YrbrBK*17t1^u^x24>OH@7QjL0jHYw_5?cdO0 z*`(%V3smns9B17m3{$@LY1wcWS`C+93QMyu@GEot@#eErdO_}SzO;F^GuT++~Yg~>qROq75CBh2 zJfSb?mux@fVYajgYBElGs0E+tBFSliN|FQK;g+6Y2o64u!y-2>Wu)iupdt);LJ{hm zxOYY05xHLSn=TN4vvmpHZd5U)OZxiUeG*hce6qG+=ts%tJ@kpM1YYQyI-?G&f86~N zJ+@t@sCA8#IepM^O{WiG=G0b@N1PWJ~yAK)osqBn^g&{=m{A zn$TD1pZk1Mg2&faM_0=4NjlLxnCoIXTZVPM*L|(`OwH-U1KyRnt07}Pv+aX+MCeQ| z;031OcmOqfwqXpZq4a7C`ddd3v)D$EHI%CDKhdzFUrVwZ0SrM=f<#Io|58ay3V;ke zhFvMUSw=gDHN0v+aRC~I$^cMHl27`3BDMpPXs?vM;WA+<&lSKjR+^O?S(Z9|mL>Ml z`jAm&Upk*0N*;Y#I|;QcgOWC1KYTkG4afkjkVx8%zk<+N){XJS@;T|(g4TPDrt zHuD80C-cnw?aAf}tl8UyLGVqG;o%jYk5@*oTN4X?BGav_qc5vC-?D@YH!9-omWZMl zRaZq%QY6?t?A02Od9p65)icRDd&rgdU4)G1Bl0(xdy_O}M7pEHyzFjdK6)~4WIh^; z8<~&3j6iuF?~-EaCN9i`uIIu;3HgB`%<_(9SYj+VOMe%>VIOA^!vxCUe9 zz?8g6DCl}4ZxXssk`svXfn*94cJb@klsbIgq!aiPJi&85sLq8F-^0r5l3E>6JNB1Q zRW53EKdXp7aM0Vn&=!!Id6SOk%4dp|D#sL^AX@~^&yQ15-lQRNf^*DoRLh{1%eXG| zn*rc-HF6+HhXQmgqw(#@xSn|^7s}61K78>BP?51nd6O!tPCsz5)@z|1Ztm7iet(cF zXMn{Qm^Z0{+lJIJyGg+nsYvoCI-xqrnlg8xKX8iR~dFZxVY9%4|r<^Cn479`kvV zDhwua5|whEd6V`CItXq^qXO=wk{F>z-lS1PV91+fgQV>dA#c)@ai`tc@+M(Xx8zM4 zG8ey;w8W;TS@(w{kX#`>u!<^VY_sCjDnJl9j=A)ClNc#Zax=lP4+F+Ed5D&l2F#hf*7lDG^K zUKeGTsXs4Q5b8kfOsvvFD51#(%z=S?z4f@LR@z_D%x zE|bWVK_`=AdZ)2&LY`w+Ct78U8id$`nB74EWGmb@>s!OLB}i$eB^ zmPJLLZCY-s1Gy!H4o*!1=QmKpsbM3(!5jx)FNT57nl#16$^66;?D(0ht<|$?fI)Pw ztVy>eQoZ0-7E3c}($8+N#)(7E3VMK4#Nv<$Jd>9KETy#=kBt^raRa&Q!a)b-=z;B^ zJ0WYrHiG?o_0{aV-~`~$`D&U}4(}0!Jq=&YAB7y(&$_SXk6!uj-&Yg3?BCv3gOTv>*;muB zah`o&&CmapeKl{pJnq;^(%s2kpWWIv+skcq=6@O6>W_0IGY82hr5L{t@honCaU=iB zD;)M$$yoHhb7$GiNtl^0k>^F56=Pf97 zs7=cuI!L%P9h!+MPkIFBeWoWy`W z%u95qZNB_te0r#Wx18%}0hc7y2fa+6&2%aWI>`mDT~iUEWUALdGl+$D5iOh51dAJP>M@Tgvz z0=3Y^*MF%8eEm7S$cOuN<-awAAQ>s zx<3@U|Cgcr2NcA>^ZlS9fH0yasC}O`#p;5tfN(&Ap%n;rQIMHff0nretn8+TuFxuQ zQj3XXRb|6e2DVO>8Dqjf3h9p*1Ko($&D_y4d$#feT_&?mk_S3Dpd*aiXFSmk|_lL5AmWM-G!OTNtMd=e&)-EW3r3nRSXTyapa*cJUCJuoC<;Sc{)GNCH z9}DF%%11(Zl=9(FrUh+=FeqqQ8zpjx6zgqeAWcrRv!-r?MegJ}nN4i*)UDm5xHxjZ z;A|G%KLOnnqpSg4maH}GT}$wvSR=+MoxkE3wmO8NMU`a(V0BStnuBGHGD_AgT`*A8hh{ErTVNv`a*xg!Rwo!J1DipnJARdDPnFPz z7xO?slYr&|fhG@?2b$d8&C^xW0*+g~ZE^HCeqv)opvN{UB zz+sA#{Bo9maxct6^7L6gA+xtts}WXB#T+-_V6hinBmkoBqwII;bjxgcA#p?SuA#nh z6qizO|mRDfW;vmInJx6iY(OZnAKyG*^n>nbLfl1d`6z)Zd+PkmuWCkCp9O zUY#k?rwMUw!ybdMrh=SVAjyRYbkxLo33MW1{!Ils(d$M&7c9_ONjtYhS4c;Y=$z0? z@Q**VmryC4yo_oWo&3)x;>QWr%|-lJC`-hThO$KbNUskM_@76_?~I!=egMLsMaUB$ zWzu`VN8_Br*g1!sf2}y@0oeR3a-JiypNX8G6cj;bZt;Sitj!l9>F-sT1XA_FB)!0X z29h4~Z;1N4&n)V9U~)<_O%vPzJVn-PS-L6g8OqtDy*?tCyeaOt#mM{Zaf`se(~Gt{ zOyEzFs;w#TM|#g7@b?F@mcSnlWeNPDP?o^oMcEDYs0Q#hL*OekG#B_gdQ9MxB=&Se z;Ij{e{bz|1q3`}?&;oA9&&Z@8ec+D$U|NYF4tF|#F>9A%YY&R;Bd=Bv3{wbhrGNe( zktm`3_1*!qqCBY@c66%-a2!;sS@q0oEWGNFzQnp8)fM~hpss`gj&Lg1@`tbgaXN(Rkcpyb#0yYAc#p+o1qn7TVKsI> zfXU0m9U}nqP?!rTVxEwY(61&qGKXyXOd)-64!f4_%eM^A5_0Et@-~ zf0YvPV1Y#Qu<^k=zqJpZZ(?-DJMU0car%S*pr@K=rSE$=9fijau;OVOcGxww9~t?r zLy>zy`uSIwNqztXyzk}0yH1}Qy@JRff7rB~E9v(x&G2Ig+O3X5jiU6C^@jDt_CC1* zO^_uE0y;II$12>;is=VmARy@u*^<)#acdrz)%--SA+R?0Dd&$32J=)Zn6L`sP=UD{ zx~u|7-NsA(lC1C@q-hf#L)H=cG2y#TvN9`JhmKPXz9$`Tq~3HMU7B=kO?2GaBq^*4 z+~#DeWbN7iDL?lU<{c_0m6)AK3a^XZ0FkrDVhRxMNf0h=t?cWQuxY_&mew@)}BO{a< zTlMI}^xc-xVw=v5{f+HT3r!TY^Th&B-%7mTCpF6>>&csen=K)fmy>eeqTH;!n=(Se z%6ljeQD)z_NQmnW4)w+%@SYo>JAW7yFZNUE>geZ`v~hJGCuK}p*+St8%ozA*v2Yws z>dQkCF$K4fE!1o!g~4BhpQ)7o75mS9r|>(af5etncA+N_YC%(uy0)5bM~ocxSTVp( zfWik6RkU)Y^=-Aw+l4->2G`b`CEzov}3h76s(|)ss4%8^HDY~<|DhOU?XerrhomP z=)_^TZtMo_Kx@4G&y++4yd3>nWmNruTqTV0Y5iup!+Dd zOTJcR;Gg73n6aC+b5iFn_#2We#dLBBnZemTyZzUH6FL4H=bC=%TJdE;Nh%0Iwd*$I z1-0;zC#8MgW+Ho7Fcryq$1YvH_XF+;J~u%v1dj_;@KNNsHdavvVCKJ;jz~nBer1W; z@eU%RpE{&-8+CF>A#KTTlJKLEcxQW&uMs4G)wR20WCw*k$SXY9&cxQ+Tq9 z{r6VfMUnhRy33)d?A5m-N2x~g{C2O7RK3Wj-jP23JJb#b|A3Ql|Amq`_=m8^Q!3NZ z9ekS=AM{%f2UjKA^qY5%@s6<)XqrHvd0J(!RIy%uFe^Q{E_)Mi5Ae3=L~w`Qi`E~7 zv>Om00o$P?9lgwy-|J2Np$65&gv7g!RHPph#d>w!Q}G-5|K;4NuFJOVm9=4LWEB0- zp1krxzZ87pqYL?xlMkONK-ud!zHVKq)~$eNuy9(3j(d0{h^TCh}R(?*pERda|rT}(sVSu6XSzAMs< z_X%a7TWq0&dbD-Ex^Cb%Pd(N1#;j~~mvs*sZP4xxh`fmJJcz0yd)De&oG511y(FH% z2102c#urv~93`$3VOAaDl8e(NxG!FM1_iaU9#5f(zX}FUB@r0pa%49DLz*GFw_13<6TRQe) z;USaGM|4Sku@y>mU~-FfBl2gyu_8gtbY^)c_GU`PRLsrDy=8!=S&edkf}-lmbW5tH z;@QK1mzV)>rJQerHf2y< zg%WT_KQkV=uLMGK$KS!PJ)a$q(oZh;kYkt?nRW?sdN88qG$aK#qBOec(OW1Uu^V*2 zb*0WgY-q{wDQEH~bfE)fCj6M{iB zqFz<)7ay#mr1ItG^3t(GIX<{VPA)Sk9RIGEPa+H4f)mVbNZ?<=J z!@cv^-$w2e{K-mvZlRmcC4J9Jd|kk@8jw+X;fsp}@+mwc?I# zdz1r0;i-SQhTDE5@QJ~JRAf|~zJd8IBV@Aq06E*31{bA}#CUd)u9-zp1AE}vUo2tA zfvu8&9Q3XabAuE7oc83QkHzsO+8{==wy+6ogjwhEjlFr5=wf+c!74^q72z*1%5n!_ zLD%n&i4*rgdCLo_7(}d>e(1NcNEu)@N;0vr>1%ryA^4di2%MFp!wd z&bDms$Uaxz6VcZesU|9XUzdw2x!>w7P4WGoL=9MJuZJBkxV-+|&u!Cb*Do+36R!zdKDkL7W>;C8mb`A_ZI;xSxr>BwpZ~qBD zmlT}TEv!Unj6WI{FO{Ys$eNY(U`&gQ>&6jQ8k{pCp@m=?NJK zlSL&E`twVYs?Q8P5&2Ljoi~ldiro*Cdb8V=Omv!U$`;TCUNYh(TU?9fEL%{w93HyO zZ@GHN#UuB5C0R==~=Kzg}Mm6uuBBw)dMWi$YUDDzfKVFzMJBU}9&VAd+_t-~T?<*OmU6 zAnH(!xG2|K1{1>oHO=#YeChYR$j$-z_51jc#B=~cn8q|vkd*>y1}ISgMVsRQMb1(d zguve5`vnFgMOagM;yQqlVBDd*jJP~M&AYqucUd&g@0ths4$FVQ(4}9vjq^*?AJZKR zxT-hOAO0>KA5q79W_H|=-|Vx#%)g6d4EN+o9)SN^DuyP>l;GY^?hZ?q;NUfqC0H^K zcbDJsmSKU(Hz+>u)j z*Qei|Z`Qp?@YBB~WKxeI^Ns*-Tlm;F$s!?KhZIb|R`oB3MhTvRgfRcOq*AZ$zY4hS znZTiwT7fgH z@xXwc{^&MgO3Py!69eh?2EIa<$v)szcUp}tozyf$Xg_nU zM&q}wDv(?z5cu>l$p=)(&R8mEKo*d6-4n$_!u$N0cn?H@Eg7XSc?(Dwxe(=pTfXOUrw^F)+ID4nq)+Xb4vqPiEG|qWcl_kB!!o{#g7D7+RUJ{&^TY6Ho6Wo7#mTx4qS>!)G@SDhb}ftvxKP{- z#)P(JGG?q1xmLjo#-FWJ$GyNR%Bg59kPk%|PD~PpVMxP3_SpJV9Mss zSv{aUK#yLOLQS94I5Imhw%4E3^FFVs*4B|Jbh2WgDT7bDXJ|wHD}{tLBpKKg(7KC& z{-OkQ>gknRK{J(U5G2hepcM^=&d_Hpus873sv^&&m#znPC@3gxarfFy?)|E<zu|C_ zfn>dp1zC(gnd#u>S~uQ|QdX5&&}}l9Hu3Djta7_BuIZ*Rjuf+Bd! zeMiDQJ-?xCdK+5IL*#Qlv}8f`TB959!&I%Iu#{PbRzRidW-ebkapKWk%%?wm05&V$ zS7UMq#OjsxgVg#Y?h~c3I)Zg3F%ZO3AsxOFQOC0&tOCR7Wv{VV^PJt}3~$O11?}P( zrX&q3iQ7R^HY;e?2-$%|d24vjbC}7HW_@abx!qvy@Gvv!nF=%FYAVd!P?KwADd#XZ zv1DT$v<{N0KN?zsaAMqEF9jjZF8foF-x!si=;6| znR`f8mRrQ}9TLX^69P4G?rezT&=;or5U3l`mw(A0(e!%uXUN55i7#8Ukf-W^CleW^ zFt*e16vmdj!YID&CPoFS6lfTXz?9szDW2K%@C?Sh&ti{G7+ymD+{*w)Nc)v$iHn5) zqf64k-wJo%@%C>s-Nn7WB>m!T;ob+sz46990|xIpD_in##moxxDf+45Fh!qngL!SA^B)jx>hB96eEg~~(d{w*vdgrzh7C{7#x4kp_b`Dq| zR!zP$$BCTr=}u<<*`@fRbW<;0+I(>wZdMdZ%bS%I=APGqm+q`IH^JMbOsC^Z(JAE78juNEPi1Ut?PJwwiw!e z37rWTSPW^9kQqd5s#nzZ;@iLgHLhp-guSRB7NyZNN2ExcLl20Hd>!-~^ba4Kh%SfOU`Ye>yEJzD>l-QPot*A_{)!wwAUm za=^j`{A1)!xB73VHw-Iwj$@ugzC$`@&W|54HJ*mSDJwdD>F-dRp0_+n^h94AFKfq4 z{=|m1%tY>c7&1d~y%!QKWxbF+V2SL_5nt0noXF`SuKR#T2bk?fD2?;{b*p-3H_~$B-3~GkHg4RG#iR};t|L4lEcXljYq#%blo38~gB3_I>kroZ11FN(F_%4sNsr>F1Qg2pi|(Cby6v_Pj8?}uZok`CDf zq}cRo=V>Z7Q#&1giMqoh)3hs&AxK8r71zOdLUWzirP8ZnY|hkqhRP1m*|DOrv*t+L z$R>3)XZkH`RX59ZO0OMW1j=8=4BN~zX|zR*Din$NA)O(HH&drOj4m%?MzMOU;Ko{K zQzm!%ac0A2bDS}2G|p|o(BWucxR0$IL@J`3OrR@oISt7ui!-!5hf_xG#rA<6wG+_^ z@h4i8H*SzGfVdfVbtaqG?;?AFo>x(y3Gecx$`dhpkBpY9^)RUQs$^N2kKFN(J`%ab zZt~+8Qtx^>`(=*o<;D^>@QM7!;IO^1qjBTt$GGt#H_^DULpN5r@x~3!>{|J>*Y&y~ zJ$?UGz*FYe{>HDWOOb;pT-_ekZL{Y9bxo{QMnoLGO~1;BrQN|~h^dfXZ*2jIKIQka z{FhqfZH~-tksIH7D*!L@H`M9<^<=@;k|t6E7=#Jat;9{5P5*~Ad16RE-J5__t@3gh zB?yj`7c>Gc&NHfrW=TD(^aEU3R@%u`i`CopoBP|s{XwoyC)tv(AknJ!09QZlS(Ut& zTSF}Mve%bow)ZSc)~ZP+{{?2r8dKYxFW0S}%=kCuR8{{}Uw=6Nnw-@I2-qK@pfgq! z6=H3P+}u-4cn*HE^&}MS(NFAfTRjIR{(=-`!L`%l_`08t7`19>0>I4e2oazL1ugD5js=rhX%7f#2vCLZ#`5pXAu_2ocO5{$xsXh` zXvU%-(7!F{cqsn_kA}LzCvAL!-^)_>`cLFBYhv(VU6i6zL+XosmR|psMZ+vw7b|Zs zkAY6>oz3rN$9zH#eNTBm%g4ljV_5zr&J@Ekj(36QN38;c{>%XykxO)DBgi&}*$-%> z!*awR#~=l+(T@_Ha2r0eb{-E1#mnC8Sv8Sol6JQz+WA5(3cr?f7)ia)qEzhH>9~%g zVo1-pJFF}35*%aKN#2noV?tM+ALkmjW^g6aKh-H~rRmhhgo(!|IrxkKtgK53+u2i9 zoc0=HgpZV?8`w00AIzsspUygj3ex5*tm8$xdUp=qdA-r52@p}VM3K7d2GK*L8d3C( z4ybYa_zhFI)BLW8i_lSqW0n*=?~SwW5qOXF=Y~-6Bh_R`uq|n&Q@}pcepC{XJ z98UCrJK{hStguWGQhZ0Z;K5>kGEnnW)i-~e+?p*1xgPl%zbiV3mGMH4gfk=fO=u0j z!x0hurhR@l4}z6(RdkQ<#%rhVA$oBGnlIcU89Ruzlp022`N6D`Bt$aV*K-KEiNVUO?M=;1Imp>L5R~IQ^E!couDLSlr81nWGI4{ z;}k6?5lT`yiI6(@w!HL=e#S#d(Gvw1DdN0`9(4CHdu(*~c<7?KJJHhJqk@5nP>0S^ zX}dvEt$G7KhaxG1mks4l&^owajE0{8#G&f5R?rRqr zDM8VEDb)bob!R=CkfA7n7QXQZYav36U!-6)2x2j?mbEhok@%u5yIAnG;|U@@S3}TR zi9hv=O3tH8aN1hNv4zd9IGS)X>260~%mvKBxUb1FkSlkH|1b zKuSXZXjL~`0T_#s_cTqD@i&cxZJE9fMW-nPT< z&=pB>9PvOzs+A`x588bwkG2T{mbE8Nw=rPdfqyzA$(*c|*&0CH=9u000llM1vKFcj zoEpo7(QCGgDU|gI&Y?zCEPPOw%B`a+5q;yjK};y3Z!8oMeWRfWi;u*%*O7%!O$o&l z=|8;KP%S%{dvW7TlrvZq$Z*ff@}b*E2?9SZstAd(*w0buucY9a#R3rIwn^&{+OeYl zCPO&E?$dk-k5kTvaFQ_7XEubgf*C^i9edrF`(I-ybGgB3Ik_6M@0VZ)wJ^IGB@|)yA>9Qq z6MxJ(5J7$p0lU(|zQTQwLZsq;njx`-s!$OAZN4}}@g^08k~}+xJ$k+;dJRXGEZ!RdIQy zx&i=gZtzq8k0MP!@!K*v$OvL4M>~2FiK7XIZE@o!JDzGHP~dKJ?f4#PpA~++;M&t) z7;tyH_8awpe0zlPa8XJkE_b=XKc|)U^aFRwIopE~$#Jafy+^8B-j}S`Rkqy6n*BvI zLCtJw=}yO9s*h9da+%jzFE(4%aoEMY)vP$JRcjMJbTMzxy-n?x)JxhoM_4;9#YV&F zqpu8OtUl-ayDLol@Gd3yyTZNc$DR+-Gv>uQ9!NV1daZn@WC5&!Oe#xQS|@n5aI0-p zUF4oGjAPJ57&C+l6&eHr$}Uzs9urut10)z7j3!>w!TrC_GUBANdX@@_p}O6bw0d8x z*^aJ?>)Bi-jFhj6?tz=D7jYq9A0~#Cvo38qShQ}zw(BCy5lR^)=9ZL}QPR2q{`>Zf z<>UX8k>SlZ)fQo~HAq-g+1_31TvUi7iyo-B%BJp8vS`twBGg%_F0{rIHNFtYX`Fpk zR#xNKDWP$deB&zl#?=X&C6(#|!v3w}ue-T=F}2_`wpu9XwaoS{%X5{gye+KmRC_fK zXnU~MhkcFEW$AGXd^1;*j6Q5fqp*swT&5)pYN%9u1LpqA&DA+zjwN3fimV(kcU=Tx zfwuy(idIS~DMmH#*DOe-MGdwXhm49E@J>dNG1Y=98$+>cw`7(3c-WVf9(+@_Xt1`( z_6&y)+XI#0h;ImsRtm8>HWcE1%e}-g({op@uP^N5x^jIz?Q@&$-hYId`tIZA7o$yf z;~%(+92ae<_t=An5qE7oYRhj|>~>M%B2{;_f4gG?DF^Ozud#dCdLFd<2c-@7u>xVAm0jrcjGS3RZAX`%G8GfHoV z(rtaYvzi9fLg~FNlukLI_L)*TP_qnz9 zg>a=C`B`zD?^yO~^NlwDQp?;;-Cf1D zII30)Nwr!n$&oD(iUidv5W7hBksIZh>W{kI7xH4&eKRk1vu!QB(Br<87gP60UhHk& zoztvru6sCtVP3O_`Srv%;uO7Oz8{Js|dOYE4?P z*JYuCIc(|<#ktm=J)h^kqr12o@InX))=8%4YVlh*{v{H`&XT`MnmG8OT zo#VcpSKxbYcYV*TIN#u~;zf;WFE%*s=7Q$)g$5^UznXm-oEjHAGlEm2WyPv$u~N4I zXT=@^&WfoGixqnfI4jPv-dS<34T}}$S>slm->CK?1I}(<+ zMNgPk^uuFCPncHp!(&B1JXZ9>V?`StD_v~RSe_rI^=xe8Yk~Q^IpN4fO)%gx7P#et?vJVlCqh%*6PsAE$0*T?sbR^A zy@p0B&Jn>_X|7SC6+NX|alTO^8Rtp+cDLK=EpFNJNKMzd$-u&Bmlv(2v$B!t!QJ(4 zSGm82(3W|BQ9fm0GcU3MMRp6wLsVek`3+SwR9bi|()&!amM7OLO%BUGFN!KS8w<;$ z8+F4VV?6BD>j8Yf%D#x2{Xe6Qx5+7F%Fy(+Oe)U~)6-+rfjk9J-I?WBYOkVxcMG7APS-dfs0_G{joSEbw%5x@GdwqHViQ98?B*AQvIXt-ma z465(jmnO@6%=J*xI`LIZ?i0*-+Y{5f1rRN|C5Jf}A>N!d7Vd~T_|=|%iY8XZcW3SW zXn~X|8`ywWF!?Mg6Dwl8=zd6?eZOU~Bj}$@EH1rYK^*jaO)LZ`luhKp^kp-9mbuRJ zc4l((eY96hANt>9LTdAmU5hvCuFaeSFmd_;f-BXsa#489Ff3bE*|u#;53FJv27}L% z3Fomc^~LQJS5Ra{hyC_lzQjUA%b+ys|1l9YP)6;_1eCON5udkKkd(`!-<{vWHO%bpoL^0TynQqZdMioNNR zxCe}OSO(LO`Mzs7rvixIKd$%N#t%JGA_fqYclN>uC+p8KLoL)Tx1qJJny>Z5bO%yU zbU2CwpRIq6T%Z=$sHOMC{64`|&aY2!1*7h#Tot`M%vDj%`?+4i6&|Qv%Jo-VWx)T0 zE5N&7AWCY<+T4uyly?pB@^tXpdhGMlk%og;uilvc$SCGSAV#neM(@hKb>=zu%k#4` zdNS7O*k0O{184PkKJaOP2!1ePCQqdiGucCon8_k(#5|aIY92^DIg`-C=$UmroM}3e zoAX7GMg&R&m}jt@pqelN$v-iK{n1Z3f5CiJGhpL}cvO6x1B@F?2~VCmfNGiZ&Cz20 z5eT!x&^^GGHxR!6KI1eUTcLLX;%r#<;_6vLsv$EguZcb^Z2VV{S`He3EvDqu<`5K?e=m+EymT$W|`}Jkbn}| zTd?K6GcbWCv<5<+bt2OgrJ8>4x)%6ti2mu!{5n^lqLQbN;Im9xLXGh&Yg4WKO3ofr z08Lza8u6GEzs>^Nzcv~JInC92|CJa4vdVLw6~+I2X?TO%TF}kK-wY(q1av9`(6?t< z%CHv&sF~W7vbeYv=eVU`a%BWi9l!TwwQ{x;>3KPl^a`Zv^N_I1khaT_yw67p_t&oE z+a3ggi zT(-xW^v1??l+hIV27`feIG}ATSj&fkwLD6|iW)u`djn%67#IhFfdRTZl*k_Ns^-ki zQZ7$DRes~T%9{r3S7kj9u3Pq|tlOR`k?SDFd+eu%_&3)?o3k1t>nBlCoyiV5sA=SO zU0FNbrYkc;0=4mgT70(c8F+x7EQr6B3v-h#T+qL-;erW&4;PSjHy7-~yFfA70{Dwn zolabbg)K_vR{9WWx|w8Y=AbMjG(iGln-%jZ(A9YFvS~VAG;h}WRSlbzH#hL+S7@Z! z7r?p6zq&SK=6kD2$oZ=yY*9g#F&T~_4!&Ev2|&V>e>ph@R@fXsu-s&Jvxs4B9kT-S z0Jf{sU&O11Z!vfAvG8WfLKByH_4pPVVm(h)#}ZBJ<_qTq)?Ayd2+^#a8={HSF+{V5 zZiwEdD~M(--4H#XE0`t(#8AzWxgl9rzdC}_H*EXqVIf9&WZD;*P!P6s4bN9-6TJed*gb6fhd**7=5kiJkEy(tco)hzVtKBlnpflG zf7p=}a%FsNy~vJw%Ei9)$JhH=e^5GGop+9`?*kz7f2$csRBw2b_ty8Z14!u=S)Z~k zlq_?vSF}uc6{#ihk?!n;_?W9`p@hzfkjuJU2O)UG87y5{<*Imfz1k} zz3u8#pmSulQzEau^C6Reu1!3-_~%;f{Rr zQ9vrJ1q%6k@xA69^`97-);*70p-NniSr8x2iY zYs(L5^dc5igg_$5FZ*`iXZ5YV*kdKtGGrxvJFJq0%)5-V8<-mmuy)yQbesW@?!C%me-wtm zmsG%|I1&Rf{}`n@10#!Vk$ z8s}5oi*!ir11z?9@3gV^?Bf=tAUfdgc9ZMLo40s z%L}yU;SM@8PqFP4%ff-j*FO8m3-$J0H6yY+aesrtx#A?-#z!KYO}HO=xZxiAdyUuv zetaRixwZr%Un2hQ%?OCtVnK_Mq?Ea}K6qpC3eH zf~y4tcHjr$60sS(NWJ=B*TIdbTk>3W6xkc#}0e!g)8*3)}66^`ay?o~}R((%igvSyii^ zxWgsT>LucIq>ALQuDZtp}>>i2S_WVszlP0kpSuZ5wDtL+o=pEukuOurbAW>PTK=7T0B7mdI z;NTb!ap|8l4fLuf8;oFB62>!@#0PruG-&5!oq{$?P|2()DmnylZh#lFIRad3Ryw|= z-P4}D_{b%wxCyz$8p4^;M=E3CrPrT zBn0GWfEmM0j3IU9nik{9_1rkSmGL<5$bqH4Ua~BgRb+%s6=IGd+e#*Z@k&X9H+4~B$_?3MleL%9J2=ypb zv1THjSR&+%pGctO;Tn1fzOegs$tUXBQYS+5v0wZyL{4Gi7r#p{C7Do--inW1-5tO( zFy^9DrL5C7SqgcceyB)&$V$w2vo`*uznBj!L{W&=8;D_=(4-pWzWX)Z;eX!l%t$*g zK@29K*7WNy08E{fL8=K@f;FE%(;hk0EB9i4gay^Y4K@J2M{T#-qKOdZ1ER}$uc^%X zT$9T6jnMUE3qk)U=(wBX27ik7oRj`@KdtEZ;rzFz?83mI90Q_8^5`)_CHEn8E{lO5 z;KI;zs|~M0$$oSDUEF5V0>fNdV`j2wz=#qHj}c!JzXcA@xSBo|5umWTZJ`ylQBTr$ zuq&H+aF2^v^y7zD+Mq*h`Kt~F)7V9P5>XRB#!#mBsJI+0tk7yJ=AqT5UDNk5c{e?T z5f?<>&LB-N^dH(8i~f)@z_WD>^ebqaBzjUx1l=eM@9{6 z7QHR4ZJL$Ox|1m4eK4y14h4v}MY+O6!l`dX(#1uXEl=DTE&|VJ;CewfH=85zdNIPYqq;L;}AE?95&gyiVg34?p5ipi)Je|;;?0P-yIIQk{{r19dKY1 zc7EJz@$lv!VA0s7`Mmys?bRVSIpZW7eIQ8?q0mu1W`u2mX~w*!|1g-X(_@|JfH|Jq zG8rt+oE^8x_ioXR1Oq7jtA2T`hLwj&C+rk#fy526)8!4f`SLK*0J$d>Z2{@&C-83B z*Tr;%np?iM4Hy2UzrV$L46V)buZaiifDGCsop^OMhBP$E@9LGYO`@Y$%Z|1v34Z`?*xTu99w3j?|bQuGRFde1UL0ZeFkX72%Fj2-Oiww`<} zf6^a)oW`eR3$QwDTz*P!wnHEJc9b53A5(U(2n)1<A6cE=%kCS^!dE>i7k z7n_HX!Bm^pE~CY?Mg7J6le6ud{bi@|ly;f8_;!7NyZ&G5-aXu}s=W7|zd3*Few(=v zR&Heeegs%imV_1!8)$cCHXuAGM9S&IuJ+VF{DYJ5^gznv!yi@_8r!8t8#QgCMqSWU zQX4dF(WZ*KtEaI$^+b(r)X;{ytWlSmw$bv~=!tSZ-|rancUehLdfBJP$eQCfFXQr# z_kG8E8}AUQLw2!U&gNiJ%5-77I17OZr;_Vg3)3v+2C$O+l}Ev1_TAIsz7zy(9YDZ4VO}F? zl5UQVwY=2C(3YA)ma<5LPweTn{SY3m$Ql+y6t{#$+<5cEp=FTZPwI zow}(-?|g-KwvP6u8HaOfmF3-|<_BJ=c3u|9@fJ@s)QHtX+sh;V z3ta)K5Vy!FW5ry6wiQ(0X2Z3|k$>_gZSfVti6K696H_oG8R{m99RM)Q9cGjhYnnZr zK3kKpgwj#V1F7B^NOdDG%OcprJmRNDO+s?~CtO6bADs36b|V4jOi>Zu%TUp^%99y* z4T)gX*0pX`pb>hXp_bFC1x5-LC<;@)Jf~0Wu4%n$3SGJ;)U>`;le$c7Oz2Nw$vB6+ zWS*y{3Dp!>`<0=liB?TA_Ofj*|4!@^lq!aA^Gm>sH2;0av9w94DcKaz=v*_YLV` zvlP?@%CoV|5s2C#4XZ&(rVIyk75jDVTxiu9R;&EO1Y}JnG%V>z#tVI#==j8Mgldw9 z$#gJBS!~5UqN6*}1LoX2^~&Gy&W7akq0F}%64C{TC8#IcsX|OoVk-FO!`^oHtH9Trs?6V8wNHo2N4Gv#05&@kj2rID;h z7q921uk}MyRG^hA>XVuBXR1Mzj)fOv!_;|ENn;%E<7CP!WTIgszG(oT(o+9u_;A} zX#C}mGC{UTQ)ZMvVgGWIlxVyrY}hY)MaF?%K6#TA4ekwud&2yuxChF60>d)5B?yar z0}``8Up644AZT?+lZ!B7G=!_MSKqX3R1^gC8>6(*kSW|J(Y}Wc^lEac5>yn>!+um&APR8=AoU{&frLWtI^!*t_ct`2NSsQl}0T8N|2O<=$_uYVa;}V@>*98awV?Y3q9}ft#_Ao7yy;{S9cASOeCx?zz zgAPFSYx;aXvPP;&v&;LKtwDM~Z9o-P)4DLDueu|HYc@@2yWH3OeC@M!IwqjfkqaopO4eXOO8e;R& z)-kG>ZdRej^fAN|(~Y(53Pc``OjxIhMs8A5`(aw5Q+3@el}@%#{}Ti9A-EPv4DGO@rs9p`3>wE##OVhPeP!nJE~^KA4}(859ptRB$(ZGXh*@nf%z@BAwHA zi+^cNx;nVUcV-wI*TSh3om*Ldxtice|5Q=YW+S;3S+)iA9S5jsFP2{ zL{uDPgN!cJ!nTM7T0y$8ls)a+3b4U>Tkaxe;=z}*D|qW@U(I?#ALuf0)5wzY=vyn% z-+B4+o7g!yrMzAP62UXs21aD<8!kVm>|BH4E>?jtC;1sG-~J_Du7}&`0s+<>`+iGz z*R|bj9cD%>lN{v5M7-fnFaks89v~_w?r!h|3o3tw721Tp*p{Nc@=+!8j}4=>kO+r2 zN6V)=`s4H~n&f&u-?yOQo{on1((tEV5gLY%x?!nuxSQPY-c$w;U_C6TW>xwzLqZ#p zsEQSkG!XIIQ@TQ+^ISdo0m;5`qw46Idl^i__oPP2W@7m?<$bX{MXCtaT=(e-U8$Fa zH!Yt4sRDKFxk_r=KwU_kH@&F%K{aEK+|WICzalK*KRm7tRQxE@H-@AzX=a;9CVnN( z@7tL5@VXcq-}2rVq+U&Qcy4Av`Z4audC>iEH-ZoUwHSn;uRK9vlPrg+P!2LF4SA90qdHe@?UD1Yyr#YOr2h`OEOP%!$)@2f7*l2-_q zHG{0UE+3%0oASDJDidzTFvSN|LS1ki8DWl=eeU7rMZQUn7fnn4@Eya*eM|E%G=YUQ zxwM?-_Pg!?WQrTajg-Ij=g5hF6TySz1?LAoL&8BZ+!^S|G!+Sw+anA4+2*O@%oWI4 zp!3`s{9*)61l9uY7ArafvXZ$fZSgSO{Jw4muKj})wyjWG*wb^e?K%|)woThuQx>o@ z7&j^ciUHaWS4|K0y*6h)0nb)?)pR3f64%7vWAy&7M$X4aG5$wB8oBGSwCS(}{5LXq zck|JH@zMSZ@KG~FX6(Ftbb3?3Dlr7{)i-Z4O?UB8k+(Vycg(hsZK5X2$s#5FfPa_+ z_vgRH0@KBQc}~ww9gN%C{p32)HjzMAMyVgeAOxTDGYEkiRDIqI;zTEdz<*Lrg=~u& z!Aa2#u}q6JK%HZZ^xicvB|&R3XKE8(BcP{cz(k>HuZ;Amti&@ys}8imV5Hx_k!>k= z?ZdA8Nuez=u8`TFdQyxU)DH}zAdG^Io~kUgr2Ug96YkqKu?*tV`~omFMjC?=_jRUF zJ^z4J9y3Z-53?0k4{?oRH7bp+Nc?+sb!X!wzg}83DhmKH#=rMY;YcqxSE0UO^J-|9 zZPjzFC&k6qeb6afME99BG+7!{mxL);&Jg}G<_r-LRnW!5R#Dvxxp`cim6S#t(lsC%Tt{*g`usB^y}r@f6tDMudjyvC_l$yv8Dy@OzWL2_d6VK$UDZp z^WaFIFoCF|PHCxLzP0^57D~*3v@<685f&+|SruTl}KvtD5U zoD_~hC;s66JeJAK6Cc*Tau#y@{+cjA%aIB;z@M55009I6-NT|u?IPND-NCMA@muA{ z)Vjvz3UJYU*Dt)2!yS!lvL6;?q92wph8>e=Aa70;>Y`;UsXTqnz;@8m%te*Xr%jFu z0(|a*GQ2@~YaUa;AmHex*f%XvCHre0gU)paA2B8Kr77`UcbHp?(b^cXQuHWQpG-7? zj{svggFbwTooD{Fx7H-ucn4*PkJJ1OTNhj_pFUhkphlD#EIN`_5`x_6rJ7uZXZ3gP z=GXEfCwD8*65g4%f++chss=LiTKvxF`9QHkUoBy4YleFwWie-Zm*Clk$UDR=$|zSu z4O)+)g7Wga=N2w01rFli3x0@!?v2PL$DF4xGF;$nSfO44jNW2YCL#$tm?w%c{g4b| zQT?SwpMF<@2tg;rH-yxX8Zgp`)T09M#=9DjWR$D{h1a5+Zq7xg zyqi~X#H4DTipPsUF2{^pe>kn*Aiyc`O9HL13kL>bJ*FjlKl2YYg#&$tq3r5f9mrk4Ep+FndGJ76NyoH4j zUBw)@>u7?OC_Lf2z4oGF+Dx5t63>==zqS;#Dg_j>)lj`ZD^Iva;SpJgi2#5btaxZl zDerf-A^=XH4r3K9|Bh=t-Kc+vWN{z+cL?jBtoE@Vmr&H+#}3dT*RZwJHW$pIa2P=m zmk_U(UuIApJK1|$JJ|{Nk(mNJn|HD!NO>oFPxnsto@yt%c%XN*YbQG^z7!(wVj z@lN*8G)i)?H8G`?y#wc5Ycu;rH#!WSM8Loxwi(Ci+6(|%r1VI8n+t|nUmUSAHW zllM2;`JZEEnu7dlf>mI*gM3BK0b3kPp}DKZkP-Gpc1`#Bnj%6FE2%nyH|RN#0kOIU zyVS95>`@_du{dN$-&UOA3wLixTmr)yMie-5^HdPEx$!&YOx|S^bjOHMYQ&t z7{GjGl+fSlxZ^)SaSCq#1Bk2`zA9ncB&#Mx5Bk$84oxJ~JR6JIOOii#9qN;&8@yve zClhACuHpbr1*+1+tElbz+Kj&Cl}{svKI*czD)@X8je-halDwDu&kYDMmO&l(st{0A zbSH1zSP*Kh>BjG^++x*=l|>o2Kvgiduqanzo_m7ILHwY z2aiDEB7^^&GRn4gqGSH0*QaXDMgs;TY;G2f%T(gnh&7GN!rNqiHR% z=csOlZcYtQggG9UDx0f_@T0&n0%9%#BolyS9UyrDAbBAm8Twa%Bv9e9i3C&-$`%x%j@>F=%y65%5#7mx zfTJklJ2!Xf4SxTYuHgK8f$(pHGG9A()--Z}clL6smuP2K?Rt0-#YsNX&Sn14I4c?(Kwf^6 zi1?JQO-@tMm4w8IV-83$X42|i&6+~nn{inTi)9}Nu4;L#vCIJLOSB*;%y$iq762UB z7pwWx^m2%951Ma<@#e3!M;cC)A0Qrvp4Q{SxvHFc{r%-dxPEc2uz};XGCpE0CPg5@ z?K%g#in>5J;A1)opdRH^kP6C*O;)tGVNb`~aBjhW2~psHaEV-A0tZ68nDfAO$pe^c zTOd|30N%@wQeqc2Y+5qOKXi>=eS!s0x(|W#L@O(pSTVYh3Hn#YufPWNj9?JjQK^Uf zW{LjgP&hM1J;UILFr`_B?vR~ZKGLha$UY2XNn%A2(-C`a&5ZFF)5LTux zE;-6HLCx?;$QUl(;*r;&TjzfYwwRw=m~4wEeUJ0zS8H3YPLfU6{#ud!bn=xN8>F`v z+10E9+91tyBy&9<_w%P~+DW~Adt)^M5WVOdO|t|eiW}sV&U$%`6%%cF3?)wOj3teh zZt{v)n@5VN%pr*M8_06lY?}vZBhocn+;#Jywh#@kU#&^gbMcpM?hy9L9?&}uAqc-` z^jk)Vb=gKg3GC*%1hBS1bUta^;bcPHQI;_JG1!{Au#8qReOn$n8|5R3VRXdwOPcZY zHDs#=)D}j8tDX=K9KwQ?AQn%pHrAtQyc#OO$2L{F6`>ZCG!#;a)sI^>RP^-AWpO$iABL@nD zsEdt6MW544*qq5Ppi}39?Ml=l+C%NoqUb*5AJHx#@0X8I7A2GYKv~@IXTw3(VL*7!jq=KT3sLq_b#dLGcWBJKnKPfHyJdXg-!e3wb7>N-s-;7 zKK-dR>9Xk4NA(Xr{e$qmT0C@4dYFvB2cc-&`m||Pm2vM+s(X{k$90IDeA(d6WU^ND zjaz>$utq^gkh52RnunC8VfZ>XPTdUy<5F*V1G?Ul`LFdFHW`mrmHbA!rQHAQ@pjPp z!s_TE&2_qfScHqhF#|gJjCKFYa9PVmn{AY2_%K(UmUW1$od0MDjf;aODt^qJja&J% zYD@mXak1ue{s~g=Lyg63+7KejNYQUV4iLoS*rUB zV1`*&R;l$=#mqGqb6wB5;_;|HZ{QCZd*2K?$WOo<+G_HwkB6C-@kic%YT@?Inyk~a zweV{PJtj0mzrfgo`gAaVLqmg^u3?Gf`sVJN@>0h8uu91q_j61rF6{GrRlqcFLDgpp?)kr?Db2QhdSv8sA9v5X?Gs^=H#L>#|6(LYp;K+bMF z6v%LDrRig-WL-xtlzgt{jKJ9O17jL=#Lk-z(PFA(9L0obO`R%eN?1S8MeSq8CFoj#|t zVrhdTtatc}*mF6~s_O0zhK;LTLl|TTvN_Om{2O6{iDeB8P=2gpd;@ZWTM>%`BI{F8 zq9%?|c^4*ply6V@1j_+7v8!qyPsy$^d@m^RkgVeH3mpXq&U#^zbzEjN?H-q!!>(`d zf5w7t9^ecy9HXVs1OzVrnbeADvCk=1b~j(amhK9bZRUdKLsjEhq3U9+UA1`e%L?53 zTIY#BEabeh0l@<&1-yV_i!E*lZO3a2$s0-EP=d(HV(``BgFS4|OlwGnb+!^ykv$~1 z$x^8*e55l>iK)@f@`aB$5p^j4!Df<3Va)otvNq8B1LQb}(3kl3(65ju!cT#a=B6o2 zvXUPR*m8&Gj`7(ZGo_+*q&n#=xK)oaJG_WDWoJ!YrvD@5u=aIx7l{u4RwiX_P*tLP z4Q_2J1u^ZAzweztOLc>)4tEgyWb;4#uc|-x2G`US0a$Z2S_O}$k-X+zw)-l3Fx=jW zyfdZSOz%Bh$eeMUpBm}0ctvX;QfCH=To))ym~loQF-z$Bp1{+3TMJBD65GvR3nxgo zANnaZ4~aOqX`0lQkwo*rO*r*jE;Za`iAuyD(xrYXrKmH|X4L>MV5iCsstidU@*Z52 z{6Vmu_%BUtk96tgB9VZSw6V{*`6ZzLBc!AQeQlZ2$N6IK>RlD8;G?pu|32B zqwV5|D2t4?m|l&x^)}iDGvXA3Bx)s~Ew?JPk6L?w2hA zriD&PHwW|YHw1#V5BGG1Hgxk0-Ko$?C~9zVU#M&1r%Vo-k?5%+q6Z@l z!P5`1ehGRKE(i`=&?Q8qk|6DJsNDTG5n|=BKce*AS0ab(0*d8}%Oe7&4`=7lrOsC) z@+*Y-$Fl*g4zT{$Z~;)S=EAbz>_lcm&%I7~jf(4p)`)Z{pZ|HU{vf@G5*D?VZk)iq zBJ!=e^NGvUEHJzh7@&Sha}{^SmvJIPb)=i=`abtCM~?+>(aHdnrlwv>qZu+ z7JNgqQZYN_F@lP{Rtm4kLia{;07-JHMI|)~BQ;4*3~INi0I4AK!B*W$Qc7ax46pXK zT&3j>M4dN|(ssygWI=;vQ`$I|3sqK`VGc-!YQ18Bd95HY$`mA>j$g9*i}N z)STrOR z-JhZKYD#}bDun;t*XwJq;=1#nj_~AeN>kH+N$D<1`~FP#I67AB@WGD$t{LcFW!X<`LmvbE6!y$IfIG^ibmL38<4wc*B<#d5e% zV^Yq@(Z-APtG{unF7?J`x+D!nZtdy~mWL^Ng~n`4#00A>VpS$Y;2(!Bcy9y(6A`)$ zo#>#Oo8urtodtf0DG+1`2j9I&`hV~&nJl<3&`>+C7UaF-geF!Cwyug5u`e7BP`)TX zHY939*yt}9BP_NLg!^IbHqNdB^4!1)$C*^{Z?q;lPtH<0GR*o+|4?{!hR@ESTcPEt z#aqkwoy>0Crt)0h)^cj5-}ir%QC@uOHb0oD^Wy+-fzO~X+xYU|dhrA0qq7M;Qx5?) zzC2>b8p9q(SJ!&nwM;oh+%+Vyl???IE}>IPG&;Nh>gyQy ziXBQ`DGsJX%`tk~FJB1&^Kg-zpyn4hhaM>3$e3jtrxW4KMAk@B_UKSKb;!9;2Kb)m zcnQ=t#x)5>@J+qMX~xZ}x@8WCSzIm>&ePB`PH+puE{62TxbeZzV2S9!f8yWN-E+Sb zE3&z=Wl0I2pglrVar&@bpM7KsIS z951W|MxEm8+QJv`xoVce3sefjSWv})j6#w_JBR*2`SkR-faxiyL!g>EBgul#F;Hmn zs+aqPEqfQ8+WaVuwcF!83M zY36}*YYWVe?sIccHtu*IH$@mn>u<1&YEA2*KWo6C;tKwds528Suhda&%FHLO8p03i zTdt(ZGEfo{xSL z)TwE#NZ*6RIsr7g-CrIXQ)pU%9dBqV!%dLbP4AH5g)Xp>mXKtn!YoMbR8DC`oI1)# zUKa-PAnq#EO#)Nz_2WF&fP-c*$>>8JsQ#fro1qur|yW2G^=7pT(qJKQvTN~@hB)DQr;{~NGT*{=k zSay;$;@Mz@Q-d-X3?e9?K$`+tk+tf8hVcei+arP=ESJH_hKh?HZ(a@KhFY5gkH5b8 zQ*ug!mOu4alay0in!I=`KZ$}Belw9Jfgr^?NtrLWLnn}2^zxNWw|aHC7QLM+u67kN zzpT}Qa`j{MRzqPj>hKhJ$=1TMLmx+&=D&Tpj;Ag9=r<;-Uj{o@ZE3PO@m3Ovvs(QM zF1bTU7gIZ*eCXC~Bb={In|=3+2^;r{hORq$F&$igTXRS&C%@TkNbgsYGcKskT5?$l zg#Ff^2u@)@mI*T%kcbEn_YYpia<``JQ?G(=1gsxmd%-^pYVcbKkB3C*Z)hYmErO!) z0dnA$PL<1T5WG4lvA37@C=QW z4&Xb~(@cOFC^0#j`lU#^k-;tbp%?H}5D5;~ON`C}Xa(?q!#hyOfevJ}Gm_I3M8Am` zoC92`tU)!vWN;-G2HgSr#UKD8hFm`#t zex~;ZnTrN#b{R3**VBy^8VXN$xi3U3D7pJG?bwnv2_;u2+IoP-PwWA5eOVhih;e0K zO=Y$L>xAf7-bdLg3HN8L8u2~7LGAd?3T77-NW%`jd+MS9qqLmq_j3*dmLv$7sG(sk zP{FPhg_+O;VGqIT1sh@2XCm0c2n{a|BK3#_pq2U8ddy5P`|161r&!cqBi-tqd-UgC z=&_c6OFm}zD*wydDIhX6v;5N(W!P!6S{|Vz!}o9!=3hq?mA9aK@oZHi*mggP)Ihx) zjJDtzz5{VIF(&>Sgqf2Q-=dC#1Ol4*bkEcgfT;dcfLs<2;f44op)JoQ_vgPi$xwN) zc~k9;n@JDdr-ZGrGcz;sE`Aok?MuRi)Or zs5JgxD!pK!;G$KBi})@VQad6u-h@hX89xwGxIiSj)IlpQ2{UR_@icf)EGBV!Bm(UV z5YYq}EYUtN4!cCG7BR4$W&oV7YWKFu>n-c)kJt(8HLDSOp6>_np`-=ffY`$;o^drn zoQlTJ7>HgY9$Unj+5yTqvzM3d?Hv0{9Mn<2f2E0p)IfYBf_}`*;}&hlwqZlbf?z#L zTu}5#5cC{i6*lbWYRCx5Ez#?t+2Brm16rY9{VBi`yHKi?Hh5D3#e9JWdm|g2;Rq*l zFHaWBD^sV@biYB1VS|2##voqjy%~Z9=8Rb(6#x@?Zz8r4%nz#-JU{;nG7rTW69Vnw zpmdLx$rEQ(L!Ke7ge%p<{E1s}gPDQ|Sh?bOpij;0u%=R68ie)MsORc~5~Fwy)swns zhA%S+Rx1G0ADJU+AOjO;(TuclK>fhlCwVxG3hQb>Y+Sl)ih6!rkpe~+S{i?C6S0fh z<9Zeb5ym!5Q($L(WjK1RQGk;!m^EUc{Uhr&& z8Vd`~WS&5~=w1V~H;|iYNyaCwNHgzcMSA3gG)k3MBCvCA!2#~+=L87_9{uk@94^A^ zb&MkAtiE9tFU1E^X?1bF6v?Htl5fuW)ZZFeW#GTpb5@RT?HFAeyS zpSw0ItAPy?(!r1|y!4gx({=!yRu^TXUI;6%%y3fa8YrlA9wD|v-C%<*{T_C@ZFnZC z#^piPSXZul#OfkwtJ;<&BH&G@~5v@$r0hLYBM3M^}gEknTJVa%p zN20SB1Ik29HM>xm=nu*StUdZ90`bsDY?`kToO^&^w=#iMP;l>1CVJK;QJD}41Z4u* zi*gNR0?-sgx1pRxWda|nlnJFfq3>*2)kT7}lnIZqZBk)BR@pfX;y8wwIvha_>BZVWlRo2^AqBCB%u z7-acea7R7v)|V`7p0fsOVB-0ozFj5BEr)N{O6k?3OaGvUgKl2SHRfGqi5@AMn$QuL zVDeJu=1TF3pqImY@yyH(G{*`o$(YS>Fij?3!{~sOP>J$+I%TKRGySY4!5l9lV19VC zokx=5MHe2lnFJm2(f=+Rztf=kJ*`UshI_6TV7n4z2ms6iM<}~Y-C}q$ z&A=vg+!c4^*Tq_I5k#L3(C%5H1t^~wpw0fBo` zTWLu=8E9Y}ka*Gg58w0($pkB;>eY3rv#fJLYXs^<6=H2CXP~aUHl`|>A}v5HWxcZW z;mdg&;h`(Ey?zB7#I15-!~=HfH2koS)qgTcT8iunt#Pt}#dA~aDU&3?&3#OmOsl}_ z6h~9&Ixm+A*OT%|xJgu7^@v)yJvX3v^jR+S?6#3UAziVWTlx2{*94M6HukhAVJ7s1 ziK>+96}RFH*e1D`QK(Zo3_*}Xz(|P3b3-H2?Uynaq{&ArNLsDkJTkgMd_Xb@PL!qi z`!r)}wOFbsNKKM3hoK5{B+pSND<-<1-u%~s>F~c9OuhdffT@K>nkVMehT_%57!y@Z z(LSt?h|b@;9*D|In%z&ptc=dV2g~*>p{sz&BuA{r?N^h66Y8sLA{T20ZLNg0zWtKh zn2NtJ_z>(&2F`nnCEBWpf+OvK<=zme?72nXt$M2On}c+ZFNlfZYAs4^#X8a z^R^b9@<|ztkIGOdh1j0vGALTv}2 z>{rDuk-U_hKJ$7aj~2tz@8b)8AFO@@rY=;gP$Qxma9E1U8+#|=Pa`rSEQLWcpFvxV z&77&K4O>@|wFw&=4!!R)QzV7R`pfNyXSspsTON5I{qvb#Vcd*Ym<{g;d;=b0oR z$!e9hG0BLGS6-`sS$IDwM9#Ly%bF1Q#)XuY00J4$cbeoR&XyMtOztD2cv% zWknbTLq0U9S|-X=QUy~*=Z3i~RcKctk*v4HGjtQ8hBN5mF;# zpWiXwXeOk+5J36qPMvL+MC1aq*wLmKeI@dwLiA3n>u4D9887aRADC z$x(zZb14*{PorL!&2P(t5675B1tg)?50x2GocJ9)BLavWy%j7t=ex}zi4GDc>bwJc z1B;5n%m-FKpiPO7G}Be#P@B2dzP3ZDgz^xoML=|UR6+??a`MR9Tpr}P(sn+{Zvv;i z2~0ujJGmc?Yh-o`k?&f}kNfOIF>kmhmpTGBmwvfR4LLeC6nMi8ex{S0#_9*C#)t;$-p>b`%nT zp!yD=__{mTN+3~Kt2fiwd*L4Z-U~wC%Xfa{Z`i6tbA0u(rrn2|o2&9al%HzEL7fL{ zDgvY!A4{SgLOsvuZaBnhijP&y3B_|gvosod0oSBnS&$=Ca5%fQ!`PJWO!uyQr6qBd-a= z_rzVOt6`v1?SW3mA_G;xsomPXh5@g`nbKI(?rcb(7|=k-c#LE$kAR)kbcY#@yB<_E zMGQS|g<@>Q85pX){(QT`z;)^lx3y1zx#Y3X7}&^=J`UbEKQ#d;-Ovw1nu+6(g(((k z?7#(w;$30J=Sv<7X$Q_X8o5C959-(>qF}`i)_daXz5M~`pQa6w41Z5!`S=X@7CKrH zPlYHs>}SGz)$#AgY+)>}2g63zAKMoQa10a4desn!PmQWe`6n&_oPYNg30#Lis!dUY zX1~#o0K5^et@_*CPIIJ98@}{tqij(A9!gvslKwu9G zGbRs)wqT(708WjJAY-a#&JPBD0-J4*zDIeoy-sw^UYj_H5{(eE^-YNDZi~N(qw+0< zT`tgG2O@hjnm8f)x&ocEe2-(gV%<0^^Z)@URDqpIg)Dz&umeHETkxE*>kc11~a%q6j|Ef?$ys9j4eO$=S5cgr5tGU2ULAR~u;3)dreWwF{}x zDZ@-``+}>~%Yuv-0f7Da)82^?;33h3O;IeQU3W)h1pJ9d)TZy*Q~~nz=>!E@6dTk| z9?`SP+R0-wkF0mb=f$*Eu9DqIVOofeS0ON}g;Qf3kpDG*^8e>^qI74idFjN{_PqSa z>tLL%|HbnH_LE_)X#tXbeVqC(EJDUQtNDb7o*`xjCG>~sR3)BV$M?uBQ)x!FEN>1ymY8z1xP#8OyyS^4W z|E_a#b+lD=Abhy5*8Y&?83V~R&5O07yU)@G;b4#CJfiWATFO)OE-PpFytV#@F0*O7 ze0_28%DBL}!`A=2ORq9N{F7m@%nS(*hHK>)kmVzuhD?vHZ9{$I)*!xcg136WL8<|$!x5&s zZ)1UvDd}Fc!?xnZUfO0v^b{*mjbckwJE9D5EOCcwk~%p6McBhSpcFSjWRuX-Q_fi4 zlJwch?Sl0A<78YdGtCa^^SqL7m-Ja4Z#CD+M*jnvgY6-jnAFNEgRE$VnB{+D^@@n{ zbJUNZ$4GPt%8m4p0D~fw0JKyO?g3|O9+fuJseuq>EI+RK@n-3Ef^>=voG7F#GzVw` zux&@RSAEcqcC*Z7L3!(WyhvZn))OUi+K}ELkw8W|DQoCBR;09(QLQk!(uu4zv5%gj zddpo79E+M#O0ZGrZ%`1b19Z@sD$gW}qq_72m0pYW3l&z%ZjoUsP&VnonyhLG)n@G4 zL$jCtDhXc)5E&UMR>&BDbUwYIEu9Ezmb~KjZr2fnDhnk+s0wv-t2UiNl?;~}FhWh- za7cL{t?}6A+zSGoV`rL4UGoT5=iCa3SE}2IjA-joevDzU?5s22&7yt zThgF7!YVG#xHPD&LRaz&L*+HVUlEBInA37j*?zFn$n+5H-k)4jtG!;U$iM9$4vYlp zx>z&+lBT_qyKJ22|bL5kA%~V*T9JuIukq zmxfi1G4$z!Kcn~V)}L3!ZoFDQUK4-ZqaXLSdi1nvS#?e=@B7*3Rm)SVW#u`wyx+B4 z7$ge@DF}TU%&>QHMg^us{AAr5P!?%dcK)|{$Y-dzn7_Q{){*RcLp zwQ#WC!p?m3rsvg}zfm>hLt0qP$DZGqzNKn7H@LGJ#`JO5@;s36+p34uPz&n$gzMR? zk=+%6dLb;*ME!$mAqZeWEq~x|o=0y^sUG%=E~w|9Z&gQr;@*5ywQ%}Us}|0M(J4@^ z-+}%=c!0&2ha_^sLF{&?5s>UdFaaLg$Bn|&ACkEA1_rc zsP6oIvg*XFe;%rS9`?^8u}?t%>#B>CRGnP{7mjke+VigKtE!8DiO#w-y!YJryoUER zRf9{Rvl@E(M@EPau5)3Ai6JKcYt^Dvy@RW%Gt+lGug-i))exnzu$n);{CQO~uWB$v zv*NIbfI|~xr}lgi_XMP$NF${XN~!6qe$M*mq3|>R2DRuh&OLcH!s?Uj$8#@53vdNj zK>mcGd5gY%S^kKBtk(~%Pr6>KKNsMM+ph@Sh#x$1wU_6Ryh6%D~3=->&c6$)98?`m$<4Y+6vuUXSTPRrR_!$|;jW zTvyMth#XfokP{|R8O*CzBw%YPTVo*TduX`Ga5ssE#O3#Lz4JoEgp`0q6i zb-fw~7^rIg&@lapC;lYW{Hw-4^xkGV`cS4r8>ZrEj6@-HiE`b)Hu~B5?(w8ZNV%tQ z7Y?pU5#5p3skd(n|4A2;1i5qzw@wpZ`5B!#;BTt-^z}TBYQ7%m^VjT{=q(F06f}@p zd3yQ~4$J)iy0d|aRz6-EL-7@oN)qQ)f`u04Gbz81k$W(7=KI*CI9qV27ddj-xH^PM zQpxnWvKgaC*Jna>1*Zh}Hv355jC;FpBH;`b6s}~f!2!SPl8f>1^-U&gsGo~;xJ0-6 znu|6h#BIn02FWPxCe&3d-jH0(CEt*YaT!pmX6zEmF-$I+AnT*ZNu^tC{Yc+I0_9P_ z^1G~G3Jmyujc@4PNg}tMzQ(`idKK-e)vaLs7`eI!T_i)=j54R^e05A$-ao4MsPl|` z;@GC?s4fHw=#q!aIPYxKj#~9HD~o)71rFHL-v;K3u_+Y!;Sv0duIGrx3dSClf`joV zRq!Z}rm%7ikhA2C10@RPWP+NW5m$2a$VKd7(v3gD$oKOqUX}a-2?FHzLQ|PVOWYWW zoKcnCqM}YqR)~UiL*|QXrM^C?5Ni%kxQSj?E=cPBdGc)YA$8a8BLB9F>#~g;EnRcn z*)7hi?z%S%MwUSZmctqj;5sQVVblan46i(?0QlVthKHwBX1wD>G<1z{X~zhE*}d=x z?{(82;oYIA5x!c*Fv5E-IKsaC^JVu4f4M!vd)p(tyFJ2Jw?}x7M<~Ho5g4ZZIcso#DYBumP4t9H69Di8i90ZfN)Q%s9?o`f5`fF0oU>XCj4Ttb5RV85km zhy}w}1|B5~DjO*GcUKl}RFx?qV5+DT?e^0302T{A;JHjB<$?WQ1jYAi@-i}|hO<{m zUK6vMJ^T-cD2BO}T~GV&1y;G^ojuHT5YzmBE2}eI#srIdJ}Hl7IywYab1XBf=}QJ{ z3JIm*8J*F~bq|J6U3bf1!gW`QL!ax;6o)?79VzQ-dEy@rCHeb^kSlk7=g(v54W}TN z7t)JoNtgQMTR+9tA@1ZKUdLOrD(U?&+>T)j=+8auuU5l8N+mz(ut^&67dVaC?c}(agaN z2u{w)yT`w9ATss3tOJqvQIZu3=HMiOCc3@hg$$DsY=VZ;b?}c3$?wMd`zU`R-scQt zVhr@oMDnNUOOhur`E%qIrt75SBvnUeFdn)>tVVflFvH1BQLzFV5pz_J=#8@5ryHw( zV4L!eBsKC;oxP)(!6FlqIO~E*TNnJBx+p#=%fI7{H)L~@6@_8JJotOImVfe>FmC_2 z8gRI+Qw$&Ur4n&{)Tt6{2d$|zPV*u<;WN0Me^XiM-hqiM|JW}Q@}gyGGEv-LFXl|> zwn2!R_#(lq%+>yg!g%EC&YkMn86$Vu2VX^nxYr17rNbnip#d>jPu-i$-F7JSP)5?e z{P9(Kib$MkV1l$}RyHc(aqCICkfV_8w3`Wp8*L^)JqwtCK3G5v!hsGZ@EF`e(^t-) z?W6{UzjQGHKH??N5hft21AL5<%IR~W)N$%Ye|}g|I6~Sif78au)s;OWn1|!C^;z1h z)~zEhhlT54EQ_ztx*Qlg`kcXf?%E}vhp7V5f>&71=#$o=&vT_Tt8pAr8G1adE12sw z3ZVhVYV2%M9+7`3tVi0cyMpQ5Z?{1*=xdIs4pA*U}+8xfn zaWzP$feGCh*k`$4i4;c^W$ODOR;c16a%3Nm;5*E~=4$Hqlm>=ZG7ik43r4>DcP3i6 z_ST!?oOOvY5|Lt~mLOuI79nDzAVa%RiAgkifjP6K+|xM#9`TaWR|ej#U06D#&{W}U zRJi8AsAMnef=)mjCr_6-POOIwbCK zP**gM^9k!up-fRr%Fzr2T-VAzMQ-3Y5FP5+NTn(lNCMDiC{@4=Xi6{#=vdLi`A}1k zJ=Vc;PDGX?hDA>=fVzB@&68LiP=EBlc*T+6#mILCx-vfyX5{aFh4ME`iLR6!t&f%} z(4uYjQw^o4v509nkn{CWSQyTu;098M(;_^nE8>n8HVMmNNwKyA6>^V`=@2GZ zGXEqFAy`l<39bsno$p#!B<#x#|wOIZ8Xx zAM?;1`hEUo>A<~2iDck#{?s+;Mvj<~XR@3^VKAl)hFn#uZ2Ks;*~j~SGI~J2`a_WO z9gP@O*ZPEXKKb`I>FgU#paP9W7XG*vKV}h>^-UkgRTA9bU5QO9X!xwTM6Ky3`s!#b zYenmeuXgrQ zy-;w=>vVtFLo_?5L0`$ceDbnzxseNgW2ffgpic)4BaRRaY#%OK3*rg)aj2Kia8;g& z(+IZpZ4DhZfi9+^GPceU&zEN#(*^%%eYMs+2~k9`A^fjZd7Tmh&j>9ja_IfOSX@e+ zmW%k#Oa_V~(a9~L4$??&X_CNwJuwL0q2y%4%-qFFBy5$?ke&yvRP%TgFerkCGeS0c zA3C1DlR;vFiNU$2b?&-#f>b(P{+TNZWl7fhiDXTJ5o#Q^uh&>aF=<}9fylCI#3eaz z9&3^oivK;}S>^mcw$Bh4f`8VrxRA$PTpGnARcyI|wHRbIcI01p0lGYu zEe?WG_&}-W(JL@)aS&eM@kj(aHB`Po;xjdN=oc7Frd%>S1~Bag5hTH+NPv&X$KD4R9MssC*k0AFc87R6&nF7Gywq(b(m@FPl7f?#N5e%wT=) z_KKCo+RfobW`a>YqiP(gq6rKN+1WII_9bX0%&_7Os>ga&FY(aY8VG%w?Wjpud z9~Qa`H9~1ZvI-kTAk%LT1Ol`qAgk-*p9FNOWmYf3=_a||tg&&O&ENcZiZ@nbLRneV zkh%hF*(8oFiJdfQ;x1@14qYRn3;Vr5tda7&p8=)oxzFP8DB)=|t9QTn(`xRNPPOGa zuOKw|ko$02ODa=w>1GA5)u?Cs{XQK2i4Bq$jQg>c6Ru^xrdSuqtJb)T_j@+g8kY+5 zT_uu}C@iZg(McfCR-fWu(5gr9HK~oz8`GUSqH*{gb>uQfdMx+rCO!?|*Cqn-UG`W- zeXi2fHz>0*)Q6=;O;m7D)1GYw2ha-!zN^N9m|&+WF}`&$0A38rINqYL#SCHVMuo~C zDw)2nRf%QMQ9D}t=upl26SJ8V;HttvQi8_v&ufsZi!j3kqnW0L?zN`v!><(O2Rvbd z@;`WS;2{I$F0tF2&2E*6m)c;o;8d7oWf{fR>=+i1KeP&0QLBf5(B}cFI`-jLdfJqN zO!D{&rH{4*b`O{3-X9@m^lE+)!6JJq<}1-P^uD>GWC82O>fnuAoGQ`bmw=J;C*GN{ zIB@WWd6)wqEtw23EIR3pO~lk`lM#kq9lYUEwEpK}i0K(N^d zj)jpSs!$fA)T$?$a<8t)l>2KDBC@uW<392%4^~uIB_&qMTyg|Qg6P72wQ!#>CoDw5 zJVk5QBjX>b*6anDTSY!dHBnKQEKDtA7 zA>H)*2n4WJDQ9Z3Zi2o(vxCfB9FD+EZoEr}co1t$PuS<>0C&*BMLZ)|#$A-EAfc0i z;5YI0n0P7JP>JNy9yCdFx+({z*eu0C7rkf%!6k$-A{iBV{y2wo&?+pEg;Q@+K27;d zENk!56ud(OF@=#}Ixf@_q9!oFpe%AFUQ-8af=_)UOtR>qWz@wp-mK)}RHi{t#4-#C zj#KTW8%X`e6)k;+Q8fTuV*o!6`^2}RLG}b2a^MDV3)J(poIz@>cF<7G9(@l#*sUu_ zxJy^yvXiT*IGo!7gXPyP`8P0~s8p9_`j${mWS72CNYAGGOPG}`|B&tdY-NcDcI?cW zP(o2R@i!_o29k~bbR*OKlN{I~WXG&f;jJX0aLf4m!_Dl93HZv@_)4Z3x3`1_gs*+Z z5;7QKr)Y9d_&O?l9V|vGe64d|_&REQ_0&-WUp=D~!B-}_FPzz-T7c@PF?C5XN(On5 zSeV);Ox0FNVJbJd0j5%W8&gj+vk_CnBpXx1B=@@GIC0^D0BAIv&e15cti(^2-vmU}3-yujKfiemrfCez4l3dNrn6AL@9m z{BzV>f>+iQ`5;xi)%N zLWJpSn~Tcq-sWP`0Hj32^3`ZL=X81&!}<-YhFOAZOQoBeVF_3Gr^<~W^y1uORu zT3K1!Rwx;G&AK!kv>UyCkyx_AX zVjov`z0ez8=UEeL_KTp`GnefPtn$iK~vVMU{4EMs60CsT`0VFLxaMNWg$Es%qL zg0}vSfkJW`3{wg927pUJZNIX}uaE?)ddDzF5A1kn$-;LG_8N`1>(RjsI9^uJHF7q1 zR7QuT<-B_KR~t0IVU}Mm^2{$Pmp;I*{1p#u<2;K|{w^!~AJ|5Zr>006K(YWHRw)Fw z`H&WBW+zXXm1k7p;r~XD;a|hTdLRZj<1$e6hYcpci&n%~?x8U(XHeil!JVY@^dM=n zT(Mw>1WL;IGbRZ0AA$mZBT1kqGSgWTK4THm8zH3hA{4)p zj8>D${~>sBy~iMUMsJZ!l9VXkokza{SSEL z=A|S{2*aEDL9$(u8N;17irPp{$}+RH>doz7bI43B&+g57feBUf=(aLEF49FZhIVre zz>n02yyS2h?C^R4qVWQ?PeyteabltCQZ!RxZYYQ>Fr_PMM(MOf@dH;00 zL51Tg^WJtEnV`(qw0-ULcFs-C?vZ?Dib2{@H=&q5?YSw@C}0_5<-x!*N=U|hxZmVF z(Bji@GH33Cd>}dj)W>@WcbR*G5X5-4=Dux8x7#%;9l0M6YsRHWC*o)?jcWTqY{~iA znxUn@@sn~eJ_}e7o&{!4#)bH7sH2C0&nKmLiumww$FsoVlX4_J8|io!xO-BL#%H4) z&jMpl%CY!ttmBz@`zu(E`-nv=&BksK4!o=r2X5p$?!lk`li>j8_H|;xwOf#j7aIu< zM<5`$6VqD_0 zRUOa5gk|OG_-u8@voK*X#zoEoxND^6j zykgaxvLO_O)@Pj2XB%nP4XtXY6X`W`tJ7t{rFgoPQHb>pb@jJkY5s=`XfoN{IuiUY zhNe5Oh<7HFJ2{t~e1OsxCX=4FNYv~i>1oD!PFr4QhB`h!bn{GgG>r%6{;H0H2 zP@QinQ$y=D9@-|VO8yD6&B@>SqR)QUiG=4=M+d2>^Sp8dhk`W;oer0n1jH-DWi1!^ zI_1NZuTu_8v>SUbPxHH<-&lzxqL<&}xBB@nTv4#?=&WsPERqt%Pi2B9Ff{*dJfCcj zXp9JWDk`Dsh>f4zvHQtSM!3z>Yq7a=S=H>zPjIAw(}ZXO`j~(PfTxb&>FEZ&axzq> zW_N-<*t+nH0#&>f73_Nyf6Ds{z(Z$bJG+4w0nf|A~*h>{ywXUumRQ z!(c$IA^EolJ(+w{uh21D`EJO+g;_xE68w-O3U5P^$@1e2kY30Xt9))t)L{irAscgp ze0YLLHlk!!ie=y|JwxPRteSU-VhE>`>pXThXwZV4AID)>HZ945oncck1`t4j`K|&* zrp;}sk4vd4@4$1a)?;J(OUdL&=}xK~kqsUYDf2E4X5@QB9{I+>ZJv;yrk?M{fMqX{ zhtIH6g3e=0zID2mKQp;tdif4qZZ!%p(sG0_hFYk*JoGr;Bp=rPfrj)E41j;4|E;dW28i;adpAMUBUlgVExlK5|vPTUjDiEBOa!N9fDOKr?M{{)RJ zoFKT@e)=WTlPyH?Di0h3A2m}e#}=L1$++w&=6yR~JLBL18?)!2Vk zZT$M0jFy39mF_rTF52@|wQu>XZI$NPA2FpbFj~%GoU}un@^Q+ifxqq_rEF{!xI+KF zU8uTa#8m-I;&BwnHkzdw31hGzoqYcnBSwGrg}5;FiqER+dH|~91!V49m42fcT0?hA zU!i>W`YFG|Z0v~q4u@k|eg}J47=%uNl;cI+-b7+F#W1XFjF;G5#1zjz8_Lq&Mdw|! z!M8n|lE!kb%H7AN9sA2Ruj+{%@_fhh1qO?O0z_(zIu@V z<}2_ZkKo@6PzxQVeq*KI`0h)EPxEr?@(IrJta=%H>|{c4+h>_G4iQgqQ^*S?M9rHk zDx@^l9*FnB+Jh?cbk?^flW}j7300FV94ZAo*gWdxM>$x!9Le9hLH_FH(GlNU{^br3 zZ4tMDq?XW*zV5h1eZ&<{-FC$jPt;h7D}K4&^vTGI?y743yZ=o?(I?pWV<;k_xeV#= zjc`{bM?kW9(hgCaOb+ucNI4EdF0GJ}BeOdYz}*fZ87)}K3m)fV z*LoG|O7e(}3zU|VbhMgIJe!)RVDAshfe(nTb38Q65$d^$?vm10#Ysk?tz(EcPKuRC zrKgCmA<>y{6!A4AcD)g7!Mk!Wz~&v2gv(6i&k@|oKkJIjHlrCEjV?7JuW+Raq@w5^ zup`g^{?Af=kGW+T5F#=UKLG-3l!AnZ0e6%8anD``miCk68`AehZQ@ zK)MlxOth8!ysw($2eGN6DhdU+RNfnA*w zmTnFo8DvC&;H8vz7~ti9j8KvP@y`cmk%VZi;@cz2^-0zUGI>;9^hQ8k?)S39VSfbe zCIZ@V*iVS=TL@_36m8~j{W*^+uuSm9;V55j5(vs9R3d&n-n~!9yAvVjg%~BT3ynMt zFz_CW)Jj9XEdO#-mCKKCQKUMUCcAY!2w9^S)4m$zNcoS^W)&Yy-3n?kq&+%=X)XQ@ zJR1Q@yBk31ckZNqD_)j4J5QnK+pccXJu{3z*-2O)eX2vj$^yPi7o!vEuv}->(cEb{ zxQhg>;`}GkQ*pgaZ~-P7$Z2JV8QOmdIdfBa?q=eS;#3P|OTqPej90~gz^87*{5gJdC})|G%9_@aL+ z1VQ&D?v<}s1eJg4G&os+r^wC2t`ctUM+ucGi($e)m5CW2P-$?v>ib+;I01?n?KEt4^^iF9;``K+-wx z=}alMfO$_8PIhFXQ^jsn`8)ZsGi%gSTo)1M0weQW&%e6dO|^a>CRYous}H))I0O$V zM(f-FD~2xU7$}-8L8cl^$${+Ux8(+vrsgQImph=cFJ|@uZ8%VQNqO|G$P0ZzUSQ=I zxoIRXr@n|Z28~LFkaI(>`Qh?&dw6p&+-2cF$)NqQ^6g)81fgH{(x%b$+XJgOZv)3-_~xN)Ep#~=k3w* zsg6ELZZzn6@~^|4I^ib9-D-S4jeklp=`{WX(c`XD`&Wtn*D%j@4QhR=$QN}2wC4N`eCLP>QYq1zF6K#`Jl?w z>u53RJ;3jh{c`*jvF*7^TG|j~xWXtj(u`so536Z=1j9z>;Qb22!;8c!$LZMo*XN)+ z!jOr2*7PcB#IM9jmLMKp2P5@>_r{?9YPQ33^N(Uw_v1uZfEQOW{5T0w3`4MA)yhDs z7~?o%g}#%2ROBUU(wNN=bam*S9vG-(b*7pL&Wg;B*x=9xZ3hwMZ+<1o*XKvn=Zs8Q zEd*LA!;3(#opI9wah%4Tv3!90yD77=GShB=Vo8WnR>{FGQ+jc!Z{DMlZ{A1un4A3J zJCw+1N&bZt%TPzr9p>keQxgwYGVii8&;F68MU7O2nP$$H5N0XX!=4BmIxYH zt$HJOFi?ehT^xi@IyeX+a{2i=h^qV7aFA1-90b{gu`<4!eY%CJRJ0XKvzQt*Agjl8 zSoTDR)0(R=p%dw8zx_-_hkILVQw4aYEC2BA))y<5tK~0fl1!aJ#%#&XOt(ZlQaH+h z?xF^#Lbbj!BkXn4GNost3;q58VNARB1!brwSix|M^I`d<*!2>#Yt^we zB(1snFh{P@9V2|F9M>ap6Z^1PF>8cau;!A;;k3wO;4X9Oz+EP8rWSGM^|FI;d)X&hJaK0yOIOc*fN0RIaKIyd*#ok zqA^KuPBIj00}sr1J2{Qy4k3!D4@CBuX`q|qU<*V?J0Hg}RL}+%PHE*2S$H3utET!; z_f!*fbS{gsX$2N_I8|gcV-i3TLM4WEItxVvQDe8FSeaa}+l+?$XHuOA2Srp1_+gOa znKfa6mfXnlN=D2i6#xPV!t7V^<;LB2-BCW|D0&WS^ctc~B1Nycn_qb6HTsrqLd+WO zKhBrZ>=LX&RGTI^(F9{+Z!*jDRW>dlEk%Py*HM`e1u(e_Qy?U(s4`m;jU73BR7866 zH!e{n`vYQP_!VMeG~!Dm=DY4NPZSqqx8O$35CuIOP$9v?0Xc!Oo7q=u67OKWoWAd^ zHPK@nD@^kU@)_Pg6R)^yPyU0OHNrMaXpTrUU@wE3Tdw@TcjF#fPL9!jwq6+L1k#AO z-&y!|UD=0NBcbe;+(H=`ReK?(MaHPKBF`OkSYSlY$Z&4eeI~YQ4=Z#raFb<{ZHB_I zsgqFxPP3D}5yzx#g)J-~6TsGU(K1>NZxb^tv$13h1mI$^erVaZjQrA~&oC+V^5d|JN&{3*~(LZpyPCuc{99p9i?@8_luXfX#I)QQ%FSOH`uED7073+!=n zc^VZ+Qe_Q~eB&{B2tya^qa)G~g=kW0^WAUw)Dx4@Co^~z$82Z1m_6^yLyQ2Qp1zUE)2|DM|%cpJ%e>si*=;V zddYPjrl#vjo&23TX^wWa?dkz|+&XPH3^} zfou%CdPc7@na}9Ti>Fzpl>!^>mh3`4sv&>6J|BHHHT{wT$RTZw$ z4%|KJ8WrzWf7Qo57&LU7wfeUVFUQS5TD{!}Aa$Y2UIGLPa4}n7V;3KTnwkhfM zmvOuQMGdrIbNthU*GJ?}PgN=u-FSvx%<>NV#G~|aGD;uw+Lj=eDk;QW0vdaI!anN~ z&fAfJlM=-9`rd)Udctc{W0WSW$_!6i*h zk5*y$zQWRget;}_H~O8nB!BpFLFGj72(n&QaK#%4{B&%xpmUP)bS$5sJVjYh)!#Gx zU6)QF(^5HRK>kkGx0Hu#k!X21--9H>YkF~x@@y<0r+hG$k5WDm%cm(Hb(!jc!*Q0t ze8(MBAP=7Bn#CCKngPPlrg~dm22R;-bF^K&L;lfcUa6^_k z7vWC%8Op~s2b51y_8d??N%=7M2?T0^s@XT8$R&)cbkJ>!u$v)|(%xQp3K*)sGA-&? zp+9T$zh0yc_b41>=7tER{GjtNP7MSuI6a`#Vu3^=4*28vh4_p>R`H9^8kYmVAU%f> zQ}{mXa^M$-DgWE}#b-(1QSpl-Y?iC|#VpuLJ_lN5g9sRUT+nB>^Vwg}%IBf8hfbW} z+IyRWTN;AuTt@s2BL-q^axWxc4{{brQNv^pjLFz;)x%=Ii45nJ_ECnj#sZj|5n4_B zh1O%4v!VRGx0jr+?jG$3TA9og#Yq168qo?}A%)i#@)~X}ul?n4`nQ&MEmHI-%l|?L z33B2=oDb>BOf<8nF?Q65gyYvVwCcohnMC%z3UGv6@`em}gCHQlkei~1Cb&*9i@Khz zBlls{l`5+0j|0N{JcmG4!N4r8ikQ}{X7|8VBB+sL4sr@d{*4!;MCf!f_V+MRUpBwF zib=YjWh8uj09JA;@}YyYB8CSGGRxD-IIrI+LLj?xlp zDv$rqKgSPTrupn9VfvJgiPBfVu-DOMD#(!mFniffBb%y>Cd$nNZ#g7DQR}Q@oQQKL zkPR@Fvs68G@~>nE-q|EH2|hZR%*tdvB0DMVH^ERWa=qbrl}CONv2M?8ev|DvB}kfo zaaF5FSW!rxphOM};h?E79NcH%5H6ZS3;>9ANo6rh-%^S}kLXKHJOuRuG}z?jquXD;JYVUsV-|b#T$kwsV@0VEzF1rOjqO- zeZX_`#E_lRO=iAO(rbn$q@n>>GoFK@CvEKo>=5gW~#o!T3NB z{u@S$j+5o}1 zM%+D#Ven8?94+;Ayvyj$Gu?)>78S|Ep;Z#%v0~+4`{}^Oc@|sKDt(+4`{OrhMLNN{ z6m>1x^Xg|$7pa*>^AG(D%Tbl8#>trk04)mY zg{nWyDeV35P$g$lzu?K3uE?+yvPlSqonc83dG{;ATEpjFjexILBfvoibmUVDC`#(Y z5;3K;20&Fhd!UCuyfI(iSd>4!2)4fH@>&s>TBgWT6Ouk1a;LIZr;Mmd`xH7A`a*@` z7UTw_MAmsHd^!Z&TsZ846F%(}c;>X)#^+P>DN1sAR z@6&EnFOQvZW?DEG{?iCJhtUh5}&gpgDIRn8LhFq>M7 zLF|`G%e&^liiPcm-5i#;yFAR&0Bz-G#t3AtfeAm7_)%u~Ez5%+#Wd}7vyeT+q`;Hy zcZ7 zpyl%HAU_lrfm^q?Jjm7A-ea+P6q-2gCbDZM6-=SSljRj~ji+3rGa&cMn;>VN42s_M zP!+lQQK;-xsO-frRAs}Rm0{O+uV>XWjLd}M_X^>#zkBd5R*ynun6nvt{l)8uO7z*y z?XF?*c5R2yaeB)mEb?EwjRIhp=gFpru`eLC&Z&%<;kepl%5XGzf)3&CIZ}OTOx~l^ zqW3oo35P^|<)65%C|F&zF1!ew{(}mq5x*RhIF|pAzwmtHQjUYI;ZK!j=1bZOd@-isRJ z++2N`3F0EpG%pWN>i@j@j9%rsUrJoNiT#k zWqLm#r?w4n);I5~OWS#$A*f5+{ce5z+KZKOKX&P&q2Vj_f6U)ron!=C>};>>lt*z% zLUs6bS8=LOdH4_8GmRIUc&^@3sb?;058+sZQlT!5YY508O6txYJl@nnct^Qj-u^=2 zw;FUqUo6uX>>AdgM!kv!!6je}Zd}p+;z<0WsV|m?FESmb)N4+;n(IEkoQOd3+x5vt zUq7#}4zJf~V0fMWUru)n>i=c$U4ZO5%6s3nUo(4Nnx%)Wx4rkq1_?aKB(`O2$MVwg zi$Jh(I4P1?vg+JZby5;lH+EbUb?yloY~c(bK!5rC~4;sfX%4y?_Dms(~&Vh=3f;=|HysNDEJNHe!Q{4pGta zR?~;#@GcNY8>$O0Z5ZA;zIX;-Xbzv(`eL+w5}u(imI6W#Ptyjc@iF5U=?lUBU?^X> zu!k1XP`*U@Y~RDNciC7z_1RSDJ5!k*$~&J`#Id^wrp>yQsw!1h^ihlcGnZpNl$~(2 zNHKVt3&djcD7)6Z$hj9PB>Cq;tTkj2`VMj}8Ey`_W_)rREb(%WYn<)SUg`+T#Q(@r za-Qfnhs`J*C|#i5M42l~#G3}^6Kx#^kP~faBzNhFW~1oMquDZo8j6R|R+@a7fRRWO zd74H>Adb3}10f<2q=1QHEU+sUz;_#|9#2!jSYRX;7)GG)k^{TR5)bkwXNmijh9z>s zv0377eWitttV^f^gZ8&S4a#hoS`;80KnvRvgfp2P0Z4?bp`3$M_({}{cqCDng7Olv z$N*#QGs+nw*0pS;uCSND95K2fufj#-`W6va%J%&cSVqn#XYq@Y3;$?HtYV496Zp9< z75|hOV|I;Y+mcL+p^;_|Vwk{iw$Knd&_nx?(tr5nkc(JF_E1vAgoD-btPZ>3c}78d zXy}`;>t=_8Io(nL0v`&FP3jjmrDHY%vDF?Qw?@b}`4`pnQJRrRw}yUVOm5XhN0OVo zZ@?nL2_#3t?xjG|SwugknuhRiVKLA$W&2TlZJyo74GD_3wSXZRpVq>nNd4pQEPb{hOeI4n5p zdec?O2T0XQ9NWC<>g11|=H~HDM3ThxIB8rU{Nvzj(&J9EVQ3RdK};VZ&ALHLyDAyw zne7I`p4@coV)VijFVluBddDc}D<_R_N?)BhXN}Fl+3Dt3oU2iIsz5BdJX}b>a+Rvb z!+Zx7&z?ksrv9&>Eq>sQKw))ON@uPQq#2VMLz}%lvuTmW&fP8?cY<}obM|&3Vxwsh zlbY*2M!iN{)jv+f6ba#`>UWsH6NU7L&u^5mt5vcGKJf(|wF6n7Dx`1QtlV7LQS;+> zIK(IqLHzpdNT!gpP<5V*&8@5h`eN|`f?Yf`AsoiaJB-`1&=BSGLKnr%nC;%nfLX>2 zc>X}aurN^LJpycc3T$Yc-0}oakA+(!7~3MNVRHm-{^%B;UZxTBH%9d>8>zjc!`DAz~r{)bskt~bSH&#PS^owAF+w*a1EpXk<^cHsHDf6CNXc9uN z!`#x3Y~lx(emr^yPYgY65QaXg-+660It1Y9g@ONXnyFNlJxW`;V5FJ=aaZFGkQZH? zgF9W?LG1|%@E0!42>wf+KKz@@MgwFu8ve56w8MW-;paO69uX7JF(OWE0kmkvjRn^uW=b(@Hjd(261=o z$EbarG`fKlYPaWZ1ezHe`0B6e&CC{+5bdg8mhIFIC&S}}I(pg0;&DA?4|K;pE5)fe zi195@0@C&jm9hzX-KeB*+N5evTi%ld0JjkbP2csaqKNeGsQ{)Cc}jSWY;|!sBg5H4 zI|7?K3n=S=#KR+20)sSRYO0#+8@6$M13geP@7l)o4NenzwzY9N;Q-h227l+cav9y2 zp3t=;dS1S>GuiQ-y{YEPUyl#6OJ{56#`pIy5 zVSxR=#_91pS~&g5JAO_$4W2%2oW}JQa2k_nj?*V|oW{@hmXCndedsOO14<2c;&&i# zgH6OnMGA-w-si~p|KoNfX#WB9dTKsypNzOY_5TIj249~xZWG?zhSk$-V{A%o?TCFy zh`o3&VyhKV>`FjvS)_tpf@g?wtE7)@Z3JTYRI7&18@txrU> z<|dMb#gPAeR?#}qlBBKE-WJV4R4 z%_4_lk%NS#qK>b&_GMZ8|VD?0EO=%BBMon4K@{Y(xiQ zzS0NTn<$?o24h`K+bH{x_$jM5K01CnCON}mCMIhf8g#o3(b%V{=Zkgq%k{Xl&fPME z18$O(ZDTK%2n?d*Yi*!)Cr=b>mu=p8o1&6)6RKSkbSbyqHU{%AP$7s@K)I@2fqY-% zi70Pk3X|yrN$V_f!>fN{%dprl8toDKQ!IOtk#SRx1I*)?^atE=DiI zEz{5+aa=rAwj4cYwxr)C(APE{(x|qIkg<$8q9Q) zTSG0jNrqY!2)38OWnF| z2VqyU9z@3u^GaVzea>~F-F58%kmeM+Y*075%^>r>(rt}E#L9~7=YLIfrK#*hp_&-W zXyt__OmAVfbKOLCy_A~=tL8}XO{=(+lJ&_@;qURSISj%Gv6x3icw(!R;+#|lWNE7J zYR1YMafLRYSy7Z-{QV$Lw2K#Hbe4vFY?D;RrUEZB`R=Iu$^<@w0$(ek!Uqm-{g+i3 znCD1ShnM@I8ucC2M7Nyl@MD{#9R$5Sv^N?XI8FnHt@NT|!i_=EO+km3O%PzYfv^4= zL5#eWVjfiD@hza-F2Mr*R?4Ahu2pIZjc(mo95I}@n-?8-4{3+GN6RDKWPW}BhcRa& zvdwC{_WtD1YT6?h)5Nt*f$L%*ljz;Kt}J&$?CK`AzLP(>Dc9ad(R5zxB{IZ>T$Q}u zX%0TRR@%FDP%#PRGCD6bu+<9 z7Lj1_KXh(sIsqrsZw)DzfS!D%X(^I}8=e3jyWy+$dI`B+U(YqP4U8q%+}ONdkM;%- zYaeObAV?n|Jpt4OiBZh2W=nU{R!>gzrL$G_yKb&18Q@FQF@lLyY5^a}2I@w(e(urJQ*(e_JY^mh$I~qIabWNK@23=e{bkmR^|ID-g4;kyr_gu z!E9hTW$@g+_lINp7-`tA2Of;{ z;}E2BHkv!QIdMs{9^1wuaCG((Idc9l(g4Q`l6J5f+xf2zke2KYL`WYgG`LHv+92Re z+msO6sGppEBHq1eK|uw4ezXv{?wGYA%>yg}#rUviihXTvekgg=8m3nz%uM2Ec05EH zXl%?f`{Fh0V$r1c#q?p)vS}+Hu8e&;z+z+@;<;e~ao9#MDzFfCvV<*6LZibsci>Ej z>BFRtIE_UdxE_t^QNEuDWr_#3MOQx3zzO9+uGrC7s-1_Wn`bsMNZS8cV_f?V9k`tMM4i;3xD9Jb9S*)1q6JkMD8k^9$Hc>LI!!r`rwFWBw5 zMf!{s0de~c$ybqjhLW#u(G*%$JQ(hd4orQoC={xvuuM6EK4Em}-RwXiroXRtd3~c+ z$fZG(+YnT^=Z42ncw7<`Iv7hS`zGSr^OB^#k@UZi{$#z`6qRg zE{P|!kQ&_gjvmuwcLnfvAvSOh%B&EDFGf*Fhqq-4YVl%$K(Gd`sBPSQ>3y{;b$!S# z?yGoTy?g^f7L?y#1TfUGw@9z9cpr#<8BJe~RMtnV`+(g3h9CGd9o8jHvB~m|+H=w$ zT?0{NQ=j%c*q1UTd2-{%;-sEPWfOW{0k-Lh9OK9X)ISTk)vJ?_E5DkhTx9a+TY_v& z?vIdEv!5u=BfLr|1Z<{3gi(C}LQR1n2b3PXD*3RUAlsktlpF7me#}}GB ze--fsPNo5Kb1_Tn1o|%GOO|Teg!)xUB@?7KvBFEfR0o>1$(=j!PLZWoX$k<)sV%&rIN83wj*PCI#O1WhQ-W-Do2rFo*@*Lry%6RrCdbhHaD-y z*0&k+nx$s!CL{hFA;FeLfe#$gn3eh#3btzfMHt zKp_NX&$6H3GAvDU3Bv}Y!YQmTxtX1xbUNeMq#9@dvu&?{P5hw)FG zG20h9f2E|$?=c!^Kdez_F(|!{4W!TK=bpTWx|^k0a&G~cP->5TB2^$qQReB8s2k6N zqIPPHyUuO^=%wr+)eb7BoPN#z#qrz}n4Pdplz!?4{;x{MOSR=;l1e^_22xH95FEu* z9#)cd#}Oj76k1)yrr@OumABy23uh=HV76NzyR==vLKuG)Yg$GTwJ_62XKwWp)`Ab~ zOFyO5NX}2cGZd&Q*=R_JQ>ABR9Tb;JxYgeW-lFOOD$ zJ%@M^hvjKR(6)0RhDHbn7s`T^`*nz9mm=1xQhhMUsGXSW&@b?WI7bB<4scA7hevG? z;yWbKwg-RppwISX=l+ODJ~mUNU%#Fu#J6*Lsk!6hLu_Ewv%QabjHK-RS&@f8l%zZ`dWvkoR6MNO|$9|KA;&?}H zK_f$Jm2wlDD>DxEEScR}@+4v%k(8F)PSr7_6RF|MYz3JGH=6Sbvb|^7oDSme$og|K# zQ{^U9aoQSH7|B3h*L$A?+xoa<*wu!SeD62&xdPv8;Y$Cf>TkoOIG4Qw@0H-fK;HCx zVC7ZkE3hwzgEBBhHMf3howLgbogJ0EoPA~wW9d!beyxI{%GuxP=PLa~vnXfZ)X($u zQxrDa6@c~jYvWSOfgV>=-XtIr=xJbSSG_p|{{7!;@^Y>4~d>0&gOYGf8h& zto48a-jj|ieAO;UeFDz=yky19@&UOj~hK%eDTw0V!kjVSzuXG#eqlhE&O?R7-$ZdW(joNCtL1M zMrkGa@*j0Wpt2C2WvFIy@SNHj$h@QEV3{ZNn|w#tL0KpHEmo>1JLVwsS#kJ>)Szlbd&IZutoj}T;iGc{9Q(=cH7jqAh zY@d5(h*1#d#yk)WRzl+hhn^XlX!H;%eu_&T(r^8C!Vb1C#uOb#Re`5S z^@3|iB{K=5+j5_Y^rZJcOT|FElFX?#;`0#<2opbrA@1RzRV@0tg%yEL=6Ibv!LR%r z0v)mu=WR)N*HgP}b8X~(P_`2HN~6m;l7r!fts-x~mPwb3PkPyClUpo_RkwvsJBt|U zSGR!}L#15NP){U?|qSO>_n4aw&VODh~1di!GJ0S3BL&C|@M`5kpRI`krN;VJ3o! zCP;mgo^adri@#2hl)dgY8rBA)goP~@KzTqY#DD*60EklD0YGxJ++`myR2}*bv5wp2 z_vYK>^NiMU7GMK5x!7;IH@;Tn4I~cv4`@8N^VwgkKP%F6+Ka(!n8>ye<^OIKshU0w zNLh$q#%vRaR(Y@}48`)!?rjdq)U-#wHUOul9kvn#9ica<6<)6gz-6sddzb*fkXF9~ zj-x7RvD@Xu6IU?xT%@&(GXn5PQq^MMon2Qv^F;wl%w5Y65`lA+Xx;Qh zI*(o=#2ZE+zk!2rNbU-@hG5)Ge?ULj(+-3V2torF@|jkiM|^NwQ%sB_9%RHp&zL{r zaZNlUv@MYiOZ3)ni{50lVovjBVSuvVl%#K9UrcB zwN>I5%WZ3YS%d&PrNU6sPZ|QRPwSc0DWU zcP@4f%d#KmCz~vzrzS#M<44-YzF0A9TG5ASq=qXdkX{j8FFa;7UwEEVQy6_X=np{| zEWBEQVaDTf)nb}U@5m8;$;?dQJX&5s6|r3SzLy1WX|LZB65CS|=)b_9^l_<`bL*rG zHeihVW~^;>`S76f06B6(8+H1ca4#sr>A|sunM2+(SwC$3A)1Ga9PAFQH==JQ*7=w_~GqWC11Ql)3_n|{_WhP!|86;=p?#gvzR1ar_c4=5I@g z!&m)bR|4Htx2a~%u7qRJtQ%~~c#!m4ObDMo;kMl%B{yXI&Zt6sGWVO2bZuqmRy8;9^*V1{yad1V@M6 zAz^CJA~17c!VNKjfJLDMKel1_NHI7C4j02IB<|+du}J4TMZdbGwNrFvOKYd-8PfSq z(OJ^td@1M-GXWDyM`W*IU^8KwvrDueb8fRA$oDoOCj;E~BSP<*L+{%ZFsO6%sEIUsoppLz$H&D_MGIELmS<#!LxFULvD1_NCBf zqc8pDA|0~9M`UswM(|{D9dsV~gsl{W()!m9)adjvhDmA^2M#a?(Iid!H)OIn5;F@>rUeKxC?D9f$3O zc!KhwsBtzK%AhJ{XDyeKNTe81|GX=Fm9vHXZEb1xRt>3JTNmflyIg~IjXH0my+(sMOAQ80toIeII1Kt|)O`eu! z@6l&Vo?;XW!D-FHaB9}RH2YJkm037R-?7;Za_J~Gp!EI36GVFLeReF*KJT-uNJ`e! z%)mi%4ySFca5!)458|YdhsM+IrA!Z`1Z3o7w6eCias^vDwNW^YTaJ2zP~$ok$0v7Z zGyV&4+Od-g#PG9!FUR)0k*T^7>h};DtLrgOiggSlJ%!zi$H`ENyH{ zbHf^A8Q&t055B-fu!JPx(RW2+TGSEj2O|;d&1TH}#8;cl@8yB{{f?NQL_ap<+0?LX zNLN7`&dWCFDoBG_;}Ij5rXtQ~ctgk-Spaw29z26PXMBfXd~jKL{}j&mnCB^k^L@r? zq|er7JgT#OL*5g;g=feZBF1N931gSAWkU*#Z)U4Dr9<%9S6C4@CwU4TsDv2LB#PF` zp91A}EJvfaMW9KVKyw2HvVSDfkm&TEt{2_kL1m`*@@nXy4Qd|qRiGpeDRdrRS@t!t zq+YS4Wh%fG1ZGKxIPLM}Is%3~0!-Ykv5+T|!xYF=*OKU9Ndu@ikqIpcOi0lbtVY~VM&6z#r@;>69al_D@I!wA1WD@V%Is#ENr9IXrKjob-B>0RSZv(J-aEeO0rsbn?-9Chb^AX zb^0V*Ww}`^j;yS$^-sA@-GxZwpkzX2(Vuu1@6TbK3e6T;r}&Rqr-X@UopJ;~bDhrF zQpx%z1tWz|2nVNcafJdD&ZM?uMZAp_f!?ffOB{U6)DCh zZ#K+E-fL0NC{>4Wdd^m3CxGyKfTIx?bNOQ4>l!D3i*|5NRUjV+>3u@)zpLI4Hi^c; zVs<=vx#__!$*Q6d9}tC*fpm9W2d9NTNNVjRZSo0vbh2WUt{Eswe|Q z_!L9Zlt_O+S*^c%X zdx;-CYMuh>vdnCGT^f#AwMkhLZU)a9+agKUV!&Y(GKb2ru&m4?TPuvlL`s8}Zuxm2 zQ%j}v2UEiU@fqT^fN_o+~ij(C=P1XnM&MyfaA(!$6;u#+CQO9{NCAQBF0 zunxgd%pD09TUG3!fC2!X)v(NcQ2%2W6Uac@Mv#a^+ura&hPPO>ZLPP$ zh&szWjn=7?7af^Hp6t|E(YU-?Ze2v#eOg2?6$k1ed*n0XfIWI8Nb7xj;GSko^ONsr z$7?64@RR>LR>Wr}bfr<}~MIh7>n)#R5gYxVPF8{i$-!e7Jx z4Pf)S;?0evH|Vq{rC${E{y0927RFJLEo;=ebEMoDs1w=}gkVNGqjdmnu?V}Iz&(Cz zB)Kop;xF$l9^iVB7_9degMrM%R(I>V9qJonN#E>VT_+y^gkfFr`g(;qiLzfq`*{1} zUODj$tz+F2nV>5NPuRVzG(ifbZE>7GRfBpDp_Zxg$r#zTLs?{c5)A!sG?ev5}I#6V;3L5lnmmXPduQP z&FyE1cKQA|6qbAg-RM?OI?xlS+-gxvtsPUic_2~X0kcT6D3XGlWtR>y+gl6^kwb>< ze%6w4l?C&5)Oo38j8Mir68i`N1{h=*RNi@EYQE)<;pRQ2^BRXcskvtFT;Qc}&bs)h zTxKW(xdn+@_iiIQh~j(YPy41LLwv?l;II7M8RYVox24UFmK;>zTP6Ma3vGD{$0E^h zg%aSE(M2&qNNB7=DB}*TbIO2eOGMkAzV0S|jQ|n3cXT!OClt3P+?F>peK%CW3!R#t zz(Ii$g1g&7nh^=~^)Mw7z+0}B$8%Ns4==7QPCxo$ApX%82UVCsl^d(F;@xae_zO(o zBXKQ?X>MkVgHA1$D3H&hJ5bIJox{WM$qN+&r}e`ntvvIcrGy3JkY|Oi;zkn|r~Oma z^pip{ud(vnE<@h~PY;y~T-Efotoa2?JN%8-Ji^5cg^`8sX?UeffRDrLsVy=OK&PlJ zG7I3KP4uA>96F|uhAencTLm^tz1l-iRg#Evwh-V~Q&O@0P6pY6Z)z7nserW*#%@9F z_0ex=xL1ac3iKIh8cAt;`bpnq7cncMja|03KN_C~MB4+UqAUBiH5N<0%goT5;XP&PggK+aciG)={3X3&0E12CYb-bAaoeJe1y;_5$Xw-2?8M^ ztwR#q^tCErxFMkAaFaP-aC-{)w5Ct=07ad_HLdFKQPw3yYg?ojB3A*jQ5pB5XTzy( z8g44%+PwMQI|KwD0a-Zfbl7@2<2367%Ei7DDi5a{wRUW>Q`7hnx1wsG+7#<(Mi*B^ zqv_3RtLpTL1&f-&R}MH@(4^)L&Q;Z++{h`G)U^f`7${MN$s9x_#NixA6>XZ_9_o zA&x-_v*ELNU_ZD%p<0n*S#fh;k~YNtv9K7-(T3Q34QfMd?n}~!*m0ME{9t%8S%Dv! zj4WQrmt?s$9K|33vpX)emHx<$c6%F#3%#I<z&U@LU0Wt<>le|unKqYpHuOn<$EwgbSVU*b(M{0s= zHf6TU=s=X%vd~X?G-RL%GTI~Ti_8m1C<%BshwsZutLF4q-lHEYSg#-7!`y>WN83Y_ zE&j-j6eKgaes3q&Kjh^GUTAn)S`EyRV!;kQE!KM5LQgLW!F^L2o{&2WTwQZYP|OUd}NaXIjD=_MhsF-F+hQE`^&)zHj!u!VkbVU-qymYn{ztR ztEr@U6&5qfE8#p&u@_x)*ITPbw#U<&<--_*9gb;g&Q;F{g2pAj);%Yk^ zR1%4s2z~E#gyjJmk-P)$!S z3N`~os7RGVOlfW}ew6X}*pLA*9|2v}{x3LAd!UWERdv!sj|?&dc+n|N6BnuIZ5rzq zv|d}$03=5v5(ZQmgHgeA2wB58k5O<%2t_dYL496x7tZqJ_$A*I5Xn7!(#VE^e zSy^r@rYO2MaLXf3=;WWdRbqRv=#<+YCZH4$>QmAaQQtd{zR}SKo0wFvH@7`Z%4VuO zI>^~SENt5zB58mOHPv?nf!=6kKz*;qWSd0-*Gx)o%l5D^WV|-aTrfZgilV>eg~sYJ z*ht@If?&~GLZYXm^jiJyFhNklCWtr&P`^0_MxA$@F=#ki!DdmIAVTDeOb~HhV=~Px z5L7DqXEMe^cK+md; z=alv;%w2oy*v+5r+w7mT>Ql-wMb7w32fzer*C4<((brk>+j&VGN`Z{2Xcn`PNYqeX z^8hxnK);Q@SkRV5nIM%88v3*>`(vHp9!@HC!)*9FJaIdJWz4%#$^7_u~O&wqJ?>2Yy^1oKqn0t zF?P;zPI5TsVIvCVlcX%cBAmw@diwMn&Oghch;z<$YI8UTnIniFX3gW4vS7_d{;^<+ zvw*K5N~CF>>NFk0HfOfPpo%9A3~9<7t-z2u4rgF$jfMN6gH8h5dlU36TwldQv0{i! zt)rg$Epr%<{gycl$6V&{MCJbGAam@|fz8q`EGxlcCDB{DV#(leOmrzTz(wVY?;F(^QrvJVU{d&^jhXXxtS{H=HDQDz|>%UmvA!3 zVD`udS+{jDPkWa8CGitsAGAo)g!t1#5|>0<7h0s1ShlbPEppzr^Lbk2Xvvx)n4La) zp+hp7UhLR@r(zg9*DRZ`k}!WF4ZkR;ykAz2SE$DWUS{esj)G>7ua}sk9>0h~66+-C zaoCbj>j^#9Id+gyZIt)UocVe${2}VS#C3P-y}BE>q_8w|>U6{&g(};wgR8=~;jst+ zSr+=fQf}RMIHwQ{BqiAy;J}Y4%~7QY2lfxVn&a%!Y4u-i7;R8`m2n zwy0&3cn6XRL`2dcd3qt2mZ&_d#2U%dIo>W%LqXu*O%1)&XjIg2vUSj%!f$d7OefVx z4NT&7oQYt>)+|4n3bp__d@2>JlN_2s$Ld?;Q0kX}#36U0F`^k5`sb=(P!3eE{-A>O zV_#iR1q0ruV3B`w#=dEx4MX5xpoQgT>`h;b7WU1jg`UAq{VS)1V6V>pZ_+|rFMc{L zY&-IfMLLHTGD1tM#K`3ms`RhpqL+ad+M*{~SZVVnzw1{8I!wA2V45cpLN`%VDf#M* zU3SQR|8#v{2*3%(68yp(xnj<>&q?b~dpMLsCrAC|Z+K6r*znKgb|J=QDVBrpB*o6X zS*Ta)kR*klTXTT+r!*H1!}&Q|F?$ypog(7B1MufQx}JraTdd}UC~EFATU$2T$F{a? zv&fpiF843tPU2ek`ed}YG5K#H`A&|*+U6wZ z;%qG49Fk)sZ&ebOLGaqkYF+6!pNV)A%$Lr8*%ig>UAT1X#^N<0b@RsJWg)d~V{)-m z$$#6JTtW&r=0)tes}8L4plF-GN2@}wayM=oEH?BNIcd<9y|H(64$ zYOD(svCB_S*2^eQ1$!LyZw^0cK)?^gLLAlNLi=K&z531jJ^GD-t6K-RpqGseBDFF^ zg8BhdA=_J#FQSl*@Ep*KHC(9OjqNMLy}(X}KiZ(o6#aw8GVJ@Xcpa$$?M)~r`v~Q= z&xqyTEztxywp#~jGn6pd2y%q;DD1jh(w<+^4^>!gl;{PC{?Gv5+V9<+9l_vGNM~=- zOM*~2OF)8hgYAQAm^=M;s3&v*d60q89r__z6w{Z)-5z~-lp=~N>|Rf=g65kr}dlI9$P69{{f5;aMPFTmak5c2feGjoCl+ZhGQA*#f{ruVpr`Z@$9);+3 zTe-d{6y(0{I``9OU+!Ywn99OX@@0;l<8I}0p{s%$jh;^FwDF=gM;U96vMi9xG$H{) zy(!6rUABhZa=q#&Ph zo|vyZKM-^G#N1(ykE&?}jmC^~6(ICDv&^3Ypcv4@88XAUX%dL>BHun1nvjrPY|xQLvle zfSLBwFNv6eIwvZ4#6f%E`$=FoP1?h#aKs<#i>cM5@Bzf1DsSY2PQ&4%zsn^t+s`&>R9M>J(Om{+?oR;I{{Tl0k#>O#rYC%ITNz z*M%$f=*FooSYGJy;R<^)WA8^vPj^X-@wZ0=yjag6(t?xWVR!=*_1smpcXzm3K})}s zK1|OH>T>q`cn-6&4k8mppzbgk48Pe&)@~&|`64ijc@d4I%mic790;)Ebj@=Euovvd zX$?s(ghFGeAjxUeSTaUXde`P%wCj1Qt!d zJ2TQ9I=8F4&Z_fNozjA!#_70}-Al;H+49EHK2JSv9ojz-@C8(ZRtsOi6#jDlT>8%Q z)iDN2vnUaCP?#-tLod$Ip=o_f9ma6ln)1HY035yv-~tVmZZ&1p3|+|1>MTKcaE_*G z_VY^usDun^it06Brpvzo6wK3T&U09~ycITQ!-R&E?@AxKR27_s&%aE2(cIl>)!_vZ zpegx4OGe+CKv38GMcJ%|kZTX;G^13Lnr9UcbDXbnbs%7UgraGB`i~d7541}O-imBhJA~#I+o3FvO^ej$P^A_r@G{UyBK7+xRCxyq5k~z z)r*lNpZ`qIEq%ics>1E-UORzG;w46v)y%f2tmZjm$?V5z<1CKw~5^Am>r5s0XM(C`p9644(@C-t;@Whm9_$RC7LjWD?C)b}uhP zTiW^r6?YqMEdnW^r23>)H zplia1#+4qtJm5h3&ukr_rLTF)i+S)M;dX0C0@sS!wVbs=)DZ%(Sc7+oj2yGu}}D6M_CGmVAw&g$#K)^855d z{lYYq#3Bb51Dae%?9w&{FNH(seUs_{NOKT%aH0&(4ZpZn^hMO6%p@ql=^rY?dp1uf z&3Cy>Zy-v=m12C9ty6FXMqVXdWeV2$4M0HbQOEz5PlmXS3P#wSy}7si*^u7q|D3)mKAS z&=j_m^keGua2Gmy->23Vm+maQij$%y`*$>o7bQ*pl+cF|OI6gS7BDGMjCL_Q4Dh>v zGa=f9{#b^{$iA=t%i7QrG>ICBw?Z&xFcqKycFXm+lvuG4V-@Wt`~7CFk0a$kEP zsaQGWqA{TR42s?oIlwtB>06$~uiEzX*o#y{jfjO}HUp+E1yd)idni1COq!(+97CSI z=L&wJ_MIxlMtk*~?Lr^M7s??Jygp5+UO&%qIDX2L5$KgA1rGR55Eb}lro^!rm3pao zT`T?p=tO0K+Fs>I2o$%zuu}{s(-5-mprMwj#>A53*o>B3 z)ZYWe^wTe7(I<777bo7p!|6{An#Xy(VR{pu0%;CqeRdcrM+5HJQ217w_1yvi*M`ep z&?`;9!9*eEYhNkPQ}X}u_Gu-P!NIP?0@Qe@U-Ac7P9IBH1`y0_KT)M3|BE zqLjYzHY`aKIOa;WMF#*dQ@kKvhz1sUqSyn&P#Rt8Rf8I2FDUG2NT?8!k{l$O-+I?M z3bcVs{LN$Jjp^|9HsQT6No7s?A-!?}ee=W6Puo=SY49@H*|l2kV2 zvu>V^9)Qxz1oVi$YPAurza$QeA7l>;A#HKheAS^d6<5WV`hQVMcnb^B|&W z@fWiZ+~bdYmQ9tt>3c6~lm-ep+X=0YFoB{q)V!~k-Oxp8W1)WNS1*vLQtx>LUh)(} z;xDu@JNM(MBpu86HQK8@u60Nsh9M9kqEJH*hwy~nFf)futd8i`GEu3Vi@0};zI+#k z$v_XGW~wp$N*Shg;@1Trb@4{RZ7SI}KTQ049EZtlv-f z^ATmI-P3UZ((FBYy)HVUm19s)J%s@_BmOQYb@67iYGHGw4&JXNtKkzYnwvB%Gd0$_ z7@Bz77(7mE98J&c^PEhK{GP<9I-uf!jiO6ST4N$rtPV~LawH{}=+tDas(|JtDbQ73 zz}j}uImCn6lzfnsZj|{?=fkue1ZupPLJ;2rP&AX1q(@?Ug0y&&^2bTT@c_Re0pCeK zd9me(wmCb;oJpdi<3KclZoibx~@J*7B87VSBP0|ktgk|H` zwXPZYf!-E$_L0t^vxjsJoe|Q8PQY?O=fUUdDoxrv8c9q$B6IoxS0rHh-cj$CAH9K+6qdThECZx zxrdC4`ZjuR8c0laC9~*5IHtHy`mJZM-n(dk0f53`oks)nJ^{wzxurdtYo=gQQ*pFU zt9egf+Zu^rRn6kI>0cllUM@KgY7uSxGpa2FUrnpFGp=R2Z+klRYqhTIqcb4Hk~Yex z9zpj|(3*7bxV{tJo9L6OKge$P5?7|BAqC=ALyF}HiiqNgQc9*`P7u$iNU?2+yt;vu zaAVkm(2KGVF+p^pO(ZK&1%j+Q7oZd)plq$rlww%e3lvZ@irFD>O^7($-v$R!LE()k zf^bHsA{bxxP`YfvA)sJM$cG~S>-6hee+?R2L_15r7_DGJu#{AoQNGP-szh0cNMd1+ z12l}{5%dAFo(on%`kEU%oAK}CeSxeW^{?@;i`L6F|Kc=s7Ymz$TS0eCj8&1q*JuPg zyBQtiB77ponNI%}{blQy=P#-@S6Z`){N$RtW`(oa(QPc^1Bt7zO8!WsrMMw^{?*AJ zI=Q}doxMa}`#0Nhq$GzD;ayT$Hq;`&#pE>@u8Pu?mS_zw2>}_r8%loI)vEmaU9H;1 zcn|pNz>slF@o#i%aI`jI^fu#FUxxw125=;Kj7HO5WV*1cptxsuiaV-SV0HCRp z*5rgWU5x@W6k?}TPsDz-FHs~DP7y$Em`mUE4A4tpk|FAn)S8r0*WIqaPEg5Wjm3RLHZm(lKk6ut*zq2SMc6z`{ETxaQo%h#@@C5$t z)Nr^TC6@uliXO~R^3gnRDEU}1`%)sqR6%O=8p-0A;nvg?1)~GAICCaCWauA#ea$uX z0(_U{Nw;c@TK61M3VFwFo4i!tykdY|fceV6_Uz!~r;_v$ey3l0!Mt+7o4)8gJncx6 z>Ix}Z0jOzAzu-u$<7{tH9^ImRY8QFRv40iUkRf-Ko?~)X@jM38U(53$o)QWs$-jW- ziQet?3wiD%U((hT`8A%5QhV9XR~AKs zfC(#bpuZ|O)+Lwzan*&wWie1@u(@@9*md#|BwTefl5V=Y6jm;s*40>EqZ_EJOf6zi z+7A8!&xGJ96!s@aP+aQG`B4G=_z2`aHS0$%5fm?^WQN2 zhHw1_&a%eh!x4=u@VG=12?s>vNyVQu4JUPkgrgKXklIm#6%f|ynb1|oTlGsw_#D!V5y2}2qJej| zzilNuo8{7%z2Wp1q?Jy+z(Od;nS3CeDlsK77Q;oZJn|c32fx4a4_3nXjRA7b@BIe9m-3s1RY7f|Pw97VoZFoN1QWKich#Q*h{iF+zx^e^^f?=go@y+_ z#~kv)OUUmy_0}(z%e$0*;w9SF+pDOgerq2HGu3F_Oc(Fe5MiA1QTpxyFDX+U9KV=eUYlxl+yOqcr*O1k58fz41$Td_ywcdv$@x69$3*fsoY?I*lJr^iQ*F@);Qi=~?p4IVe9&%&Axh#tVj2 ztE{d+Q$JWsY!YA1Awn02+-E6wrYwW}I-r87xTn6ZwyeIswzB?g<()E?Mno}y3K-mL z1SO@PyRFu(GcirS5x;>aszbzmfkjK_NS9V=j#+`Z2=`StOuWR(4HaP6&BsrMSjB;t zg(^-6`B{w+PYy25p^LdgYY=j)2iz=Q!4L*K z*?qw{Sej4%GbFRQEJ0|yK;BN!E$PgMedMwz(NZG1px~ZX8TM zSfeD82cRWY(ot466-AOLtP^k}Hx28#R+ZH#V3gv?>CjEe(a1k{8%u-sIB;!>HHCx-F?S#_3%86N{E<7n)bp&cG&KF9l0aD%wuFfY<<~6L8kh%FP6jko zpAn&YQG_akTmY)l9*~`KsmYKUFE`4PS>-}h zJ(+mJlhb+)$A;jTLs2LFbU={^KcN>q7{zLB`o!~Egf9XUFIo`J!9CC|=mMsC>+DI^ zti(B?9Y>*b;txC}FHs~8I!?z!*U*+AJ%5&zOT6@_FVA+$A76+{rJ;`om%e6c1D~5Q z77U#OTL5qv6B($394)N|hObd;4S)J_jZT(YtSJ0`;&~7}x$^M5KZynlpEb3jgJWh?+BE)I803PASp$MADXuF$QmdS0z7Tx=y{D0Izn@f6_xfG7M)W08KmxTL8n zaxEu+nDYDi7F$kzz*9)_Qf6zwHdJzQ?RP*^xUP7mTru)pbxUHa$Rud+cSkk24eZn) zJ7Oo`H7i6e%vWlSBOoR)mGmDWUy-we^6g?eW(7JUA25C(0p~^GaeYbS+KmUYm|e3y zeILdH!dP@;DbL*n8t8#cg@bomioJ#%{?+6hrRd%QDiF_W2v%p5CCjBacWdQ1$_YZ< zB6b~zW)=Ip%CZ+KZ4zEjeqrn4TT#SSfsGyMy{fqn;5C zd7#Sydya8CR#5pKTF0>6^{04`4TKKPpJ`N=j*dV1_;omOfM?tK6=0>Xm$DyWJ`t_K z-`ELQ3+T|0&U_?|p8 zEJ@A^M=%2=SX!MVp?7lCOrm0IILew=fCk zM2C*NH_##VQaby>6U4=(b1{o0C*Q1yu}rc;U;d6^?tBl{SN@sk0;arU=PdlgCG8oQ z*0&^)xMyM#v&|VNHxyP}U6>^~lzgA>EpQna*gG~9eo&C@PpR4B)dlWe<{$BvL`IFo z^bG0Yn4TtWY!$dd|Gr-nY)=&>84~S6db+r%R4fg^hm-8og9P73BL=daiXht{wzj`u zS}fbNDm~RuFQ$u)6`PAM;TCguYL+RRWU1)YFddnS=@HV?PH$iUR~KeTbHH+Ob5dJD zSS>+@E3$-kaTqQ<8{B676tls%mCZ?gCC_E5r{wk0HbZ|a${y)BsVAK)!C#6NVl)P1 zfuc>D3;s;BexcSvwi98*9Lvc$a64Z+_|aD}9|B-beBNy0GY#6t)pLp+4sJE4&>ly? zY_2!qB2p={>VZrcQiMEPKrM8b`i+$?F>;NhQI~ zw6Q8j%Ha8q`O+VindoGI(sS3lt%{-mwZSWrdx3`aDLsiq8P#)z-A;n4 z7Ig*Srs?-Al~#gQgXA`cWoU~-aUsr)TRW$!XAichDwARZT4z1vV{(JE-^>}g0O@+L zJ$cfiCi+1dQX^nCa%eOX%|Ogrv?2l$1&Ob;HF?F`I-n(dMP$u%`Oe0Uh1=r|Kv9F_L)k!1cL{o zO49YjAz?>a-%?HHfS-%3GAIKVPXa*ggVG0ckVv6F5=5K*50D3wGMZ~PE#k8v2elbf z0DjkP0Js?G<5zPgJCuB_*pxF6;BNJ-GpO_*q)yQa@M+JKjUddJE9@ZN>g7u@%*^SW zu=LjOkwM1Q1Xw5JdR9Asid>QY>2Cz5s$^p^@?8<-x+QJ|QCq$|V5brq4tk3sbu(S} z3)-y+6-ZFTB<35gb zO4+bA8uL{gG5N{O7x6}jP$C|>rQM2wxBj)*dec$a_BNE;sa@CC2gwX~$ITwwP;x`e z8A@)%GyWwD(gieQ&UJK?4awIJ5sP#zii}N#ozAad$kJf@*8(T|kjwsvKZh~Az2=&} zIxcqIz@d^n5;-%y|NA<*sy$%);{|znVK|j``xSzXyv8S(b=QX#lceh8?BFq3@Ts1M%K!ixq60f8 zaNiNxnT?gV6QqAUgqD^vh)07s(mVqhAW!1K!E(pw1&_lDOl|Mzgo4m$;yBT1{mb3U z#}r0{%oxs{ad$p#2=v!|X@i(2AF+u^A7D$7n+jbQE26s>>&FKh>IFU+s?`qX3R)+_ z-=e%p-!0V~5zyldrLQ-13duyZah@dCrM2@m7jDDDMDY{$j`}lB<6+O`*A^;jz)_Uz z30zc$x@xLpcnGMe>c(mm;VS2}0#5;Bfp>&B3&-^CftsojaP*{Crsc~d(FMOSXOUpl zlwr+q#;~T(?n}`(++Y(8j{EuzHy-meaCfqp-f#FGuM%S9W+*XkS`^8qi}7?;dJJTO{wq@&S6iE4kG?mqmr`wI_FC#j@Bk zR#;envrg2L{O&5qZqf}}ea+2k{&1OvqeJD&_4DCYOEwqkDp9?P?3DmjbXZ>`O;O-nxguE)Q?52 zuRp9l^yPy<9BuDI^J|k*zFs678#gYMvPbmYVEj&7Ok|JXd}8t;eIO?sUmA+`yQ)G ztjZ|V6^jWS-Kl{xQsbB2)XaP!S@_%?MTQdM;EOoN-7FM z-c7Y`NlF3cZ@N*sp^1nn&`rU`Yu3&xKq#+^6o_8Jd{Ghf9db4HhhDN*IxLC{z_{-~ zvK;c3Wjgt`qHISj00*AKH9;cDgDp`3MBJ}wK&cql6HnpC^~5xeqfASsM2MxA3h@aN zC$J-7hH#o4`FuaB7;_t$*`6iKHf=!fwXFkI%Q1fwq6=toh#})KNenf%*q|eHXJBk=*yhwci{ zYGffmW1mpJwIN6VC8%UvPu$<^w*^*^4n5H;pA_&~4B&nX@XV3{4*(7L!3g-?4#2ZM za=?!Qz#Q<0p|?5UZBGx|Tmyp&BYN5s(34L99K}Tn;s@1WY|E5n>q&8Au|Fg^C`!Ijd3HVjvGG(Ie_WI{E zd>L9(JEK`tH2O;~3ANClbp)ML`arML*r}DMu{{o0=Cr8lMM?Jgw?CfLmu8>e_jodt z$n5+!GL$+m+Z$8o2PrN{@>Gu)SNA>&Mh&_24R^h@W!QcNoh~%C(J%gGlHUJZ^ygkT zpdv^#?98b3KD@blU#;um&9(b>)z?B#H~*wSXfTE`HfFK~g8FM+x2#5S>*7=GkFm>HqU&|+b*|s}()CXW8 zT{XCFunm-gH2kVuDAltjXK2;dF15Hqo6%8EvKfuw@#pi3OW7C^s>-_Jt&KrFUP@T! zY<$nH6YK#EgM1#z6?EYx0|g?@Dt9*!tL_ri4579{D_v-SLs+t+3KTmFtZEe~sX(c- z!0J|kvI>+t3#@4ssHi}tv%m$d0$nN)rm?M)7v=>jS$F5hHQwEZiKRR1zROOlTA$({ z3$=coRs?oBsvxsRiIE&`P3{-?fJd zsJ%gKntD42q$)Q^xf=%-twM614^kD-G2gMke2}Vu~5sZRd?S-*zF?zF3PHR-$ieShtDzC>MMD<;+5G?Ud^w&eEJ(>=1NBx z@2o1E_)m-opMQ_%4w$hscsmTV7h}BaUvapyR|}J*kyP229?>Cvcx(3TdeEFa zFuAsJ^JVv8{=e$JU5%BsRhys7b5(8i=5_b&s;$}F;MeNf1)JCKTvNMn^ZDe~HmCer zv3dB%rF$vHw;IE}n^%P7@a*8dtk_-pygDL#78z8yLTSqFqLFo^`I@$`9ND#N*Txd3 z-No^CW&6}k##?183o=VTkxXee@+C4Ke|}bF%oUJ96VQfxT1B^U3VK(tc(UJ6Ff7#A z#iRJFz8%^^Sf~*Up=$yL`Hvm=^_2e*CBpVIo?T(VW1#KgjN!&&;Zav@ks>JY8?kY$ zwoD#pTs;NXEt*tYtHHKK8-u^B(ig0jrgNSY*kYjwU+AVUD!;j~OOrED>)BE3W_sl- zkpkCK8^AEsS3{}16PXe>({Bo8c)rY7L*loLI3#}CxYI>DT`$j8+O zy^G4dLML&sigti`VV4iN)w_*+2~mNyim5ajkO#Sovf>k-rm&E@MZC(Y9hpxXJc+Rt zIvdM@L@iYlgOC+`zR*D-HwO!$q#=*8+_ebIAlQa2+70Qbb*)C`Lz-mowibcT76|Rf zNkLfQ2G$TzBwPqFMS`?!k}Q>ez9?oBLb!vA8HFZ^L3&BP-IyxDl`*S(#u1L;O%_v^mS*MV?zhJ|1EcfJl}8=He) z4|Ki`M4Jmq{CZL6>p-&6`u%#a^R=kQhby$fa7+31gHSLt-vOq~L{e`0>(C2nq zvTi#UPAxGl*%xU^>QSeiqYfOIuoAys-1$08XE9si*GoEIhv_V4OZ|Fj=j$+?Y)JC! zWu33XbQZJo{QA7k*I_z~+4+8be&_2joyBaqUoY=`9i~&}>sp-7b(+pg+NblPFrBqu zr0Hy%$ZQ2et0Hw}OR^Q7%+WBJ5S$gA;|&v8%2pa2D?49@i7aKS{CZXA>oAd}Ok36~ z+3L>MVIoV}8oyrC`8rHwDO>B;Ydc?ui7aIo`1J*yufs%^vJ3tC!p_%WA|(|O8Q^uv z9mp8c+9z^Zm`I%v@e9M@+a|Il&D10T4uFzy=v{Eo8yQCfDNpzx^?1SiAe-Z6P zFF-pem|KYqV`WGb8<34PiF&iF=(NNlpZVMO-3yAVV=yUdL)&>m?b5y_ezrAU8f?}D z2q9sY1@tzy7{Y{5nNT_wl`4tiR0|RkR%DfU7M(mBgmLOBBLZ}kC^t%+C1|H4O4_dI zcORDP5rM_d$r7fG2D_si$3UU8NG)<3E2cw*IJVev4hkfKWpntN5^SAPAd3p@!Bn8< zL7tMnhKCDWx2;Szr~+zsr(?e;+~qLRiIS57*d*?9a*5%{rpe``1x4)~;G4xfXJE3c ziCyk0?v#*34z&<4|Jhp6#$WzAo0!XDV@(JJcAY+ig2M{58GX7y-$|l|PsJp5j7b@o zdy6}>x6#*E%Db?aI3qpx=|JVyeyU_u_I4MM{NLI}MfN+I*>MXByQ#?D*UWy)<7^}M zCM#l*u+$L@@Q!sze1x~Fj2t-Zo|WRO=&X{qo)R}!(veCssU%@|{3vJNkOH}VQ5mVO zERjL6NUhCHB`k_ab2|MLyK!sJP|Oct3xIjk#bK<97%V1fkhPy4|1jI}_<}=3&Z3kAUWIu-igzM;?@=gJ#1~(=Ouw(D= zgb+kiia1o-p1!xP@R~hn?sCP^qrHTkNXBVxzX~JD&W+%!NYnRU$9u;koj0TitAABD z&vS&;X(cO)uv$xm747H;^L{4ggAIxRM2sp8`>i9aMhq32bp+rL6<(EmL&b<;IjulC zr-zaeI=@cYL{F7AmTDn6i-}E9F61g)Fa^Vw$nr%T0?D2%;)6n)YB*cTa}ZY!0@gzM zaL4qZg@&0?Y{?#AGgx~ z)zlt0C3I60)7*F|OwbC6{okYSNNZU8VtR(rjw(&P90KQh5Ae+PyI$rp-M_&B)MZ7r z2)R7?N{*FyQ;0uBoYm+-ZQ)Qpzjzyb*G~k9yqNJDor~pKg=qt|Wcd~~0(#fG@-BroBD`&2um+M*e-ucZi(pL+_ zSO*XAk<7CD^<*&^23QgI>NktQ@FD2yefmvTwq0E?Na)Icxhi?Db2$sUv@!WWOml5W z@{yPxBmL)257CvYl20iOvzXMA+0v0VnrO_h4kjzMn=8jmV zK@%|jpF}d_J|-<8qMfSRUe$9$*yiGk;8`}B9eE$TQw+{6oJ>F;O--glYa)fwoOzjL zXQ=+o7i;!pGm#;UKm4LS+u2nGze7hNp1mbUX>a&~P=^g)sd_XZcX6FlZPD^Vn`D)A zYc9lDHHt^XIiUz<`kou^Lha;4I6e=368$Ko_rNzy&)A*<5fl^WH={4WwmC~qY?~!g zmKq%JYwkB-zP|tu+VCPfzi1Z)l?Zn5n-j2K7y0*shb z*q)jZx0o=dm4tb$743f}7FXWaz`2AwIe2qEn8JAiA9Tum(5VhSD7duqK}je#1^Ry? ztTa|g8z;n~+2VtJ#GNHyDT><=cxqw^D@8BU7?@}t_gfY|u>BW+w5 z*(8TQtkAh0vwA~u(@{#Ah*HQDl=mW^n!*zWHLTRhqE3&jgd%Xb0Fg-jL442(_0cqI6u;S*!Jwo-9mB zqmfxM5HU+^NDQ=s70QT|PqCSyrZC&>y51%^l<)<_E}h>`9aPaoeXOxM4?av5RJg)(oI}(hM~Alta~HlDNc^FtFkaM;#=hN4CpZx@xf6sS5o23834IBy*T{54g2~4|h(lOn60KbP61-?LJnDM}z0xwZ~mLMCNYYs2)5kW4vd%1srnsT;~KJi-^2|0rkc2Mxi zI=U5`p?V}Yhe0zu7QBYfn6GRCf`D{!@R#wxF{?mQaF0Mzafui40PL64MCv#T>FfX5 ze8i_>d?nF2k>_iJc0o}pNZ-rTKYFnM1!HXjYPbm~`>%H1RO^*9n)6kmTrw-dz2lzZ zH0~*uY;0kVQK2HXjY_(L#@J+zbWV}8oqZ5jlrVI67|rkUKooj8k09}&I*Ifl@cegD zNJIaZGQwhKhmMk3?0*muL#zEwPKV|G4yA$FK|NU>2lPbh*{>&H+ova8`yC#LT>q8f z;FD1-^C`lGKX`?}DIOta98MZ)AA&|dT$V@i_ywg^oa0;gKM9RJj0aEKIAbhs@w$$G zA+kt++y2!OG?S7n>!rS80TnDEI$}G2!}%&|=^Fhcv#~P$>##+s?fdq+Kptw_9co)U zs1UQnx-Pz0_Rym2#}W{#9g8X}2Z=>fi=53RTF3LW7Lbms1HC10B{~p$w>-LJPQwws zK>h0^e9=pgU)d>o2UHC~bOGD`GayrXDfF;bc`K7**fRmly>V+imlz)T}y z3A&faNo}jr%3;~f;E!fW5fh+|Z9FHVh<2hVnKk{`Eg*hyzfpcD;i9e|$OHm@-p)2J zC)by5X8Tsbb#skTX^)fZiZ2s}DWce;o$+w2^?G>I255GwxWMq1GrT`rpHX|;@Y1&7 zX*tBXIWm`H*j~)VB@X{t6lJ&6Yx3VVSo3q;J=8 z3hTfmj_gGuc1gu)U!%{`kNpy^q$C>#)u?!#{^+h2{O{@Gmmu1G{kEFV8PCT}S#T8z z*y}-?!~jeD#db(m2O6E8v2qZy;a*K%TrF7RV zp|RQ6%Tb*yrfwtLyA)a{hY71jb%Ac7@%zOQugO_L*%R&HC!V~JKD=50nGqTQyxIgjrXtS%1hejB|}ctJ=#E z@M{eb$dp?FK~yGZX~;Pzw_YiI{cjdA96HCmfp?rx1y%+SLUHsCc^%P z0+)vrvj!5(-Ui`N;c^;|#-Kyw4&59)K6U+f_WKm=k zyXpzlNbn9&A1|h#fdFkNfHF|`PZtdWNc-iq<~#a-ytMEl-VxG~@u~?Hhv#KeR=OwRT=j`!f|VD~w#K*yuO`oNI$D zQPV=rDoW$vP#S{`R1+^b7x>*>UtJsI`wHKu%sM;wI46$7^H>r~7>Euj>Sfleu$UeO z!cBXxfEvgvO)$w_45?ohBsw?B4&K;%_`ve?&CjcyC!M{v=Gx>_S|a}wS#Hhd+Q>Bt z0%dI}7gs3vljJVVQpX__Ys;=q9#QUJkh`pz%g)A+DR+$ALNmAT>f}Sp{S$Kgnz@{k zKdRjKlUr%#mab0TsoZyyOTcezjg$57SMGjt%gx-btCP1X_if~MHFG%_X18+RNG|TV zSVR96$;Zhh0J895JrT}7peM1N7Pl8)kvyQ^ORgxqUC-Vtf@q$T4ML9rU0}d);VT(l zlL4CyHsIG;WW!pEgbkhtBM#IBR$PD;%NC3w;OgdrAQB_*AfO}u8eYIEoCCUVEB8C( z&H>$N<^C(Vb3pg^%Kb-j=YUSek8GOUIiP!7xnCf64(KM8`?ut_KnKXQ1OzgzS%FN; zltbpdG6ga%MuAN0Pcfv&^+eyB;Nb0dJOSX)tnSRpoPnNA-uDEtMK451y;FgZA%g+{ z=*-%Ivf_vK{M)C3jF650O_Ub0lON4f$Nw}>sVa#G%vbh(xZ)l$)=56$EO{m2EvB9r zI3)RICw}xPUhP%!!(1&&Da~{NF%G5$`5_-xfS^xd(ue}osUl|Ufq#&OPCANK^}tQi z&nP7F|6%WKpzFG-d*8kHIY&DB-nL|0iIsStV<(Xl3prrNjufc3lQ^LXBq@2kJQ^-; zNA9~BcJ6zD`sQW45r_aMh+wE&44B&#l;RKp4!G1%U1~rO7X$=QXrL~*Ai$-fbwQK> z4*0_R{pVWyd`PnFB)#{IzUO#EYn{FK`kr5Ft~uvQ51z;bn~W)yirYX=_7$BIp`R{HB$*Z-PQ0)Y`Tv{>0VlGbe;WdNedSlhAJ= zH_q)6c_+BbcUHiE&5HKkG*?K@i9hs0`izp!40+Qbi36HB+EY8Kji@a{1ZIlgbE&Wc z%EDo6{L34(jj?XL`zA7C#qYjJ(zR`It`ERH3%F=ndPAZq2ccGf( zb7S;ujcN6;wMxusYt^Kq)~r?67_Dj*-+hzXqz#E)8}*yPAGYq0nXrsa0S8OKPl1iJ zO+d>#Rz&Uh=4GF|yOFy@c+5>Gx^WGo-u<`gq>U@&I+>jUbHIg<2Vxmgs4el zji;b**ijB8vMwXa@MW@;7C2`;pj&8jymcj6v$DkI5<|;a3M)crY{>PhXNHYy{fG-} zeBuw6)G2nB1q&gqCit#D{30CW<$Cc2oP+(u<(Y5pPAhd*=aPGQY(1>5pJExFhDmrOc3-i?KTE4d^r}6Y6OgA0Tw2lQNjOnOqq~!-u6fBz?Kfl}#LB*IuO& zu*n4zfIE%#?Lf-!Dodye=*E9iwx6MviGpW!Fy*(HfdemA=eDB2(p)hCnkxa=Th$Wq z2=y>X8&(SZ?@pU~%|w)juj;%g-Yl_*4Q zWpqiQT9;H7zu5>174(8Jmj$0zaq?eah+G-$EB4jWZ!HoUaGtwGLdkC{jj%;Zdy9NK zi#1BxSyJ2UkAPIq5LWBEX#_xyIF*Sw*_&bJ{1pr8PJ;z(aJjtbI*t*LDQ&%_I?Si} zbWQx>ewz<$WZ>Al7`BEd0!}8K(rv@Ah8*^CQBIf#ecjDp?wmr$Uen7%5G{e5&VN`< zGcXVY>2zg7ZmY{-f^s`K;OA?gi%=n3DO)-CgUv8D*0!R}suC*Ks+9iZMB!LeNY0*h zdbX?JE~esY$}sKNo)AY=lqTMu;Dn-F*LL~1C|BGrkW;R8ySA&!wQpBfCJ`_BrM>{i zJ_i`WSqm z217iksPR@2F0j;*NDEgls{_Q8)NT-{t=m@gmI|Hh4}ag)(ii-m$YEcw)#2Q2uFl&% z*;W1AJ;QF8f2(tMLlAschEV%0Pe;n|98V-gG#upFbnjuMB_L)dU+iSK77DGKCZ}fX zu73{TSjXQNarh#`a~;Ud`0U-7w^+6}8luf1>p*{SA73B0=Y6Q;F_T|L0| zvQdTmsoX8521dNioWNLlu5HeZ`TP|5am)8pIq`ih-$&)d_w~>3r{NF!?`Qaax6hv- zzt{3iJEV5R@|Y1(_HCBOjEFiB)vZ5n{Om@w@Nzr~6PcrQmGGao4<6v-Dz74NXl}@g z%8{ED7JAVA1LR@YR$@OTj$5Aatu*^1|NMhI|0n9C5&uMa2-?$1A#o>^Lc*RRWg&CILitV(sb7%0lX?$${!%GWFa^!t zYyD?=X?wTNPm&*2p3t^<^3|Z$hmDIl8lq?s)(|wrST5AY;Re%hl!THntN5pc=q;p& zp<__GI;!SZ@Z}OaUX-A@8weJWFm<{wkJgbBp=~+&-!bpCI9!WSIPA!3}QohZsG#b!)0VksAzuTUk4ZGj;}2jM1HI-3MRf z1IDOpZGAWIf!=M>}arTEVvUObqT&M)z89!FawSC8w zV!$$`v};3j8wtz(A4qI_Aj%5E?GLYzV5zghVWmqp1iw&;#g_#?RT=?VA^l%-hv+wg zcl>Zd%DEVSr{Q-{3ZqdEU+iW(WX9x{u49P!JE_3HODRyYBwQcmkqbf$%Hj`kWnj8y zJM~iiHWN7n1K0|O_h3eW|C~^ptxUO-C;mEw(vk@7&S4;@5@|$O9OFx71=sb6+G}Xp z9H3PRmrLYg-9mVr!Zk?VC2A-OhTt0N%jSeFwm}_=%rO4h<$A>>RCJi7)Q>#A_>a68 z0jOwFwzL*>)(Hjy5P%@*{5|8LzNP=$;0*XROuph>!(j7dCTCj?S5l5A>R@!z8877tDygb3-8bjo`fFpe}Hlm;7 zmgj#>g+8+tDUY?xrGaD1x0=MpCUT2dB;<5k{Ph>tEr?F5wkC*#eqq^m*qXtW>b~P} zkR=hEsBS(c1Zt&H?F7MP2}lwxHS1uU(L%5n+GvrS;)z%BMkm$fF#bRf+1-rCGQ)Jt zMtF!PZ@x(*WK1R$A?JvggwPh|llkY=f!7pwgg{ktRpSq?!=0-g!l2)~8+FJ%^?yf~ z-CNMMdYCnyH1RuZoDk2LMm@fp%a)-4_rtg_D)-$H~XA{Wv5`3mlSX ze`nMWyvuIOV5J5ER9V2RDXH?Rb+4*=2PZh^lkOz#CcTez1u60+GG#vfE@?aIKGsWS z5+kH*u&r3RIVx?e%8-`Z6m4R$bEQ@KB^a?O%-hoaWKrGpxe1gVhjk^u`YNl!rEX%| z8-ozD?Lq^p(3Q?a+uw0^P?o^1ETaN~ii+3cTQt0W{}$JXzT=E0DyxFFrusq}Ng9^U zP3=mBb0HybcGrQ-Q@_Qc6;MzebmLc9{TKN9&%L^>Em@mfD&v|9N|z?*mewY#u+5?G z7g6z(U%}wC7|&BNffQ;x{_$&k$1nC3UqoD-$7|lHO9ERm@@NLiRY`DV}{zQ ze`8gjh_EB$V)UV0=?Z3b!)ESo7xUey@Kw3=`w!C5d1nCIJ2$ECuwbE}ZT-?#mS4b; zoU1K}Und#Z&iYtbnOtB-+uR6&0SCvI3gvc;RL`fB^86@iIs{^H<_o2=a4z}H=%t3R z%tDt45^&6!K*MCxt8J~W#pDdMBwy4{{$IK|C|yo^KL0P_e}#r!!T)X0k(nrqcrLo0 zPbWEU?5U+DoR7^w21QL!Za!uEY@Yojd#1>mo|^O|J$=DkYGUyhxxR>fCZ9n(rbsx$?vHxS&07PQB>f*QV^ zdYH%IFo|p)wSgPr2N4;$XO8qCsK+`|{K4>7Y1L}xw4!>#9~^z+NzM=@4lo>zDPzdH_ z0p?hi6L<(%ON20URm!R9p-E7=RaXFUKEtt1Q#{h^98<&+>c0q?A*6+b1cgaY`c~iz z{}s-9B&MPxkY+wHYHZqQ9XROA-K5q@H!XjBm4gyj(E4ase{(Jj8~pM`3Ytfaw`0N$ zpJ|DYt|&Kh^Oz~i`T5RX%?bxB*|cC0)JPf4J<6c$xgFX5NVl9(8*74^9O0zo`f6S7 zE}wUG+c~a_=)RNl6dN%TdaZE}X-E%OQC_%p1u4_d@H5O(r|2^W?ygh2Gl0itCM1ep z#KNjmf0RA%3;tM3qM(OJCl>UOJI;0L>U!v4_b7fX;)glGZVNHrcnvQ_81}%$f`cQ9 zGscwn1rR7>&R0++d&sNXh|aHZu0b+!5&Rv?*=>KR*n z0j-63bOMcm5(f%?Nma!gnG`G7l)kn~1yFA{d1C@AVtN=cYDmGHsfHT!&!+kaAXC!% z0XRSh6B>DBN2thV@Cag{qZM^jlpbK=;Xha76?&@JJ%EwX0=#`@(SmXrIDi^(J9kD6 zz)dZWXaPoB`hm$)A^pQASb;W&{MypINxzHyR+Irv6Fji2ua89WA6=sit0z+d!HB&l z_z>L$Lg6FOAZLeci(bs$xZ;i*YUPs_APZxFtaV8ddhBPz8hiV-zA@i%sYEJZCxELs zKxtW7-aTNL&9f5h2hf4t_}Z(_3Bm)y-w7WB|lMQX=D zN;FX&sXwD*U zUk39iT~1%^73t+{5!H95%TS8T7Ifz8>CPBf^E0S`0k&fx2A?#P3Zq~oL~LGcTD1sQ z!VHtLG-WHz*0@~M`Q6anf55?i@Y3aw()Nxp2%^CKCy8BKFDjK-vFpu{=I;?go8PRu zmY7xSaXv^I{iQ)y{Mif5Mx7;9_@r+AHu%f+vMvIh z1ffka;66khs__st8uceXZswlG16VFGQbz?jB+u`FBZ^xHX!t9Ba34~n(bx=H&8?-; zc6JqLWv}k+tK{+`c&L_tQ&v7sUu){zN_oySM}Azx_FSD2M4mu1#+GQ9`pi5NLsZzT zY+>!P5o-_&GFhn5XGVkLy+YA2iyAY(P=T^FAiFxspAVhC8Jz>t1Q%|hzeSa|Zq zlG;Fsvio=@BGG=LILKx-oZVSKiEk&(o~&lPmHApMp21vd4073xW>>)OhpXq!;?#x% zG}?H3xA(!$T5?1mJAT z`1Om+jfNl4)`vGkpBKsRPo9S6AO&#S~#8^c~GQObP}zWEjZa(G$s_u`z6P|4FZ5BtWJSg08%1(^0w7W7vJe zat;h4M-u%9oB4qA=BPZ73~bK7V)+&NKnN^gpuABa0SGnl>{t|k_X6Y@ZX}1KS6=H= zeZ))8?N3qoA>s_HusI0%x+{er5^d5Fienfvb%-o-zxQpB`-e7X6K>03HJO|N&U&i_JZwKw4;s5Ru;CVc5yWEyfVR(~ z&ua3_a}J;Yh_TR+I~aCbr5sa>mv#$R=)yE@BCfUwrz>ov4q}ofIgu^3K}!l=WDuF; z^wiCP7C;^S@b4OAf~a1}a7-JzpamhRCH}khfFSLipXn8B@$9}XS;jgUYT_*psTwiB z_lQzM6^)yRQg=IRT32SYQU(w=;yfg919)b!dH9>Lc~T>zw&y&oO}A(CYBAx?1(8h* zKp~lY-ymvAL;^>U`IRwJY&bGT3f>!NBUY$wN23Jb2rdE-_A;lV*3?vfC(KW2m4kxtj_~`Gj;EmX5b6|nIh{jae2C^bj62eB+dz))H zG~j4rRB(h;Z1R9oh{0}quJ1gXWLL0X?}%8lh{SVASblm4ZKSwmBly{2T+*?d8aPOr z++t|Ak+o^uks%;fi#cj&>!>2XB0OyE|PIb_TqGg=y%YjT$MqJDH?Ijz6%h-w94U4%aef{-G>V@ z%3oi$0Hgf%WeYRPf5k2Sl#KFUu}3%+qdf7}(=bX9BV&}XDoJH*@1k){FVdW$2lC$- zO9j+9s*oTAXRLF%vCbTH!Fae<3C0Oyv%Bq1RTXTd%26SIwoPMm?xr{cS@_ppwk1>Q zOUA!UUpR+-IW&iD@u@IdyH!Jb1+M6jKM{B;-O?!s2Q~K2`%uPKe<6+tqekSoS~nXe zkiDR)6RDcDt?P0Y^mS8JX+=KcaIp%9pkfIq^UsR!u`aZyoIb4fIin?}OuO8O$&g2Obp)q~Bz*&2!0Ek|dN2X3aJJ8tG`b$x+HiFEZss)TgCkRkLs;!$8zEpc_BMaGzW zb;A4lN~|sGM|e*vdm(jyPehtl@bALkm9mE zIunnmC7#6=T_fGi7Z0!2CQnLU=7s%qkhEJw6>G=T%C&md2Z?F?EcL9C1jX`Bp=Tw| zrgcI)Pm>``3g>v)fD5&UD~-k*zV_nKb4}k#k_#5jG&MiC&zcV%RG9 z{>9}M>D`Lu^Vtz&9*uQHLwPB}qGDbd^{E-koUaU!bu>P^?=5IN86~}uVuwFHKmwwO zl%)&-fX8$`5Ig3wvO4&k4900|D6lhET&>hfns>6)(`(66INQz!G z+x#BYZ#(tDoQB^A_1j{Ua4UdcISW zj*R+4`xibpiEQufDYc#Xy%8pqotqRYSKQ5B34hn=Jm)5;%e69Rcy2OLIX6+E8TQ{= zNc9TmL(x9Fsg74{NkC3v0IGRIJuXE0#tO_Zc*%~g*_B5CMNt+IB2IMFinXJDFUD^u zi4o3(?y(L~5}X^gOVJ5|-sxoE)ijJU-Wmt-!}R!fS;Wd6qs{0r8*q$O2em(9r1Q)G zT~X6@GoYQaA(sST0D*5L_U%S6DXr(Xj*>6SdD722)tXw<%#n0$q-A((hhE3Gg!{xBtbWb5rqSB^6-)PtF@ve{O|Ls4Qo&ftoI zy&+S5p?B4?qYT)d-E87JZnaA@pfxYAFI^^z)XZQmM2;*11k#RPX23wdvTn+<0Dou1 zrDi;ys_Fn68a5h!xKv@?D+9R2bAho2!I(U0bC@6-`viE{pVUGYpl%gHrq9DN>n#_n zjvgoliH^Q?iM9N=J5m`7lT8$~%r+zcCKSZM0ECn&0VK0SVKGF+h3u_TeX%e_QAi6B zCR1IAq8z=yhN3jMfg*#=rYJO}7%OUE)>*7jR)elXs6AR`wKL}^wn9=+ZL3&DROpyw z9}xz*zw!o}B5?@R!=fWS`7c#e*MU~n7018D7vI<^x@7U}xo^-5p7V~xHhptPqN1l6 ziaJxB@SIJ#sGbM%$+m12{IE0*Q8NvV21Uet$j9B^0Qf_+w9eAETO28 zZ;3phX~>qwzZU||w<-@VcdLRbzfJS5l|le%fNcxq04gX8wf^0D>8;JIj(*UHP1$^6 z2BxCcK77G_X+IO>Mb(XTBtWf^KvL{sbrnGavWFCr&k-@*Y72wn_csw&HSlu@9GLP%}gZ3rX4Dp)n?KQ`()P{4z4WrH&hE%Kx8p;uC;YV)<@B;esOBN9%1R;H&?w33x=fVD zB1Lr;5LjLFQe}7d@tmsQ%DyU*VJc}Uapdl~K*6|xU9l|ESMXe*Aeldx^s7CXifdWd zJBhAlRNg+~$2=UK>Ezp46o}#I$VD+Vx`?r{4BApeY1=O}EZDY`XsgQ*2TcMNY1UfN zs|#%-BJOmd?*k7dIVuFtg(ZoGb)$AYM3(?+o0e^fMy0#L!GL>O)YjYhl!g-Aj_x7B@ZfF| zl+rs$I99on1jx991X#VDg|U+^&688NK|jwI<9{6kpW7hEsunzrL|>Q%vROhySXL!H zF;s=aOBVl4^!LP8`aE{9!sFF8iiEso7Rn)L}cr}LrU=;&1fJ%W~F5-jnvLAt9ZIy%2S zbt1Rwh_jmXij#8qNi>o?2`vN$bP>)e8aa(&AU_;oxMC|}w)fm`lyK>|6>VVtdNTRY zW|JUgX7s?t&Nyldv5#J5X7(~|$A3DKct~cK&crklV3BWuI&C4m{r$Pg1qNX&lT~~U zV?EbxiSs(v#Ht+)yzjd;gE5jhV~mH1E16sbTFF(UmK$Z2JHHKT8Aq^q@41OZ9VXK`5{qC-3l+BO9Dna9Z?+)6aRW3ueu9F#Vi z7lOUST$=ACt@9uxiPFF z0bUXkTrU*1meq4!7}9eqOQRctCCc_QlEFZ?@iCYOAQUV7tV^lwU2Epfovpih%1An6 zOo&QtGBM8yX3}BI6xw9XO`XG$(nYyXNYITP{(4iDskuJwf-7rf@X`IRn(QYpp6gLr@j&xTJ}V2$WE zgqj;sjKu6!3WA(aEE~UGMI&9^?9lD%fqc@2(swuKyC&%oT1@VSuWT$mXiUOWu z{Qh;)?AYwZzqrZ0VKEWI=La|-YYxB>ZovR<=AktxeNF>3ReRte-M7;2N(;p^uQ5u0EOSR=hyr*{LmVJOX6)_}^sqn) zA)_=0P@>0ks*;y%`~fRA_>!QOxZMv{m+9kwNmpB3W6ZLvEk}1Y2g#tugA>^D(je>W z3yC}c_^YF%xS->%Z}}(5Pn#M{-d(}J@K|(p8YuzoUeaKCT_Ob~gg;%*Y7gq5mh~7U zIFE*I6IotjWX$TP>nF^h&W(Oa6^W?YkZ6h9zc{QJ43DWN!kK~K2V@OH1{k+U&B>eD z5dr+i4EV|R@r?uiB?1RZV&P(Rigus$#z5x&2~!abglw5l7r-f)(xSME4MH_MdM&+= zMc~dr)ngxmQ3Ezeth6Gj;~=c8f(nQ?%*Hb01H&@b(69__n-9yRU;~NH7|U`F%TQP$ zp$W@GaBNr}%S19^+vXHId(f<+0D&R0O>rE6M=U%FrAT(CN7NYxH4MX(M5Fv}@<)8$ zTPF}t7yC}0WkLl`teD<$C2xT17FkTW5qB($DL1iO$hyeMxWfvZN7N7mXK$Fun^Vfn z`FgC*@ip^n9=ig0>+MOrnkx@A1n1CeY`thxl0AU4TiC417Z>nA;xgW;YO_u%^8TRA zkMlTf!7Gw|f<&lqzRXkPP~P>p4H``3@f2nUNf(FBS~a7c=xmss_*>W5QefKS6y~fK ztU^2GQ#lwjOT|){*bN?e&YOr!Ym#VS&ddpT2jHpSE{yooJ<+-D`mPy*i04)XFnoyQ zAvAyrhQTI^DY29i zaaMxBd5I~vA?HJJI+SdF{ZKysyv^{Tf~<#;ui3`RW#mAieBO;LO%oL~`U>=XlCU?U zteo-_&JY>Q)t@}1sc3Ylj^ zXYfuemLJ`iju;w9bkIyiQ+eHSGUn!rB1HUA{`^N2EriH4R@0$^RHxSXlmg(?e9b30 zQ7mr)l_53|ty`=iLN{96 zpj@)zkutmdC-sUh@5AVnm_}C2R)%7%Og?Sn;5r+h2{%JU#Ws8I8w~M_pfXR{S_HPk zbOeGYkOJG|vKNW&ijNM8D{JQ1{4h8j9+dO(Fu`!Mx{)Fg?&IN?^5`Rus>D?8AOHC| zab6)`O`l8652Zo;h(mlPvo_flcm!}Sbcfh~B!$;h`x`K{$H2amD z_ehB_7ua0J-@TX{NeuGFwI19MVXMgc9Mo^X)*x|MW7DV%C^ep8Hg!q~sL~OC6svCq z1VIRk;2>N~pJ%O8=w6N|;u$$ddg zaus06hy`b8YG$-x?9`4crLO{NVT}PbeKvrm&qwk`#+&OF6Dh8l0H3oKlc!wcQ@fZv z;aYB@?=+{C#cW66N(b*QTXIjip>8SR-qOd;UP}M?&(BGUvz9QE+LMMeSgdBhPC^F8 zYU^~qUneMsty8mKry084P`6HZmKUq%JIbAvRm#?=p=OPQnbO;#sKY>Y?h@UBtrykY z&P98YX^2{htRo0P9Y!!VVVk3i^w8*{)JS?x&xT3mt>`Y98_}2yq=mkNEQ9eq-6>gDc9d0G@XFd=9*!t7lh6_Qy9$zq`azdTFW6HpE(6g6iZliz)zpX}N*g zmtFT7j^GL4ttlnCcQ&O$0zunOts$63++ubio=<^c#;4YDuQwhILevN7G?!15b!}eF zfVFkv`8qLQA@Ctp2Lcq>%z@+aa$K{p z3a1Ns)vU^24Cea>@n?PqLt8EY;5N$b@y}lP>T=6+y25AIV3$ahF^dAY;F?XxnAvGR zvr|e%yOfG{k>WIwbYn|jo!PjI^hwv~N>{njmOfHX{Yt~U#g^SNqYDNTete^c3=bHZ zEj`S@f@`Lc8rz!1PgK$O2`2BTE}syZGk${20h2F&I;p-fX#`%fNu5y2G9Fe6bl9>o zrule>1q!6&l`%spY|PYWV}?T5n9**B;IEMd!pdu?MXs(OX*Jdf$`CIGN*fC2?T5_+ z*w6FYp)mmQm@mF~p^2!$38@QJ1ydmMM+@~+kRHzgcB<2dfy9}ilf2C2R|WLyAA&wd?w2qEQ{1ML1>bA|Zl zH}J!ewKj}PW+`83t8PxPEvuo$%H8?AoH4y zL)FYE@OI1Io^Zvzgyb1_A$gos^<4fY3TfvJ-I>Tp^VS7q@))#lb-AMU+Bym+!8npd z<#ns`sER4WomcpLZj1k<*`M`_UNey1Xpq zugXeZJE!E;-aM=?*n;L4-CKRh>$8$K&MEm4e}`gU@X`|fPoJzWd2?3smN_N=7nP() zU+{9a%-p+CU-H(he}3qmArdS$^W8~6zL1@(lMki=Be%NJz2>i50y0w z`dSsGOkeOiGY#H}C|xtqonj3J3&V5E-e)F%%_@Aqi{G)UzVxn2>D_Znztu_`RJ|?4 zu_Q|O)R*2l8u_4KUgU}GPm@fT4@XL^qvqKgeWDf zTy5!nmC~bgOFwL-Db*Le-|V+^ZES7n{gu)Rj4-R`k6LMr)d}tz;+POgzf@cLV5Rif z+|nPj(v<28J|3E59?=JDOCPF~9-mwKlU90>N`H!rttof7zVzWr>4~|e|Jq91ar@^& zgm#d)zVzdj(vx#bf7wb?ia5LqdI=)emwvKR`pDeUU$@ef>I=RRqC5wg>q{T4l%ASf z`tPkYrTT(zhv;}f==##fDy66Ami`ATO(|68p#m+W$LmWUuausdTl!zDv^kRhD8yg` z#I7&>RHgKZxut(*r76`H{2bqCN)xt#zZFt+vQl~o)-wy%{=1c?RA2CGodQScPR<}} zO7Dy+_&vAueUXR*rND0sYLRlWVQuMMmD0QCmVT?1#>x@nj0l|o_+4LmPo?zUxuxG> zr6~n|`)j@HOFvjCJuzw1lytCSv{Tl!%uO)2m@!t{n4v+7Il zuarJ8xAdb{no{6*R7xm~3YWjOVlaFBM*4z-ssRo==1he8f{$^tYO1C_jUmJI=(mFS zE0>^m^+XR6EYJ`Wh8TnTob)7Q6P=p}$%=vCe3J7AI8YCg^9BN4ZPqgoEGNO~^jwm2 z2ZD1*&Qa8xAn6_mmXRzQ2$qs89pFr!n5_eWA{ciK1f3+E0|9}Ilf^FNF=jP{JXSE@ z4w8<6pq-?BAZR0L8wgrSS|w(&^&AMANjO+-A|dLtq#=%O8%c;2-9SR%f-aF;)t?%u3=3x&#FuDWIAUhwEL?4t~uR3rzMr7v(P8qEvZDBg+5uV%~_CmGbt}D*G&?i{fi2W|~3DGjdV;A}aOJFh5g+AfXP~38% zPf#EUffxD&p9t~2g+5{PC+4=$CzzJPix&I@Pgb$1g=#_h4Odz46Ly4RI1AJwxP@Xp zwN4p!((DZ1a9-4TZ=|r#r`Q|nmeJ{z=zrRCQ7$w}OK8_c+xTA_V%21K7f&rB63%(i zrs_YHJhI42<{JaEF5=03(j~R$ij6uN<-)0<*f}W~1-wtRo~r@5%L%Q~5RN5KYgFXW zeo^L~Xt%huwcLajMH)W2NeJns=WIg1gx3Dk`K$xta@P{!yMfliz^n=7fN>jVTTn-3 z@8A%{XLs1?wml`@`iMPsH(rcd-racdLE?UuY@>vBAF_s?S6fPyu_d}e&~HiAs9_}@ zqmtF`0HrGGWj5%Mo$1>4)7uO3jx${Q=Ag;r3TNhuj+wVcUohpH8AWDJeGEl{PN5H3 zQ*JaZ9RpPSCb(G|T&wM0iY=NHs~A?sUtg2vIY9o~fpU&xLyPJwRRv0^hD_-rP1qVY z9cMZ-DT06e&8wxAp%-dr>iK9k8q+2nh7?sjC(FI@G(n%>rgWiIU0~igIYMkHqL*U! zF_anQou#~fj=R@hM8|L}YO?elL*`{2I4j-C=^8(J|&7hVGT+P0ga3W@p zO@x!K_-oe*e4YVRcE;bDHSfe-dRFt^?C1S-FnDHDDox;Nr&J&LDb>8sKb;a51i{VE zcsiS(-E;z;-GFC_X++6mFx~25+HHASPcgsf>WcB#dj!n7uCM~vCkaC+MXm>NMMw64 z-<9H;10~=UG)Q)ME-ybY%=7HI{KNM8yuvh$Sl$H=H5-2LL4iYm4OtRJ0VX@L+Y&gB zkWFlpbgZjLF!fGIu;cC_LABjYf0e@#(rjvaOgB4Fy)b~MIxy7?O1kWm8O1~)5RW;oS+wDC1Z9!F#7)?W#k)=2 zH3|bse~sOU^`(!SYzGJ}uRit%AHcSKhP)9%b~9Q=sd;3!&Q^urn6V>o>S|2K>?cCF zeGnhm!ot?vIr^_u`g2z)6%K|^g>>$z4&w7-!VVOKP~1ju*$Olx1VyrGpchPl$sycb zq6IPNwb77gY2uxT6Y9u*=z)V!)?-7CxpUpykP{SJ4_zSo1XgOcVsdK0+Gak~OKMOr z6zWj|G~@4X7b1+@R?cEWy%QDnWPieDQI3z~3b-2TQ@)&w>ks3550s zj~;gS;j#ei?j=+zMHb~US)JEZF3b(cKaqWGUNoXiT7dWsFH>LaI$EY4OMYE%;NVVz z?ao-{PT2wr4u^0wLO>1TA6~2AD~zB9IDQUre8}dnAHWy{>X=LD&V*7X$)!C?<#gdrWoS{Q_zjql?lIPEBEf*DO(J$vXrH(S|Cio6+h1%FS3@!nTRNKKYJ z!nxfNSpu_KWlsEnK9Er^G6E>1ZHJ78$iS6UZ@S@Lt11~xCN|yNa;A=x#ZbxmN){t? zLw4EVY{=15zlM=ce%+-0Rjdwoi9*3AeAETC3H=r6h#wauBa)s7Te&9JvQ&h`7{BwC zKvlBc$dlHGTW=#GGkN^EUII4b9M=2@XZGGi1}cI_`P1vDh`AOKlxHp$lr|6^iRQUp z$RBcer9QY`EJ9lc0+r}MDj)yD3z)fv_yc9Cgr=!!ppThG#`gq{skS9zGPOi}s6Kx7 zRd#2e2Ea8suk>Bxrd(Bq9>?tqAdR{`H+1dLAB(BvJ|Pez8Y^vx;zuth0~j44^i%at zVchDr_*Y*)w}(!Ps}umhSq@Gq`{VJ~zN^Wk&4*a@Dz&dhP?eq(MM6Uuq`(87bsm$WW5n z;4{3JZh+G~J2sgnUAj3cag|T07%9wCoeMo!8l{@MNVY>UcMjFgo0~aFe%5}m!jGt^ z?w?BiFs$4?WY&2WT($P@AyN5bcl}-@emB{XTnk`$r1Ms zQMet$n%e7z>Z?>-iE5SHHsq>gPpG)XSXkk?-<_PVXfvJY+S^OrGTv;X&YJideyCYD zO**g%Qa4@jj^lPJWOcS(O=R(9$qLokg$BN@v`kV)D|OahGF0DB#gwS_lRJi7KTU|B zpRHH7v75nGhB}v^AwbJ3`;-gj+%HsLt3{Tp^pxv`Y}7h!RUr1#g=|aD+Z>iIked#7 zQQd^UeC_o@^_7WEYQQd<2?S2?M^!@CSSw-c6AB9OtFNw#dBW9y98wiFHKq9D&nH7? z2p2saG6NF^cJw&@RjSq=ugFW~yd`oR!aYyg)Q4&ml!j_) z_>^4w6wL&(s=_plAzu8xoBbpc!6?!=v=_)$jd9GXL)I4Oar9Ajmz?!M(u(bwe2d%I zsmon*-Zs_Py_$bHOEMk(!E13PW3)n{dvPRFcB#2aYLb+NPfFk~wWWo3;v4OJ~b%b6F1{WyHoi@;(i^yK+ z1W4RpuHqLP9`zajVB`qx4bb^Mp6xt|)L_K< z&|f>^T&Orta11J@jw-!XMW@>*Gm4c=Vm$wtTas17Kt>5_MzWGd!oj!x3y z^`CKY_d$ju2pvIE9gPrYlg&YC73n!LX{?a2gHil$S`j_exo=$giW&2RoHNXA#!Fvp%mLOc3lR;hG7VjrfGm?Xls)R#6qHJXkE5m zjkYgrHn*-RmB%_6x%P<9g0GW43o1^8&UtcW(kSQ2M(;dnvlkzg^CWLrOsH};q*^(| z1&5jqaQoCd0B%I90%S;(Wrgep4LMJagHENDHOzekaKw3X_PWz?VOS75R_cJ}0J^dt6tp>zEX@<*A7BvNbV}z*SDSa9TxG0K&XcQHUtdT%1S)4I z551aHGvp7FpKyoZqO@P;p(yPHJ90D(+7=KLuVHhLtd#R4US;My*_5pE&XY8Y8y?2l zkTI*Du1_nfx<{m@DiSerL!u^xT?>aMtQib3b96W}5PZ(M1cqEhX>+`~IYH{{=Nkb( z**?B;z|YC{xJq7xxx7-^Js3F;1Cw51Gopdw!@3X;QA04LZn=sLLNz>kjn*DiMmWeo z)ngydllcVk6MrG5iL-oVaTzp`VK$b*Dh$h5L&Gw#P20}dSY|Rna^_f;Gs2Ld=>l=R z^JE>C5p_mP+{F6XgJyFgnTR2xv8y;w(ku2eD1)#q4e6oA2Nxaod0j`a+vksv->bZ^ zk~9-BI9)L1Eh-AjqPu0kU|CeRFh#O1;#ap@o7>$?Y^AI7_m!t6g(Z$<8U(41@4&q>c*X@;g0?vCGN64ts* zvRjeMBrAMl1U=E%i*P;{8A1yaX)85zwY4tIuPW7I(KOV7(uDm8llm)M)g`{wbJGQ( z1M(+gfmC5K+kilGI!MRujPiJQ6yKZI8Rc$ntc!4*RI^n6vo%TJ_djObQWU$B398h6 zzxmB?g6r5Cw@Qz|DrzBc9@{3@+1t=U7BN{&b1m$;3TgLUl3`3$TfEBwm0T~tx~BM} zbfiCcrTBPXaH}YjxAnn)qTPS4w!0*0qTB9>4IE?xm1>2my6q!mFE+iTBE6dT z33lmpZ8ayH2H3jR*etP4sgE^Vur2L1J8^=@I5QdO(JI+zyYh=o(?pbQgi_60R$N2+ z4+Fu)8bE(|>tNVRflIV+{SH<3`6{!z7C(}cD@-)CqU4NK#+O1mIB)sucRKp+#a_XROpnzh@F^)$T%*y7P5 zhTtDH6DL{3l?Kv&?7q!(D2)e$J|1A=#OW(KU)}4gf{VFHV^&?A<+kk6Gpnns+@2N8 z`n9Cokv)25buBH&S;4HXW#G@V8e?~PQC2Xk>m1hOS=DuJxhX4{)deNW9-ZkJSqU&X zJ>H&9;*Q6mV)Gr_fN>U)OLfvqufrunIh|a$`gd$@+p{bVHCeWicY z0G;d=fn>YkbLI{BiVB<&;v7^x7feF?P>V^6o(m>X7nsyh!6a;C=E0d}8L z`qZMlI@%YUZ|DqpHrWVpvwy@+$5;qpEtU z2$ofK-Yj}|`UT?)F;7(H9!U(Rtr`&6uAl<%=+L3Jlars1V8EzE|)z}U$9Y3r$4yVNegR{C>B2g|6aVgIQ)poYzsrXiRpFS zdY9=75^Wp)&AWxfgXpTRnVLK4dQq@4!5sHRf$VoXUu5REg~6c2FN|dq5@NZWLxLf# zta(u|Eh53>R!3|XZA-e~_E!V}KUQqBLnilQ*|wxJdy^C&mC`71K`*OlH_sy32}AXZ zxzvGW*0fxk2|^rAIyvY{7U=U;Iml$PGg(JB#cPR@gCM`TmlTR=8$YdKH^2RaNe1f= zQYX@Faw6U3PNduDM7jzHn83KoL4uF3$qI8Kif|(#_uttFIO-H=2vC3*0SfRUyX{s7 zC>Ui6P}&`!V6ZJf0c->)01<$a#Dk%%xH$=GBLR9^NmxelTIlJ31<>f*Gpw8yc?lvl-=GonbwjO798)tVL|8900@4F;A z-}zt7aJG@-Y=f9AvVBXU_{$bR4BwzI;v7rfLC*e-OJcNPVgD`HT!U+xfs;jRcSm;_vu0Gu12$dN&|$ZNqoLFZ=vz4? zBs~Xrs5UN(jwz+%Q>0>pN9{L(hRPf#auRPJJ?TH1^dCL0-@KpD@85(2!2xA9Zc`&E z=13gy+*|6>DD*G42`M$7V=5JUsVV+yqAvC_C`{87pNV;opM05`(q2?1u9oHef6Qk& zc2E=YENWJ=HvO=!Id5S2r~-27E{>Pl-9bP*`sDBrP_+cB(GYao5kkxWKxBji8Nz53r16w8Z(R zI@qFmSL(5=K5SrbzDSWnIfT@`qZs{Y&^kZOM!>BqYKR+0F~{Nyz49OG{G95h&2Cl! zpt^X?IeBBc^OuZ1i}KBLD_v8mpvzpE;nMeRDMyOQ>-zuquSg=4TH&Kf&!cv3#*Oj( zcektA;eY@!gVQ%RGh0j!IN;2x1#2vk0>oPuKaAX3mpvd%pu?LC$TW|@yvCqWtTW?k z6~O_5)ugv{3HU!?8BCR}@pMu{dtN&9D+2i(O#yUQO&iP4D#Wk-TbB0M7~#TqpLS91O5o zSB^sn3v>&$R!#^Y8y-vTj8K8y<|PPxXa>#}J?n0u181#!NSbYB67IaYgJ1Y_-AO{| zs@q7Qom)vb$Yc#=(znB37h$8V5)>mR1w2l21^TONU$Jzpw1CBc+EZ~7--2(?w?4PM zZ1x}>sMvI!8cVx{pgzy7|JfS&YO$^bT4X%@9IN$9>8r)OR#erWrVOq%uy_U*-oXf#36u-V+D+q zjjqdW>{-KxTX-Of8HHca&uq43Aq)J1A)0NAdFa?qE*qWM&=RT_Tid+~R+iz0o@=a_ zrpND6#4;Uw^IPoHaUDqCbL+JN^oKg2H-dSG$opQ+4%Bl;xoi&GMsDwszs0EDAa|@G zvGe_0fB*nl_GPcM4I~Y^g{edg$ z*`7EW4B^q=hNMNh)m3wA6F}6j`0Y1v)PZfRCp4NXM#2HrbDI%CUDBhvJhUllvA83T zE25Bimg9TR1!U5b+^~m)_rXm72sVG`B1m_Z>J0 zCQ!-Zw)E>CO0{Ak9@;ULME4N%O#+p_{v@yU0}sF*C_8L1&%@tGrC z?2xW72kBaBkdD|ahI9%iTtT{mLps6;c%-wOA)Vz6=?X%+f{^Zk^8~QHB|LAGS%oQJ zB$7d1Fz!$NV!1fjCOQ_~0H-j0sv?_0hsYFB@T!?2YylOL)Z*JezCcf^_-1u-%qe_h zB4^`UF~c{&(c>GrdGHN7;qeWcfGj%;-Afw@iJGJ(p`#*fm9KS>_SWa)xl0GlXjt!dVoUq2)=dayfv*b2&(hxZG~f`CES1|x@8rd!|YFbsY{|Gt_%VPTq=Yyn6Su1liGCYBg3mxgsNjR zW)kx7@@Rz_pyN7UNXNevY)?16T5==?EE8#P|MZ0LCg+MEh(_>zxBvbc#7pXHMLE%BL5dJF6~K}}FFba3F0o!LYGBa# zB>uMx5~&rJ;UXoO^V46#-1YIl{ktG3E;=`GvMOp;d?=D8!?`KTD*8KvKk9#UmzkF% z{78owkLp^E*W&}$^`WSIjyweD^UerSoe(c~5Fvy5W;7MQk_2mmUL{Iq|uafF_ z#{bwy_ z#4EsO29ng6&S2mlzB(S-Se?>cIp573YZ>84H#8ocY|$!>Jw_;iBJ+jH=C1f77pl&& zEA1+I-r_664D#sEm1T<2!LM*Tf*wp;=Z=TmGr@OL_Fa@Jv^-zrrI9&&B`Gq*xKd{L z<_*z=vRte+1@w(wi43j|=hLScSw}py0tBF&idTlyGL_=ty@H>Z(w7p(74ERRaziv> zVVX#Q_1#}eALYVuov8j_A*iC~;hkGL6SV9kCst<({2*Ppw%GlS&S z*q`)KmdximT|DQ@hIMz#)D-dn>k(7D3@S9 zxwX6)m}f~7I$GF~7Va#E+tcOJl!x&zUK;=L<&3Vd9bHUNLRGA79$iHGI-tdX2kckM zdW|Y&z4l$nXq(e$hap*n6K|OI+@Nj6B=}Pl?KTvjpb{#zAnzF4}0MdkOW$EmzH1E5`CCUUyLq7U$_)7-A&tc1^U8m ziq>1HTQd5B&PMd5yqumn`odm(CB=p*)+v<(j*K;Lhr^QS3xWjQW19ScxSI2f=u5Nc zOQ~jDC}yB8EEb?FO)1OwC0hwXQO>|$?Y z4%x*zA}|9?SQO9P2zuh?tzV7TK+4*$c@0mbuM5T4;zM0jig%?Tr>H-8I2f;&pwgoI zc9@Ra9H{AVOo9W~)xfDK)8*;ft?UT->=ru^M)i0@xmm)rZVPD?yVrG2j@=L2^yxPwu!o;_of4JKUZW~oGd!WsJ^yW9E3 za>$tF9IPuxJVtSzfiU34N}xbAkqn29-0X|G!CuQKA+>~2Dx-V1tBsM&)p2dgY%u_M zTMU~c$(e*(ahD?5P2kzIT;-;1lTPjuKO>SWxEkd&Gos}@^^CaTBn4pANg2$Nd!}{Q z%)5abtka%WLBjCQUs#zFM$BDSuA}Vtbh9&xA^o|6IVr>sNRZ_alLu?dwodC1K4B^G zUtOe!y&Us7GNdz#BD1Wca9b&@j_x^XZFd*Hq$dQI|N6T@fd8Hr_*RBPpdZt9Z1#kca)?I0Ywhx4ciM;szP^ zc!r-Lfwz@8*yYep$ER|_Nx5K~112bf#lCV; zq!hw1@cnTS03hadUny=zkbMR<%S!{TO1{dW`mVn?62zb6xA&ILzSHpBgtPPOf|g20 z6zNo1zU92tFF6^ygeU+eO@h9|*2}QG!O{nG;Nomf6 z3fZz5#g8(ZQEQ#=XAOEQgGNZal@A&8kYje#9J&_lI0^wyE;ZJ2`6@ zqcXW^GzE!ByNwWu(xOt_O0+nJ*yQ@9G3MeQnqSzpav$!Et|~8XW8t_?G=2-d@`UL^ zh4G;>Cwe^P{oQ34kyUw5sf~^m`@@eDs4C5APj@f+&|)cPTNB$1wBsF2IkeT=MeDS2 z(zz)?PfADw4_3|0aCnaAWbv|wd5^sW^d*f!pDsyknC$opx{@L*syh6%3vX1 z8e`h>V&YE`ks$*zYA$dgU|L|{fp#8cjKJht9zjpoU~!+RU%)-2Y6s&eg8=>_XU2~K z;}&xhuX)=L+5{t;7vyc_qFZYA@@eDtQhVA^QV1IfQD;;y@KJEJfSA@!xs`fZ5!YI| zrA0D~W@DfF$7W;1_wzyZbDhBLL4Z!{vKWf}y|pU1&UwjiL_NZ-($+!-TkKwNEwrej zRICWqrM3tN&GElh8>6MX!JVLp!fK@m0P5R&;`j8@339F4liuU%H0jXNjC;x)`OpGb+dF!`=bbb0bN&NPk;HGucMvE2#iJ%I)W=GaaO=%#aoslg9 zqx3MM=J>tKwW}NxFf8-&IT@w}f0UGpu%h+UN^)B=LB1dlqTvNSh>xwu^hS_cpe90N zx%o>!nP z$Z1pT=m>PlU1cx$FF=hHKtl*~rqu(yMixeW(7eN8nM%~L31Wolw#^E0llIDpCe<6! z6df|6sg)szHOik{s-pWi2vGWZ0t1gcIE7Z@lJh%#Ug*fDd0q8-6rKu z$7f{_d;5mm-LNn8dZiX-qTQlTLcIiBw>Z*eoN|aomd2AJs38LCp}P~BWM=lTQfU1_ zrEn89Dw?HAnp7^nN(&1ari0LmY5n-`N-y&eBC4S2aS=Ml3=1Jd_ zX^b3TNVR9APv%MUkiIrZA48vq^ce$S5F_d=tr`Px)Q_2uzegY!u_Ixhk-s*UUm+o- z5j%a^wu}LZ1ZpV8T@f%2Lj?U&X_ft2iMu)Gr|4sD#SCzug7!P3f*G6wx9SUD>N2|_ z)x^>ewkUVEVOlnW)n=iD3lUBu4yQ!MmiTKg(}+Ytv{bAZbkiW7T ztNQrVP^%$8W+5UH0k@Js18(<Vbfk35?o@~t$Tw3D4sdVxl*U7sn1G3v1 zIFA0O7rQ>f>bYbA_?nN+s|P3@hBd87Sv#ThHrGR_!l0Z(q3zQY_uYy5hrFooslQDE z@XuaBUjS4tW|yj24cRwd)Kki#Naj;VcQv{mf)SQYv7Cf{qv9DD{+KZ;7r{x43Zp|EvvH;gt70pHluN(3yh~mNka#@`zzc0nQ_c|B zfxTrpx5?zR1Dh#0Z-&r>jJhC0kukW1|7uVl&%qtq^BwuHizZNN42E{2Y`8ig0QGJG zE?ErqhkX{y-yxsHTH*vphcG;j?ASex=Cr!$xLx9^2m5o1f*(sVMXEyl&tcSJJJ4yW zP+Pi>J!PXgAz=vAnNrGDb3}){9QDCg(-S$2O#lsQVJF3dY5Dc16LuFY_YIRD;Yq$P z7>(lN&1yK&8D|?+yq+kGj3-RF5s<^Zru4AuTp|7t*H5S4`2hk8B~s3ZVBeAj`PB09 zrMu(dPM$!F?${}IWmCeGG5CvIpaRdluh_76FI3qV3)kJfe*o# zA*EC_$_$~ZS4{<7>?wWD34WzJ8??s^)3F>kF$g4lHhUGJMj=2twu#)l)0z`}P~A`i zlT3QDfQ(Ig0!fn>BB;mI8CpK7lva-T9+cmN;=l9yHZQw?CEE5^!0_ zw)h`0f!9$i_Iu8Lm_z5a#ES%AbpE_?LvBjOeFPZ89z04=N=h!yctX zYuF80uuFtO-4tC$2@yXQtHolunHg!zrOcq>L34PuLk5|G#A)<7dsPAX8S=s+|Xw0 zSYjJ^(TJQBCjQE$uK3f}v6Uy%nyr4(QU%L#03xdi4y!Dfh3s(ho6;pE%&u6*VyV$A zhdGum7{D+zExEhw5Iy4{mZ&6Ye3!07%xMu@lcg5Fq&4lL7NE1p2)IOp3b`kSDU<28 zM#hwg(kaW7=yG&FCAe}qaGgCRHeRHB2ek4zWD-t0PuT=%ZkQq}cQms)K}+JV-B6jH zRtzaLF-1&IDib7q(n1p?Xtq_iTOj9|7@+!CAz5ZK!=lYQQEqNeIblqZ;kjmvnRDo$ z9yB~-M1HY57-l1&Q>a-&jB2K9fE1F0Y2FEeBSwJuB+d9NpliGc9u|qz6B-YmAQH7d z7k^0fKD!(yech`uGh^p7^Yf!YJaL`$Lx|-50o()SkFJP891|x4S(Oy+bKVNV{pBv; zyZ}hMKCSzAM#quk1Q+QK$(&@cWMOGi!zv4>GmfY{fPPu@xWSOtlrd2ic>1OD5MI)m zUq4oZm*9ML_D0Byc>39+p6qtA)hv?(FII!|)_G>rq;8svKX;uB@R5|5UpW~CB~C23 zV?y+9as1`02?}HR_W1A(P-muykW)m60f%L=51uVXdsBdAG_p%-1>!nOi=s^_%Ad4r zJAXQ_UoK`5P^#)YV9 zD?L)&?+$t-%?zO&>6sZGhq{k9{)bB;mv4#0n1uAA>`;L>%g*IZJZ-EzZ5#~llU5t! zNP-PJx~>#V*{hVjBzK1x-6x1^s8J0o#c^||QWRiAN}GWK2)Cy4W8$}dl%sm*M|psJ zI!5cZpnfTV+KOc2CAoG!L-xt!9wYmQC488;K|58FKZXdvE+>}!Cq5IUua$Z^kbH)3 zfp#oy@OWeq&2?S}#Mpn%9!|b)u&t;aY+!NrSw5c3eaHf&5x_ zJd5U2@8jA>=%@^t(*ju*qO5mVSqmgpt#RgfKhbR9P&4p znx7VMGEi!et|f=o%2uE$wlSq76!n*h54;Fm868H`sX4Io7uPA58; zi8e{fJIGEQpi7T(cKF4s-4m()^$fu^KD4Fwt7)Em>1w1bt{u)X<_v~sRR&PRZ@Zzc zG8t9y`R<%#VMXJ&wzHP@l8~Uk&^5;}SKV3+qUaO&%hpZrmUxtP(16-_r9@-ZR(!Rs3aLwPoWxo;$R z-CfEIab}>7vLmq$?`)7%$5CekATJ+R4JX~zkVPk^G$g&D;$}Qaw%4K71la_g&E$H9 z<=)xVhb_o_?rq&K8Nxs8IblE|eFn&}idnEXy5nm_- z#F;&lQndR!27~Wf)>`{M+4Q){ARDu88(n65GFDItBHSTl`)q>jtL=oOQFf&&tmQ${ zOh^1qS*vmxgJf0MOpc4YlV#&&!XjBVUI>ej_ikp9Bw_MMR!P1~kJtjP5zHMTS?Gi+)7<+NIAnZe_PHr;TrCV z!1Nvi(?U>e3jLPub~;0!ZgXAR>N^zc?6P$wXLEx#DhjcgyusK71W8MDFe1DF5+ z60&Y5ZP}pQX*=vre57nEnC|N!0ssSpW5rLuKqKXW;OH<9K6SYpGD9!M??X49j&o;f zKK}dlh$8~VzF@ow_{PIsvYLSLFl&80$HDx&U#b%d6Wk7nc^Mw*i$l41r{?-pRXOHT zt;)KTRi`E&gM>Y1Vq1UknWn+uGnPlF<+gLbCCE*Z*PcM!@jwSW)$*KXp@y3(unufe z3J6Qb-(^=4a+tLH>8dD-g5Et495lGw3f)jlv_uviFIWNIvzD1KdRV)e1`|dlR;F*^ z!-E>?G0+|5F!vg!t^44|8A5F!#G*V$6B`Xob>b z%VTXrj)fcwr>o_$prlwY9qN$&i{4~l07k^qOSljRUSRaC7(ceu{SmFWc9x7k{_F)B;k3oWckZ9lR3W+n?6?Jg+tq*-mZ+}T_#3YfFbPV( zdIn?fjfvIG-4j( zz5Ui?^f*9i5?a(=i8X+^a+Wlr_1z zA4YqOt`MS(?3W&C+JAD${fz$id2U=7z2oZ0PEM+zhHVqnuZVt(%hZ-cW9j0Gimq}l6 zc_?g%b~0MkF$RU)rK#GDzN)R#eIpp?9eu68U=t|#7z0&wtaeZ-1owbaDDHlxklZ2F zio|mg7Ac+ksGg(r-KP}sXhbQR?+2v>ZHvDG=M>S>mQtO@jYnH6-WFBZoD|f2FNuRRFjjS^m#hS#j!}t%KnR`E;s% zTfzl?D&a`_Oq=SVufCTy^4C%deZUY0H9`O_+%WWS45KTSP_~4rEN8(8%1wK2Eri2} zI@F3`KOJhNrj;_sCzP_{IB1yUK!1XtSiX-b7zln!K0S$eVuSUAG}W#;*HRfIM;)+5 z$qKBGsq_SZ9o#v|GtHQI!XDeZv81k>C@?+;*1_Hi__h36wn1sWrPPo>su5sq8ua=x z`u}Z1PgoJlbky>z(JDaxeEv!DljH$2zeE#mi5_fsO8KKK(HdKiD1N6?6nQmmAC*@Z zEJkQo-F$roX%*d4V)SX^^7D~h4xm+V!P5oKNh%RFaxjaMXzI$u^)Ve)NS#VoiM^68`85wXk}BU`xXxk9_tvvaxpBL9UM? zkncOaC_B4aByl&O?s@%#(EQ18OvpDk;K1TIs_MNsL1-Ell4`#Ml4|;5uDtRqXe#41%yk;Zv;|YY&n|R39lRcvd^hOfs^R*<9(W^+HEhpKE zrOI+4H7&(qceMU&I7?ZYM<;lyU&E!oZV-N`GMqi40d*(`TyB{=G!F+!K~)pvYy>%LiQ!Y zJj3nu|6lf*zq+t05x@`OCTI7VXZM+B_nBw+nGznPih{YE-DjTNXP(hM^S_?mXFltF z=C3aNce&5}Wlz-X&oi6Oe`=mQ9C7Gl zv{z*ducsrkg!nM1@~Ba}c8nQS^#nRJ+26_6Un9kzl` zed@0{Qfa-QB|Z70!$JCsApY#{pghFF)$4BA(eKlHUtL6(`+~%d&=waPz42y@E|iur zKJ-&!XW*I;)Y)x12yd%I3Dh&4m)ih;&-MH&4Mn%j+W?9(=UhXcW_c(vhu`&uFl%3Kkx!w)A70NgG$ZTs|?|T0q=H5Nd&#S8Uf4=wc+>$4kwz;)^ zzTc+pq-0Ex(6nj!k!K`rN}IIMdQQ=z^;nNR3DlOu@AcvjU*wAf7$o9Uf=)5OAcc;e zz;DE;qrccQMxs4gEr z+btBotjG=Q7mK%1$E-e0(uvo4{g<{|GEEIW{d!KgWR0g3h zbI5lZUIh^wBMk1>I3y2KnCr(pxXQfP2Br7m!6vY5ZYRi+kKfF(wwj2$$P)lGTDfJ0T0VXNAPoe8Q6U_j&w?&9ayl2mpm#Gl?pthSkj zdw^Cs!P=q^TWFSpt*yR^c4;uw$Ei*-&dD)4)0N_xZ}qRI)xXaf_}0If&?)*i8LISe%Bt4CX{s0LU)tHf&$ab$rmcUI zZT*{S>)*8ZkHDi18{ujV;{D#s`?45mn%~dpBPKL)X7A)3ebsdO-Ct;5zvma|GZXIl zEBlI`)q*F>>50xK{X*N5TDlzn?#<9DD3x&XQ9r40jnl%Xth%WHf-DGx_XY$_+Eqi) zls}-Ap<|)S%1{M}wEW3}BNtK!t?Xt+T~|DJccOG&n(66(+J)LZ_yhY<#dTom;ZSWWY zVJ57mJSl?r)s)&o{uM;cJeShxvnQyYHFij+s!%$MExCSH)hQ*nk^IrZN%L?M_Gx}Z z<9^AHd_Mcgn*j6qeMDhxltcX92efK9JzbI1LpmXEl+i%x5Z+=Oce)bTz8HUGL&C-f z-14^ATiJ(Eep;SLIa@(Y_+8UZ>KAK%KG<*Ff-c`dn9upQO^P6%f)J5-3Nl3EDTolZ z6E-CXuJuWoI%v#qa+KHs-Ar>TQA(jbG0xa~&h44-BGqJ>*g7&jCr*bBg)1hQE zctV53X|qZEYki=jH=TS>Z~W)ol8GYD*($-W5S*W(elXOhsh_7EJu^l9oZ9?_2LBuT z6Vmc%{H12dj6tI|`td)r{*cG>tLdw^lHcIbesyFc)X{|wq$=T_aTnxFBz!*OBI*kn z7ZD<8XlFOgAH;80K%1u9JbWot;v{JA8)XX8$*%4B1%uinwGH5qRUx8eAmewda;~D) zYscP6T8R(;5WjW!h5+c#ALeoPnsq@MN~`yKuV$ah=l56>{F$$?!-)?3dyT%L_u4XH z3pY0y5ujE7SsI4LrqU@3UN`-6PIb^AZHpE2kkDk>hQ(M?r7&7NQB5I$mbS^aw9Wer zOQvm(Sk<)YP^dz#!vT$u>j>2)$Q5mRb~l)85>0o|L{u z-$`9dErI}TSQxd1FKETX>?l&~A9&e)5QtrI)(b95o2fBdt3qp|0+wY`+KXRkg}|AN zMG}0Y*cGhW)r5edA;kH&lKj(MigCVWeSV!~08Pig678?&H?qbz9p1nkA^z3=Fq5?0 zGQ;GIko0^kw;FU}joJ)LtUHOxrUT z%`Nl)e1$cohd)5ZgX0<{@(tty(a~XO?;^=%4k^(Aw}-TG7i0{p9NDmsZ3+4G%oH;- zZTKAh6cuuGq$8i8vXaX8bc-$P>Ch>@ThyU3Y+2Do(l(^uS4FGc&#A(e`t&H^S(2Jr zUD5v687ewrhTUE1FpbpWEJZ~DjM{CAA$GqWWS{#$G_$*j?9;nRrT|lM_1WE8VUd?4 zw=qiR*ZXP^bw(#oGl|Wo=l>YvfKeLSP%kltdhz^Vv$+PT%xEr*>>I6Y`4d7-@BFjB zqX+c!dxQ0YMpzU^CLv{cA`3`rBXR7gj|BQqnIA6GPIYobFCv0neXDdGU12+j*O#~>tqo1&@1#|?L~CxzO;PQSKCgKz2VXzCTkG1;6YZZ~rcda@$|#wA_=7x; zMYy|O1r^k0G)`>HVVCrl+`?W~;0OXXJJ0V$iiY|e_2E#Tr9N~YNgL-s%!b(PaDjp{ zNLVU?8NtYo_L<%Ft5_JsFUJq_cE``U4j>^j2U1MRGlretH6R^3G%I*(!tbo`dpRq* z4wj69iX<@%)wM{xP{o@9v)o6nQ+>)wMPHfS+a#wmdl3bL`5K%w5Pga3QZU|r0O1{& z8(5Ni>l+61uXI$+?bQk?XQz1l#-wb0CTzC1wq9?|?UnR}0iP8mJJ$_4poZNkusglm zu`>x4r$T*#`edk&Q=iy9$O4m(BQ7^8qU-=X`xYD-BEgw|s#^QP#xQq>j zoPdHf-!VE$YO*wG%a~qF+Q$V7q&=})Tej#3TspCLFcPw4kq_Mm;;!UgwO~w^eSZRB z5l?g#J{w?#vIOihj(H(EG$U@4a;O} zvZ16CT&*RA@rdQTkH8+lce434}C;@9!6{!e$G;4T}G zbu1I=YPrC&v_XO*K7Dmv+wm>y#Od8y$sB}Wp~=vF0HU)=SoQN(am-~~BKGebRJEH` z>*9&ASNRWcId`vDVe@%axw~MO1|kkLY4BEmo=z!uKcJ8kN-3d0$=+RkRUS9orHxUL z)*HXWkp@s3?qTt6cK49(uFmel=~qHeEM3j+e_bf=%kGPd)qcIg=wvNxI82sn20z=R zRP|+Mce3Frkff)>m-KYNOZ@o1D4 z+`X7cET{vKKz-iotQ_Obg}t!AmDZQ_5a!j!7S-fxc%(@-@w;E4#3gn}PS)E% zU;$TPv$9LsnbhaqNNxsL`=CsM%!S} zp~(wqMiz*3Od-z19Ba>=Qc)t^8IojUIlcySer{msgIX4$Lk~se4_gZM8Be6=A7ZAT z34PFEGM4wPMEcvUiM{GkI*tfo%xF_0)D#c1v17tJBR?*ose49tbUe*O6r4yU*LeH>D#?v=FBrS!(8DASjR$BV|oWBQe-L3znSpg{}1R}e8RLN!H%8ypZ?HjkWpIhgv*9xtF}fGXr9i-LQA)(E98RAywE*Rr4l4FlY#<$9 z|L~)J(FloGNN{)oI-O)s@0O`at`8qJvu>R>XtxKp$b^1C&6`(&8Vo}G3%j@HSiPv~ zB-N@{r>MrNZb47olEau}*mK`eC-DF+1SE7Ig{8$ENNFKMT5u6ETBwk+HG{8-ib6mI zo1!^*CjP<;tv8D?f^0*2flX#3Zneq8Ob@a*40^UE18#Znz$;9tPrgJusF)tPD#ls8 zhX$@-h4EC0Tv>Qeq+1|61&zp`rQ>SCv-v^RT7rCX-Jo@paKmhGBkTDe4cw5?gLhrv z@Ws$VDtn=2_J8UHHeT5BRodi5aP3{BHTu2eV2e${qk2(KG0}-9w`;>Bkr+*(uvu-4 znJ2_=UZrqOgDsJ6tS2FTBI)g!ec7gSUKV=G#`Fyu`@##En#p>>@UWRlE4_@eY~Uv{ zlf9K*hFO=UVZX3G-{q&}P8Mwz7Ul@sn=GSL|9`8Fv5E5UPRAgO|o`ge`VK& z-%LSpt)9lOu)1$KjKq&~B>B?l4@CD{N-XA>kW?uYjz%Yl<_Z0&@p2Hv4^W zAO^%;^@^In$D$)qdRORs7#Q3aRVl9-hO`|%$5)V-Xn}P4y?+{#zCua<5(rEWf0d=) z=B4fC+XE5#7s&%cWyU*Kh{&#}?g;i%xUOgNbdtTf{9RzD^=aRxz!Y~!#Qq!}Q_^1~ zuhln^rk4<9sFQ$|tz{a0_VMx{>oZUnx%fktlV~7 zukmz0HE47j1&G|*gq0rGEAiiQ;D$bEuv(@TegGA6(V&vXxK)-j3AKIozi=$CF8BMD z9%wWCX}ffU&jyGQ^g8wh!E9r^hI_ zj*zKc?SJNZb8v7H_qra_&*^h%p`N}g?=`PJ4{R^sR zsPf~u<(eE}iY`g5 z>$)*EG+Kz?^KvK$M_iL)btRXsu$iWK&Ath<8GOineb+M5iGJJ=uB&BrxO)acr z5&8vTygNTzxRF%_VBQ8HpIVO%^IQh=?E_+{54|;npZaHQ z7FEW=!f7p9Vs)728g*2#NW0suPKRp@qceZ$siI=<#a+ z=YRgTkSK_vlzlRe&nO*IRk%zYIrmc=`L57(54DM}sJ5G$W5#5>Q#*Q&%ZC2DTBvxL zRgLg(r3xx+KpZ(6d4VekZ6U{`xbcM?z1SZ{hxs0&h-F}8T?P9|VfoXZV2b|5Zzjt^ zrj{{_Alh^s+HgH+10DaJopTOo_|Vxe$3Un$N|ml#s@;l8vK-TAOLB=w)Ia?q@h-}I zGgeqr)XyN5INOM^U>A*Ga9PV^+jz`HJ`W^3u(9pF^AdgoiOTpxSi|&GxeHPysQAb- zWN$Tod^^86@FV`}4TE{ML}mkxH{y8b5c`GJ5I29@5KCT|c=}6Y6yprm4J{>}xD1mx z>UGSUv4~*%KP#P_9z<8r12iLg5WNIu#YUofs}Y2W_bC43SLEBbl%MLvPn7CH3qQ@@ zhM#xQx(Sl+H3f;Ir(K2|6hk|D+GU7|7KEGR2QZmT5YmG17Q49Y7Q49UUd%2gJDgoi zbU3?^gD^{7YeGcbf8K0@uohWA+Om=!mX(wgKay0;byw>J9Ha;|Ht1gN=X##U*r=H? zk!mpHS8rf$BzxWInKdjiyM=S{rxXAx#Lw;$&a|e=z#&%$FjzHl$Y3VvPX!Zu2bnYI zKmoquLJ#scqci^RyQp9#JHMY(rq)Pqw{w9tVNRLeJ?3d4x$9HRJ#1n!!UJZJ%b$ns zeG?d@otyBRNodroPy{9g{B-miQ&F0vCn+rFv-(<%|B5UmiV7*V#0(3+hnx-C4-8p~ zc`=S@GwJn2ACS>zep!bhP>wM`tSCH1RasOMhei1s+F)V&4j7<;GiYt?fkEULB{afU z*tP4MRKo|&lAX=V%`w}w{{5atLK^#XHJh{vcv%X9-qbPRn>q&mSzQl6x~bq$F6cTv z8Uk*qaX&W%4lxVg8+Yj9FWy18GM>8u^Bm(*lL?mY%!)TBi<*OdVOLY03O3LDD8UL^0yLSb*ut_?)L*bxfjx`o2DPNppshGoWzwoAmpvIj021pEFM z@C#TF><2nw;ot^G6!Y4=$kKvgqn{-vr6|}49uSXteUggC=Zq@yUe9r~i-KQ>+w_aN zD5m_rDvE-gQw0}MdLFPm_@ygECDIuxS@3I~Mrtt^nR(aN`Xm<<-XEf9Fo%9C_nG)cJz|c$=F)k^%Q`|}u$goHxex+tCVjGk~RP@M%z-k*Z#34$%p z!d-1aFrC}d9s~oC3WB}0EeJMsZ2q{I8O$dB-3_S$j z(*~LdP$b}?FXa=tw^NNWbFy;t~l!d6+Ux+n4 zDt1cMEGjl5w&n*>G2?rx8QT&n8lqyx^y;yqVn9h$%-!L$cOllCVO}Z=w|l##NOz#*pl@4IgA^i8xycIrZfQXepAdd;^1cF%fvU<+i4Lf z*4)hfmNxzp@vc3nM@LC3-X(SjJW;Ib0QAs`ZtVdyMYmKcx~0+vm{QR# z{Z>?Ck43jcnw3l*?^ z+KGxnK!ruOu86<%qL%P%!^lOVTj#fXbW2TUk*Q{MYhrP9tK{zcY#beAw}+d7EelJv z4DnW23fdC|$V?Ff#e}7pqpiI}tPJ;5GuoASyi6F(;$>#0XH8l3*y5RsMqE4+KFeGv z;-@Vt>j-gW1I=_Pev5^;7S<<=LR>mdXQ>d^!uoyS{09tiF`KfLhU*A%S=P?c{Qi20 zg@z@a>L!TegWT8q={cVg!*=&6ZZy@$ZhZLDJ2;(m74yvjHw z!fgjNVi72puH0W1J;0{3gU2b&ADvWa#Q&$rgLzW0|@~DyIsRcSa0}ON$8XIuEfW?Y>AXFQvaxb$|``e$3(n|czTd;g8 z_WqZ!HFv$Pk5feL>`e5)RaA9!CC%KgKM%z3{$Z8()T@YC9d5>t`_e7(FW;%!1R;mp z`#3!DJZ<}diU6+kWU#UDx|$wuu;@^OCqIO`prdb% zeBPiz6yI>v6;7nIk-MX>w2pMwRAZ|aQad!cQM_Zll$_I{eV6?`-z1$wJ1zF$yDrC% zYhj0BJ1NGWyO(551=&7`AK}37U}fU*j`V|*9gQA_@(jDhiU~+r#DchI=qQXzR51Iv zI{G!xG7$ZNyt$MRI1_C4xzS=$+LHUT+%38H2yvxNxj)Wr&;3fM{~`5XRGkIIZ&%5Z zsUgn&Ho)=@&*6O9r6?Mp4db;v4;6OBzrWSY1DlVI5L6vC^l#z`OP-_;F+%41Dy4tx z6v9P~iJ?4~e*W1>+B9y+$B(}n=Cj5|5k6DiSb=kz3zMNPw~~e`{g(JX{%1ySAo`Zv zF?IrrjX?bWz7o2Vg9Z^K5TXU%YIqA#18|6+Vhng{;DqSdj;P3Xs&wRSr=#=*H2!{~ zp2Om^S-Kg2bQ6SwP|%=RyRsx;W>O;3d|5u3G`gL`9}p}Y5XC6xV68ut+k75k%fb5A zV-_}a<1l=Wb?{MqcA)b0(motg+wq*9nqHyX5BpQE>8a(NNCx0M>C7miw&8!L2(YB|M`QHilR~3=YA@8;SKm zwSMg^u;(_At6QtYSPccf)1#=ew5rc@D&-DD2PHl-r(P*5PLniE3;jZNHXLBq2(Gtd zP)ubmIVjosP88!cB8HyyrHZ;se}8F>^e&EJt%_mGCoy-;ZCo;x`JN|0)}k0pB3^j= zWtue~@ONm-mJ87Ui>cS?Vun*vA+wl9Eei1^!ruJo(Bes%&&D6TS%k7#&k$7QEvzjy z7n%kfEPP}HU8@;Q#`ep zHU3>br14vl4um>0U5wgf!imhlYNC*!0x8dn$EA1|cO+v-RAVo6j>d#_GiJSjOPxC| z%}?SJe~thmqCs4=kzM?*_mfMKQ{wV_qe!pWRG*0?332jd9zWc5c(YM`6OX z#RlXX6tf0}#ty0`FH{27gu0FT)2}~Tn#0L##Vv>{{#->%%(vsi6$xH9p#xN1PJfH8asT`>uL#{HCXN74ClK8QR}Pm{C2&(v)-$x zNKvj|FEfDx%Ayyunpi5B>PwjD=1gQ_+Eh8Y2TgKFmb9Ja9h7GdE47!m1#%{jI9XiC z3!H^+k>PGqlKKkGJ;8eit#&H30z7?^O^?z&HC){f=2v&l6~yNbXYV8k};9})1pOo zrr>VuIKJQx+?v_(1%&E}ATrw7@daJY;|uP9AiMndf;rN2RCIhn#g8xG5H>$~P2<;K zz@;1Ep}QEFl!qBh))3HSc7VZXnGCp{2NHq`YZBH!uo2>&3{u{d74lo!iW1Io; zlR8?B@@P1~V7y$@*TVq@$2t!%XppF2E4;#nw*@x7_j`4oY9fp5#f(5Je=!Fbyid#Ql{xvh$b624N4QEQ7S|M|a<EP7IKmWo;oHX8si+#YhTSA8@01E z_2;z5dycf@rSx~6nbEm}kQ2x9@pq0zT5CyA&om(Y=wEQpNR6ZVxHnsfe|4SRmMb(*m#9!1j^mDH?_Ol)DXIXpm zIERtY10KgX?q;4OZDG(5Zv#Zt=e37E)aR60p1KaW^G}2n`@@!b`LbFu-@Y)V{j7sL zQ;O^?1DIaNZedPqt&190Ifr`Ua0E!p67l#VtFyv}4)$b#^qkH*IL)GjaMr<$)+g8y z5&JhF(;1z0z#xKF;lR#1z#g9)Vt&`39{N6rvxBZd@!91rC}uz}F3siI9?pcQ{VW3r ziSzyJ3voCqKtG|Y_;`x0_1(RiiqOJgmO7KY+VYVA)pV_6>cHobJnYKmeI2l!>4l)M2*ULRuXV zFdP7v4WJQg9uRPjVN{>h#(8AUto46B91w7}%f+Tqr#dDonBj1Rq43HqyA6hybL?u# z4+wy=NHL@o16mGP*XT65_cb%@XRpuL_`n^!KC7{mt&DTNP+x|Zia^(*69O!kc}%$9 z*1V~6>fvU>51l6j7*kdib2e68>5U>M4G~}|91(EFc1oXJbVR@mM+6)Vp}kq;@iFS@ z1e2fMW(RB(dRxuf838;xD{i4PmP`c!XUS9$aF$F30jJIQ67^526gTU6&IYh#Gx)Tp z^gAX;y3Ww;4QB*^eQ+bFvoivE+s_D?XSnQKP<>z0i||)^107fl+vZaF4aXU0%wsmMgS%(HR4*{dm zkCKf4<3@s8_#_D+sHa1ALR8zK0V5=>_vHWm@+;6OR1h+s9&bY4*@^XCs&~u%Pb)=Mbt`>@r-mj0erIj1OA>Y>2Gz6v1y;}k5=D=Bt@iq9)I$_BkGOSBw6%9PJGZHo#5C22@a064eHa5 z4d}?p@mA8`XG3z3^!GL-BMeD7Tg0W_EGz@-{%JldIU+BVi4|@Ig@>Y{J}+?(c1`R< z;!?&&o6g(iaBM&ZD*eyP=T`P(1B%wJq(C?}0M5vzvwk>Qc5Z<5zouPtT2KYf)Z0Ar z>mnxybT(mbDzOPHhMhrHJT1m!pt;gKJD~N2pdc=Gdcem)--pptqMs9>?@7~H7;3^h zlpUz1D;~LlZ(zZp7@I1Gc^NMb&_K%=eUfY)O>49qUeD|F06!%Wj}P>ID~*{ghrXi< z-QgjZ9W@ZWJUcyr4Gu70mcc!@CHn2qw4VAM|0K2XJQ$?Oqj^B19Lu{sb}TOwj_86m zySQ=8GTmm+}GO@ZA&$*l>ElA&&G(_3i-He*5VG z*!lsttcpbzwcW)<@VqgJji*^r}9|Pgx@7 zcZ+}d_LPk*@$?R+>3Myai3Uv-<9D-oRK8E1CwQEn@0E|$stZ)5Vz}C{q>80@fkl1_ zG0&2DX9~Hj`V95SP@krbUxn*zO+wYqt+i+J=ea&hoo!fs_#f>48SX=9Y9oId@x<{J zc72}fP@S%G>IrFf!u9i9AMxw?a}sUg`VgkTkY6t}FqazP`eCjwI9&NdT%V_&j;=9H zn@(^>hSLikL47pT$Eh>XC4{sL!~AX=cmzm39lKoOhSe5KmrZTw(@C~{5CludyX``RLjp55 z`;{7@)0vI zTqjPJKNYSkes(%sSCDEpTp!~4T&OQF^*I-wnOB}P)fJ4!8t-)$JWMGPnB&og)y-#B zSO~98^V-4i%nZ*Q(t0W}A+JM_i1PSLSEq0q=RWlkk5rn>E=Vx_z!greJjz;Jro-3R zpcLZ|+zHnz%1GQWK}gQy`2#I>JKMsMmT*C&hu+q)+sQ9r)Z?imhodd<9{zgR$C;k` zUs+Z`y{0K4K&5X6T}J-lRY}v`({0 zub;d^=rb-$PpCfRbvlZnu0zDZ&)Ts0B0c`K)&?7%h##+mSjj#q4oNXNQ&~da!s=?r z>ddkfGH=5w>C#{<4%)(~{TlsH{)Mk&)Sk8aru=!hd^*$*!ZkCYeu(-kb?jHN&YH;J z;A7&GzjwC{gggz_@Yk-`5q*rB*4doB;+C9CH4^n+0i)Q*k(kuI?~n=gk#*@R1x&0< z578wiFQOK7TU8xoa=BFJ{%}(YByF8zx?nJw$3$p=7P>W zyQp*TWc^{*xkF^($vQXR*13hY&NX0Qbv2u}~MCA{^M1 zfB^L&V3#AJC0svCUCIf!78_Jmp2RQ}W~cI^fBaN3w4U+tLr~^rUBGiE-KN;$hy;GqMB>8FT=`cb`9Ei4z-}e9&0(gb^ z12+f<{h-8z-DVH-U}X@hVdI%L62gjM^uB*B7x7re4YotOs8i&Ejnz^{SxXO7px+*(=)#I3>QPzG@vbeYa@t(yx%h3MJ@i4Y^OPKe1nD(2 zI_}*D#kzFX!16AAEr6&lO^3R=G!yFT(rl=!OOv6lE=^Hix=Z-T|L9J%k*#0>s)6Wh z>oW8qfYxPbMF2s5O#wtbBg@$~vYezIP{}uqEHOs&G7m+2Dxo<>c|#49_2(1en6%$M z{>AttTqL4NG)DqMiT-SipMD9KxhnFgGj))6plH5qPMb8=99_eFl%?Eyehf|D=(Fpb zybPuAve@6KD1H_O6~+9IHtzeAzQkXU zM13;U=c&(x`U3S?mQlptyDq;|!)SU$Qw8sIaQPV5pA&xIdLcwo;k-(ug5zxq{BsLL z$2ExHV_@W4)NL>vald+{5c1?2Mviinux5bTpT_4SQKCk)fRXmKTaf1Op@6XOqA_BS zEcS;7O7YM&X+ZVMyuqFDvn>tD#ee-GE|ucntcMQ}+zj-?yIf9+TFiqbhbI3ezN;Z; zO^Z?-&I#si`{FNN4G(H3e(^wBV4@QL*=^vb;9tn64W^EhLLr8U(FcA*2I}BC?qEy3 z?}ciVweTb#h`)2U0F(qGza|w(iHd^;HVu0;W7tKOS#xUNg{!^y$3I!;34Kt$Q$Ez_ z_>c*-)!B!enzh`T;4RVB<}{aBygNbh2^a&9IaLa7=?)2bo-hWmZgQVczf7B@7fiUx4xVhYys~ zWPiPn&eW?81uG#HaKnMZx6{?CD`E49mf%1a!&b6T%3wKUzYLZkRWF34Q343Gj$BCO z{Ey#vO$Nn?&J74nm(!iTRWzQyRh~6%*NmUJ)qE*^iNH(B`< z!lwbo#4>srXKjz@W|-3C*}r_yi%RJ1qm7Ju$1>=S(VnlkTs8bFHWwfMVICSPvN2Nk z8;k?UPY)#3_4O)Bp}1!~&XOel^)0$Rq!oUYhl)g4S%*U6V+?9O63 zLH{!N)m5gyw4p#L>wVY9@4Ve0t<50$$u-Ls{@g=eQDnv=` zJ_1chi;WZnTS+?xuVY|Q^wulu*_FCXIbW9Z-RO2PNP3Q^SyYxD=AezWdM>W@rMB^m zQSAj8EI)m$sCCX&epGp<4`{(XcMZN_m^pw(Q^QsU`CvS%8>wg% z+eV`OIgts#@=?w+u`W!gWW52=0UziS!4iAF=|H1Y?^QWes;^B8uZOBcI1m|-8`2pjWxZP~tfMgU5AXq@ zlC>Axi3C?Qj>vEZq;`#uk;0x2aRXf}sf=&VhKK{!4XK>}%Mc*}ZDsq%)Xj zBrd83^E69f0s)*0!?(cjne-`46LrHWAkb&9$n+s(kbQs_`2f;StDQ>mUy8*UaR~zs zcz1JwLUTOKPo$DCLwQjACzNRqNQp^YgBzkK&OZRlZdquUI0J#-$egIr=Dp9J#+BiPS2dp^bCUCBuJ;8`3y)| ztY<3iddA>~jrG_?^-LGG&=06*Ol2{)=$RhrnI7jGDLP4?jnW`U5f-~tf=U}>iH9*a zQlyfWUaw`5E>ARkrPp&}dQz3GD)NJ3unkd5EJ2Fj_JE+*`zoI-LfWRpMj^EcQ7E*1 zER-Z&;kP$f|4~c0!l@ESy#D|=hbT3kCn*0ffk*jb$_dKz$g^~u@`aQm zls8fyr@Wu?5azSGcbxK7lu~d%Mma|Lwe&CD&lU{irtAFuIVA zjCe-Rg!4A{f>7U3yIYsm)b3HSy0$|_TziFz-r6fwRBQLDDAu-w3CcFjHZ^W6iNpF^ z9Y1xCaYv!fIu=&8DW08d0jy+8a9(_s(a;(X)F$O@0qcd{`%_h(>NO{VKXtm`N`^HL z%Xn&pjJqfKA!vW~zWDDn-ney8N7_;2>wdf=8*9wp z<@u@c2tFMiX(pkHe-(Nc_ODg3rgj~Vpzmmb+1IyUl>7&3Bvkq~)WM#+Qtf(`6D65> zWWg%c5|yK++SMwLlxkP194Xb-t2|t)v9ucFvqV0A%0nempHL2!$ZbN27PQsT4Hgy* z_SGKI8FI>pCqWMXKI&6e8A`g=!>O%wLH@r-6~~bmWVbpIDTZY zm*fsn*Z2s#4>7BX+(%)SJZWI;-`nh<_oHZffc`&nd*^=P0r`O;ZnFrh&QY!U)mf@h zf}mjngBGr;x`|1FuD;f?5Lx##^kwLrEY&vYos(Ks!V4!#wV%`P46RR=G;#>Uk`Lt3 zl7@+3c*#f2hT*kO)z%Cy1BV-h!?3GyF%s`{B;I34RJsdr&`-}c8`(Q4+~pr5Q8ewe zlLF7Ku3wP`ZG&S;2wa4Y18p!yAPYk&L{;$KsQdU8Yheg2nwtj=^Xso%N2mSArf89!ip zHbIgwOG(ygUg;ZOs{SFC@1n=5P9DBO^`-nYha;s^>ANlcFPks%rm*2cR#X8K5mQJO zO?99B!V;_S0Y_|b)FiT9lVqJ{TPTdWhK+VpXbPK!8_-nrE{B^eK z{54l~{=!T)R>1tO493s~F*uZfqm(J7cQX+D&-=S?(5to~Z;9c3y?^gfKF5Yxixr5G zNVW>=-N=>17!7WOi^VKX^#JkWCRJzDo>70s4Vf^>s5+zajOsHk$he|I*g*Z2!4>pS zBAY;r5!PzJFiHtMJd|@Z4dv9;wBb*YqritUJasVV!mB|Jb3N523@<{>gDd$klT!5V z(jPt&K0M+dW>=@^e({G7hYt^5_~DlVBhGG@!WTotQj9jZ3ec_=XyZ$Rb}WE4?x2k= z4cgHF+L(hz?m=~6BT)JIL@qL)%()sE&547b7v@$2-cP&b8fiu6Avv==ISm^5W|M8zz^0sqBADiaVcEP5_%v(;5tWvfE@K$J%NB%Pw<= zp3>L)oVX_COZpTdfES(YtcT5K*hL^^kB|E4n`r_~G0ckG*sDWSt6ptTwXaWkhj#K( z*og4e7Y$zSVtFbTba*8wlS)u7m7r`YKA2BdTpW*99F<2Zj>?gWGt=RU%Z=fR%bY_M zmpLbMwd;E~xOrks2oRQ(SDPWS{(+c}ZR6LB1G-ofoHjyYikY$G62m97W_CqpXUOgt zynvn>a%1sTz(HK$>6;zT=A6?2y~$L;1Op`W&n|_zHI6y_OZM#9iqpef z#nmup7n)k04VXL~FgX)2c`9IXI$-i-z~ofGr7~4l!;>HF|-ZmybCNl|*9lz7; z=S&12E-AT5HmFO$$9l}A;5!%Ko4*8n8eiFygX@5Ejj*ubjmcoMPr;^x>wRbzm@?~y z^SRpU-YfL**>1j^BGxnuD6vl67@HLpAkBY>0s68gFb`!1A z-EE93#a0-Ei#zKC3^*PkWV73u-<8;Y|!M0MQ&6!JCxcrbtX_;jiEs9L0< zbKSVBtj-E_?Xn4V{PSA7X3s2O6^-;HkC{Pzee#HvHV>K8whUTfV}RK`Y}2rL#VuRR z;A*{+ZC%18zAjS_NFKQ+mo@2O*vFZbUqO3mlr;ca;dZd(#4zFyEw-&k@-BCdNkLtlyUt#W{<-wNAfI$npFYh~{;|-A?qUwtcl?p)gc6E$rt{ zp0G|k{ze@&?JC;wr+@MS!8)}Eq5 zCJH@n0zx{tnr%KXW|@SlMeRbMRIwJze6XIDBqg)oPv5MyC1{A`M_SDCBTZ&WUTEIc z*(wiEC1IQeM5&S}QpUcRvG%CG12eW# zbqK967V6MpVYDZCG;r#pVydekmeoD3n&XUja7R`B(*1rZqb26E@t0S*%4UW&Pps^A z@Q(=}|Kjb8=!6gWA~~ytrarYkt}HP=@VzAP{qiasb;h5!f07&Mf^@6J&0R)vK5r%? zLEniWBYjvhJ9{asLwJ_93d3Q%!EhO`WOh5lX8st4?ZRn1?`IRDY=U$$2vfwQ4f{+O z_R}`(nY$pltwmzDH3`o|?N7L$_i=9_WFqd8yNA zL-Dl#bHlA<4tO)==Y0GxG~MRhbdw}X=P&lqyg$UUMJ6y8dx(8p!3czR;)xsGPOCQU zwCWFRr{N(qfrp3C1RfI91RjiI0uM$qfd^w@xcGae8+wEDFI204A@U$&_ zpbAenWajSn2QUkh-S*moPkG9+r`Q8n*3{C*^rw6;tkP}CYgRJ_vbw&`f;1x#3=@V9 zm+p~*qjscVaT@6)4Pe!*!lh#mgZ+>>`C2pIz^QCvf)h%@%rr*RH}D6FnJt(TVG0uY zsC)y)6Zc<)Coqp5xxfuD>a_kK(4XnFjYi>#p{5&P%%7VSPn>Ayi81lSf9C434BCk{ zXtVhYc2^9*Kf`l)JODOB2cec0EzbpOR;;2K{;ab~bH=aVKI6ySO!hWOB-z^}9K$T8 z*gyo$XEXYpP3qaxqMki1>ba{$J$JRJ=jImmP|c`^YM>rYe(ZD)h@jHn<6DW40oF zcqun1VU!R*`EwQ+u;?Mk0%V2BhJTH%Fn9wnu*e5#o4DrNfFR=68kmP-GrEAHUtek& zFbG;MqF9ajCZJ5XvBUH^UT~!{;mjxVM}oN(7eZy%uT5=n?k0=1b$UCJWTZX674|B66uItMqqb8u3LZ)oI1 z0q3ACn44PS;Q@b`>^Sx?*>YAZgW0xp#cgJNu%SKKlH41DMdu5wEThc@@*znn3q+oAm}Kb!1G?ukDt{j0@Jvpk{oOQ%&5OSXks ztaCc0-`m(3NtsTv{NnPkX0V5{m;bU=jLWFU{I{I{R`TCk{#(U=8waD>BU=Am@SIo$ z!EsdE{wR-7((W{=Nj59m3m|OqAv-AR%T;oblLTya7TbXBHz9PEbJ#;#lEsr_`oTqQ z(bt9dtX#9X+e;GnEm+zKs)k9cD8(bR6m%04~L6IeTwDmT-2vna5kbJ zTs*9j-$UF|o3v03twRV}$T!9lXcYcnpTwUe1BzC$IsnZNa-<$_vg}A!1DRyl)Ah{o zbd+8b|60FZz_PWp59j4g;P*mat}Cr8K-sVNY!Y3iaT(sIF-@oR_MLa7g>Ke_1tGt&~f}g5py~J|N15ce5!6 zL&QL!LmMg)6g$W-XZ=q4-O)*ri->1t7ni^sLmkiTQe8KdqNI8sOwNNXB)J)7E41 zsp}ey1vy*405J4$xPUkcJv*%u8lMqQ;}ueSXY;I%r979fvwN8lV(l!O5!pfyKDq{? zsNO4rw>#_;WHfnVQv}^S5vpC=qYs2?ygicqusMuUii!~D^ic@8udn@ z-un?%4zjT9BZJ9X53-YyflihgqxFG0KDsSF+UTqQ(5K`DuN%zlT}uH)e$gN%p9!b1i%y&Bc;@3Yy>7zszIC{YZf zQ=vrI5RNgS?;^sti8ed<- z@kCCmQlRth0G$BxLyVju>!5Ip8MW@$TSM1Yb@plRp5Lbs> zK#9-g*@0)N`yRQ6EvTR5oCuPG8$_6h%NUkbw6RQPf{$8&`2)8u`szv^5pK+?tNE!o zNgqCt=9{5s7rd!Q>`jb+_DC2?)i|IXxUC*r1NuD={WnBya1ss<&SZ9-2o=Or_bdX( zq=v~`jc9lg@?k$Op))#4fysC1<-9bdLf(?A2@ zJOB&2WYmw+S<^*xZU~ace6GaFl(a+ z>w-3x2{p@-RlE-+tx9_Aimh6gSGSsQqO$1)BP~@;{UM>d*mKh%zk!9VIt(w_vKQ$j zI8`K2K%)=0H2P4ennrKrTuPZ-K%@78`Nz^sqx0FOHb4HhOq)B(4&?xoP7O7+xvVia zH#1u_sD={$Ce!9pASMePJFb(D1X1Z2@`M8}6PR@HH7EBW~7oYp>2SQMGd6 zmY`}v$_~4$6c|tqY2`+T0ttid?Pqr`5WuWVM{Cva+S5N5Gs}RRZ*V+bhnV3bz_Dn| zzwl#7$+Qf8n?a@N1%@x32BJvfq&1sxpj%T3eQ?SsT}B6e6975(v31U1Y~k|d5}ifG z7Ocsw6kOj-lh{iAX3Yeyd>(do$IfOA575G=w{-9+>`&sV7Ox%&yjs;%9Z0df4Px(s zuE_FUkRYJX5QLRBW#NPq=hgFE4fZnx6*ui?sJCf#Clx=9jd>$ay9I3!Qa=ZI>Du{V zy~>4S-y%q=?SYw9TXlmASGla(w?pcxV%0t#s#vwMiCTomsIZHjrjZ;bf=2SPBBX6u z$>53;rL_R5@S1?1$_)A5HbY*bG?$Kjy-l`MTCWiLi`?nDcx`U&NXPVP=}} zHMA$nQf8t?+zdC2P_vRT;7t?)hgr$&9Lua^Hl7>0Wp@fa`g;x}b%Xg1E0}K@*N?nh z<14o-PcnpzfNEI5x4O9c_p^erp+TeJevuXY0^+M728a0CG`z#we zlGiLP`V!n5?n_|u($KK13U-%LspZk^6$rwiYLkj46N^zUUzBju#OK0yWg@c+60O`a zldBrSl}e<0k(ccGk9-<}EXc5x1;0`hd6CCOsaQ!oRZ8C}v%8qRRWad{w(OAKxmM_a zUp5BZ8j;&f89lnpXzOAfu_F%|1zO8G(-h2s{rpr!^%nC;5VPlzuG*PNY3LAEs{%|i z!@`idMgWMVzbtGZ>`jJwPkAyn=Tu<97{5n52b$Rm2b$Rm2b$TsF_^7zpqZ@(5vm=Ho%mp*Mms+rUsV%a5P175IE)ZE0YBF~|hej9bWGW%2 za%KjTNEt6C<|_ZKr(yfv^&W_Yg^LkGCCS+Yo9yi)9K}o6p;L#87G=5r)7|>MGA{u$ zQ>LK9p&#N3y4F7B__y_BwNE)%EU2l!ypK#dEEk8=twadY%>7f(sfC|&0mW6BbD(xM5ZiPQ z7skexu-=%tFn9{r#ycONVKe}bnoq*muWwgUb)l?Rk-z$|#zX?RD+pi&P?%e3nwRU~ zIcWjMjM@ue#~o4^{xYdc5Z@bLEOoJbdB&zMh(fGiq%M<}PN{3o52UUIFnIh#kfxH4 zjD>_}kc~LD`uSx|Av9fHyO?ai*^;INLc-??<~Etn+$JU{B_iE%VyCe}L19npplmO7|5=~5(1-FsuGCw;*K*6UV~Pv_b66^yT0V!m%#p_GekQJVWp+a$MBEt4&4 zlCVn&Qvu7N#o8DKn$ao&2QCJ({vZNk^W$icl-1j&X2{R>Xp#eKog2RP0_d3R(ILGr zSFKIbsI%nE-S45@QJ#=a&L(d*Bb{jqlOtQqp3+*1IP)aK6&dJmFSqrK1$UNepJxQn zX&{jHj=y3w!-FPWgaS=iF+{*DHl~g>h<90s%^&#qwPsg=5z{QPdK6Al4su*Kz9!pa zJ8vShsi@8r7X(E=#joKJ_3VUt2x(0k2-A6H^cAz=Dzu%xQHEv9!Em=y4!B+{MumS*$Gc3P9)&I@MCyt%=C@%UTG%B z&oDvg>_t#4vx^-$E?VR&H+xLXA}dW{6tySk?DKE~nbT+MrOmLW)5jf~ZB8F-UJ+Q+ z=|gwS=|gEw9};;zhttRSmnK5E)f_*;U09K+Y=)Rf#3EF$qF6B0-3v&c%qIB|H zn;E8S77)dqCbvJW!2%o*WnLtJcQLBd3;jd55#&;~++A{K%A@3QQVmiTC#|;Pq*Svw zDb)+(r2lliTE?H_dfdKfyUUuM8nMVISd@#vgaE!g^Z3A2=JDZuyhEAaM_5yh9EGiX!sNz=EDvnZ$`R3?Wxt6%NT zB4GbF^ldK+nZ`~H@*ClGFlW&VDCH!&6=)f2*4DT=Dz~Pmb2NR5Y0C7m=^ncEUmZBL zd9r!LO|@WmDl8V`jJ#l0(5Sb_og97wr<~mazLB;tWZC6&*W0(G?FkF7nC5zoJk^zsF$hbW8%Z~Cr&m7|B}_rzht$G`j=cl;$K=T zq9Jqy>&ktlp3orIFnO2R9Bn1@T=)3k6qd!3jkGMDiwqj?%b9P(alm3mOFtNBjx1-I zN6}8*9vB^WQf%%daaX51X=_`g z$lXa!=f>Aa_UB`L$SilGVM))BO$?#*4$lxYWnLj@%Dh6D5}8M6MCuKpeL=JKktKXW zJgfN*^P@Ij5W%Q^6FI^BXgH9Uoa8XY3FesV=l`EfaKtj2;AnDNHiaSkqo>1@A>uSk z+IiSm%qBS`naL(ORI^Err=GdUBPbp&Aa%Q z=K1;eN^qg0MGiAbdxLMy^-LE;HA@{UY#<9lsqH?El7|7pWW;1KWMQ%xQ8dQ@E;Y$% zhfcPW#``%ZIU+adJlef*l7rG&hVbcXpW}3_v%zk&uY&OAY8l)yr5c8IxfYwkEGyV5 zLow5V&FPUv^>{Vr3342oWYL3llRC{=(%XQ~OvLO{px@-PO@Pp3HUa7iOX}MuK=jQf zK=cjn)%l^G@7Y`dHUZ+8yh-(5hQCVqe8Rpq%^JGJQysdxHvWw4wu<-($zvjR# z`a+y8m&{?dX5rXiB1_UYXS`X*vs9?odyu^fVZ}_h*A|_uGQrsPy00#2LwUtlmvrgD z5QisPu8FdxP8Ogbr@5r#WSGS%f-V;iP}o91CX3}=Of*ei3Iw+=iS0{X_6GO6h1YpQ z9bvj=D+(@{t~q0XNKpTL1g2(FErEH#bj^ZcG_`2D);5YZU1Jn&y2dCT6Wue4<4*s) z8P+w5f-X9JgFrNW>}cYj+9q=)nIhSu zwrnD&PLOsT&0}sfR2w$8$r#N)+rHIw{44tE2I6(_j=}70oR0lQwJ!5%2#zXq}qOd$$ z26U}`rUgMg_e_h2jt1bzDCHHr=;G7`$^3TL{*ud33AHb^3{}u!0h{3;@c#p^En<3S z0rt;mCY3EgT{M$2O;`e>T3vLBDU&k3F!5bH4=8BL!ur!r?T8FmVy&qpL)+wL>9wXt z`%G^1tZc(fkqAbGJG z3^D-Z@s*BcqYc)I8++ho(y4^==6-hp`<%;0?M0}*#aA{%_3Yqgkvo2}ep~=&uh#Hr zRjX?WGw5y6P%Eg6lN)a-OJZb$+WZF(y3K!JGn@awW@03*cj}N%u$!clf*W{S`_PwK z9ToUjOIR)8F{@T#xs{!>BJikjh3PIjO}4o!s1D(1^g86m7=;Cz8t;Fz1)4oLo%=k5 zom(W4|EjfQK2N+zMh3iK@HE#!ci?9Zq$|24 z6VYs7I%9@N<6_aJq4wxfp|NCisVCb(vzZ+Wp3`w-#5RyQS1@J+FArV^vA8`II zZovog0pF)8VT-oiLPOMzli4$o?Uu-?X3g9oXFsI{0e8fU|Sc z`}f7??&Jr0BuX~NAKNQ~n%zXb`V&KR$!2B0{d+A?P>NoiXab8`K5o=kv0i!|!Z+z+ zj4tobNBB#u<@n%jVnr?$^{2{oTHMBlfi4W(`2DYr{EzR4ALl^uZ*NOpqNa~nx^t?V zID*{LD{+(xpVgD)m6e(ak4=&& znpaM)6}6R<>uw}LZ#k*onBPiKlOb15t`_Z;lPhl|OGY^%3YSo9&`Dn9?N*gu|HdS|qEreuL8jl>VojJhHtIQ4|MA*|j73Syi{>PWIdq{R~qGWn#6oTwyX% zP9C-O*5%|e+djp^>_F=waK?!X!omprGir4PzlUuz;rbBQkA~~Y*@ek!?{d_J4jHw2 zgK6qy_6%oIPFo#e4Q6Mkr>7z7qPCKTlaUdI>JdrH)gvYa>JcJLXQg)ORB^^!jIO$gPRJx{nC2WpExu%yz3Pl0 z!5yD`m9lU5y#Nu{5W=)^F2PgDZeIO&ZItjgl8I4%9Puj7$!~q#7f|6}vwVkUtVCaIgU zF4{y?l9H4YD^z0(x6%r%Md)HGg8yVKOCYfnwd~$m;%(RI^@F9_GFVB zCf^Jbe83?Y;1O-51jm&$k64hO4xcUSb{Kv>=!av7arNtrR0)PbPyERrHHSr{1742* z4SOvA@yDZ{q?>G}9GH-FlVM3ePFGk*u6*4(xu{!6#^~(UosBwXig~g9NWwl?7JCzW zviT4+QoVyA>y~MmMo0;3=9}B}GM?y)N+t?dNn^tP`kP#(&B#~rx!3HgT?GMjL(j&| zjC^sQ2>17I=02*oTPsFD)>WPYSCT-7PXW4K=WRa7QCJ)n)KepaZx=6MAM1^-_g2eSYq=XP&2hQud;=ZiGYx|MS{WuW2=R`OC9tmhq89d)(M)`Y zHt4p&?n7z31=kmjZiSkGcSkfOfV#KP;4RT7tUkbpc0_-!I_hy+C1^cq_ehdR?!Z%_ zK2H5~s83Ko6AqK3L!T(@^RtU(I9dM;6HkznpwFZxXnukdwLo)e4G~2>G-@>Fm_5RP z%b5t$$)aH7u%Jx}{61V1&0YW;o$}s@G{C++fJ?%l$Hi$R^Mr;0v3po0Z6Q7&AR82Y z$#MuR=vf0a=|aZyAdiq~!5Sjdf(Z$?@0+F$e<53K%R8d-e#^ zr(AjjEmCHv7nZ{wIm=0zKKc1@UbBB>nD^s@cS9YR4T2KU5yju)f|A7XCl)5uw7^IY zg4A9;ce+SalX3>+!M^2Wm7K;pc~1PlPo;EoeR;;u^`7|LS{~t@VLSX`IihJ+WC<>( zMM@Y|Cskq~O;wU!?o4q^(U)J0xHNv3_>cc&7uV5Q8K}0{v+T-{=Pa?aEGNl?^bL=3 zQieS{1n~IJ3|SAYC~;J)7)A)E(yM_PZNr?i3Ybf-;_eFiVtfLZ+|JHXQUfyJ31Ab0 zRlQ<$NnyT$b&`=+{70#GS7(QEi?Pb-lTyZTF4+^BriA6q%Lybdajn)J!dIuSg`K|2N9keVH2*&pN%uy3v-)2GDFl#=C;H7Zfr@Ye~A8gt`FGz_|&hMy#NOGMJzTHzzA3I<`@m(o#29XcpH`!TTF2Xf6S?6$+|==M0tr(TaiSW*2$Ob4AA9 zn!PDmp(N5J6&oQqiUjti&>1BZo6%Sl{Tx4c_SbB%(!&0Q1q1WJaVm5gTwM=hPCy3|ish zbM#StKBbaQGfOk%oK&evl}ZhiN=9c=j-k= zr03Tv#eY0#0?DjpX_*tOBRsxUjd(m`6WIwiBSrr z-6YJ#U)>%040opIK$^XhL1b9DSs$Dz#Ami3vFw0KevcF0)b%lKJ0>AeOt){R`Ubaa+zWI40~^o-ii}z$joNzjlX#}RIX&!8!2fG=fCocb66c~8)P(=%$O8l z8Av&vPzT3dWRYpf_TFOBF(_s`t&r^m7(wKggmt9Q zriks6(f45s)t|sb!W9LJU^q(96KqItvP@{D_*ZVF-EI47oJed2t)ew6Ffr7*?sT?{ zT^ydZw!Y8K&i9*ibKlhn2#7~8TZF3k%bfNdkL<<&SC;9*8~xFnAxmO`_V#yiaS;j3 zrN`+`cRGYeZ~g_`(wWD>Do^5t9sSJ+w>qDWg+b z5AC9}KpQM6AsoiEh@a}1?9I_C)U}*>)SK7mFF%m81D03puje;L?b0`ie0_NPwWaDw zG!Tugm5?qh&*z}ph!0Np?&Ck9M`x$++|Q*+PKo#=Nt^WiaUDL&^SOvso_6JWU8q!Y z#ja90RwI(>MW|49vGn!U?nLjtI&Q5bT)a;AZpm%r9#{DTe~~JaxvRbNAlH?p${e5( zo&{(=Co{5uzAwnb$kUtkw3J0r&U$J$`GswEA)WYSCZA|aLsXKTY0cj%kg!^DnA#WY zU~q1Q?|giDS`;ty;GPh0n?J^%mDhaBqh z7gFx@BfC*=`m?P+f6t1Xy$j6V$mTkrZKe(u@b%_X<#m?~Wb!A&FJ-1Q04vuEHbpAK zT|klh4G8sNul^R*M^)XD`xxfj8|*5(A?0z^v*hvEUU*Qgd_YTFfU%zrc?wwUL+v~e zqgw-SxFtsGr|8mfy)m#{?z>yhMLC%6<=n!a43fC>t~=H~F9tZMa}i+J*!-NUA+b$ZKr^ ztrePfOMZV^yn}2zN8j2qS940gqYJWIa%Q)1(7P-W;acTrKD%EN_T2DXpnC`(88rmx z^6AayTF$3aP&lvhAQ#V-xQ)%DI!GsYD8tXu^5<777RMc@oDq9tQ*JE3J@-DZ69L3~ z8|o9(hpdhpK(d>9i+r|$;+yu_spFbpv=PuITHBucu)%=zL(-3iI$@FAM?;;kNbdKn z&P*(KWA5p^!tN2Hk^7C@jnM{GH|5@gmRZf082f8A+*_TuHzURQ)em_<1;)PRzRQ<81)cs$PxmfvHF z7}qXm@>)z{KFZf|^Cc@VHy{trmpgFVf5mmG5{N3Y9+t&VZ--ap{H}ObM@m2V;<99Q zJaY$ON}8#Fmw^bWr56#{MBub&?XrE?%G39|yH=Ow2~)eG#tK}iauqxK{_M^^1S*GM z;@y%1LjJNQKB{&ZpM0$#Q-j22ff^yYdLjPc4U8XQmi;{Th^7sN_&cH)B=@@QcHT&OFzL)Py9PW{#1#VIwHV8iFWs z)KWELsX^5q!?_4+5u#%I6h@KNm2DdH%j()zHDq-N5-B%cw(D4{NNwt{ZK1YC*W`R+ za-(mcL=F+$nY22F7}qEKdSQg?y^$!JlwhDg)4;I+ zi>jAXz(LMjyFN+#qoK_S+8?pHTueB{{dpp4ILgDjGqgEtZE|7{^_ftgqCOq!lhmg| zeSvy|FX_A5inb80&r!#qwd=Fg=cuR02}2#mOo4nd3TogPGnq~!!djl)r}yqxbyanBbyYQ+$$3^jH89mqrIve(+qfY%Gnc5^LJTbLFs!uZu5e+iJ&aN8$C`NLeXb}Xb1=xig@ zHN`h4LjDBboDBJsh_SCl&Cu?JC@UHn(F7|To3Z=@ z7qu+*9mwKHw2qAivTz1}gc--x5yp}4tZEt|*(#TL-{z_|MeX_9Ucv~xsD*eJvI9YD z9b?jAr|kEr4mo=x98rrF+5Gl&A3oF1t;xkEZHNQ&^~I-seX->~)AG54VNa~(ndBq* zq7bAh#2xWvhLgW{Lv~lagN9vItn_a4BMH4_l^st0M#RD3rv;sdwrP*by60Zg>F!ae z;q=z^JzA+9@_zooD}4ipkk>Qz68RUnrPR_&o5M&tN9%u^}~2* zM}i`~-FqHy;Qw!Zt`G%*3DG$J_BE_OtY3?if?Oyy(Nqeyh(6g$sSMPUKX@Gpu~sG2 zt{%RC7lqmEvzBK_(>P@Gbe=-6Xb~KV%kSW9_JMQ7)xG0VVF` zY`4zuaYz3pYV9$$W6Nq~!zLCh77l9Kx2CrvK4I_lN9o#k zInj% z>P_ypq_uVrNnNIH-4EU7vrVPVtONGhrqUqGKuF>bI*nl_DhM;r6y?t`KO6(N34dpU zP0My^Dx?tQaf#PgY?kwuO{QA(D>Wn?U$N4-;HgQ)v-#9`30B zX70zCdg&`i^n}uCdcyJVOH5`}z4Rp)i+$ylsL(39!j)Q1A!Ad&2Qtj>O>PSi_ zdDc?j=R5rf?ifINv^qxtjaGQ@wkwRm(Dgwz4IbXSMcy#{8_aGu6=Z2Unx9#a#Lky) z;h2rIo8_{JJ^%3c@;H0f#%kGz<((xWlR1%sCtc>@CYMD%7l!HV`>=vau0#~z>86)y z%BGg>bf>;Mo8(iXt6B2e@^@bcAA2iYcI6b8?TdR0E_zWZo z=v!)Xt)ocAs#wq2HY*@WLpvKUs~!^&Gm}-H)OT;-!$;*#@FYwC&PiNv;d&G144x@=r%!c3MtM_u*uo z9HT5v2eM|qZ=*gr#$_RD!=|jQ${7PDV-PAUx|zMOjDGDolwhT(g^u&y<|H2niI_mp z6@mwCRL5~}aK=z*t_#9Y3koT~(@@v5FeK4s^ipQHyqMwWv9^qp3AqEhe)^&aIc6HF zqg2ho320%zXB}$MiX)`gi^F-$DFl+j_OX93dwHebae}}UD;7VEtnzX2ayG6O2wsEJ z2rsD+Wx&3}a*OYJ*%5_Qy4B*l+?4x?>h(%9W))75nS>vh}-o0B-j&0c; zlynevNKcI7*ddfED2NWW6GOK*|2V6SK_A$t*B0p!`1j^V6yOU6MD`rhwOh=H_Q&+3 zon7KzLg*t`k`Ssq`19~anCU5f0XTL;8wWxfWrlW-mOn~*67j@}Q$(BN4ruUryEA~) z+N+uS9r)Mzd@|81_|Zdv38-D zo9h8tdG2nksZMu{Vi8JCxXG_0|I2GCSz#4@D^B(g8`fS*lUvh+q}@XQP7uNtW{J4? zb&z3w4ZSotz{&klBFY|7gMlLeGL7n~ z$<>od*sUiEFg;TENYX<9VK{j+X}71ODj9BEgWasX zmZo>`goBZ>`)*c=!VN959<(98>oA)$A2FtG^*Av===Eojguh`#duj5Swyo(&OGE$c zXy!utxOPLNJ!df#!y=zvAM6({l%%l>cAZ)NfW%Y)nVdH z_+vQREle)G7zIzWy5!9H)!QI+Rjon4145@sQWGL{szhc+_sjlR1kZD?WN4m~UWS&m zo4WmVayKwJRmR~QGV@^pfwZLRsgRafjhbKi*<~Rb5H(%_$6}Ug+X?c`qX`q>^m;og zNPg#Ey$ZU z7*2q#ou}!>+?VGW8=iGE{0D6XVJI`PvT zAj+O+YUW6@9-9jnTr%?&aF1j^kYc(~Yt6~{oTNG(l2}vBge04VX$C?gAw<=2#SvG5 zgtABxmZU5Kge579tYAsXA|@CZ*@m{~Z+aF#reTG;7Wc#S0MQ>i+`;T<7rPvuGYUq* zbGnO@gUo@eBDR+r+J(F{tx3Tod8B_!CXOL4{&kz2IeZTJ4MKp?z=!kiIj@8? zoVy!P+9q233j{N98yv(Y(F8FQ#UcME^&3HLj;F^e&_R6RSa>n37l5y(3Lz38fgE5- z=4>J)naRnJWPT4Qi4=$xtTjH*(??2+`=MYw#I4r9+c<>7+}&qDrmSz;71e)((sV$w z1YHxNFs3;}7)gJOLl|@9liCKIl#w=)jtsj)mi!NtW&Q^Z6ej(u|M;o^x1F(7Q%ojE`a0 zY1oo&y-ClIhJAxNhQ*^H2^Noq zBv_1*iG2VTPe>HRD3d{pqt6vM`rW(|k(|+lYoeAkLKlIuDU!& z#>~}h%7~yq_3dU;W+=f&ljLMMyO?&_lNJrX09w!p#8}a{QudrU%f1^hEjV$rY*qb$uan2g^n&G8t=jJ7Ee9Rcj-9v1q2&YiW2UuGh#C0}lm zttEfU1YVMZ+0A}cli`3ZWQb_z-@z&LvGR!X@};4X>JrlMGDg<_OXc_DJE+`Ty-Sh=uy?mA2akxIk5U9WZu# zcD)p(AhDsVw7U2--KtHU!OBjB0~Xk6aY&ETQp66OwtDm+JdS~JL2JND-;C6caVaPT zE8V??g%XboOgZi=l+tBQD@MTmsFadbAU$exbwZv(m5YrC}rmYEKrBFY;c2dhI zz+gvJUprx;VNDI|sIh2U_E?wMkE%6xv8)!h;pBvE{{}+}q4Cpz$*KSoY9*-9ZK9@t z@kY-1>#p$`U(cK_O0uA-ahg~thoBA9&f0wW8%?ZlVq2ba_~z@GF*Mi%^@TTIH;Eli zhWu|RGzO}&8M3raciALadV(~YCrfi0T$%`JZJyXLS-v(^sIx4s&DNBqk$JUpl9v4< zb|LK2!ky6UOV;I|->8isDiK-6!CDg@P{P6Xt!DlRF+9w^R^Lz!<}#A1dfD@>Qe~sC z6o35VjUm-WtUZwvEA1w_1DJ2oox6j^|9z-1oP5yAxRTMdc@aW!Q68i%J;B$GycUkNbAs(Aaw<# zpA&L3YQ)M+atoG&b{3*gz=LE_3nve31u?MoeJff2^@7(JlIAmg{)L@fhwz6iHha-; z3)6L2O|Bx*k~>#M(M3CKI>f~qeG+)e7#UT{`8bwR9w>SqP=qY34kc$GMNI3tJ@WC!{YjAXkR+rJ8rUYJ|&DCz`*MafFzlcrwe{-ZpoiK9u6ktRp5- zr7h5Ny~L0JL^tCCKZkzMZ+c-%A8~-jSq6}t=-HX?x>!f+c2=)AiyFECten4dN9>%Q z6Kz2^tgp?6S*QCb657-iDc|$i>wWtRI_^+^^aP<#bZMEh?w-Iud_rTv9%F&DjZ3x} zqNp&&gL*QI13V>vSbuUKdKi3EV8CkGP)O}BAakLrdg$`DnMtma2>tG?n!#MJM@#78gOyGZ?nwsIrxo!N(kF z6j$5`bUQYvLaol*IT>Rq3U%<_jN*X#Ci)=jA{jQ^9qb*-5n~jLMe#H=H}<|#zS7`e zk*hrLAABjsXlWp}og%d~-?QG(goSu-fUUtE*iP#=zMF^iq`R{$+;J}E z^R3$0;5N7sTieVn^vP8W0mP_KN##OvVp5nvx&!D|0fU?C*eP>Jx6rdw=8$fIUCL@v z7`w`4Trq?Oj$ARZ)jr@~LGh+xLYZs){8&qhaFkVgZF^yMTqN0E%xfeh*cLky%$ zt6?%n?mQ>k5b@qK_LwfUoW*6>-7hxdwRY&{+!wyg4Flc&)dS71{`wz3k#K3ImHLDF zD>v?wAViyc{XC!K;(RQB{NDFfeh>KHE0hB#^c--2HGKfg!roK58BlYfM|6SK44y}y zv1d#?6X!?CebvGZ_LmimmUR>#=AJkVsD^>c^HhwDA%!tC@;y{N)Cd!6;1CwoxgFtX z4K}E`FoehDkub5u^)VkdLn^!@jm3cuIFD=n;`>?CqXe*o);OJAW_!*Ei$;F27jLE) zXt>+NhP4<~mkq4d2t=$U)dtM%N*HH5uBqTfyT?q} zrbiFhVwI7KN*XOO1b8W9W}9vdjcxdT!GH<0@uN7{tKY0qf{i-}jo}6wdWwB9mI63I zPivB4mWTBOPJ}q1>*H;Gv8+rWR5y{9T<}im&B%tlCUXWt3)bX zt3=Ae-oo^TlLaBPrbor$RQV@uwL=n#=x<9UZ#7gg2N)^V;l@by1pUVP@d!K67O#k( zLyaa%{ufj;LkT)>QLA?I{^AAtg_Jy;An`e1$}%CgnP?SZFE)tj!SfS4(;ZB{L{evR ze63S#nzn6Or-JfI5xkDf^R|?v4xmv-XHXpE4_ieXG-_u?o^~zAN!xi2{Wz)REUWj) zBnZ=xPa%4*qI2vy5cpY{EQ#4H%@#Vz@f8g%(BOf1ln*XctRWfM;`ymIt&U5Sln5wC zQO@o-UMmwokW=QK#P{0zj1+k|$zOYE25IS^05@l1hOALIoh(()+y1@u9{#_MoRm=` zjp9}T{0wj!zpq~vz317X0uxg-3IW4PaQmPyp)a1`VCnO8P#Tdh;vyzZvpyAk-Eo;` z>d8Q#=WWm2K22@>MJJN?7<`AQWjOg0OJ7PYTXCD9xohQ%N*9P%7Rgv_2x^+Ho)P!UEF{kF&YGpZ0D>}|Sq$ewjHY4r`G$2{Mv6#T~W`T;x7qY%o z4aPI!A%Vlziz#0to3OqA|6ZT<`t#mexA&Da(Xw)mUXqzu7B<#nY>heW%{t6e(v5aw zWz1jEAsy6jKf&KA-G%!Q!{9A<$A0fOmg6nA*9S zw|pdo++p()i_`K59YvDNO`_2#?O$E&)|gLm!ysc`)uRLM#LY9t4iAm{%@4G#qo>r> zt?@(Zy`T)wUA;bvJjsQXwwaSq-=}2(P%$fbymFRkc<1(dmSk096VuknV08Cus%4_4 zy~~(>ByPIf0^jUH2DOPFQ8sv4<0**XHqb$8vS9{f*|Yi#tdVzso9$I#oWzau8`EaENOY2~P@qf-;%xknUjYRr~vRKm`|JJwiFDDyrR)oJ#q-%@JfzuMh_B(TZ^i9UlazuM#RW`lV27 zNWVGT#%@i43V3%eSDje`07u!0i6QS5pCU!moBhr(@CT%;pSUKClZN7Lz zi&B|dX{ij34E(r2CVN{w$p`G6`4@wCEw-Wo*n$c@Fz7PpX+E~W(K<_wywCdatkn-9 zQR4Z5CGIt}`<30OkGj>_IG^@Bp*lHJpO-o%q@`w&JBad4!nZVt-7BxZ@_nD%|Wy_ywS7{4l@V36PLzzu|PsBzzPZdUJ#~?(q&;3+g?yl+QeitRr@| zJtF#q`PTIGS<(?G%X9<>4$gonCzUnxekBd3{DHP9GRt<7dr*ytNn<_;3aLrrt0-uPA)Wyj+#f@ovtZSm+kL6Vo>nw5 zLH;Of1?C%g>qsrun3GWKK=>4I{nAvS*kPr;DZ*GtYTiOpvl)_XS|@43Eubt#_#s-O zkE~!VJ<6h>1@w@fAlsClpyxq7LCgch>$IZKHodI%xlFs8#MSy_>a92+k+Y1Gljd(= zVb+-~gfreo$TY4LQyh>EnMTth5EMEilh5c0ZJry5C@gr5GQ?4JjkLm3)~gKOHT{AVYK1Wy3m7KoPf^Gh)du3>#A^@Rs#ZrUr(VxCF}a#L_27 zivWf!5tx_4CC1Y&0WP?SNEq16h5(DuK|Y>H z^|kbJEHnJ_>o6;J-2Kvm^>3ssR|oZ3?H^!U8FbEO_;8q9WCPYJnTciYk4omT>~+WwvU=Tqn{`C?Je<(=u<0ML zi(-t++A_YU*Pp5WrpHRH{Q1MHJ0FI}EKq)7_yI=^4^i8|hin)(Yu4(zM>K z?FFla06{1n1zs~2uySYqp(}m&Pp$M=g_PcV8w0qtT5{h(63db{^hMvb5FvCC_C}|! z@?#q(8HPDV@^YU$N|GZaeXBUb6`!n;JBZO(?bWxUsn>lw!m?G&ka3XOswfV6-M2Pj zvk38sv8D|gO0H!K2y3|(ek!|#D*Nq(9!g1F%0G8KY#MD7$8W;Kbv)n}t9ZcIiC`&S zf&H47;>+SFRHq(pRtGJ0x%y|RZR)?JuF{|^RnbT-HK^fRzu1iNtoMrzEnQ+@0vy6u zr9<5l9vGpdx6yC*kspob4b};q(r*XIm>cN&cAupel2i?_e|`{s;@oKmTI0G!P^SUcw=)q1(N@Yxs$K@-4 zk1y;0>RUm+@mpr<_rHp7vJD!*oZ&-e%p9o#BLs`Rq!P82+p;2WW%3VWv{Kn^<@Fw zuB)Tl^{{R_55kpXD*%RRpC`09xX+^naiU*r`(*Z0n{DWlnYE{nqtU+8i~=_Iu4U)1 zZGH<7U~FW!43@Yj#yv3Tu$t_YLXM){g)#RrEn$@KZjJCjn!nMe@kVr-Xn^=Y*|${T zci4&8kDH|`->V-W`vmGvc8Q+`3$VM=a*n2g9(4gk4gzoz^A#8i@n}ge=!1t|0V@Oa ziZ~W}^eNa6m3xd+33*O&FmekqRdl(@#hF`IKk#`_+`8i zfq@}O1FX8XVliM|*{5jnt211E`b+WziFeJim>R63zF!M8oE`MZlTeu@)_ zX51s$4*zGs4Rsho$9_soeG%g6+G~KA}j79}4{lwjp{~q&( zAqyT4q1J=&QO@gpgPsYzpSRLum88?5x?O4hq3f!c?b_vZV7Vz+LZEWwn4 z6PwVIdy8`I{z>K1c#pQG(viMHZ#u*G2u5WhwD-xSQU}x+5jYy z174UhX8XjoVSJ7cz#&E0^AoL~w}gVI9}KfuZVxboGPA!-YAJ?Smby|^#jd^$pMF8i zu;<2VAMZPW2*pqq%R(pi{60oXOjW}b50|NQz~Cbgs*(fYT+0BS&to)ur39z4fma_e zgI&hkY^e0|W-4gY^8$acQ_$*(DiWS5`W% zG}98nm1^T;Kt#yirK%%^2GHRIJzZLa+3xP9L+4yo5NRIw=KEl{P3-hXqC=Ur}U5 z@)#-m{nJ=lVWqHH6jIIGO(A|7t;R(L^xBoD4TvEW2E_0dACL_PE?~Wa({q_p{>|qK zxdP3fZG^)AmSMrGRHgVAOQoNGKI2SeQ|XmD1hCW%IzzM6wOgc}HQ;X66IfqHrKUO9 zjJW^^EYtvTP&DQr-w2a7axRN+OY@cLfP~GQN&Pw*@pbu*@fQiqnu&rfbNxW$U<-F9cO1uhHT#H zhM@?VCe&KDaXgU3FFo;RUyKZGL`(+VM7^f|mDv*@iEAi_)3fdeyjf=!1hjMB4{Qvw z<;EZSe&Eo5+J3;Bhn_B%c+-|2#D3tbOWO||YuXPyFsQB-W(@K<>wchR&Yt#uU?gva z&G*|6)RFD!?*~AOr?ekv0RnV&x&(Wc{Xk>Pi|z;BWMaS)_XB^n#Qng?QuYI%{$cJ1 zT7dZj+z-t3wc^&(*$;TT>>vDo;QpWN2Yyid0r561a$3Eb_5%Tde~9~mZ|^XHB#~hbzwi?89~H2j;h(8{iyZ>u*M&!{QykD4A8Y7*z|GbLLE`UJY z#)XE}-YsmfEWKe1TU|>LCh<S%3V$kjdEj^I<1FzhTOe&&W!{s&r#pP#mQS(s zD}1k8S9quG)N8IK#Xxj~#<{B{Ie6mu*1Eq<27K<-=#DsrRlls}&tDzEaoW?X`^{FZ zP0Lq4_X~ZB(kh^>sn6(-a0M@62kq}bCjSJ#m494ttf9*v;X`Rm=k+0O z7`1#$Hm8?TU6mZsesJy+z=DFAwr*zhUK^_Xpk^jTw@pc(V#X>Zy=tbsP1zq~Lp$;= z^igrgCIIjr92cbZ9e?E{#aU5VN;w8IMDMhf^xc%ny0i>7%9H5yc49oEp7NS|Jjhlp zD3ny6Py?S<>U;l1f)5^395l;=%Cx%7BGIvEh^@G$hBs5$fN-Tz5NVzsM1MwKhZP|A z{R->kFd+J)hMwHlW;G~MCWmxc{%&iO#=&?s4uoF4qmP*qcrAR@6vhODr@E7btwu+T zT;@*F{dWJ0E~>X^`dS*pBoP8+q6Vvf8-5gLq zx=KP;4gF+QfnYVoO?b_sDz6bnvFJ>atsG z-0Qqg6Z(40e!VSF7^`}pe`iPNT%1gb$!W&A2bTBLr%&pncmFDYX1NhRMDKTFr313C znHKA42YrNts)A%_8F`sAe*`qnT5Nhj;5t@x4Wwu=W7l!{U_&ilXP)w2^H%Kb*J5w^ zEFvF6Ki}#{fz6GRP(Y`@7snUO^7mj+VZ_3y3||#pANqjPXnJ1zJW{%ote0bGEZ!`h zf?()(0U9XSex#iNR(Jz7Pv;Q$o??_YBK7LB3{ZVuYZp8MHp(K@z)U zZDGE$CHe1`q}-O|_IgKkD~MR6#&#%^NFnCwiGm1D820CXp}vTBddGkQ10e3M4|_qe z7D%W*)vG#K`9$8AiHm7z`r@$X{LmvgVj7!`Y1B~+Mhd+)RltWjP8O>PMp(Sx%yA@G z3rdKnSR>U)JuEq(M?Jh*dcsW^>fu2@^KJDH=yk$AO#KrMELMq7rCz|WB^JQxsa>Z% zo^DiHgfelFF}R9+7Ci0;-75h0D*!tLTc!k1{8Z_)2n$nqlOk;W03yatA(%*o()P~l z8;+_iWEZ$Hmr304cUI}>z#tUj`$|+bzXZAkXG8sNf`QhgfB&`mf?;`Q;JUoSUjpLQ z*9>p5{@=3_x;u0KnUi||>2Fj28BgrLXtLc~#@SuIP2(`hq|j|*;7Okzhh@-4Z)%)} z<1CM;oSu8HACZuu#pWg)YlSvb95B%E{E26a!3HuY!V60)4~!PnBqCVKaX0>XnhuFY zno}8o5}Xo120mjcjvY4wJ6i2x2l&teG`WKppQqs!iXmEP@@ z(R~mm-2s7`m>idw380>P{M`)>_h18`{_-#XNnd5eg`GmRu-L$vKkH zv@Q!$ZzNOHE2X;#mNyznDMeJ~%~tAc!X`{wUVCyF^!T(12~?(B)*MVS_GiZThiklO zkqf*s;+fz+9^n#4tA@`e+xqAyFbIE!00etIn00c%^a$uwfe{~8HI@`Z)?G6UR*ZBb zNzhbh3;9uQ<}100l1>;tzBW7muCgLW%w^HyNCD8({GTv%*p%HlZ~@CVW+24sL5?@$ zUEJXBODmcCz0`~v84#?4%-1RN4UNoF4fBAYTFaepT|?_h&Bu zopPyHouC4Yq*?RB7xWLK$VwuRtETO2R3WW$h(BV{*<@VJI2 zHydJqn`tv6J0^FG=USe7$=CN zw$e7xW?S}Z{tvcQ?3e_L{3Q^ypGh5K=JL50nsM^{Q~>3ViG{Hngli73ucv_*bfZzB zow9D&mwz2dG)?ML>*-S_f(`pvm^Rq_-ExoCLOa0)h??Nbfh80C%EAQS;6X7^3Uk0b zz?RA$?&HX$ve>4~dWfJV_{qNOVQTpPeGvEkzHQs7iP~15Co)e9OpU3Y3xEg% z>Km}jURY4L=No@wn0d}k5eZ!d_S5Pzm~ptdyZ_ue-^lth7+zah7vvi1!>dB2FW_Eq z@iV{L76z?J`#^;+{G^#3xu3K#0~37>)vm6r38E?d1Y3L%ikn*nR-|`HsuD9o{UJA4 z+WU{O$HpcR-Gd>W(nx!gMu{q?@-s3i%Os&N4`0-1pD3<9tRZu@h9C*B_L$*1g989b0)g3_6 zWqeINfG4=s+ACUrZe-jS?Ne-q^_8xha9HVl6?QFHOZArNnMmiMw4&(rk#yR&)}YpY&y(p46+(iK63OfJ^S!K z)RTeT!GrN&1301_$OM7(P6jk94l29o{EJuUi)|kFufS>`#Ya!_9N{Qo;zm*x?>|gK z2!wKyN~A|S2Q=lTRAWCwiD!kIP>J~&M}CKMG+3u+XCAGs@f$sw-eMt3)ZhHit_6VT zhZ3PjVd;_xC*WMm0|s@Ks=cCWg4DKZyTS_eaj{;QDn>nRb!pDPkg_d+Gi;aI9~y!D z*h@uACRH}b_qZRMJ=5Et4{X%8rzLb!f%MrAqIx#b0*PfRTK`#$1&^no=wNfN`#7f*sZK%QzQ<9^- z!W9~LisTg=lZhoKkTx%`zST?h$nR&D=M}5vC-VFvn+ve8b_RL=bqK#rqF-if#Z%Y` zJw;@+#pwSidH!Dln%Ua5bU-!4?;n~x|Be4E<@tYYmGAx&$zkAXmYn8iMzd<@tvzETlh?=YJy4|3seui9D~3$4}(>A0v7G=y|0M^z-SRXy_-R zhF<3@FU+K0UGyKy`v+ex{Q=zF=jOL6CBQH?$L^F%#m zx5pmmXG`pOwsRiBR!1=lEfykMQ>m+XeX6}m97}DAy0*Vyl&?&`X}eyoIe)ggbA$IM zGUJ?trHWPWhAqiw83sw(+`@=#^Zd%^Cr^ajFOaLMGQr?)&5(x(XSS8*HrTxO3{_0n zDf7Qm`bGw5mE6oxo{~WLn1(}?zBnv?q5O7Z4|Cn)iA&jsC&1Q^gB=~mb+ko%37M0s zxKsjeKhXH>ubYi52Qf+hmETlD(%9NQpU-OHH=BLw-%teT?J06?!>hR1C-n*Er&hE^ z7YIX(degM{D1iiWWwn*IG2Tq~FL;f?A3Rq>%N1!CSYg;9-Hs9?-bP1VP+@s|Q6IO$ zp&F4FcU*n*T2jGtA_Q zkqspnT=_VR9Lj~0D@}~RNk)1r5i|t>z^zHBgIiM|XbZ#v+8VgdOcZnuNE4a72eL*UF)2V<3Ll`1k^}8sfHJ87 zW#Ap4Y^g<{3|<Y z;ZX4pz;e^wiwyqo<$lnVF*fuuKH|XG=t62bA)TMCFiZYiF-%>I(cKIc^9R-ZX|gnF z(wX^bG(^Utg8AZzygf|DWpOh6bZpjiWHudxYW?^Q!GBOhrRza7+k*P|b*k2!1Lc+~ zWbnOx&=jDMh#iXuq&65JnKAoeEdeh!$pb)AdZq@SOox832B<2x;Ub=o`5QbSPTOu z8ePs{jMFe0Q{9UM%qQ*uIi*|Y~b`5b@5mP~v>$K{??m=CKCICO3g zv01|;;d3=|g&&1UXfU=g5rOW61XMw*`xobJ2U`ixPqD{zYozQjo5&w}X@2)JS^$lI zyImH-B)nO=;Bx+v=h=ev$?Hu6tOK_+|K@fTyF9qhD}9AbQsw!YvNU;@Um>Lt6i=zC z^;@I{6G$-PH0l$gd2;!iXQ`T+U8cDx+WR=5Bbg9UmX|`P2BFb<5h$&3(BU3tCC> z5F{uTQzS)?DPlSviZY!IOEqUQLP3UpiZz)~<${{$Lk%L!wgCY?34~^1*ip}@#pa#| zsvDP4xyBNIZiFZO`45Qjrfejh@D7Kx2+s~G>Anchjvdp7kOC|Bj{MlrUwvM^aCaJI zDI^{9g6Ut*a%ih7VsK)IRK|?c{N5sc2%w``ka(jE90lJZKSxB%^53}j^Kq-<1QOaB9R ztL%2Wk&L4=SGxJ8YCrz!?#&N8E|SwWgs-^mJKeF~u7Xn4ZP+x*B&ve|)5LRl_p>V< zTGNS&GMH@~=oWpr^)I#^jK3VloqrRn5)D?`u310O$IhlrWb}0YmGJy_=M%TJlD(v_ zLRVNniPlAr$m+(Xa{BLxQ2Y4Ls!toLa$_g4PV#Dn*zG-=5(4IKzx-ZV`G2=`&-TH4 zN6g^=RL4Er*I90@wy^A;?Vb0I=tbwK1XVIfuTz@uls`zC;-oGg9T^#+%3;i59sqbU z($d<)>LJsAj2yRL#;X_HT6n9N*V)w;y{EMOr&`}~(B?`wa9G*F*0svvB$ji9v@^(Y(Tfzr8PX0Iou9Wswd)=B>HTO#g-W@x*!GSA5ITvewNth7Vc{K|k zQG#9j&L0sVkt|%7Tm=>dB&)FNz8V=&Z%+dx5%FBl4vW8|8EcsY`P1}X&3%$8dm12h zC2HS}zJ7aq8X$EEW&hQE%k*|JKyvk_TehPw=l$t`T*k}%YFwiQ$lf0nAd%GE@*RCE zY(S@BD9Jq?hn zdAsK7zO{P07$CXR#I4;ye6Pg-xt5pfuI@XJmpyL9j|z}PAav*L=#vA%BBXsDZ_mHF zZ@s-e4UpUg=+^J(+hA``1LS(%Zn(Pd0(*NJAa(!P1v~mKw6~`L@&evocy-@Jdb_XM za~f%1$oq?Sz%T`?R?@zxqMLxYbV(M^eJ|;&!t9Am!oOKD(?9&Fgoq>jo3H=MSREGX zze)}tqsQWx@FzE3|JCN&++_V%yKCnz)%azH>)^J&_zR;EH(USJ<+|K_{a3f^b_?}i zJ+8-%J|4^Ux?VS4|JCRE++_V%zw38X^c7^ywQjopYn@x?X6wJsbLYAF`mgid`EH^9 zYrR|VMn4nV+u%01@%pa|+y!p3{_8?_p_{7zy2xGRrsFT!;Ikf2X_oBH2R5BI#cSS* zD{v{S#}sJ4hV_y)UtU8gY!w$j-4elC#R|?ci&T6xR@YhSx`ri;MVHM^rG00WjV3ph zyHgk(Wv?o%c35KIq{g0&@7XNtdjtu#K|@K(_P+e8+nN^|eUBRhkv*?rnM)B<+!a_< zxza$UV{W|u?V@5B2X=L@+}e5y%aI8 zcV3F*pdvg;2Eo_QCfVB8DWA2l(`~QOZxM^kUXxeafbg z5!t5%OK$}Tp`Tnysth92HG>Laz-;1q&%en?kb;pLt&dLbRpa$v8u?`Xm%f~ezl`J; z>c2$tqp?m19@E753;5YI79}3$gAn-Ue-_0^+xxo5#!aS##bA0PI7>`Be(&Q+{`wb4 zBt$^$yvdbrWkvz=Dr9FKx!3zibd+-$U>5{HQN%sTR|2gcJMZv7{B)d4y5a8n?UyJv z7u6`reTTbbr`pWlAQ6?!OQf#vdWbDzH<8cu;U;c&MY|`zTZ^eHiN5sn=rw4FebPgI zqm)q9wwpF4%ZR-HX53Dn?M`VFe|ou4sKUK5m-9f8aS4y^MzPKAsV5-=XVFlQ z(w3909pd+3_QL#~D@5H&-vLpW4h#ugdT4)NCL8fPQQ6pDf%6A#ln1k4lBJuQHcbQ7 zx!Pm1x_I#;&y00V%WVoN-DzDKiv_U0l@n&Eg=)bk4!NhFlB)5r7 zIW?rN6VcxO9<`=tOZlH~(2Q_sz?^pIJvZX=m-qOhqFy<4seayJAKA7}DyeKYAL&<3 zDyeLjexaJ0BTv1U=jl)kz<4C^W^NAc_cx@iJM=5wo{fQwm~Ly#SCri;)z)aJXFAj~ zlgT@W<~;-u>J4(r(OtVo^%*r0uo}-8m=x$_;FfQUj#_w!$4njG6%X%?E%5%t9y~F- zpE|r3qK=4J3ee6178D_VioT*iszY2i0Lu^>&4(-x<+Jzr7X7TFjs}I}qCJiOEbU<4KkYN%ZMQrxe)%Ru3 zPr#;1H&q zkmG?yViuzMqE^6+1!mu4hFL{hXVo2g_{{)Jb^HVh2cf;Xmrwngy2TfdbFtS)?Q2Zr ziGzMvY0ecN<*n57hNYAyj(YMj=hgvJ=Yam0)tlUD2x<%h3d3L!V5g^ z7&_1I8mZM+E8}&i3p$tETKnf?8T;`qm==&kSv0t_D`XFN4UZ~J`w+6PKmnYN|FZaT}=ELRK9`VFncb$7}u`iW00x?god$z9VutEI<%ZBZoWD#NpvXv282RJJJkdOX` zdO(ocSp-@)Xa3jUU6*y=Rg(X84ePEFME zmWx$()s}2eNaCNg*OHuqm?cu5{IM)3!&sVavsJp9YWFJ6!j}-5{oP~nBREje$vy8& zcAXuskcxe1rzzHrH20yMrc#)ULOX>}O}iQ7Yp(Ut8D`*`ZRWyaBl2;cR5-?Ysu#9v zgf!~BDPmLOdWPUaTclEBz_^a7`kbMz|(^wS;TBb09=3sKIu_ zc9uJ!IDaiETGOLEHKo&fl7ED!Q?w?G7)s)ehk2SM5z(5alm{I6OJ72?rf``8J$e}o zpb)#hG?avE6-ZqV&)2mIDY8_I*c8SCz<0Xc?G$D^&pfxR0TgVz^L|Z&twqfzp)VeecRLPStQ8WBjMD)L1SEK)yIjVRXV0t zIX)5U`cE;cVV9^_42tjXxc*tIP`Dt$08Cv(1z8L-ba`>e$e6-L(gGS}mO5zWQbc0w zriC}bIxK`-GO+ZOvu)rjVE_F9CAvGOl^h(wR7Qjm??C8aItnqC8UvLN9ohzgo)R|R z{634RcA`-!GQFY?skzwX*LYjM0>Ro|Ml;2IT5v$`!J!TVin2HmCv@>y? zY9+Klup}e@Zt{E77%ss~V<>BHiBnSOt+K#24!AisP(YUiWkI`+u!~*vA(nuoVHAj$ zhLPcJ8heAB-R18KK+90Y)l_V|SjnV~voRgj4mzn;-=P>yp!-03Z;H}S7k6=PuB|re z$rk)0E>zNz=ezIeGzNA$WF+H#d_Cu7>xo{`2X@j@!u21HGN)&j&*687C;BGvWqCc&HCHOpps1qMNub+Vm3hqTcouxqMD!zwyspw=#zaVg+uZ?zQ8w0 zj@aE9D$g3%i0rh-IP*L;cqUd0WZo3f0`uqw*&|!Dp(pgNK~*MD4rGH z-_g>t|L~6LGTo3+sw|U7sg!dupP~Om80GE?>pz%m!V%+{P`~lmwQ=CGd-^ymvcL6% z)s3%XF9BqS^nilT;)9FaB#wh+65y+hsu4_y>{Q3_(hW>>DFhz6mU%7>Qg;(b`AxQU zkx$iitL2Gj#{f?Spuy%KbM@O0K@^MBE#XdyJ1V_Ol^IZ?HiSJfxD!9kH6Rhj5t2ym z%cKUql|FBK$zX~j##vBLF(S`vVPv$WMvkPqrnaVEK)iwY>U5te1#sVg%rs5P1lB~|(jc}bZR+oE(!m4Bit-^n zO$XgzI#hlNb{zsh9VQt9Kuz<(Mwf=WB|`isG*!fZ8at00=WPEmQ9td$lqyA9)pAn! z*O12>DZM8))KF6Kq99wljapvF83;K;NwwN~MOX^=w78@1;U23PcQgeF;n9g7Pq`Ns zmMID;2(RxUGUQo*MRoX$eQ}vPr+J+YC5-Q;DzMs!7Qu%jCA%SHWfE=oXcrAE#A>F*u!e<2)}|{ouM%qN*;{wd?`fSEI($SXiv-MFn7tlRj#+SZ4+V) z9s9nG=>D)!{fq4ELH-0*`@VHba2u)~oK|zGJqM0dn~1YoBa~v zE6SoNSGmSyuX5KA2vX0r1c%g<_lLsQ6Tp5#Evs7|ahjkmlHnrMI!px007C=HCqh?c z05Fu$wmxT*#8qj&YvHVoZen9ynzd#X1)`yK-9y@RuK4;s0)g+gZ-$Z&gB}k=WrMW2 z2S7S1r4kN#LYhFB;=7iQ#!l>(+=$RA>_AP=|T~mypN7(?8MyFN}cwwG&OK#MxI*EAa}4;6=6rv-M(?ZG1x~7$du|k|Nzgat)e> zqD2>uqav6$uO`y`*u|Qg1(=GVsGU{n<}cqn{nh(#@&2a%a+;OO9LKk-B2c^1HJls= zMp}9d6Ct$;zGU>D`9nyWT@9DDi8EmSD(|T?fB&Suw{2QU^uPLA>^#o${q}TVwflz3 z^!YYW4G2#ajt3RoS&Ek3J%3a$Mptduqb30dtk7Smk(s~3;@#EgAqQx_pS$>stk>;y zq5ogmqS33a4LXd&I2L{fRcroM@2g7Airpp-ui5d&ZhI2r4z6{9!u)ky(oE~_G2~67 zFOp!Uk=F|OPD(eh>%h8sb9yG zBK>Vf(WWJ;|4QCzOEC9y2p4QeC`To0~%Bq76wBfH-Sn z!z|@ofR~=0ced_I6~Y{eg+~ft`J?M%toaA8#THG2h7;JP&SPgA_H&8d`PT=YY6B=@ zRKRvE#B)Cf{(5nz!S(It4_$Sjaf?w+h#pwU*(kBL4JSwRWFe9z0h=jH*EqP?AJU_w z4~8^{3CIch##XlEBbN3{+egDUoaj%7WQ~PzCZtD6&xZ6E={cnl=WXEy9Z%>tV&HrV ztMDwQ(t)6q$sNE}AM~#Z$1JR41IK6_+O+(0&-IQD5-R`oMVcUxpzQNnSHsgqPLC@R z5|OzKq{Lb`K&D~U4DchQuow{?{XxO+_N{gB5%KToKu?ECf*z9_p=Xk-k6j#ibSo4^ zfMQP(XdsSfSstjiYKv=YtpmTx>?30MVh%MmB^7KTY({jX%}h$%2e0HD>NuQcM}lui z#qUUFI1%yoXA~{$NNmReqKCD&H|#jN>N}2Zbm#Ruux(?|5MoS3W{x*jgeDssS76J8 zFVXIx?EQBDOyL_TClm9Vj~^i{s)kP>(acY_>|+on>y;tXO1YPwCOBOS^l9#wsN^Vz z1etr3t?c*uGm{-&Rv#XQ91O5=29#}E`ai8CzfuR!uZpU5R$XsX?_Vw+PfWz#N|2jg zQ7`acv^qQQKkqxK0>7m#2_N zJQlg%iZCH;9c=64_Ox_tPbe}Gi@e2(FeO9DTP;4LBQkhXD|&)Tf)l_7ED8hxsek>1J5ymi-ycgX*A0KQfaxfH`ibXzPMQr9DPAxhxZjVi^912Aa z$0Cnd5#;NkyA5U!~ zf}dnl$Bu>~v$4qESrPUEL&;;QMLfoJv#H3jP-HF^`J5HOG-@dMd}@0etVf%QJQ<42 z$0A>{BJ7Zck}pfz;r7s$BF96K6S2rYTM;%>L&?9S7QOjoOOcbI$U-dgbt|$`MZS?* zVCPdUMNWkxHS|d~f8VhpY>kGJ@1_GNBiso4pU9(>J(2}_iA7$^Cgw#r-SF<-%wj?B zYALcS6d8*}?z18UZGc{~0k-jOcT17op~!eFa=#TJ(3rN`14IE;@am?H?FmIDVv)C4 z5yk+$SWs2PwQef1Hx!wSMc!#e&QpB8Nhe!?DOCR%C;Ud?*{JFp48BMUI3b)3L}$tjGl_^4HnG z07W)7kA9<{$iXo67i$_XbcCEQ-B!UdjCl3!ZXGd}jnzI=$|sh61ki-4>dPOO1ebcb zFaq{n%U6+KSOu-GCx7Af3{S*Yn?1Wj4k=t~t+{ED5S zv?9eUt`CP$o3eU)oOBe$uW*JEvnXbp&3R#KB zF)!pXFr54XkIHbeoySGPiQ{qMaDwzwxnMYX0gnyC$ zZa5j{v35B5SsrVKlgoJ!HW-tf%Btby`8-w*C(q-tVmP^s$MWIiXL#hp$xriGHk>?{ zNB?lLnFkSkFXh46$xrcMUo^x6DpE`3}P^?k>iULZTX*6vSvZn zpDM(^cbz8i-lc<+OT0{~vmQzP_~)-;37#xxaEDFP7f z754I_)yD=<3F_o8+noGUW=XRvTt7CN*&w!O2n}U?$~gM4>(3eHm|c&ik{m!=S&X6Y z&D8@dh0`v{*HM9q!a97KDCJ-N1tqWp?z~bT3}Poc00U&~g`&*9f0IesXthYwhS>dJ z!Gy-Yv<}$KDbzm6SgcBVWUb&4C)Z-89d9*EXWST@BEQY6^x|0+lHB-G+KF#j{3(E9 z^=L>#ohk@ys#(5!K;5a8adzf;cNsmu1qgzzH{PKZ);o%2`9D;3_*E-c*I-~osWq}H z^1Un*#!S5|Bf{#_Ct5zG9PifII}e;1ny?*x%b1PTz6pWT_h)Aa+Z__el@uCK1yhpoaIyDMdx zG>lx{RG0#@;F6NQ6**MX@f455p(h@il=U%g$e+pmmNk~;9|n3{6^0ZVDm{ojhpF^qqw%Tl-p_Y8^>?CZZ)@-9OvD+~jr>E` zRk2d-vqQowSy^Y^0A_bc`Au(?3z>CA&$5s!TEMuR)4d&i9d3_o-|ap+l|Zl9Z3=Ut zqkGGTKGXazP`EW+yUGI!cYcEo_C+#UYLpIE^`TW+>3ROpTpCabw$=856;d0oH50A< z>eP907&2ok6#d?d4Bs=(8bD3>2io+3<>*q^O24(*D)@*hSQ#tOmxT&mOV35tniH#F z4He{6uv%KuRl@qz&8mirVhtdoHV|AMknvZ_Q>!pS_H9?F#>RwKbu|{1c9`;r_#Kpr zFqf`5LLGIvY@M0uy9#ixEbk-YhzG%aTX-KQ;=V0CLMb-`p6=dm>w`$o=L7&<;C6##be2P|eg#0hekW}d6;XdIIuTj?8opI2x(ac01VXE^zNJrNV}9xCY| zhU2PIh4ZDFo=741MA`+499Y>Ud7LfVB6%WXI00{Dyc47;_RMIrOwCOYAy}H2={Qmb z)>Itj+7#y}f6)df@xt;JSx-bg&BBiGR%@qCH0}gtPhgA-0+Zu=H}DBBMc%Y-B%`Jl zgW79X4$$k$GAzZ;3^njK6042cpoZ{oP(v&=r~xg58kZ>GuEmKPtC^ly#2EDOGc)J` zO@kiLkI=J_gkH@pv(QDLC~F{*Sp=Gv9-|cxR6`Tb2`SD%gb*_3YCtcQsK_#eU6uF` zPS$>cDlnghFzH)CuuI&S&7ZI84bPFWE)r)HJXIT_%gJA~>9Ex^H&ZUe@UyDS>q7R@ zROTBb+oCc@px1i!!%&%@cs=gs1!=rVwZ1f!`2)RB1HoU9(aDU$~-Ov1(kWsDyYn3RzYPRvkEHnm{m}j$ERKd}VVpXZgX%=5HSO(aYv<9$2Dm?h7m`n;R(3 zK{oeQoU?51KR-v=+<$!Tvbq0$NwT>wvLxBu7g>^Q?u#r*HupuAB%AvpOOnlfktNCI zzQ~efb6;dhvbis^B-z{-S(0q-i!4bt_eGW@oBJY5lFfaQCCTQ#$dY7pUt~$Lxi7LL z+1wXdl5FmaEJ-%^MV2I+`yxw{&3%z2$>zSul4NsVWGS+_FY$C`^T6|)W%IZY6lC+5 zRgleNRzWt8Sq0fVW))=fm{pL?V^%>nk68uTJZ2SS^O#kT&0|(UHjh~a**sF+ zkj-OOK{k(B1=&1i6=d_6RgleNRzWt8Sq0fVW))=fm{pL?V^%>nk68uTJZ2SS^O#kT z&0|(UHjh~a**s#}(?QE9lmD%JR< zlSvf89JB{x^u^p?+bom|ruM-s1pqYMUyE`!2X$!uy$w2%1TtBqOr@MW5;XY??yoC@ z$&{(=aSq-a#?yyJo^ic8z3_~8~h)ad3q~U>sgHPQvN5Kyd8})J_6KPPB?=Pj2t?5*#=wU3^ zK8QseJ(JIx)hCbn1EHK8>7zR>9_poukdNbf-JN!-;r{x;hWqPbTD-$oDBs&!C@7!Y z=>95S-7#~M*4CVWG96%;YjuAGdhW1yf7SI;vaD$$GM(e6vZHG`29sG0`3-}XOovwH z+swoY0P?~zKZnEkw#p*(K0;^840N6oT6|o=FZVfK$>tL@Rn~IQStca|=KI=JG-fbA;fK-rt zpkZ%}W8}kes$p$#cimm8bGh*n(vkdY<3BZgKkpmvu4azV&3s|`Xn~M%_A$(Zv<_#{ zAyTfcSQf|;mGDGo{JP-i%Gb==%4_Ayv3T8Bs;rFuqM?2)T!fJgN7uzWrCBIAx>oQB z^M(W%@6bgNUnZL(ZrhUg-kCbUlq#@zaCq(Eb5R0!88kV(0-MDgURUn(W*5Ov7ZVtw z3^ls%iK@>WUX7+m;y-C5MG^7!yEaGQEXNcbsQAz8b=KAXf2= zy(q%PkTH+UO)TG-n+QVAL+u0dI)lFoZJ42^SpgOLa2Lh>7qe4KnKP`V%t6*t<}{mE z%=I_H6w|bN`B`rP0^eqiM-Sp&K zwxtYB^a)~hsjkf5#Z+}gC(iFWH@S7hrQ9HAuwB2gJg0U@+~ z8vL;3k+4BWe^Btlxix|h=hmkKJw{^CW6g=sGr9D1=hgxg&AGJzG!|jAPYggc!BYaU zRyH_9(ED3Bg2kL$nMn!r;8nr7_4RABWi1BuGSAz{Qi}{x!Biezh3Ts@F`QSX*;ONG z$nXqvdaQq9d`VgFnmIl8jxFJOq8a_ROuLmIkTE^R-Lg5W8`Bpe_Y^Iade?$6bz^!$ zrFmN_1@CFKFZ1EjPBUNzy4Z4A90;tGWk=2UACxeT3QU~`-%qiGH2~;GN3mf1JGo`8_)v} z4Cr4opiVB7yaD~UO4YzVWB^}(X9o1&QZa%VRb_~}P^zx<2J|cI2J|CkmRyEeE3+}t zr#_e`pPKzU7Wy)V$AVn%Ja876FKz5 zZ07LFVT=5Vp_zI9)rat8q)g!7T?E^ zo~HNi@PMit()ZYUXA**yKC>Zxv2-+~#~(z7^sBy)Aw5M;v>MW{MnLIjcd<%q>6-6j zNKXYmP-?-D9+40i3!HYf%7W3@f43OYW4{~t6SupR^GE0cfVh-i z+~a*Xnr!aj($Q=lnrTxAm%90V(QLl$bk>We3qKF~E3^6KmAr|$n%O)nI3&NUvOJ1g zW(sVJh)vSBLC_}e1`9R|%_Db%X;`}FZ&Sor_vhEY({=uZQ2sb#9e-T=WamXC%fepsLomp=;i+5`wt5yUX6Bi+V|1|8Whk3 zC$glDD|G|FK;5k7iC}IZ15^ewKxH5!Qe-R0 zmS8nsfK=UT9uHGLJfN?tm=IRbbGMoYFCBh8bOkyC<%2pac4kiHf80Y_#s#-H&U27h$M<@QxY-s4Ysi)p&JqXts_ziY&HpJ zGj5ui5A!hg5ymtcb2|{;Nqwvv0N(d9M%rU)CcMa%LU)m8+GW)L;h5g$xT3gr$8VEJ zUb8>z zmR$XVvinlZZSx0n9`*7TSADE^MA9!jW+l{y?L3?=ViL-=-Hpms^# z#yQ3WX=@ih8PSv`U!j`aC31`6JFgI(AiL6Mm@N`RKkLJW_CWo4Q6nFn(BvS?j5YAVkGVgG&2M` zlw!1u(|!K_m(oevO)7X6q9ouE+D(=8?ZQ=j+$`}4-*hS;r_1?-rZ3Z%zUeEJ^i97I zu|T)Uhl%LRzswTfc_k+k_(!qM2=>3Nh0RU_MM|P^qqg6RBo*j0|Jbv9MWryKrD_T8 z0ke4Zj@$Z7Kf*=L(AUJEd!x#t?Y6xrcrRY7K2Vf82wGYiSeb2W{Bv3Z{^@()`(B4s z1iMxGYGW2zn!z8CI!f*v9|Jo|`9Vef_ZY;A$_^xrcoW_*BEv68&s4=WC}u%}5}<@1 z!V5nqpCAH+QM!SQt7UWzig9}ZlhdyWUidCIPOHRrOf^Tf7TOM&iMa}i_$%z+bE$50Tgd9b9&9DVo9qd1X2hgfB5q#qo7^LXI0*5IGPyVH>Osj>L>-{2&8_0Qt15b}eI9ZlNf?4BVOM6aHh;z5n!LyI|g-B zo#opZ`;7!HLB!6Y`Di+Pq!H?)!}`s8JH7-K8KT6T-qCMko*HmDpT@UN|HO|7cWe9Y zOQiROhn3wW`99*F3})J-@hEe@YG9C%qkupI$JJ0g`=cXIsu8WiWj83^jAF!y$LG?Z znwm6)7+-QT1KqUwbIfx7^~yR&Xi#i^xhhkYLqjl#4f;$#9%VmVPqC4 zf@2FReE3-s%{?+a{4Bak_1tC!IHyR%1L%N#j=!zG19baUmginQHDRB(D~~K{1cT;s zGI>yQ$GontZW~AuFl&{YsvR4XY@7SwE^TqkdS0`hXtzqIuewQUp-S6J*29TDpQxNp zFFv&uOkzI_Wc7#Z7TqN`?^KdC<0cCJ|Kz=UlwC)C=ey6|=k)urTMt`cIh;NgK}yt- z2*%Qt3}`EUUfZ!rm@H**CZ4tY2e+k_i#)z8|H0S|7NiLZG(?6rDA3M`xB;0oL%AS^iO&4`zraDeiaE*=Vou(6W5_{0v+@o z0k%7+HB%6VDASzaoBcLSATLA_v^<@faT2C4|D#`_Gq9B1yiiBRnP=@23ct7{#D@F8 zMx{(1dE$6bCS`al1%o!gF3O8dx$xq0a7KO&>K_Xl5TaJ{@BEUc6+zacbSfjPO3-Ss z7ON}LY-m8?R9Wfwu;owGY8oUOzTn99&LwCWfEC^oWgq#Hxp5VOQBX*{%|*|5hPyd} z0N2IgVO6bmv}&||@u630nch=R1ehub+CjoA?yw_Z&nH);1K~2~GvRu%bW8l#?!y$H z)e~(<*T6Iu`G~}@*3t!5EC#kTs*HmfUC%YjU|{~Izlcy_c5t@g&RIk_7nbVJEAnqG zgP-mF1zsQKTRyvz&o+)Wgt-2UJDyeY=KL>o*1l^rKdHL5Y{!Cp{uXi@U7PJw*TfI5 z9`;IlBR&)vT~MuS>&<>}aRPw=bxliXuG!L>Y&C0kAvC+gz4(YYNDGPZ_PH$wjz*F9btjx)ki(QP%lsk;+y?-m;v&eS)g+`Lj|B)^qzjd4cyo4?q&;kLdD7Jx}(XM*Np{J&P$)?4jb~4QNW4xq%O;5 z^H;jPIzd~AdR4+la+wJENhz-}KM@34R_sQ7qU#0DP{TPw0VJQPGzQ^q^&UvIk?LL^ z;bs1j%?)^pwFPEqGc#EymHsP%OF30TkX{Pqj}NOOU4RO;4rQsqcPq(L+)Rq1pPE9-E)6q{VqoFieO*#a&hV_vq-Pu!QyIfF{u1ByHPr6A_*Zkt8 zBO`cm?2n1U{I9Phw|m!#m^<+16G^eYI7yQK-phHlOAqSB+2(^izsto2FD{OdEGV(B zECJjD;hr_gE+pKAgs7Da^ipR~G74&VkvH}>x1=S_; zKL0CHP1xX3X!z~2?o%5CLZoMVmPH0DCa;OIG=X+3DTLQN*9}=>_H}}-%;S*7@~x>x zpgMRUOeiW*jiFTOQ&cW!smaq5ToK!NItsRUq?$C3q)GEg6bhcgBl9014t;BZc`etu z^#tr~h~x1Fl&*=a2R+Cf8sur_`LX15T;!6Y-5_REwuldxZds3B-iNvPq1Xb%#ytnMG(Lse`4zmk``6;m%0l(QRD_)xRC#SaF{P#hW zb_~Jn!52*=XiYsb*^^{siW8rNiRZ>Z5Jt|3;2wMc_5^7AqUv4AKXeVlWzn-L;Z#p# zkxd5p_s>Z?!zqdRJOt!#s&24>i>xEsnZv?-J>j6iDv)-7tFbF|2xKfKmyGhiYyn!* zT!|J@j4#1}c6s@&z8WJ$8(;NT6J#MfHbbM1HOHHyL!rKEruq<;LoEAMh+@ZwMrAXb z9wNVgNHw1r8f{+Om~7(XvNC-DQY4BauWx3h;wT)mzij{JF}-;VoyixH#H{-GSgM}% z^d=5NIIv`CMaBoZgrdP3mHKVIV>UM>-&7@vkL^Zc^=f}jdIK7)%Z!N!bZ?NJ;BS3> zw=6@vJ|*)EOVbZ`6eyS@$r0Ub^dsDEas}=^?#q{LMdEIOXaY}HCnwUY5}CWxHOUvy z0&fV}&yn4Nz4rYZsTez^$fWqOtuBP~Y7YI!*xV5lHVfR|^yp9TEDr*#Nq02Q2WYKw z7-ei-JFgU#SFMqlHXpNm=Q`+~D>1AjK-ifJ9DC1YC74NBh{e6Few_SbyZtwMzv zZ!@{afP>13q}HJ8tXz!``Ma@jY1JwdE~{3^12!2R*5OfdBj@41=ED_YX3SFAO(ECb z9<^I6qhnJt32^)RVfD3#`3X3c&DvDcJmq* zw5@2r=DDtAL_u&Foj5^xU<>0TnsKW6ux7j~KOLfoHSOzXC2TUcO#D~uSg}xKk^c0#}L&t z)6@I`Hc10==I0c8S@tya+2fi6^17_?Xw1ux*mK15U0j%R*3S`A@C@8POaMB6Gat*J zqzv9EJVynk43`u+e~$bq=htLs*vXiW&v$`_XTx*qgQvtY<7^zCi)AJ#GX_?wZ+og6 z(p}E83CHu@!q(mRIuLIk8`~=Ll%$yPleyLt^=FJeoQZwbuE{Buqnhn=%qr8O>==*H z;*=dHi|eDZTA3Vlkt{e35CUKrMrnVEDXOXF02IpB_W-~FbBS*6_f0XA-zc*MSEsB-JAdo-0sY`Esf4)qaNzj2ZII~(bXt>c1MIw2_6`i5WQs{( zT+JU@*IS%^=U1QtHpI3U*^T|RV*LKEB>CZ+g!N)K;Q<9Ge&%wHsBp;j^k)wx`S0J( z%IDa3%iP3wJ{6x$94w!yD!vru7T=<4Cv{ZX^=oLCl46ZETohF_2m|rUd%?G93nSO zXUy*=e>mp%kUvU(UF8Rnqdgut+Cw+dtM>D4thh^#c9{H}#t#n9kr&XEpCu1RlU^e3 zkpIPR3R%7>FSQ^A9%Z8yu7f<75tEt(7@xS7jCBRCbAFQVIQd*6&AmGdZ2n2HrwwU1 z$P^w3X)=(8-vE(G9@FfQo~!r+p@uL%%(ajM5NNKA0UxEH%rM225k?5Y56`X9!gFgx zQXSwzYo4k2$t7yHAcAmeNmQ=-^kg3p!<9r8d`j_fKulL=6(6I7STB?iJ{-$778}Sc z@N{koDdClN5DwbB(cEB_ehnv5r~(}=-+K)iv;s6gix@Uyeyp=eY(*FP9w*gFGJY&Px^?Ql7f!l(N$2K*Xn%^#JtX z?z=W8kMczHkndhXqbR%ipI`gP*7_T_R(2WF;-h-?k*!ZWk=?&Fe`CEywsQa0t~c(& zBw^P}&U9_Q3fOaWVIgFISRP#@4O1JQ^q6_5GVvN-p z^c&96s5`O(0>xFl!BX`eE=yp=p+9~34{l`}1faEj)tP_z8g1BVn7YSL#NkgX@l!C3 zgNy!DA8N1csR4GC@`P1x@iuk_f3~pmfpwC+{93M z#~9Z7%HmrIT8kUy79XSV(eJ+Ip~&208%c0%^@in0!d;i~=y%q3^!u$WL3X`w;bjEH zz2US7qp9kOfmG)w_MnuJ+rtJ)dGm2BhT!uB$(80YRc@4630fctm=+$lpY{ZE53sE& zP|e8Ej0*WXL(p2TAppFS-pOXs%*v3S7x!ZM;5?R&K@dBcnL!1>arNR~dT#gFzQiZ+ zVEJvtPo%EW7?xZ&*XYjQTQ=xg_uxAujY>ylXMsPuMb~I?undI@iD`?n?JEGIZu%?6 ziJz)3AuY}#DB3>`80uMQ8*Mn~9!D7m9`0%8@T#};s>Sh#h-==uRT&UOc!8LG`Td9w z!^S7{zIP&P{Ple%-2~bN#RlDIJLMxxg2FQecXGU`l zVGGaszniu10-Ep%>xEd7p-PznY~gSGC%xiwQ)-K}N8mtG-m#^y#)0j^QNQvqDQ= zC^3BV!G+Jns?hK*EX!R7^-l3prd(453G^bW1Bqy)nvCDu%C`5l#$O+uHv0w{eE=ak zm1vNll7+u7ck>Ow>a!3G0oP*2tpn8HwI+EIB|wu5`!=s-qAWF<7%^v!1If|Ea2cfc zQ%sHp(@OES+ozNx2~$eZEBBHXGu;w5NSIQPcrW9$P~uFFULk2(ufT==#Wod@3Bji``Kb~6pl)_D`47JD+$oFrwT3r zQ|p}cPXkPVWdWD~+rJM?Qj!3Zl!nYog+x^oT(%M}f{xXT06n9N7)s!Hby=hrUHFSq z5J1mjN;ra%L@47k(Gx@RQTpNXN-kCWs4g8?l_20+YPV%A6ZG@j8<_cTQD5y;#I)w$ z?hLZ9{42401J21V6mFVLUsGf|_&mctLas<(1J78ig0I$YzK#^GPVXKbgmB<^g?*^G zJf%ptk0eQ>Q*L>k#V0wF+qsh^7;7Gizy$raV>_ef-OfgTc-QE~=&&7UFucw}pS(OW2Q4`~6d?A7niB73#g zU=#jPMyC&w6@yC1V;Q;5nFvRouQK`P+vL@^I{iKHV%Ml=mrL0axO|ZCJ4@ zKr(;)xyUCwNV25i)PWwzAtJp6HG&6tjXYNyhy_Pm@F5*ZGCjaIQJy8;bwW+tUB|%w zn!DsK&$+bgSe10^$=!fB)nm%4HpWh`yNZsxc?NT-_uf_Sx~pEfD*(IRaaXzNt^Ggs zk=;PHJ1|;`<&*BJ&~8>d`uaEg4iMa@JZAXJSL{~u^BYyBu0N~L$}7d3rsVK1>4++x zk93+!Mw0hA3n)gChvCV9vRi%S=O5}#1IDjT{{gkD-*@Y^9z3K6Jt{%Z!yx{fdVtM8 zD;~mFU(Mfi9aKj1oQlUYr- zQN59$o%#p+XTljt_G(f+wi-Jv8K#{|(1A;<_%9POaxvK5MfO_-2H*3+EY60%Ui1~! z?M!K=MLZxVboQcJoc&r8VV4EJtX$jfLOqOx?4}F#05euHe$=bm^#k)!Kt18%{_sP{ zi-ie!bCtXd3yN*ymk35TXe;;Hohttdf16VLhD%i@8dpB6hJ_ zF~2}ws6@z>g6<&aP2ts%h#80FQYP#LQ%RBrX!)8(j<2nD%y^QbAia7RYS9rwmfOYt z^IuLz*Hsd-A5@l)@ZX_q@qzdgmU7wlM~kliYbW%nTIAso+;9twuEoJ00l;_tLLwep zqdUMzB+vsk73+6`=%5Y#a2KAwZD{ZrwvAn_IMUuW5!%Y;MPFdS)jOH=4w~E=V`Y#Z#ET*V5BtnIj_GNjXwaj5js;-R@F#VJH0h&g#F}gX^Y55zoTD#3xscTV z8tH6}5H)vSLBYiy7{DfX5q z1`aZ<&0lb>;(Yll5F*-Y@v@zZ3E)Z5;Thq-dgL+phc@C71{)P_)4?xt_y}ys*5hwy zknJuza@7Df04-?!1a?de!R$4s8~@L&spGoe^eADz;z#(p8Cvv^w2# z6}Rr<7pYr!;s2O*DMC1$?2eGY@AV7rujB?u8GhbKi@J!NPgbWJi``!gw43H{+iL2^ zEd0JYy5ig1gY_<&fBZK&%b&_$?TLyyg3&`K`{u$GYHXPx`Ot>}Slf&jU=|%(o$g?v z^zq-M5QpRWl;JKT*-Ohh8;p9Q7(M8?n-Z+$8i#yVIe=ZI1{VK*l+gR56)C^dE7D8D zA>=u3)J?7aZb3vvTeAgCQ4`d3AQ${auE?qO(t?WQ5SDQmh$XCa>T5`ltSs*f`l9oU zu)pgY^l)P+aAhbUdpQNx@{4z?`Sk=QV%f>CUu+96ZwtwtA>pK>zCdG2o5z^ZG+Bb7 z2vmq-NEVB{vf4VB2w9zb!>q_dt=7hnY_h$v#f8#JdD7*it4D`dK(efzx0!ZbX?;ch zw{^hae|mSu2M_H;pi`B{ewEHIbGSODS2-MD*=<)2?9f=~k3Kw0@EfJ)viu*f0I@pb zvBdKZ$RLk$>~{BE52)_FUI$W{OQ4X{nKK#Lbyl_f2cyX@dSJ0y!3c+|Pd6ylx?(hI zRmH4S6}B*pO;E{ao*#NA+mMIXeJ#!>oZCQ2A?|}`@)aZ)fI)e}MkvUa4sLg1p2q0K z&6Kh$HGAtOFu!5+tCi-g3riHpNQ`Kd>!q(>+)G7RkS?f*V!ieS)CAKh`uiqB@hpKK zLw{xDUjtN!pTm2dTKKefW1geq5bpaus)JV$z};R@YZp}8{&+kX?~W*?*M~{NWT}}6 zgN4cAsV9fyhM1};%IAmK{Kv7t`J?2|#k{J;5x~`Py{)SsBekQUVXmW@FexTTaaW}} z=ol*?h_J*)ha*8b^UxA{Ae>IyRm!Az&w?8zTrVt5Im+}3e@rQ3^idRZE^K(!mqWa9 z(|fu7w$H%|A~wh+TYcJH$&X;P7BV2;RFklGaliOVdtayextsDd-ig-|@kn*KEbxeP zlIY1Df%)(Zw*sLwFvJOi^^0GRp-itP%cQL*VJ_B^V1N-D1MkGfd~RACE*_g+N&7mI z#i?ob>VVjFDE}S^yR=EMG3*Gi5Wkk^mlnHzfJwRBPNBXM!ZZRgB;j&Ya$Oq|>|V+ZZb-BV!`=gn*O~vzlC;S+$I`+_Hob&N(S3bv^GGFs_d4~v3x%1a59c|~&{+I|?J|x*wP#~< zXOx1xr%45AmW-`~n}IzD{{I5w7nd#A&!c-f7*y{t78m%@=AZuG_3R9iRjz;DFOuvC zjnV+8-8fg~R%<-vV2TZ-Gzoa-Xu5fHleMCUnm_UaBfe+T zlzTW|a(Git^<5m^>|hw{Z@Dbrvl(@WGfLX|=1(7IkdIV$uzE*e*E_fKl}>K{P}d7T zavRlaYg!5i(?q2zJDedBQFjH)PHOKQ&F3$nc0r~in2yhnbNh6je_#us3MM%TJdbKz zHf|joVYfo#()t%>(MBHNUKR3?EP!e#yWbpl4U2CxbR3rQH|W$QykQ3kKz$XcA^R?< zai<#;O^NocJfy}s{bd(3P}PzqRXJy>axPL8n%=nzrK^$G?Mk&rhb2bGXFZ$eY0Kh* z?n+ExSr{x<>}W6@2?EBPsmjP{ zQq2RY3jL`A;>_RW-S5--&Wf<%DmiG%=rB}6mN-;wyl7el`Xe^O3SU2X8%IT~Z+nap zPG@P_vQPvhIMFoSuNEt|BR*t4GV`N?IGC@$IN%U<@#LJJe*zQxv1!~A{$(X7#(qx= z!8#lxCGkmp3C?G5L2mm`&_q~0YT3`u8G z);4LE9l={B$T=B&6Esc*?~P(kgGT%L%6}{sehs_gA*aQhFZunaOVTA_r7+WjVR}^p zsbObAtdArs#K2%w@E2wUR%Kq(#mW>!%g6Y9HLOP zUFzD?SsKFWYG*vo>7HB@I&?LhtvmnTD~0%-;k-Oe<*%;`L6rO0OJvbx2Hka3l1UAL zRQ)fz#fA~Th_4ccls~~9Pc7^caFUqLvbMY0{+HiN#ZV zh~5Ab2|5MAi$%1Oeq9A;q^uMoMI%fglkXoh`WV{oYITJo{3)}Nr5FjHS~k~;ee9vdE{@C1gEOW*tsX|?*xjj>D{(5c z1aFCc;lFtj3QpxA<2hFHfynpRjRb%eR56LGGU3v*4Ko@>VE zxhC~oQ$i>h=bCv5BV@7-d7(ENzmW@0$jLj<%67HYJZF~hb1WSp)9o^UC&ht1E$>+o zk{=jdq9dfCuHFdxdpgVa!`f>Ij*y;;iX9=1gS+?5(UE6y%^f+Rlk&Q6 zoc(1=FH<)O6h7QjZl_6M=QJ*eKqe1vOKr+zSIg8r zN{J3xsM%l!P{W!@D4$QjL`-cu{J8iGVy(UuhzMnwS^-Jq>nUdSp()nXF~wA%vx*36 z7HQxY#yf8VV~vD%PgbI_&ecrE&s;6lOo{v;ZCMMcZA$D%&AJ)p&Y08_nvp)lFsM($ zwaW)IPb8yFEV`{;YnnK25Y{gKR~H0v3jTUU=i)SDOfV4fepkV1MX{i>S@`JcQNHQ$u2f`B3*Hdx(X_O$bGSc$>*fZMV>3+yAO^Y(7U-Td zI2Fu};%KASFMEr=Tcw2a5SnRpYOavJk`Aomd8)ItgT;I@%35^zQe-g@P$BF%yoH>X z=tK4@mTaeLcG~i{y_8azZg|$M(mZNpCSnvgHca zqK0g1coDvo>Khn`YsU5bEt_GebcrPxW!+^`0I0E244GM{K>qn*wUNaH>JT%Sq{pmXLaqD|$YDTY-)t+0N2*9Tv(EACQ=Gn#szUu|czY*r zwW|gjcK^Bs(s?FWjc${r2J0+a&DYZub3I>abPT8I7VxUqy;$y(w*ijKAEX$h(L!1)_BcxH;Vlh}om{5PuRsX`6gqGdqoi%5O)GObet0T0?W2R2mFPnq5%zQ5Q|}r z5)aOre7C{OC<-P6)g}s~rk}#pZ4@4sYf;jh^oq(kGw2C_*FCPA6^rsWBOjFTY zOnxcC?x%DjmTLPKRJ-{6DdR?9l@670JVFJQ1NrxVURv)mz)F%!<|zZ5O5Shnp_Bn4 z#PvH6wFn|8+_Lt)KSyS!N5=SfUz#qB5kZ&R7p0zQuR$9WFoJShB0QYMi%TzOVmcku zshCbI3-8C5<$s$4{j8W;I$G58H)xlU@Gi?n(aib5x`@*u1R$D}n*jM4@)I#XO@2J) zr^t`R`~-nL$Ciikp;N+|v3bJ}mM?<>l2a>Y58^kZ3T51f0)!o&VdFR0>mkI*Ln#PcNL zOJg)G#yJyQPIYU85Gx!wMNl$fOcT|LsctU>J!lj4JT}!+!4KY4$K?ytihMP{lr2Rx zigyzLhOs9T%QqwsL8Z!%lYcPg$H>1e=FctLki1Eh42g^@t&5c56#184pq{Nldn2hE z>bsXBtTorEXLI*bM_JK3$WRwi?OAPt;8m#<}L(7%%;xQlQ#{oRUE3 zY*Ov*-mPc|sZ@JDk@XSLK-APEpTAa+F2jppM#I*s&ZFMVy5o57=r?AV14=Rc97H={ zHTKXpA#Jfrl1Scn-p1S^iocVVN$!y41L0&DANZr4g~Qc=HO)!NAMN6FF#y>bz(UpO z1;T0hZ3cX!(L=E_?i`(=6R1I=~K+GrIxxzsB`Kh7jy8ia;pE{iLKr2#qUd{5DLBOp^{=vcXG zMA5;x9sF0(v6k=|b@8;z@bAeVc$vz(6It=da%mNVp;}s^$9s`JO7}?$0pV$-THz^W z22Kd#!WlL0#iik z98SUC0nNOn{5D%(sAZawt2TWVP9|GmA4e3cPsfzfr=v>g>k*}B+xwJ4{1Vw%DWD)R z9lNlZA51LGKe(DAyj-S@nF*EWN3N)wyIExeA}Q*ujls?Fx_re^@2;m3Ci7I*&?#1; z{6L4xO5_q!NmB)fm=j?ah+@2I!>UvoIb8^-h(;c;UKV`dQOw=%lEvL z9%0K;(7bO91A8b}cqTIzQVX*doN#FiFZCXL6xPL=F-lH{*av_I})Su1}>mrFVS&Wfy`P?nYdla0AESCqao z;any{FomW{OIOMHE}qI@9)r;IrZPvW2MdGHtR3ai!XPy5b*YA}u%UtKB|Y7)0W}T_ z3(FMAXp*&XC=YA0;_7kG6bIQ8ei1?wwltw1aFQJ^aV4O?)44u!cknfCD6h~1E7>)-YAFM!>RI5$Su-)4fFP?kN6ZNu^|K-o}_`Sa@m&2nCG*cZE$FH3|$jb~{yXq&3 zr*IG7gkgpe8sK4+vCS}ajy|>eH?MxtzZ0>4$9=dCu!UYWU`^^md+Ys3nXHeSBMh_NZO?>kI zE37&Eq*#Ma0b>3?fHicX9cyrU0BbsXi@kr{!kP!KcoMAP^3G;dktfBj_uu4w$A^MXtD`&k>XB#I9S3{p7xO!Y zfvQnK2sQ>~LZTaM5}48rA=lL)kH}h`UhTCOmrLYtzZF#{e;60Q9a4|%Gk_dPi#IIM zie&I%+%0+<*a`U%Raw3v8T&ob-GbbQj-FU38L4!Z*=kStmEPBSI?0{jlMC zZt$%OS*@ZFaV&hpUVu110!1}xBZjaLy96M3k6A3d5gut6D&8W&~_vVPK zBCr@N$sc$j17ShSuf5bm80{qr$Bai>-AA+0^LV(=ucnve@1VF8JRm7`k6MJC2bbg@ z9ofXy=b`kQ#u$fXq86-Ey36G?>%4kS5$p=7eDta!(eo=K0mq%2tZF5?k$9{ zCIJWyYb^;*LyFKO8y#5%>)?JtWsj0w8L|YY;_wek=h1xS@KFA`A+*Y&pVdO3LpxaP z*RYsVgKU-IprZz*nNsJ4?W&T?+bgl@=h=P#GYh}R5LGMoAN+Ju{B@GQb2YF)k(g`2 z#A_655>q^sRTu#}SxL7vC43nv=G?zxHILziyg{l5-~%G2EmDlcxi(0THj4OOlNL8f zPhO!JYKi~3KhXy1DV`R8L*{DUrp5dfXgtTLhWshz=k-;}<~^pMkVO>D@OxNy@Tzsy#+@;R@nNpEdMSc1zPlFQa2*AAww?~ z28v+`j@7a3MQEIgrBFWja^XC)CSq9qbb(^dT)}FC@!xx0?+-6c`@(*}SXXO506vgu zKLCrWDwU~e3~;U@1*KU!rZzE<&W-qIk- z;2fxfG9$?Gd)KSmzk z0G_X_oX9p;X2_2uAE!}Vt$6Bcc($(c7x*@WaxA{R?Ay|P7T&IXXCO{ved>{L&rC1CiTYGK2BKgk7Dp9$qDySZ|xeUy}srP=fMvd7LEBD;u{6$E%v4?hsx4r z#B9LO8YZP@DIG)H17{X!t_8T0AB*`Z@_5ZVn$Dqjb3P$@kIPXUYtV(5t97pXwFpst z6j`HRfT`!966#UR&T}FdXycT|Ofb>I(s-CLt5D3e4zB3YnVPgQ*nfxaZ!j43s!Lcb zP0U!KI^?AIcL2Jax@t-AdL%52J1-nLNrNhYlxyv5O4I8@3sRVvFlm6qG!raU#Uyy+ zM~AZfzdv77zoZA><}cbX_#Z1*d_|h zANe)fg_oUHyKp}yT5dXl9DM?9gh?0mWW~QNXcv^~q%&IK%AKV6_}}8H+LLqcLwjI? zE&D`rcg18Z{^Y4K*%$LBFY|2mJpbIwF4kv3SZu%u*X*@A+hPTbUH!v*NcYW`Jyah; zgZc0OV%V|k@|>8AyF4eN;??O9$HF#c_B1Keo}LCDo}MCr5Zj)#$CjX!$N@4FZWFqYA09gK!T`Aczy@ANn;^JDAdB zZF7RDN5Fm;JqI@R$P8qhJHkE0s9%9;HfJ^TF@ODHe5}!54d=h%7=qdc=MES3RvB5m zsFzh;8&?CL9Pwq*GmgB#T+jnAcpgW^VF4VG*&4NLvP0DeT$XXlEGj?y>#jr}2vylg zl@GF!6wJZV1yTt2355x0W1|FkSw%_KChxsWf?Iew$DE6ZtT;%n0Wl#@3vKY3--}Gr zQff+R5D&@kJ3oS$!S#TAv5(W178uR>&}PgT6+=%XFs(vVB;Qxc1ng1!R3+&|09*1w zYJJanHkE4|k{`xAawNIm<#D4R|7Pd0_R{q4)garzWa>2*=vK|RO*$O2he z7X!7V&H_+(M^NK!SAu#n-P{EAyFlP419j(B6@#uTf|JFNK@X@6dS)+x+(*SKKZu~^ zh+XCN5wt|?t^AJj>k#LgD{qgWwRRFh$wan@_S;i}SPl~Ah!LXN`tpWGfVh#>VnEdh zY@i>pWGXGtT7d<2Nl;u@kH)I&i4Zd(5%5DR>{k*msf;8@Rd4?Jcs+2b+2xML{hB6p8XIZ7+?aQVgz zutPw)N1k@~NOf??JRz(I!vOu>($mWeuCxi9)7cVz=D#E z5^LtHFAqR?QXcoklpxvuJw_^D$}Ww@3mQ_3XR7Vec`1`M=`NMTf7tg(TCnq3UxT&z zLA^m%`52yA&jQ{tdm_QFZigKql00|hdm@5H78KGMZmaHT01X-oI-`}&9=aS zy}Qn_dg8eLHme+u7bs+Vaxv35aX~wgl4&V=1=JQ9w z6tUeCD&r`fGBs@gg-m#oAHPv6SxvY}7EC)S3{y7%A`*dM5?s+Lp2O_`h#;^b?OTRJ z<-U?wjF{jMa4JYLM4{^e8eKpO z5L46+700D^{pmo%-v2hJ9IxoN)EX8lGPABuDb%T93I;Yb=ZDtFD@ZGBX687@rQz$v z8$QatN?)!NXG!x1HnQLh?g!x;m87~_^V?W8Cx^K48~=Fx+Vtn9?TAR#j^n{=Z2q|dB=Vr=S!OX>-9SzSjWj$xU1bWu@%XfQ6QhBn-Pj=b zP!}Pd`BZEJ!EN3EW$Vn~P7!^U)w&p2d5$D(g!UIxZ2`4eS%n9J57+k)P+Kc+WR0j! z>G`TZ;JtN&aE{~v>Hu9;KyA@Y@sg-#&A~^ZX1(S1uZ-7YBCAYn5AP+uAun3`>&q1_ z73B`rVwPJn$dTkNS%0U!zTuh-M8~k$t-*b6(Lj2NLu~`$#7uagfpmBv(n1yvL?37% zS|zs)q@y*E@6&y2j9-1ak*JP164n6Ke*BFW0=lEv-_}1|b;1MnPvP#{ew&Z{HeD51 zi{pPG7y>Jfxdb&s={ZZyIeY+n5A4Hss%1j`X0% z@RN-+%-K(Iq?*s>NEc0ITAXMbAX6D0w5C#My%5#(0q;GvZKxI|$kV0?H>$mP?rDfd zlMqo2a&D)D0RL)ns;zs#KRjr`UllCuo<30bo}3asU3Twpp00aslpu9N%3nUaUi*>O zU)~~oqWiG1TB+C=)F4-yf6=~dvzY-ExPeSrF}4l*c3B5J^sto6z%wd3SzeZsL)xMl zBRXRnNSLwkpfzKN=|v#X2Twg?Pn68zL6hiHu({TZ#Q~t*l|axoY1E6Q3<8x1gfnpY zO^FrzCxHi*ji4w>x&h%<)jWNRp4Rl#D*2NFs|8TlkQX6RL=4mjPK;_O^+;0%Zi`BC zm7S>F8p2$MmKw*K=ME-95Flg$v(7$SbK8KZB`oj}cU~P~+;Ocu`)v7aB>5|C2PkGb zGHfKl?8(BV88sW}%-um|fXLc{D_gMo4_D|>`}P0`hacjiQrZPuSWI|C!MCEn`#AN- z`TZn|wTkqQ^6*9~aji{1h=DC}H4W^g&fXjn4o2x0@rJgJ=|8qwckt*4R$0Xk(%zn8 z`*3oNlS&*|Oxfbjwzv{T#G8#W!SZy`KS6H}42{rZv%%Lj@bpoh3T9|F8(GTGxU>)S zn^vDS6~5xQ79)5QrvYdRCv2RPQni{LVqeC{^1zJyg^e7z?x*QIas3Tx(mFg+3kG6m}r=8KfT0^=!2KZToiDB#t>60s@Pye;xfxb1g z7?$E%@%2%_Sm#*;xF-UZU(ekddznK&`yF0Jw)x+_=V)P{Ifj^@d6USAkgfo zpoAM=eYpK(+YHCDk*>MUlyy)=z96d>qrEM%SNmrdtFJ|WF;IGmMMsbx4l>ZybZkWpno z{*W5N5;CW>2USCj0UkI*D;!SXK?2&h34R8HU}H&peq<>h0-X@7x(tUi$ANvB0@;@{ zC}X2EP-WR8*w88tIk*2{1>hdA7AM^oVvU2ySM zIGkPj7Kp!=WL#C;2HvGxXwu;%==E+^bNpORuslp*?eTCripBA8SRd$1;^7eGrM`rC zI6YYZVmurzTUhhqOd+FzLj2$|P9AZ+ov#!R=YPsR+KPt*Au>;r{H=I6TwuhaQ8FIs zb%|$*?YeLdDAmo4aUd}O&OHswcD;bGWNkDYBvlkzjq$yf=xWSyAKx*@H_JaQVmCb9 z9I1v3zCiX`dZb{M-Yk^BUq%9}kA$09EP-h;N?>jEi6bF_?W$7B+y&3+u6|3%IxY)B zwk9EK$+bvCAy&tjOi{#Zp;3%mjSK8iladeT^Jt1x13@$Ykv%u|#wc-<8K=ww}T;4j?gzW z93$j#d+VV2v%ccm)*!1x7I%MLNg(Eg_Fzdsbu3&`6P5zx$a2SrdljaY6v~T%s6=^h zzf#ZUz$~O}-GMrmNN?*=Lx;>yaB?cJk zFnh+m4(x>FRGhcoYY|C45jo@lHy!mp?IcN7S;x4(-Wj6XSkUxxRvM||+XK{CxIMtp zC8RV4#dP5f0$hbINv&NV1w%4gC}oJ6SIx>fr6?9>lrm-_00{iqYHrYSc6GWQr|9@} z#fEe~KCSzRwF8*Vg-JjJE}DeLeo0^ptl}J#!W7gy!z4VJR_iSYXeAph)_d^*vS>fS zKI7QB(qh6vd(Ny#2V;28aM6_TApEN*tqlb^yPm4s#*}uKM-pa`PcwG?R())xB*hdl zfQ4BuZqc*T%It{q&USjI0N8~TIKjSmaU=7QP#koNY{Ddd>M{L0u9QyuQeZ|huirx)Hdjh7kCF<#=JXr;N9uruCpAPSZk`nT>ZW8y znK=eSqXqj2@Mcqov*oMQBbW;#Sh_rp;AHIad?Fhx4LU#^w2Tz5_2KaRH?KJ+QV6ysSsw-s&?{@I)`OBCd|AU-&xPJ$E%hon8P zPG^Tu(q#8We@(y=0fx)kUH^>gpW$ll-eUYcSot~R2tgty!*;-1H#DjUI1Kq`{+3Io z^ipAi!mdkviS{rvgr3w}UXnD?@JD_w?NcWc8G`O6!{3z7&_e#uZx9k>?@caAt*{QY ztF0fUwfwu!50!WxW+N2J5Ab+^t}aXV)>&e7zrOcvjPka#tcrvvtat;NXZZu5A?_ip5(uGiY7ik22l#{tVvG`Z zAM$?^^SHn#ACLKY@}DMOOu}Wff5%*C6D^A~ZWnaC`9P z?#v#gpxwTHPPG2hb#!)5KhDe?H7lmc9K5bxlNcdTk)6GzX8O8Rkmgn34qtM^O#by- z`J>yYg;cQgz&zNhEtx+|OO~tr53kn9$HP*2R$=1cYC+d2<|&cl^*p-ZCf*Yg@U(WE zJK9_=jZo4k`X_|G`z zlqQH-w9k3mUHT&Gz!Ap!;jBU(^5f*CyKqk}141bl>T=KnqsWQFaR!T%|5nZ=<#y1n ziVyoZCEgqr%g%rPIlc!Eq$K70Z%wzjUs6VChpS--hWfjIzKJ8BF08T^KPiT zqt?jQJbDo7rzjk)b@X5r4}2pnBcHFkD@k$E8IS)|odR>Z4@={}Zjjy2uavlTYTQAr z_C3N*x`S9vOJMj?@3Ai-K^|k5ofK6G9rWLpv*PHx7i-N#77t0w0*_k@in~CUY`u?b z*gdz!dt^wK?u%h!Q-amqA>Jzau1)Ed@K1>ODlOnglK%s4_q?6O^Sqvy2_DI_3zcIe zxuZX!bXJoqYE ziZ#F4#zvegXzG76<0rmpS;6}7{DtU#UL=*zSHu7A3h&m0op0Tlj8w|+zRQ*%92Z-) zY?CQ_B>8pM&Mrf<`rE>bm%Dn7!!=*r5MJCU;eiU>d=3rKu4^k$O*DA5>%Di{rUNVP zzU!_4{(7srx)h9&WY`@*T9(7$kO|fK-E;Vss(Jwxw=ogrO%MVfrI!D$tr{Hjm%~g) zv0gSPK9bP~+!mYHmWw!t^bwXfse~q$5!26Xe1AaC=TIt?9)MuJ`WvcaF1k%t@^3t^ zc#BYGxMH>9#o9uAj*1+r*wBx&S^N@TLLQ$<#aPVYUYxv1BKxh`=nIo%>-sm6|J`i# zMdTHmN8%C=oHmv?P?M*6JQL92#Tmv5Dm$CPvz9y@RT`BZelGAG?gGnrt-+wT2Fs<~ z-a=0}^7nX;-ca1U&eibyS@mrsS=^iR1ov>5Ce}k?HUTKgngM!BDa_;~yRAMXkd~x& zMxecPQ*ySFio)8~?#v^T3Z)?xg7H_iDfA`w=!#BxHUa^+4WE zp(SZfyk$=shU&N7dK>#8u=BPS83w_l>Tceg)FZQG)RUNjC zq{_T2!eAxRY7%I5pp90!%mrF?i_j{mX;rCcRnK`p8{Z$$^N8gsXI)J|kV+(^5R@BS zH_o?kJuAlU-6@`hUXx)T9fGzl8D6dpz#&L)_)??g7NTk?m>23C-t@&6HaRO?gTWAb z6Cwn$tD!99hgFa96w6`qX{91lQl+?@Z;C$@x6lclOCRkrGZP?4^t<+D&5ui340Elf}TNWITd%e=LUHGy{PJv#Dv8I!hh zc&QFbEPEJ_^)QkOy>msF#08(lpo94@gj;?AgN_K%WVmLqEW^!s!6LMO^#V*OyWBod zIb!lDOqSisSafS;c$q|Pocl_cdqcwLqutoDETGUY*tj7#>*Ho>TlQ$HDKI0KKZ9Ii z67ZrI(lXRd$vZvd&B+5!Hzj+t(^JA@A|e+P7VDEI?tVoC{nuB5sgWY2ZT^m?LWg8o zUTSwhf$?_UB~7^qt*Y7y!0<1>3W8g%E!o;N4$XOMlX*itb+N69jM6ejmtaVih9x%i z&|6<&`IgmJJUko?E`C4jScPzOW`UJzz3wa&LH7=xOnM{iu(>L_g};BlW7OpuOLo z190G9xR#jN$mBrt*z!uheD&vXdFeoft`zI?Kj%DuOk}y{?n*Hd7EBjs zW^d<8j!OR7bpnVYkaySfyJ8G3KjEMQ3{f2(CIT=~BzVf=M8aniUFDG=-&@R4cc698 zQ8}}Kqdq_%J%QY{0XPYx7R1YO(OBwhC3bnT1BOj*LdpMff^|E!H0><`nOXcSS0s@6DOgCT@fAl=&=>osuQY83p!!etM zz}hlTePdh-n?4u3C7V0T)`EVFRd2iut_g+`gxfQWq7{MAAVA_9c{; z7Z=!yTrUp%fSLL5dY-W=VHH9!xHZ{r8_?wgUeBU1xhiZ{-}_mULx5H!PrF)yMROHq zid0o-C6IsVR|RAF9QkQL$b%I;5?s2`4RrH&Y|>YfmB-a|4@>-*!VOwu;ot#7Ii{jV z0i$~nhQ&B~^DnJZoi{UK>+m2ihHfb^^3=Pax}yU-F9T4_BNq;UZJuBeH+qG1q&T6z zZnm?iqdaA48eR~*S^z&UX98d>s7*aC3Ym&MGasYJq9QFn11)}KML?p}>6V5sEK87{ zAb_E{I=u!W>d>Ovr5kApSJdbbIL0znM>bgP;G&=c zs`JWWSGk^!=oA8vJ5{z*3|3u|0kT(0g}cdLP$d60o;mWv0Mkk7P9F{7`X+o@SNW^T z=E{cvlRIqA!~l#4$13o9o^xiwyqaDY1T}l-CbjIYYG>UXmcwR5c!3XTXvGY3k-wjb z7pzpnYW-Q8AEQZifKVDwR9GbFjI^5n49$-uYKC$N%?f^4)IHb)34otauK*B6fwZXi zfWw^D*El!_K|j$IQCHb=_n%;5| zRr32^N~a^gm8Xa}suZos-^QZ#^HlgXOvn=evl#mk5dF}aL=%fyM0IS+f4H9J?<9l|J6SR%d>@4&*w7vJZ}<|3gWyI4WV zp(8g2aw}28dx(lj2x;AVokBrcDWC@0F%LWh)pZNPb^Hy2HV}PN)LsU)b2)3kb1sZG zcZAW(fWxGvJ!?c0)A;fLO`t=vc|Bw`$=B2p?91s zCRmE&_m66GLC1Fb{esepb&dptci^(DPeBzGuhwVm&vTqeM!G>o80Y zRu1Y0?T8rlSr7p0!S?)no3Vq695u#i)K~N5jx`{!_d9vM25yJLr#iy@WTDOcM@SF7 zx|5v%)k$`T-Q38IBzODfzJYp80zvnVaY+UrVP4h=H2{cQ%lCAO=iOIu%?Cga7wHBL{W0$w zU@g;VQ8DVhY!n9vHfAumI6##~gTx5InN$(QyswM>=%wW)P>Vgq-vQ6}zi00$&M{9t zFJY37_KV3x-~|x+ugtM?nQ2xlxQn}tuV-_Zu055@_#{Rta~!~GmvP5yfga3`u%SRP z{|=Y&Zeg0_*t2#S=cd>TT*jqQF1%q@3O{Un!JV?S2c}EA(k-%xodr(geh~m%%fD$0 zg@C64&t*a`doV8p`cPVM8DF-*WnAkzru}x=jabn?t;;x*`1WfS0r{urGA>h96%0Wl zMVImJi@A(QUB;!UNk+5Re&Trz9FKV~!mH))wVAAi7h1XTwuu@*OD^NfWG+E2 zHC@J+{V#SIA8Ov8%6ytc3z?z{>1cEwr`iQB<6THJO5xEA{aw^$9OL{P1JknhpoTA( z@u7>ljE5UkpWbDhH5;aBaW6m_8>NB&@4Ji-UEnf~I)KcP%lJ}M-le#V<5%%4T*e>g z=ACEZGCuzkxs1zq&s=K^dnQmn0@w20sBo=U0C*Pu@*xMIgAX}W5YZhbZ@s9NzXJ+e zbbbpPVI>%Nc=Mz_r_h* z@u1=rN%~sF=`Gx`w+S2pF;BXtqIvjSVvD*dUjr>Ou)K(nT)cm{sR8?C(vN zZ>GtST!3DF|Fd)XUXp+1A}-%%)fks_h6I+IiY5ELQ`|dmpigucktf%WE%hpEWEpa_ zk|_D>cdpa7E&eLEwj!awU@F&r*wMQ$e87>p^1^u?&7;bVtah|7q8e3YbOi6lm=_$u z2ki)6tM_QdBnhPTTI-tA=m_2iPYRCUY-k`n;9Ind5+?1R1zZWVO1}3pQJ9>d>Imh2v~1iV#M3Y1FQYvmwKZcVyMM=_mSDQ(R;CPD#oraAKJi(A|? z7N%cbtLCPqk^*73eSpsQDZ3`!U)`W}ZgDRVl5s~5vze;)HJqKUHt=y}G5WAL1SCrH z3hnNYk7POZ#9gBfgX7WW$B2F?ua;c8@bsT>hq1ltT$$oH)I$LTmvq*`HX{ zXdz=%ZJ+^blf$FPKZsS$BvZ|20aDu+9okm>zH-y!~i%A)}Vc{M5*KAhHWQOR-|M?er4Fzjl z?kXx~{=*x1C{p9F`ZZ=$`c?eBOl?&nJ*!RAK7`KAmHKj~n!lgEiWK=u!L5uSyj#OC z8eLn{Uom}w0oVq!!gfG-UVdzw(aQC8bpNEwcP(;-*L*s0`W>-6cL=F@W7N*R=jZRUa@`Pqh=VKm{PLIbt zG@Tw*o~nq|XCyyN8hTFZP=A-jiIq!xiJ}D0+>rcsn9JmCu!b?`aoUAWjtW7E8rSNT zyFr-^$)iTzHGI2)c!qSXHYUn}f1q#!&|5z|DW!WG9{C5K98W>UEA1K1x>dP??1Uyi<~4K_!$GE*Z_> zN#P42xUk~oEYq`M%+a&lRx@&!)FZCa0q;&mCvxLJEfxr97LaqVi!SI8cqThD=p|(3 zunm7fq42TD4T*CPZv!jM|M{26$Vl)W=t0PlJ3iz^J0?tA*o%ub0p9?b;E^(s0+2n- zwa}#wvl99kZMq(=cWK?pe2Jn}jxS20=>|Mvr^c)=Y%8=HWHxx!n)6^ULM=2i zOEa_NIkMi#LV*g!h)v-hcfzpyRV_mu2LUoz@y`7Iu4^s+l_S*Q=7G9fxc ze?&pe{>;SwtOM~y8o$>mAFK!(_Yd*GfIX(C?1LP*s&@@n1tCxso1Y!PxWBk(G523hU>I-h;M0bd+R^#o9qfN)h)^uL() zE9z<@aL|sXaN>B7nJtOWGpe8BCkkp^JyA zBnE2Q$5gJ3Y zj(li@-fT)fC7#4(N>RvC_lER@o-w4OhXf^Vx9^?FsvYA`65da5yA8M5l~)gh~qT%)Y4jZ&MRl%=3VpkW8a z@q$vYqR4sV%%Z4u@q7e!`%TGfc{1fFk)K_Wc5o{ddi@xoTe4M2Deo_y0<#Xz(iacB z@gEaf=*U01UOO-J0;Sdy58*f(7)q*;Lif7?BE1G(m8dr+0Uy&SmgH|(hXMh>R#?yB z^_px&qr1Gh(>p`}SX5ZLMD0qh96S!=>RAd@5Qe3MU_LDoU68e?)9I4 z`vY&fL?dczs12N{S0g~%+PVOuKAyL*E`fAmJpfLMs%3ZC>vpKBr%k8=U1LHE zs(yVTRJE$`!F*u|XShgwYBMw5XiwQw8H)r^x)`eq_MJ1MxQj{VUS!(XJ-FCoh#@Vq z?MA2+QVD%$w>m5CCuXfX?^|o+&TbHjDCU`4rQ)ed#b=d@_b!-oo!I6Q=14Nna?UM& zni!P-^{SG{Y2RXCe{NwH(bBj{K>X`0p@DwVuF7w_ zIIDFz=Y8I6k$yHV;Q+~+^c+iA!}4`a^71Dh9nSJdGzE9fzp+UOx4$Y8r)31Xdq7ID za98m91r<;#VX2=yOe?gLJc2-*BBv!1n+c=`xtpH8anPQ>b10JG0DX&vU?EDw3aTB{ zVK~ne#Hc|}3F32cfy4-ZGF;F|2uH0&l@_BVk^%AjcVM4-4X_ZDUT&;O59s1nM55Ma z`bMb43P(@<%tf^=-J*%s%vim=kVG#|SS-ZQp|ojC#l%UdguI%=c-n0Nq91$lhO$sm zxqTI#aFT~9iH_#?=n^DOn#)oXVt<**Xx3%ZkS#$r4Ju-KH^_HXlgzYVm1rd?lbyJL z)-%!vi)k+gnDjW^9_9&^K;Ru$N=@^~?(;D(>3%lmCG=0nymWz+d z;ROPtMI3^Fe1g1AtDCo!!wB$ba^|Oj2PnCiXOtDGg$uZ{n155j33|iR>s=Nh&yFwq z6ZPZ*w!AW!{8nJ%N)09*r(MXD+qpon6Fgu_ynM9yREhkU+vi1H(5xvEnl(kDE9?>( zP^oDi3LT5oCu$vUqsj^LCAChH7ZtZrs3vd^+tTG)bT9dGZM+YTqqT9QN*KigvXpwn zfnO*FX4Irmt))s5mF?{uEYe4u6B7D%DmCL$_6%9EGJy|X19J#mP%h4P z+xTl3R-uf>=7piT%%3RB}17pBeB%qJGg0f>PsW8m-ZINz8w#)@)4&H!l%W?k_mIrn_C`s2zZ?T#{BkM${f{I8g%psexpi{)rO7L z$7>Rv!9t!DCu*a`)n!HK!W|njlvW|Y6xn*nPLjptH9z`dhUL8pH}zYalCPTIudD3X zTsc9uz(9aG$rbhyRGT>ZnZc%R#}0Gul4u`nWXM;2zfuqp3`e~)M&l04T28-Vz&kc4 zA9i*mp|w9ITO73cZGG8oaXI1{W#jk(DvQ(_i&;e3In3Sc1KO=c&iI<1PI@>MEO(w2 zFVYpbhb6BrZ6vAkO%T477zVup9`IWCG5RAG$O;*w%?G-DB?+ThPlAMBTSrsFiVTI~ zD5p+ML%3SFvImYYBnpV89iAJX2>Wg}_VpxLwW9Sko!CexNUjWBS|2*N*4uzWx?4hH zSCioVjksiMMSgemLx!Mj0Mg-a^rhv}V=&KgJ~SZgNa$ z@?k764?4ewg?mtP)$knoX+I}!2?hv4T-w|rUBI(O2MU}(@`sVt45r4GENv)1QEPBo zgbM)h$tPqIt~m;%k$>ms`GT5k4geaw$0kb+lk3zKm=5DR9Gl$7Bx>=4$r3|g1Q#C& zSYZc8pU9$;&G^nR>`c@>JAfynD8Cq>FZ3xGT91MBa@m|_4npJ&x9HD7PPe1a!CCKI zFw0jrdN_en?~%)$@QfHAG~UO4GD#Olr84;(B`UR+QtMslPq7IJS?Lk)hFPv?+KD5m z3Ki2;FwhY2+~nPE0w%IJrBflUap=@o4LcWrRLOCs_yqZ4p3TtyX5T#l{mojxFXIzP zF;1n5I<`wG#4x55K%UnSLBpe}l^TyIB|ghJJ;$%w)-yE3Gx|NmX~i18p#AyZ(Eos@ zq0^iS@ODXme&|}k)z~#j{cuw?e+>z(piHQL6e1%GdGMuyL@|__-CnaHyF)o(f_EG^ zsp1ro!zzo5{B%d*!OzwjJ?s%G`UiW(y(ODT+uAC-c z%s2#2;I7`5o9kCS^fh=!g>kc&Cn>{*s8CTDJ+@ZB#$~j0syd~l8?4zh8l%Qr5N`@m4QYBARlYVLN_D{ zPmzkCWPv37oTqjcia6;-VVEEGeH&^183xYoVvQAah=9U%oE?ZyMQiciq+b6XlkuSd zt>kS?(thV5aqicejQM@KgNuA%9!e*}1f3?x513f&XM%zaI?dm)1<#D;rq>9Sx29wN zK%9;_rlZzowx)Wlk)b)76|1lguYvL^okH#^&nwsrd9ZhnQjmE)x2~Nf_LWe1gB)70u zGg9Z1TuKxg@a*jj7=wx{pNWk{HO|Hel(i}O9!MvAKFxGW2QN4h;|+1BEMjp-J~Kjv z3=ANJh#azY`oj?_Xz4#^8C6pON}Hcgy@WyHVx&bFppXU<;&~Yo(7{TnCt*8g9@U9c zMo|~51f@=OYK+qA(6z`}t)ni~I`ju~8LJ6a@Aw_nJ1JtYxF*jr)uGP98LZ@SUfy|W zc@r@&HE%rTS<9c(IH?g%J%&zC+bad>g~JfQHI88JXAE%!IPz>t@V3zEh=@o*S8@ox z8~BBWcMS>9Kf#?%g|Z`zZ&UJ1%oR!!v%vr&81ZPaRm2OGsfr3iLu_lZWOIIkJXRIw zxnwIFkNI<2Iyt|Z5h!A^cOia;+RqGV>G1lW*3zMI;nJZ_D=S({2TOz%VFj_03uMZr zLtSc1SUPa;E79m!I@H3_fn`K%>A>Eum^z+At0ciF3*c9Yag|GlqffhZz_liP+Qc$s z+81G$gjdl7d>JHrjWXa61nngQqI)%4VnHXGuUW^~_B3EZW$Xc4!MN+wvNvu%i?jwOZ0xYHnLmHkV>B7m zUT1%-HP>8o&NbIubIzrC6QNKgE|Y3wP|pTcw8$zV*SvJNm1Ac_X;8o|9EM5J_8eQ? zkh`Trx{nUn)ujVce?sd4wCn@AA~{(E+k7>pE0i*+tJNDkW5u3;);>ouIcQ6V%_(8= z+S<$pQ*y1yDgyo1imW2~F`}S)SCIjeL;S)qd@c)~o$Y45`|G7`0!s<-R7hU!P0WSN;0j7Ewg5f&T4Uu3Swfw+6L; zrPJtRY5($UQs30Ub)~ij&A;8P=xuqRzB0JyZ305#31R(RCb6$pD<8KCLg${<|{ zFt4x@SWf)C)BHibNy$MiPfhc0uh;zdQojr+@QhZvv~nrn0-w|TMI@=_e*jr2>|UuH zT~^wmEPhtnPFla31jWSx605BNCeX8*)&R8NwQCTyKKNqY8sJM%xLX6D>zl+x_eV6^ z>}-8uwr1dM4WLF3)kLOW0}RyG04-Vr;B{#HB>p<(8lcUK$y2WZt^)r|7gzfQHn_MJ zBa2Pv+ad5!^aeZ)YXD^HwDfxLOg36m*G>1=c(>Cq#x;P%O}Yj^ z+*H>9()-gjz`p7lK$1ia4!Z%;8bH*)p8={{1LzDh@A!6_H9*U+u?85CzE7vM2H2}I z*tN9)*p>Qi0@egqxy7#mQc&r?)&MPT4Ukt{_$r-OcZxND;(k*d9}2Hq0}P8KZ7q;K zm(!A80~j#wOtlfcxA+{wj`@RDBxT*^?goI{LN*8n@U2H?a9 z_~TWr0UD}sYXHacrkP%4YXJGYRo4JJ(Wd2IVXMYdtN~tz07cJQ1IYG{VZ_lvZ4FR} zpVAtD*&igi8tc{oFS7Dee132%NSk&3fJca8B!auk&*~B0Y`koYT|f#T6z;t1`#6rpmCrp{)&D z#V8e&)AfK1!0CE`H9*B)u{A)yTLY9%xdvcSjtZX8hw2&tk)kyKy0_K<2$s!Uuq|i} zfU4%#07q(TfR`H90Cd2k(K1Q1Gup5Q7_M6bXg!dw0kj@S*8m*An@QII{k1hf89?0{ z;H#^`71}-+aEazYKZnVOL>{GE1O8guHc;u#1=|P~KTOQJq&NOvu}C!P2?$uWJ3YaY za)z81=9tfUQ_4evh)wP%({$gXxZWRtI?@PVdHB;+STx(-DaQ_k#2_O}X%Nfi?hD$w zK!pVYq_3U9=OPV)Lw1!>pw^(cLj4*nQAF)jCJ1&vfibFlOaU@f$ltN{>*J@$HH!jN z(5f8EgO9ua6Bty!nk!kxDv247_7>1R7yXi{RA17nl%f@cwQ9JxpHfK zf7+nEGFSjXWd0%(TQbfVM9E&l1`l`_TLnh3)rO(0`jv$c`mboQgBICxh>~L%#TI_7 z2(VgTzl_hF^_7iuK}^WKMF+?W-6|PJr4*!s;gH+$YjuA5Ku1dDe0moKVY@;Z^dRps zu63=D)D;r&nDh<0`g?+hEYV0VnfWlm5XXiIcmK+{Y2yYb8wl<3Glp=+B!yFF`qJ4d zoO^&%!zei2F~KR8+pE9lQR(v4UxWN&1jwU(*!7DX_RO`0^c3CH$5P2qnclK35dh@m z)oe4+%Y=3!g&JrSU%5JxWD8&oJO@c$)PX*EdYXj(4U=5=fI@Z7PSybN7D`A~T+T6r zGWlQm6zXyQ30x?fah}1%WK7%3-$noFn}-TZT68Q}E+60+23dgrhps3S=(I$nY;oUr z4=`FBNA3>2as*yTo*v|GYkC*@iE9DP{#7HY+PMDX#hx4(JJFxgz!}vq@%T={u2?In zrPTDds-BalT%(5UMQZZwAbv9zsHJ9sf?ASq-}vgMPs#f(Av-WDCTEYS=MxugFM@M2e6}iZfRXpC2zf zuZ#R0+~R4xFbbV4WHt2bpfiLzZ-U8-%XuE95Z7^&iG9UU4$`b+*0kHIz^^v6LFM zVL%_t@IJy64N>$*77q%LPyOJyC`qJ}v57>m$1K@)R5#y|ayI_xPJS;(R#`5hMJp&e z@>h(zhM`o{_sZ}gl7M&$?%W;aW+{@rF<@&nVZ)| z`r(fB!Cf%)6SalDR--r}-yvpREeMdKCiJvDl|Um^3YoCU8ak;`hzzUy17;Q@w;)Fo{c}OEj_7pYd zs(+n+aDrMA2q;y$KTii&#OiH5;uE#*x68VVu zV(n26jhj^$1*J8Vmk3o3DZ4G#K?4?NEsw@y9*qMMYCPXVk~v+c2xeFNbYZWOjDTZx z>!9w@oqk>EPM@xHr=ly}If0RHqLlzULW|H z-#bnEewH4FP(2YM8LK`el~yL>`QM2u&IQBo0il7=e^g(!ppHqRlu}4>q7wN-L@qm?k z0BQ@saUbRw(iLVIv}dGq=A_KMR(2bYBmVvz_wjVI4$Nx-o<$58NGT{F_C(Q<@Fe*r zIEP!P!;6)U?6kW$|6hkS@#q6{9I9%=ca75XYH(7iaHGxGS^9v3nxMoFRJOv%65(=*J_A#GD*bmt$=xZF2Xa$nSf zY%w2n9`?RM6+#gp0;;3raPBOca3^^N<`FD|Kbn0!gBG@qic7q|J(`MdIe|L#w z-hz+?*kl5E=V(%iK!jY)F#;o*wMXK}yfv)hF(flP)@~br2g!IF11cW(rg9Sx zVR9CC*)Y+EFr()MV<1Gd?neoPhFY%5jV+Dx1*1q3b2(qi+nBk5N;q)1&7%q0n}nW$ zxsL0m;W{vos)RHd{}i_EVQN8e82iTm>GHZd%@8P3P`2VF@k9Tbm*$GNCj7pHGd~bB zXjZ@mT|yFWxS>}_eK!WiZOPlDMb)w|!& zWhn&=6h1%+5P;iB4*`M(9}RtM=RwP9Icf1 zaMuYYvj}K5vCgG+(232QUFA{H>&dc$$hG0H&cColQAlc9;+$6ZSgQ-qSyHQ2Dab^K z@Ds@)nY($yF;ajdZQmCLtYAJf!$QHd{Ot_^Z9iWX74OX1aY?K%TGj-S*CQ6YvI%il zK{1KpwmT^ksSw`!#J2GN`H%gNmkWP@S+~XJD)M_LmGDFxqP2wanF$)$G;6gcrDQ_) zDus(zm)qirj8xhZeGN;6UG`ETDc<_T9eS6{pwv=oBkxnDi_HejT1+X4_7bRsAg^Tb zrOyZP_bw{6ptmu9BiNu@9wsAtF!etZw^S5408U{ST63s<8vd^oE+Ny}E^Nh>!dsCs z==ZWqwj}#AoOKE_k<1XqlpfwhlL8m-3~sZf$}Q-Sl~9>uAh-?FbrqG*wMEMG82Rm7 zYG1=dGCB8oPPzIXz*uTumc+<1>4mewO@v`SdqtU!(R}f(tI@29PrR92lB%9_OaP$O z^0wlcOv=n#MCCxxk_>}@68&#Ya<@=Q235bq!bp^qNPjL=4C{Cg({=HluW(ChZ!AZ8 zS7c9U-WPE>pUcu4u*}+mc7xgFi^&numA|F7!}7IT0o!dgkCdM!T1E zKoFX*t8g82bN?@-B1atfTA7UKeZxI_pboAntLtEx?61`|X>~1A zT@$ssDmfcXJSeHFGdWbP3kN7y*SOVnAWV+b>e_F0EmvJ*wYvITU5b2UZcX}*rf?0X zb&XnG`@&>U&pZiJ7g6Y#9+i4?4uwc3FJN4ak^sV-2rgb-D%>37xD3%z5zlBc>H8iv zyyqga>i4kS9*@i9496S*VhIxg-A8O34F(dK|~3 zc`%}KMT;w6?x$Sw9T<=TNVz8%HiE%*0ew=xKcciLTtBRZmSbXMr9dvyCjcvDFSuq0k0WQbr<5SIH+` zC7g7f}xHBGyk6wgI)S)Ghg+7+wmMtyKgy@a_z^%yx`SFPuet49t! zxEj{U7kmU=J=dt7YwM-U)vBkc+dHfE%(!}R)1aPu*@B|r>e-d z^&EEf^zNdXda;7rrS+;;uU}X%Q!Y>~CeCpW@X~zN)uIy%8w5(XuVsU3*;p@4)~OZ~ z%fl*fFTbO4!gUnY(w zGeMcPDq2U5gVC6<_kYjJ7c{fPS~D@cGMUr^C%W1-`SPJ`g@IZivkj8MiX^;2T3C_T zO(cdDF?a-~+9(OS?5rHML5oO?yTZ#=m1b1#!hwP!-py_bqa;Um6u2U%WS+Q(lLS^I zeJ=rpjtZ~oANS)fvS0egh#-{yvBM*jroJq>{{vuIQRBT^JlkhffAR2pf4ynKC_E*?}WN4fV2^)lF zLlTf$o^xb_*+zA6Q-%$F0igS@sW$!Eq%4v|CzI(jY}~D^4MEsNeE(sqYA{tFowc*5v&=$H!Mo;fz}?0kU{6~d7t5=I(S#2Tg*gHyzruAV z2QYZEHUUc?UOmEuaYNZ9S%%$0t97FeWm>jy=PcQ@n$X72S>**k!(lIDWPlB-2_Uc+ z#=kt97gw@6$e35X`@I5$**T% z4Jo6sV3gd>eDgq|IiT#Bvl7l?oL%yQgGm5L(E!>kMrUr1g1}g}{+8 z{x9u%rXNyWxCC0F$*lpBD$9n@SS6E@t3;La*eZF9FI|hwGO{iN?<{llHJYpa_zz{y zyGG09$NJ#5t)VlK1b^)8COl)nOT53C>VkK$s^qn+x=0J79cd0W7vQqM4C6&Oh7}I{TF!ogt;Zf4!L?ix_ zTV7|ZFbKqzCi``xV27?qi!MDNT2MQ-TqTNRUN1L>v94aKOMsFl8a7amJjCX5qHQR3)<5zcO&>uscqTJ;@_>P) z_CY?%t`2#MN}x6sMLg;$MbVU*j(PxUORz)4mqeI53{^S{sSZC`8QLZ7u(f1hBRy;H zGL9(l0VBYSf2XzqWMk%tO99W$UmaO;pB^ljy10#-30O%aJBAx&hq*X4QS!oRO>YUO z*up&()IhNEmOy6%zbRoh!LFtfL{V}jD5Vpj zDu`JgSyDjO67lq#*_Xtm>$ZCud00{tcMJ8E;(|V&TyA|VoF58uQZA}1jXkb*Rox2z z51!M(-c8~E=}Ox-g}17-KHRZ2{F74NQJTPm850MdHW0YsAeV9M*Xpr#j=2@D1`F)S zx(UsBH3*muo1#)FP^o*9G;fv2P43U`?A#QA7~7AQQbTvBz)vDJ(k|bP!aG?VO7p3I zD(YJ}3fsZtRd*AJr36aMUX*)~;lNp$7+#&zy-C>e8aOm=+qHBCiSe-M^~Chjt3aF;?Q_ z(H?216O1M^cofaJL*i)T7*Y_|jh5^2@rZi$!2}YB4~n7A^$kSnvcM)MGZ;8s1A6OZ zMsMW`nY@3GZ4X%=K{3`fNeEUU*j$?LYHYE8LI1kWWnc}iN631w>#U9t<9Zx;&F3N6 zkJlVG##-W!Z>B!X2`AacpoITF?b#{Tc7v>GE!uZH;(v{kLzyi(|7)kVBC*fzN^ZaD zdL*2-F6ZnSUL0H-yIBg{hBvLftcOemC-gFdG_NZ}c`X;}xCRumhS#jOo!O3XR)C5> zaGnV62KvV3I;kPa-pJSPaCo=_*fQ%l!j+ok8^ zRMNhwT99KxK0XOI%0$JKYiZ_;!N)n!kFA5yG5J`Cf)efVzed9{0VsX?mFh64D5LsK z+&Zwd#`nGfdDITgspN7p76*G*VtVAde8VFwWGJ+k8Z zq)yJ0y2#+Ob6}dopsvsumT2cIperMWu{qj?v>(>>_uM|2{q`8576w|`bcGUmS93j{ zDR;O$$tJSe7!mZ z$`_)Z7{gp{g_Q9vWrD85(|(KzHF zWym_N<5vo{{bv~0lV7ry{3xR)_39U-ulcZ**CNq2MaD6}+z)o#NuUGHz-7r@h z=TC293{jBgAv>4XAWA--cMcjFRRrwKggw5&xFs7;5J~N~Pi01Ox6>M1;yujyHrugc z1Tzf6wGy5Zg$O4nLJ*=#nx1%jEMY|;yM)%km@h-10QF{ltHK46K!zh=ui;1`D!krq zuUAo|NwJ_z&z659O1|FQjjV?kuquKIfnUx^20oosd!-Wt8+)ZwT5c#SfN4xN(%k9N}gl`W}P9_DW%>@@nNI7cJmt%nD>DQ&KfT=xQHk*$1crO00~UUAsefcDj;6dv*Knr^2CZN4 zjj%PNlp=H}bDO}$7!*kX(c?rel*A)E`x;fS9~~|kZ!uK}p9{`J-@uJAH^-uY($rsG z%!FMb`4$UH)@|l@Fu{xhvPa;tv@o5%6)-9XgXNXvpoT4;oYNNGhWk535A zbTh~d1^DfF)fGTq;DEz{o5rJ=G60B<0~=5lA(AHO@(ZBL1D(>w2%L5eCEvfgue$k4 z=dHKyE-iVr-}E|mf^S$hBRQ1bvsC4zzM*DLA_0e(zs5=J+cw-QIEzB0aSLZJ>s~!a z@Dr*xhBB%LytZwndv}-G=&UGPE;cQEWeh>e5J$ayM(3gDrMz5P$}l^MbyV1n%TJXG z-K)hKrK$Fmn(#nLsmVd&D5eDrw`t(3pol71`IP8oN)=0JrJa|G_L4ZDHu8d(Zh~=* zE}Yb2FNwZ1f=j5$#*lYf?MW+7+$a&}w;O6>WCf_k+>eCIe<(q=%hrs8ehB>H7VNjz zVZU|T#(TF(X5IhtXKt4mTXXL=iM08RZn>NR@h*%aBlV0DNK9oL7-e(A zB-<)ETsO&T!mo)iP56!Pn*^?Zzn)ndU$t4T{?*fqJ~yd1R$+5kT@@x4tCRZa-#wkk zY^@iWuUyS5i_^wB7VCK`YH=cdWl;-!rx3M`4K}p!CL;lPMN%j`J z>Cd7XdAUT24Y`M3=^4hJMtrkTUy zdu-i04rsFW0q;_*eI2yPPZF<|*)cLZBEKf1^0L&sel76@ayT5;VjTDmMY3v}8Gx`j zl2=BhWtKcX!k;j*&?%np(c1uFOYEguUME3UP6NiIPY1F5&_UJ=X$NCFBiP*s36=_$ zS1jwG#o`r-k4k$-17kEGqfH@xzZvc}q>R7m$bGu~U| zE9YvZ>PF#1qzT1DkM(tUhq5TK2&;R~$i@M_Mp?T7!_ISM4AqK~%cymg70+VE63R+O zGhz4TRqg^!WMMPRTp+9Q+UQF1INOj6Xvi3neqE_vF%`D4OhtrRIP)Rpamst`9SgQ_ z#(ai)Qukz?(Y57?QuYa*q~xtT5Yd>gmsRm0|2e^k2PukMzV@avdEp?%1P93Y!#lP` zUHFRAZ|!a=p!{|o!H*Tak0a4F+!bGn8*ib^g$1wUMrW;Hjb?wc)>$1&V$N$=cMRNGwJxW*Ysv+*BoCzeirb1|U$_hb^q(O5PRIL~b@Vg=&y zHc<=IRbGZ`aQ5G=zJSLvTocSF$Y42&JjQU1-*OcH;2idVI334!C*4!MsCRf~yS1nK z^m!dy>JH;cE3SU}ylvbwYVnuf=nN*5X24_cvt)5T#DY!BIR^cQ|_@8;d)&#JoyeoIbQ9K zhVH;)FHlaGuxSd`2kaSskT^!0vYz^V13{sAgVHK5Hm%Z1bf7twZV{hC zIDCl<{HpuViK6)1T~QOPl1gw_^X^$Hy6G6xyOb*Btz$IsGav&&rd!W-*hX}rN;YR) zN~vxN-e7%=q%wbZWmLE`YYMYGQt=heumc?3z^ul6e;pSF?pkJm3KEnY%$jqr;T`GC z=ye#1bQ(H;WgY*EQp7~l@Xz^l*ol+3J3~0L*d6M0rYHE1{!UNuf0sk=vKjisb5>(n z`3}Fs7X75s&!vu=Ay#?75F!9BkOM$QZk*7yeZ^lkP5&joKR^XBdDCTePz`O|#N?1X{oSJST2`qZ~8zrVUZw|7wqRPWn$1Cy|M+1Ou% zeF!tgFYM?NF^ZB7_|`G<*)W&$@rz}d9S6cPtZgS}qwM_zZs9^{6ZR1X(8-Cju za-C+dyFw__STSQ%DgIy?X(uboLzZTZm^*@$f>RWG`aTerBQcU@9YhN0abOBooUjj` zvXMMx!8u$2A+P})vcraYV_4)1ZVln(&6y=V!J!({%<%dGrqMfJ4T{-e5Y8RzV%+KwG^Wz~aEHa_rNVest6G_Af8iUW-hlBYx>#cg3%hi3S; zY878p70VnfqFo{1cj=zA3MkI1P_nZERkSG^;GHG1>B@UEWAoUbVZbJ~sVhp1z;{4r zoC71;MYJ8VBgNzw$!{$Wi12cs;=mG*ovTkTbsV`JfrAGLX%U2gY_DelQLLC|bys_7 z3FRVT%=MJZ1njZ;zD-7~CS;$!sKj9>46(_@7cOE5lx`+>5d$j(x{i_`8BgZWdFp25 zHxtE9LS5*%wU?Jg>Y@n1qQgkpA6bTIQLt7PMg*K&MnzFt5$+<{*ohk*8^bG`tyQ5$ zOni`9=2Z(Af*&H6gcLq>Zko4b_^&C{rms)C7k`c*EmnxL8d%1dx2*B>Xy8 zQ+Kr{G3_KZ{n*2#H8OHhL6uY`_OVy_qfAIuEXW1ib>`<6nfPWU7hF=xns6}Cp1w$# z{J2+e_teM>+@p4?7Ed8oa6`3I6l|`3WVJjK(AG@!?b8*(KdLL_GomY99oCigD?-m5 z1*5A?wM=dyU}X{Q>J>DdWN$8`r=o)N>mEg1iYvazdf|4tkRysD@8x1Y28<+SOIad* z_jdObgq%`JiqwLJ8C}#O@uC$Rx#6ylg$jo`kVQ!};O=P*L5f;A1yXjekkP6EDIm#^ z0&-p%DaKFM3nURePy0xF=DYW*F(m+vzdTa%mSRo}t!_%!B18#PXxcJ`P|6J-F@NJ{ zgMKZAk)r$<+g@q~UP%FQY{Mf_*FBkd-_@eKqs6W>qh8&bE0$wcfYg7cO~9Gb znXEbz1T5|!rhD@euVeE{W;mPxcvwTuurjpDTX@}l8Gm%OOaZ(aM!nU#TdnSd)Q>{G zrp92tcz$q{CAG@`h4S}RW;&nKm4)vSt~A-2WZ#Mu3(VL$*V-LGlr)NMg(Pm)cs#qV zgo_1gwxK8Kyggz2q2(rS+BGTMesfobt`z8sb;%OwpuK12t^MSP5}+TatiH%NC0>p~B0p?B+4JXdHsjQq!V>|eenHaQn=;j z67e_)0bJaaBaiERQ44Uxw#<6dB<{F>huMA7%4dDg9iZ`#F_;SquOH**=4&E-oYh3l zhCXVhrDWD>Y_7VSF*`r_CRNiouvun4%J2p$Y=-Q9PtZ>am0`*Trr9c}+(wGV7+Gt) z5xg&~6?oq-%2rrImT<8?{6R5^Zvg|OfCUw&#ltC}CVwE4xQF_i^x#1&qa<*$bH&O% zK)faBr%cWSLjhW_N6D;55eW;k0D(3JbqN6vQq{*?wN#Hq*H>F9ZVEo-SFR9E4 zR0nnCo6qRlc7E{Jy0)Gld{S4UR6ee&CJtSZl_R<$LxoID6nk}Lohw9(Amc|%6gp9W zptFPcC<*$r${av{L~rt=v%CWTcfHPnBF|i!zO}Nv5(iNK7S;`nqKp4P;O7V^~)s1+~}!L+!+i=?l1k8CODrZKYd?;))^Pf`-ir4cUz< z)c+}ji&5F9h)t&w9nT<^IrDMjejGHV`cPp-sq~`c5GR^o${^Xxh)d#DFM~=sg(Q(w z1=ehr#rxB}oH8=G6Qcoc{%5$-%Io6?xSedgKK`yA-@l`DhPXzC)?bg~jE0Z2cC{vX zsTM}sbFHKn;(;Vz{LC7{p1|ph<>6jaVJbrZ}}G zI5Ezsjw3*=2~MxECi-=y3GHdAiQT%=M4zrue}!wZmsE?HT6GZpG^1C7*beFnolWTq ziB9SYbxv@Vh2S||Nvy+PJSfXy{N9ZeCvZ}H?hh$UxdK$DJ~&JGP$qu-wHmw%3la;T zwWpj?bbjzlAppwVlPjOODfp@X)t4)GZbG{94F2*x(^)-H$)&#uYpRS zGR^gI0~N!kW>N z3k|gD-P|_Hz$c-X810%kdpJc`6Q@qzMMRnP*KZ%FRe(P#mVX z*%dY2Y2${wL#U@r9_rRG`(WKvH)4A|0FUL?;cYQ+6Wh_x#2?-%dRs~=HJyknt&$is z^jFkoS@xX*Er)Jog0_!bl`g`^I*@`M2pqD%osb4jv6l^QUnCLQQC}op@Q5##*zrcg z7UKLPKSN%eSO5sWMty> zD6xdndM3)X+pbi*JSadWT-t$~i*}o}fke|XdaFyIfc{bpo|HLYQ~gB z63`GQY~tk1tWHi|dk15NUb}#g&9JN=^Xx%MQLzffr~qQKZjS=U5m%YuIWo}5n?wX|s8+WkkCc4{K64M~jRzq%SDTH|kwA$m?r zR?l`Syz}ClamUaH9IVRaj`*I=Qiy%(lUFlE)__T3UZ!z*3t>^c3=j(S|AkQ@Q^*zy z@TK(}YY5Q-GG?hoYrv>LJN)|97sfw(MOs#(qxQ zNJ1D^HET}qQ>Dmo5=4P}ijnh5QBS7`2a*huvqUQv)^xT?I9%<8YJga_q;*OA4Nk;$>vR=~BNPOt zsr>p7{|d?3JhK#UOH}41*YS2w+IM;Jo|nIobh=bdwu7BfjQfDFPJcGUUtR5Hy-~Lb z*o1B-?DsWLs=HA`H(e6Cg$P~2f<9g9_DQ$+MPxo>GlLanCX@G$p(8vWS zHJNW$(M|DYoH77#LvCfxvZSM|7tpA(`csGx?T8F-H);t)1e{|g`bpjU(JqYT$yVDu z%DS;&l&MLByxCrF9OFa6os&lw^46nYnP6ybPX7sV+>a~jjfp8(rZ4ryZ zDm}<1(rQs{SuA|x4|xwI&?_F@Lhd^5+Dwuntcs|aM(IP$os%zKa5FRw(#Jm)J$k`y z{j3S@yWXw5+H^RV{1ikX!|^8V1UF8G8=9O9H*xMr)Z{rhHU2PpE=lrwdL*)ReKCr! zc1HIr8L8qwSQ+MYQlBE`T;jD(EEYIV#NXLcGD8^3e4VMJx29mca>Kl-+AeqNMhYwsXv|ZUv2VF z{`Pyofoj+tmGoy#`XnpuIC+nt#PuNVdkgQY16rr;w6$clUnFBQ-?*H^+Ose5O;-}t z_h)%Se_WPw*Uhv)s8(rzY;DgOpkxqmJpda%_0+Nw57pTh-T*w@uY!|vI9|~ROGUja z$6ot-V_pkM|JsHx|CFxU{#3fadFSwc?)6;6rauu|vUz`!?B_G$*Lj38nIS)2I z`)fU0>7Fq-_21P^{hxL`#n8pFzv&4X40UP86VjZ@CF?GAh{MLEHU5SA#WuaHod{&T zaDjUPbC+I_^yS$GbkRurAI1VdM>NYsYA4vin$AKgX^$;j)}2oQ3%*h63Il=x~ z-DF8D^NN3xifW`|@dHMDr%xGzmPZ%1um@E)wo@( zdGm#eG$-p8&k{2;104J&J=D5er*s)4XkPbj(kmQosY?O>^q_>Jg_bPrL0Yui%d4U# z&ULra>Rfl_16JFHGu=}B`2yYnyOv}#L6i%Xoy^WTFGDU#w=K~^nV5vTb@F}*fSz)< zLauJ-ojw+{{N5;sZ~u%O02ZObi0t=M4lr%^yf-$P7?c4v_+DVs+ZfOtN28lc0iWq*w0T#w*Gq3bNWDalfoxd=1gmY|{} zq;!2=kkjp>x`L)TT|va=Qbf;EsYf z^n6k10UdjFB`k|Qs!*$6J7yWG9nf#kwntai-~GCRwmw}!tD)BjlI>M<`_kyuQ1~h9 z<`j;QE^0DGVOCZhhcE*TgqaH}2s5OEFnbQd3~?aL#u?9kP{UMy~74)RTU(#v!!i zzA(=_Jkv}F$g0LaFOpQl0k@C{wdrQuVq$0py!(w-#2rM#kQ!qn-(jOZ4vgywW+SEn zJHSh(J@>KN8NwGJ{WuwecrpoRe8dlRQb42HN4F^LLxd3XT30h?%Py$7lvyAAJ%ij6 zyomaR=MH5U0{;VDPw3nkuE!O!#r0U^Xl!0PBm6$qmhxfX^t@vR2JPz zPW(naN6WPyV;TdS*D-J55&PuTy^Kd*p@7bsz*>t~fNauY`l9If4`YtbsJzWVxN{ z22p(EZ8(0~C}63}BumY-nbAI>8-jgZf_j}}zHY~RN|1?MMO!k*RCb3*!DYIJxSbds zxgxWX%CwD0F<0c{zKClpvySOi1Y&4H>On8*GQAQ%Vt(5}JBF%hy!!RKo_e2qyYAG@ zq}*^KU+4<1HxB<@%MlHTbnu5SL;}d)nYQ*iZrZ1DK;?=byPN{LRNQZ-fmeW;h-SJb zfZO7yE=Rd!J}PlxK9WZ<^N}15n2+R2%zUIg$IM6VT$qn!KxaOZ0o`!oRFZ%_|FuBwenxTL^^KDreG9u9f4T1m$ebX-=%*0uUt9;T0=Lp`Ss9&2+d zgNYR}WK|BcU(zpZ(%2}&!vctgkRwYu%K}T&_`_I}(lEQM9igE3uR5}@1-*pOfs241N(hu`a zeYBSwKBB!?OSg-ZoxwHH5en}+`a+PjDwfKQ3K2#4;r`jhDx?6JDVU9ZZf!@*MJ5*C zuk!~GMH(V8!5&>%y7h+|0^I2FKCxEbbH7;ttrfF-Ra>cSH*)aYQ7&|~%lKl^{KQTH z;G^&7)1?kT3_h`s0^{%pJy=r_5bqmA7*u`aA_!(UeK$oNHER?COzG3I82lC>|gh_@D+VQL;Xut*9IBuB*aR^a>#EcEzhNW{Xdt7m?LIpga5iwGXKXIAa zz$6Zu&eFKhnWz}oOzc@))MEUN_9McyuX1*XjWj?Tuw3k<%7x;7#!SAiTG-PwYu=g` z$q9l%SnVJ21J)dBa+fK!CU?E<2*~o*hUGc|o_tlBimIGY#9Gy!$6$u2M1#r`U>IV@ z36wpiNxZZZ*V25Cs9VySHi#jK2g{po9Alt+T4R76@Qp3FSdFgbDR1(u@T_r}Gk}L<1XmMhPF$ZdXG2E7|+xx#w-gIYBT| zIe4ej*j6XZkR%ngia0d5EfQsZ>W_pSuv|OoqL;4Pv)vcC3_bO8xNMz5qoz>gU;OFI z{LpeMMJ6ayrKoQ8C=27=D{OA2^H%~I7!fKU7oh@7)}aEVEyOFhyN)-Z3vsou2_#~6 zp}B@UQBkJDP7l@=f?oR_Au-d4vkW-1Jurt-*Jn3?f&q$A*qW^>4QiZaMG3%_5Ss{RuryoiT`Hi$`o#P@p5eQ~9W$gY5qp5Jfu*wqL_au}~YD8w9wt({2R3g_fjp|IXHO$d2a6CM{_MlnK z6oO;FYbEksUG>wXS0ejhKd(wT<+4$U{F$4re|;tLa9K3+8!C~D03}j20;;f4@T!zZ zU&$$z$VZ^J|5{396BQ`b_7%wBH&Y^~Ej7|_r$i3lt|8F`{!3857!;YRxGHM9GiOP(o=UT5X>VX1#t`(l z?oviMwMsIL$hc}ZwLPVrS|oLmorRqY3;rRe7JEzt{PKshU>da0Q|X_UU2CH=v|y`I zUQz9z{Jy`_6P%Bir#ld}mR+k|af>9^dJ044^7NCIt=8I+pu?J)`uUt zP5WaiO<%P&9KTIvI&u|}xV}6=dDNH3DGyUl#_2^09cnn0k6-1WJ8+dj*Asl|Di#{< zO~ZqFf)(OGSq+R|J>DCA@3%)&CVA^VT3O< zETd-&CLy?nQ93pb0*23a9TSpfBF9vradtIpw^D5{x%0<+1Z+dHdpAGIX zlw<3AQ6Fs5)?i>&yP_>lJXA6*#dY%W_*F5AF}bwbWR7OcXRZ=&V8ZKy9o`355oq4SF($DV78Men=q4XXQdtM$1LhWGgRQN8qNQ)^!ZMBJ zuKra4y6CHt;Ubz;7-AC75b7msy$HOHDSH^pEy1^+g4DIQz84NX?0&2bDzM_HW6PkQ z@|Z6VP#(8(PcX#S6K5ktkpwMJqtTS}Gj(I2bWfsHWpXl<#Gm?ipgW~I49Ah7PUtOn z#AvmVaNz{7^ZXF{I~EG~SVSyR724`#w;Ke~y7EZKr$Jy)g|lLQ2oa7Ks~ftV#CI7# z$qG?7#~@e|0_f}SXfMbys&!O$V^Yd7e+t1VUj?;xnVI!W%|osTD70QF0L=7zS4+G! z%`mEgGhuL5}HNa2aZh%|`~l1mO*lVV6ZCM1mtgWoz&9Fh*7bvI<(>>it2 z%_3Q2T~#VfRggoBW`}wzI3;ROa8HFA4L6fZjeuLu4}YQ_7Pf}-^%!dP7{Ug>SG~r_ zYM8>{JgDDTOH+*XpS>ykna9!q<(GYVi1Iy#F-|}~duw=~$C%B0&b;dVtH2z`dOFO( z&5?W!xK)b>(j`ss}rYHeP_ zILdTIazRuk_9)x+Cyqb!8Wy2}$^{JKT;y7kM@vHp=i(oHLl5czGs>#}j@Hb1xfzeM?%?FmG!Tq@odWY@7XEps`PY zI$|!w%;h%Mj)E%NgkcM5nD{~V0!cw|Lsv#~x!kBCw?yCbd#)YrjAIGbp9|wZB|`?< zp5ikEIYYGz+hz_l)5}Qt+5qeO=g~e!X$OnD9e-}8-64>Z`zIoK25WPGRSO%p=2&P? zWV=5R@(rF#$90{u9M|dtcn~bfakdz~1KG!i*jlnq-uFCC%~^+B1c)J)C}?U|=)FfQ zhZHc1HN>i_dZaQ`owhgcytU3sY!FxC+0Pyqo=Zy75J_k8$iwZ|_ED|Vx%fphKgpZG za`6F%IBJ4UX&-~E2xhBSYHHQ7-+n6&f|thpOT@9-OQZg!5&h=*uy}&wGz`TDm8PGe zl6N_OAcXiq%*x92oo7UBur|iC1W5|D3h0E^1;P|{>DCmt@La(imikzUTyNy!heAit z^CAse^rSc00B{Nuu-KTypF7X_@!=L=eLfgL?wMrO<=I}P;VA7Y=hr~!$?#`wUext+ zFe#Cogty9zfjky(6K?N{_y*^(T>OBoD@uwg)}I1<*mPS(d~9~{;WNQoq#1*j6liJ*0AQBFJVK0)Q z=!n-aS(OToc>B4j6E>tlQcR`7K3FZ%-bGa^Q1KcgVBE&Cj(STAsrQ(w!&Ja76OOZF z^`V}WdI?9i9ubZ#qJi{=L< zsj;}+lJ&h=SHd_J{4S&Y=cvSbVz97dQexSr{`I|_dJU`uU7kYJe#ZX zES%zbRv8ib2A(aVBo^V>7SFT5ES{C$XHGoJp8^Lvh-WF{Pq&K?#hIiN%Xyx)m&LQ` z6RohSJSzm_!{d0C3dOU0TOvzSBhS)Zx_%UKH7hCuKXb%>FoB7V)ak<_ZXrR}S*DDK z&rgUPv*43RGZ#pJ1(lco*Arai=qa`QCW7m$5?l|Tzlh-aDgq}JTw0(C2@QgaDOxyQ zhy?k0`u;r)(+~!MpNG~{X;+0OVn0H~+ZpwPsRrujz7ah4>j}Oa1Oh{7`TT_52`UnW z8JBP!=69+OiO{4XO>s?TV05HN!o)4@gSiTH`weQ%R{e40`2<>VTt5|6NwVE|pDEs? ze%VAn6lF~Ft^ZXuA#jzm#(jB0Yh|G%3cin73;1$RH;RI1Ns&k-nU!&fOmV`>}PS2=6*jwXkU z=A0}_l2&a#cxyrmq@uZ8U9$D5WC|u7)fahv;nlYTem=kpm7b1;KBW3;o!rkm3$Y6lE_EP&JI|&zGXI&z>VFhn13GX|?-%PWtXYxhh)b9A~E&9FkV& z-;f@X)|RF{!jGu=khEtZ^YJGMk~@^JMhkSRk~(2477IT_2FdG2D*;<~*wR4kNGHWm zK+GucxLtat4oxG8iqf=6MC#xzMo|->Il^hwsah3s6Vy+NR5*=>nGvv!tlvC=Tpxht1)c}jq4Zsb~HgjPC z)XBF(olb9Io)vL)>ta~6Q>~b(2_DoZ#uMl>@|R6Uo%oUG;~ckigw;wcmW2$$=T!fw zHeY{`l{F~b`bowPvYHbr5FTWFo3|n%L#E>(TdD_H$+|=cg~=F3n4cziq*cL5n_&kR z`IxF1o!7@d`(Jq2Vg6esS3*2>E(G=0I>k!knLubg!M+Fy0#G`}>Y31~yae~@g>AfG z=O3*ot#Aif@q!j-1WEvJG9g-m|NT)``=faN9OT5)?{u~J$9h#S@z7kLPWka)au%;X zmLyE;u73QN#xo3Fd|$Wmz6O%_#Af{;b8IF_h^!FkqK8R|2u$=u*Quiu%z&$9gLh`( zDy`#NhJ&iSY0ZuK84N0`%S(|uoM|P~aEMgIrhN(LBm`u$wlx65GPO~Ta(V!%Kkx|2 zILrezS7UWpP8DO*0*jqQ=2Qun-z9$n5oZ*MFL@@Od_JLIELvqx^EoZbYRs#~Zv21( z2GmQ6SdE8NBkQPwHbgHLTygVPFT>{ z@4i`mm<`K(c?HHUe$0hktF)oOiY1$TRQ+EfGv>mY+=_o3Ig>o4*H)eSwMEfn;)dQC z$pVp0c+i$1i`nd3Idzo)Y_m~lm5|qsfRHFIY8RX;qy9IqW+X%yk_TG6?AMj#wPP0Q z%owZ(Z#B6j|MgTZ4b{mdt%dtBR7s&udya9IfR9wjoA?wNt9_?;`L4_RxAq>ekctvD z;;DC{e=;zEFxww(3f8;g0L4wNI7IO+Dq>=bwg#6_jL#3w<+5yRu$D_u(VQSaK&m(OA(eGmf!&)FSg^SMOOTu->B7SdktFk z3Rs_hyZ4U`78z{poV2_Mu`d`!WQ&;Gjbb+bsEwkn@FXrRod8>FM0ZIZR52@_VzOl^ z;6xQ6duV!%&w1p8)H=6n-AImPX&4N)AK@7dJaB4+-3+E9MyfL#yd`q;(u$dJK?8nh z8%Qh5a#2T2;F8UF@`jN32_*)kXq*&(`U2jkj{?Sj5LR+N{ArVaP4mppK0gk}7lAQGF@PrHq(yd{%IL zhP_;T1~-V$U?=eyNEeSmp72;Ba|KMEfr(srjfuXQ*Wz!#$(enspjR19+gSd5h_VoL$iD&?odIqPJ?tW;R^bh=yX{4LU{ za&T^|x^g=gFh+`Zp`XJ6*GB6$MHNk*6gdKRJD)OB9^g)Lu8B_Bu?nawWBwM40dBEc z)NfuL@z=e&-%7+AivW|o`h^lN3+J$VRza!*IP+L5*30BC?wX)0$q;vo@ytaS3w`>y zjvzVyU@a{m65ri`1(*nwz_R)qQfN)SME~hoa`;&#{8RpVbY%5}uI}J6{gmzt@TBj> zXDJ%YWBa~N(ZJ4FqRT6-15&w}bW?;FZi-4{qyEh4C^Yq)GRrOBGy1DOX;7|1hs;@8 zxrk6a0yK2=Aah2mJhUmxtjuMl&I)8*O9mdy$~J%iT56SRzCo@9Qa(O@NvTz*7Lk3A zXmwcC+F)L@!DL>u(X^5A9YpQHngt*RB!H=_8gdPR=*0T#2BC;}$zWE_W6!c-h<|Zr zS*H);CSXDZ3l3m2&$3I4wb+)00HSyzzKuWf`+O!qRng2-uy7ckWZ&9@D!?^5AWvkc zA$NnrfG1<``<%ueYGLH{3GrgW5+s6T)n*r+RTL^~RIWf@a8>}WmXI=j>5Qm10&o|l z;$m#5axEEOW%D*BMU-d}0T+Wzc6fMsI~3%Ssy5#%wPHZBu~FQRO+J>X#6}Pd0G|es zC5jCIWNiZgE*k~_oEz?WZn)=p1MVHMxGkAwFn;eYr@`!GH6`V-JG!>KQna&5!vab` zSNzE{1ba}n!?3KEm_51bZYkxjwb2?MJqjH$=Ya)#VV%*wzRHYpH)c6fjK6Kz*q{nF z3L#8i6crb3+4lT}#O^ zA}xD9gyVeLLdRa>J$2g2B1x&%~nIW**sSw|LuI_9vx652_xV*GXm7~lc}zBav_K4!F946uy`?_0t`Zq4Q>If`>w7E+)UEfIK=Ko zI>hYlLLVzIO00wfph9e5t9a-lE7ynrd09DwC?VpK=(7@5<)|0p&B+++BVzKRtuxH1 z$Dt&oKHr5jL%YM0?S%{j59&&1a=yny|HhVOQ4mI~Dm)f>dosM?dd1sodyAg^rU4ZzGD&!!Vl1W{hDVe@$TZ)SFD%lT$HJjqLffI*-*T zUes^=;+V+z$)+90I*yA(iPtT{9GqSskDN~p1h+@=6YI73?_g0#IApj>CKm=Mx&=e+ z!DTo?ND()h5|xP4(!P!S_tZCLw3G#^`JeYTju`%64I@_ltzOjxl^0`!5;a5LP;y#H zKGY+P6&Eo(JYT0pn2zDc26@SIlV5IVGJLfDJ&0n8v_P(#PW|5xA zT~BT?yCtJ5!bu0P4Y?ypLS@4`K!Z>^YLBw%4C@y&JzA9|fkF-R00W;MpaR%~VLc!- zHfyiYw@Hd8ey`B)w9%9pIg@kZT{Q)m^|`wtd7Nd+HF=yI{Cl52%U*WiW|H-2@3QnA zBD)r<3PoBNmaaOa+a(#^528|xZ|2w7x1|mrmi2z}o5~b?NJXa^AEZc6l>(k)fROKY z3{XboH^FbYRuQ1cF)yl?tTUvg))$#%C_{PLmB&?{a^)#4BRD}wegZmNg*5TvKbHke z6AZp(93pfES7;{w6&Y2MF>ajcA^rvVxwLOJv%fK={eggq4~=Z7#R@c4UFN5Q;Nj%v?9Kae1$38*T0 z*?GUzun zh5%JyNxWa4Oi=2V7^H0hhni`faV(6V-%@4;uq9}RCpk>wB;#0Mg?JZhMtts(0m;kU zWt0&X3@$z06m+QA9ZcoV4_5I4#IuB5C(knMfVY?0;=lSm^?ap6L@YdLt&@!(D(il` zLr9@3j!(R)YjskjxMEa=JHxzn+WvYvg!+^WvbSO%ncX4 z>eMT^2xu`}phh}WsCFoQzT7=u?w&8NK1U0QZ)JE;MsDq5jiX>?m&s*`&aQJAa!KjJ z9wtM;JGoNqUR^51=1iTnbVj`QveF6;4npxM%8&%pZw;P<)JplS!54MK@OVO3_8pJw zy3Ep*ho#q=Us70ljU8bU>XfZHJ%0J7a0(wwaGRm<3 zW*PX{4B~Vj+p7(ezr${>9%@r9Ouodgy#K|?SmKfF+CbYdk_zk~1=^k&_T?GMqrN;# zc}zS3{bHqJ$y&`ehD?K_a!Fn(uD1m2K(lbeAeq?|P^*BBST6Oq2qN>^RcO?(gG%MYIST_=3Wj_<{_g<{T*ZI2s?-6w zwnElR5k$)^Dm~GT^~!|!=%8dt1bZcO8QJxmbhb6zNA+sp!Q7VMNo#5#hY5|Q26IX? zrepm0JH!m>5A!o@yGFkdS=KV>PdhdAke0!V2(>2=nKD3D<_sN6Gc_UKoN#^cdG4+c zzKp$IM>+BNAvSu}+1Np@WDCPCYS((?$HZ zZzEaTQslRtHN+$VXBqH}g9F^q_+BC9AAn7c&-@8$rs z8khjo&s{NlpRNE@(G`GBXu?IYv5A-N{7S!FS59hX-9tqwBqC5v-Qo%|#)*LAZ*@2W zN*QAY=b`Z~780AFHJxd^59Lj!+vIo#&z0^*ng@Tf2)iHU5qnSWI89+yG#cPM5Z)w3-+wgy-5 z{g=4O62~8S(YiHwD|N5h671wcew!<~EZY+7-~z8-%4O-6U^^Ft@r7KFvAtY4;P7fL zjL;lgEmx`7!=P;m-a!*m2yMjtSYZH?1x$)(2^N_XUdNWmI{P=(;J4{&@S7%^P6meN z;T^dHpbs#QZwX3VnXuq6v)3~9YSdU%X~(!RbJuCZ-PXAMO$Nm_N`d?wf2Sw-SBr$Z zAuo}_$+OjPx2NgJVt&?XxZAkG-H>=l{#OWhE1{Ju+^qyNy1WaJJyVQnUtmETI%0m~ z)Q8ecQFZcnSibc4fEqknYSBRl2-8p^XzqUM6~f)D8WjJl;(2Rx!bfQfP?v5w~iEhWK(V3~qfm zMl8t$_j`f|>cZUyeYo5EZ^QUz@?wH;x8|@mn^*~PQ=E{>qm&gsWZ?)Ybc0>0eAI`# z?MuVm{@jJT$=@Cg(e;FIw--^+RMEn4xBWicZ7dCUTjbToa5ugv3L|{MxFtgt?j{7M z$hD4*f`G=bHrE*;ui|29=oGW<>rNBy)=ZbxaJMEhtcJTa(BVEC7o$TBmtq1GjhGw) zR?}S}5+*M=--o+FVU6K#+^}#r3tu3USW3Ii;clO*5i~fC#Pr_(V?nsvb4UYH!y4_P zlT^dqM7bDNcs7xSyA9OB-5{LB!req$jp1&iSH&a~s|$CVdKKYrp0oJ2f4l2rUAWtQ zqCyw$wnxP@+)V+P`hjvkf2%9vxNuxWqKsSwoQ1n70?vB;s>0oBuvAi5ymTnPa=2UV zy$3g*L4Rh}p<<0ih;Y1?sfNSfAlyxix@fqY<15sNv|SX2x^OoH6ya`C z0GR0?sfN4N%`=!`kS@{(HCPSdZZ9eb3q8Vuw$QCCSc`DCe)WlPw~DSJ6vEoRr*|n2 zQ~r@J*TUd9k(O|`lRKlPa5r?2MZ(>Ngh8@{S!kOZz6IfK%_8|!;cjC-+|5;UO4N`P zOyp=3z?Bd$Ye1;c^u^>-BVfYazN;P*?lxPGA-3-gL#TRtgc)hnx}uKu>8kae$Jp`L zZ3_K&_?3xiwFthJReIES%?;cj5AG2E>QPZsXx5xFqj4PrQLxZ9djhP%;B zW4Ietz4zS3!`+Mtq`@Ns3)%%@wd%s%-gO3PWV4pMAy+#_q1Ozvb>6V2$o%ErGxO{r zyiYLCF3&r|EfGcp#U+zmTfrPF!AbYRvV6wbZ#geVOG6orxExRpey-y&o;;yec31!= zSuX14!B~z2)B45rfWJExYp;9U|03tK)NOkoXBp|-W)}epS;@$2?114a*nA6{-AkO3 zqL;e4(7+ll)Qm=}B@2hc=vk+GHbJ%6Y|++2EMnf`Y$bo+brvsA&YUP@qN3~UI@j55 z*V#3$ubeYz3ko^0T8kUx+tZocjaBaUw@UOUvNz=9Wc2@*6!ITx$GFI47Dsy-CBf@# zWQfm&S=ZEIoxkEH==K-Z1|37s0O9wfC-Fd+(}30FqFW@NnECmb}H{CrNs@*NE}qLDn>}ZdFvwRrXhA zO*yFJ%DH}#ctJCeIJ*O7NB?M)z3(PGS=-(eQW$T)dL4yW(IDoLvC%gO4<3Q5l>QFs zQA>A6N4d}bAACNSTOh(h`UL4=(u|tI;22+9V{s>ZutK+GU%L)*Vp|;i)j@tIk+twO zV!g1ZS^A5l*^H9)@H=mi&PYMj_LA$NS7PSYv zz#F(fpeH};vu8qD)qT^_zL_H-U)3EAX;pWewCl$f~G%N*8W?8EZ;*O(0Juw@R+(T>R!034x&%zU(MB2akmCI*20XW;AWgU9-hx~=Xxk3M-5dQ0=Dzoc1JUj7 zOP9uM20J3ER8i6`#*vC7%EdU<5`0PDW*3XWX}s~69;VCbr4uIQ!V=3 zh*`CU(t?1Ah8A}iLm|fTVhcZ{+6Z@%P0yCOy}-33`j)l35V)4cn7suXaKS|(O>Cab z-{jLQ3IQ?(1%R;>0nl)uua4~Rmk_<<&q?MN9HMwC3a<_keRq)gLl#rGAIxZk$xOa> z^Pa5d0Vucgz_7EH2P|+K5AgRbe)vNr7XseW=)Wq-Rt9$G-Q|<)-BB=!0XPPL1f8Vv zlcW+k*+=FJaAdtEQzhAv33WrYB7No)+-p#1_Wo7c1LNtx$-QIe*8X=9b*eqcL^3Vbl?U~zE^EQe8@D2|7nb-I7OgsD-eFWgsVzR0R-MD8n8bbjUOqs=H~m5Q&%om#-; zqIMbNf|0lVsyBXy)I!24K z9USGUcYF=@KBjkyR%&>P%oxn`FzYZdLUzUoGhv#wm>-U)G|z+j+Rr%1sO;lf2Kf!| zAgs66x-mRcnnEGau(fyI|dD1ubQ11VQ2?8orv#>%qce(8*)C4?ui zBP^XCHHIbRF+59DSOkV}B#YabDQ@9o#sxtk3;GH&6*yMo7j$bC5Fy9PY_W|>VEtwf-(X8HibyFB+F9dN8>*#ZWU$I0@6mRu{8>5+d0p~ zA?TMm{%z1ETA~M0D)=V$u5;vw?z5p=5H)j|rSu&{Cg}%a_v#hQ4qJ5=7HrG1-Mrfd zy??!d0^nSvA6QtFzoHS;WEoqQl41*8VzWG&aaSBgN#y@y`;9Kfv^MvLHb+C7`}9N> zj98mC)qEWH!1k{^>i68)@obuccc_58*>@@e)7Gm3Z5Vh6&?KO({u3&<;aXIeJ??U3 zs5T_kv-SRjlfu#LTGn7NBH4^& z)<&ZZlHt8ki~DE23V@OtWVnh3E$JJyq;JrYzCla+1}*6uw4`s)lDnKD&fm9&N-6pn8 zMNqJ!iVeis0MeFI!eSUID7QtWc6HSQ*P8iX!zZ`&VpY!^L=pgdqc1|)@X*5O3lQ-7 zbvdVzF*UJpR5%b%z(dUS5XEld96^@dD-F!=8m`)2Eu-sWz$4l^swXWhW|`gBNb{$v-+nSMx{lIRKNm{tt3qX29UrX>}7DW@(PQ?5)`$-)x?^yDwkY(W20XHe;9jyWKnVt<(w6H^pas zugyqR(G!x!Px|ei`HFUh>>+iRCizPgRrcj2s(_)gcG*XzZzW?T4FOAx40&p8M*X^2 zpe}EDXWeHMM>}395mFWE*Onu6MH-5;V|YI;Tr37SQd_NiK`+651X>!=QwMXCfhj;f z{W5*W^4P%KL|nRoDKj7dW3bQ?%r1Nql~`Q6WF!5RqDcKxHkq>4qa;bB=ViuH`>c)d zh|AV~TTAaGT~LdJm&ijE9MqHgL_Q9h=C8eBg}LQ0;z zhPo`v*u}CgqAttwC+HP*S(ZN+Pg$=_N}tX?q{{q3cglMeO;V>SsUmuq80St&-9h{I}55^L+bY{adrk zS_kXj>PH{$t*^NUOcy?&>j-&xW?E>BU4(*uTg&!Is>A+^fGE?JXTmdC4%mD|QS z86^$lp5ZicD2PmriF@zC1E3jnTNap2+!I_fZpck^0~jNhxT7Cc7DJpkde0Ci?wgjy zxP;?DG=NY4nkN)8r8vjhYRSe2?c0vs4<6G&UpZS(D*BUgMLFlGq3tVdgma)5`!_-& z{QMKUKYNNVSRd$ydb|3YdLkX{7iZu5&7$-rwdgV~w~F&9`&_#+HD{jO&kvkdKmYZV z{j^hq#``(ja{^}ZqMwMc=j&(Jct1hN1Q3zqHWVK^C5UJyHWWWSC5Va>ms|)#G0%gD z6TJYDmY)yA&T$aIBX6e~3hHSb3M*|x(P2aJ54!KYqr*1VpG0#XKV?S?n)}%)JBpR2 zv7_^SM_DHp9c7|;zK(WG=qPWe>L~RzcGOB+N9CA^vPX3`J{NsyFTOf@7hthqzLUo{ zN5wR3))BMa&cid-T2i)3W5@BsDsd|raMdk5JX3M2jLG&W+osLH@X{UxEOR~S9*&>u z)7nnybQqJ%sHGL7XX*vHqq^ypuk2Vip7;(Z<2G9aJBvA1VE*cCgZQw%hq_QvtgW5Y zGi+(%OQ;{!%-T90*E-BPZ*Qo!xc2(>Tg4x-p&Ks~+u(YB97fQT5gVFF<;UnrWdriD@I0YK22Xk;l~5JCFEMQF+xpy1)Xv<_ zH9$Up7dN$2#|fBAzuA&xT}P{QM{UyTAnKbwY1Xe3Ji~09{mD}jJp6B*{pOFIO2{sn zNbnbVf?qUF@a7VmTF45|LCAWvkAsLE$3Xn+Q-X;0X&}Dk6d=MyxmZa@XC|^sHS(u4 z9`KA?t>8}vu8}{n^-cQR5Foz8fBuDHkpW33Yoa6BAM7c zkrxP=H$vNg%AU>&g!bSmd&;e^6MA~1@9E0%p2CLD*VASroZJGc{Bb_%DkbLJ{ zsxV)&7XR57=kf|g6YH8i!B4EA#XM{SdFl>v8 zk2z5BJb+fV%qu~TaUbfTkZos#1H-q!M3>H39_zMm|C2k}83o|F66IdY@|F#%oxXc7RtaqKsHl&1X zg<7p~N}Qr00bE#9vPyEuCuL4Q&YWH2$ugw+DxOT9)df6%ND)|o>I=l-ZaIo`b9=ou6s^MQA!QJl(@rk>&8oA^xu<*q(| zpwmoUBaC@)QmFuXQEJl9zHUxHQh-BT^m7wcf@+<#b^qluMC+*fL>oTL?)H{fU=BXH zshktkyk!A8-jzU!(%+0k_t1Oq(-4PAtGwO+Af-~qFEGUsVr+9dsxO#WkLU>t9@djW zs0V2dZEN}88=-L;z3kVH5xzwuW%QKVm(;*4GeMf4>6iB$k)$JP)BM~e(N;Z)^WUZ? zo2v%(dt^yF)S!#qyfp!601Y{^gJ-hIIGd!wfr{r8e)Z0$hvCUC{7T(+E-yNy4E zP>RE9g80b3xQeN&7%t&fY6QI);xka{`H0akPR_38Sx>~~yePL+OCJUYOLg@{awh_S z(BdFp{=#b66UYqFTJ>x_MQb*ml$}6k`PsBBo6y8;cVd8hgR|_z%fbNSBTlNXz}A2T zuR2pk!;`=@U?oIPRTs3I*ZX2A>x-qv`!WE!)eHHZtGa3WEdD=-|GW9WhyP!RRNu@l zg3|nGoa-A?e2?s@b@fJ3t=E;-bS80vHKL0t_)_np8av{Eb(!Cj>!XJiL6TbMOay= zMI8ZQEzYUUsJF;|meAta^%kr37Q5A=+8RNNwKkBIGNW6=C!wVcE0Y`j=LSNaj5zeO zk`9*CX)1S;M9b8kNY2MAp;xdwwef4kdrrhV6le(7ZeI;R?bS?A!aO3<`+E@p^7n## z{JpXQF3_7MClt7D(i8x1DvJ-1i2S~%I*0!|_+RHjo>!-}4H|u>qqsUZU1oLX3n$D)MM>4WthUHc zNjhj1@Lp!q5o50uvk_qiN--HRcA^K(MgE^YzqCf5bil~@Zsc(WqnMB8<>$LEDx;YR zib2%-SBnBTLiGN)-q{y?C1-Ky{fXjtX&ji{G;5&%COS#qpOj|vm&~JypVQ!t#Lsg! zs}ZF$KD#Z-=V^8WxQ)d9$w}Fd%Ve&dZfJ^CSwm3@lUlt`b5-)*xR~6UB5yk6C_+)Z zs2eZ%T|6KsQ59pnzUVsB*JLWf7&b%r6&k1bFra9P4>2tKo**0 zr~Htp$O7>ve+&}u0%3Al2g6r2q`K;POh2xy zx6IGZ9RDTmuv?m^YDl9Z#0wCiQGxXZSusUvn`{u341)qknnWD*+#J9XknlhLUn5w< zr@v9%5ENS%fiLui3MY+TJ|{m%ON8VFNQb%}t%Xab+0cA{tVZi$kz_E&fF;4+r^JbENW$_gu)$AcgfZUD$%sc7MH zewG4-*&1sn@8Y}>#X<7GODtd6UF1VqSixOJ_Nyn(|C5l&O62~_E3?`Qnif_x8;8!r z2kaYv>J0>6VQQIb%+#?t{`bdTsz?SVAez7CwC-sdW zHFOkqHt}L`VYh^lX28Cpv?&DTq<&2`3I@Kae6gU_iKzfh0*5JSDmYGqm~`ONMcS?gt|Y7G^qy^3}vN^EE1@?s15Zej_8$Ymze)@i=;)CRb$Wv)?v8_3o1_)~(*D^hjV|5@`)Ho3& zD7JWXQB|bGURek7`Z|!SrUbGW`qoK6+T;X~>@+zwkU>Ut(6C9$L-Q2O3x{cJc*Y#m zY-f$5*)`Pk{8Itjy)_je=QR}oho%BF2u%g}Ni-FJK}`i5$Dyg9%})i)51I;?5jccB zOa)9ajk5qoD@63=M1?iExB@<$4;}YPIO`-K)=D{rRO-Yon`Z- za+omx^&%y3yU5yQ1}=*N#uie9*l3A}^=d)bF#oEYbM@K>1Dn?IF{LNLosSmo^)%}3-*?U%8*1wP=WBVpU6H_rK*)2FP&q*2}SN-nZCH0B+A)sN$8r3Y4qHDvbYz zs7?!Gs`$r&DXM^bzSU3#qh-b2U;Q1Pq%%3%Yx_AeWMKHb(4z~=un&dy%}BA_E;rp-_YftumMV;+Ftq7NHxWU6N;RY)uH)@*Ck zGDw-@Y}GQ>&MVj|QNh8D_)r@;>{Tiu^P6&DS{TrB)$w@%0GDEs7951*+DF7uk*Rjf`vYkm`yI_@tQt7A7%qw%-EoJy?8i9 zUxLsj1nV@I%=7vA1>h2?SJ?8=!Q&ibye76t_C^e-a*=$vCT1Gc6(Q{-XCzHNT&6#` z7Pw8wOQxy+YUD0aoLi|BrE$`ZjKQ;^Lt(T{N%8y~Ztk06zL71`z3US?Z`jO}B^=$} zVkyIi1t@VXfQ58!hKRPBA7OWbM;e^sFiBL`ZF=dE^|Lhy*&eR{sI`S16NI}aHNqgZ zHILFck5fu^VJ)gB3XK#D7Xs=Nqa* zZ4y!&?f}aa;zL2h@t65pAhc9F4XJR9q&i4a(ZDM-f)u45RIVB#U3gEjZ=D}{Ph_o_p*{tnBHlnXW_Up)z$-3d69TOy7n9JgNq; z?c@-=pn&!325t61H$bdPEHa*=hLW(E0 ztW{Nk#F95J(~Eb*Q=b+}5a#cM**|4zHkA@yG7{2+e_*;-8JYjXc2MhYpGT+lIiM8r zFcGD@F8~+5_i(i8V8BcRY8WtWdwTk65G#wg(JMnVVaVVI8#3CTSU*FiEj->ThoWVJ zrr`n`dq7`v_Nm{?exkvvmL>`UBNm)kzCk*)Cx$P*7lOCFNW^Uc1^Y-B-iQ6jAACZs z533jA)6H^Dp(6Ub5PVRv>fXx7L@e7ynGgg&*n}qbfX-7ljOhOQHDS<7*{6F&R>rf^ z?3XA>vFc+h_e2*Ilg?MXRlGWJ%CM^k2ua3q>SBs z88$gjFwNOVDuxWj!vHe11k-b>ot2EueM|zq5vTQ>5y^s>TV+iSOp;T!B!KH2ZV39mFviK@F9}Yqu59> za4}QflIS2mNbriCi$j=0r9lJ%XS&t2g!%3!nUM3Dics3X5 z9l^nYUEV39I@A-m@Pv6NZGPAZ!x<)^!g1!C$dufJ;F+&r46tJe5XuFJI`^@;K~l-) zRFHY3D-?cAs|XHwetc8lAiQNRIn2%G$V0HOn=krz^_H?fCcV)gnZ_%8Ld2I`&y|z)UHff(eek;2z{F?aq_e5Y^~z>tVv&GMPDIGE=T9+Si-5KWEt$AhFX3A4g~zC*n@f0(mlxQurUSb z+1|=b>)Sp++fp#Y)X1-bOHvb25bFE^b$WbIoyP}|+7i!C)CDdyf7fww*l?jL5ZC=k zclBTMqs~{gnNcvy`k{E}Vh%)o=t&m!F)Nb7CM#!>6pHM*Yk8v9Jt%piag}ZZ@Rw)} zZe8CnK3m;AK3U1ZH5`zziF7e>aVv3s;@SqNo~Hy(m`osaa(!&yum-yxlZCR{&f;Oei83E^GmP56H*e*y~|<-1B&p72Uy zr?bCX1t={za&69FtBdv~M!M0?NLlyT>G0X+>+CcsP6R*|lwJ-49@U#@Sur$6X;Z8f1I=+DwKY4~q~@&BT|{ar4u7c0mUb2=wi6aP z$~M6J?b-#Gu5l@TLAUGY2cvA{D#-l~?QQlMP#jZ@?q#UIGf$e>i@ar$TgAm#x(5pE zTMSE7ZKJa%w(HDjg&S}EH*E+~obm2|QtDPdX|c1QHxjy{v!MI+gcn$4azU9hYsNvP zEtt!qm6cQrw^{B1C2z5$6-J^p5jf*-wfs3tIC&+l^I%juKT{_E6t82;Ca^Vt16p@o z7I?Bj*+J}}24zUk@aaxV`%ib1)?od$@|w&UyIX@r5)bWgNHT;YAvuSDXbicL+szo- z=nTv8%{(93!O*2_OP@%CUXXJDHX)WxQ`Y;h6}Y$5n38dmBOpV3GWgpnnm`&2=y}S1 z(y&Nvlc1$n1J)B3`pD$XmX^9hg{0N12V2HL0bcmdfEkB_!=`|P;FL`t49A57x|Rmk z0k#{vOT2?Cdty1FGW&;{q0Hwg@fUNn!rA@i&xd1C2EWgqAv+*t$5)HWq4Qm6io{EQ zYlV=gD?=1bj^h^i#oK($4!xvq--Dlz++2a7$dLBzeHV^5 zOHFFv)Xl2F@un2k@fo{mOol>2>{NaGq+TupN&vVB5dZ9)7ulTeCF|eN%l3LN(F8vZ zO06+N=3;huMMoBiuxrFXj8^5!r&6QI3zr^p2(iKMy;sf)2N)I0E$yWq=ixkRzb;lxAjjB zM($O!J=PgOU z<$_yCh-*zG` zWFL3~nTLzaBR=!}Xoa-M0z^;E865f1l>PbZ6S0H8JYFNpWrD7s1sX&ojbUSjb~hqX zuu^#XVF%Im(r;}18%m>S>Vy9A4=VnH7Cs2Y2SpnQ*6e}n3nEcso@F4sD z;EVyd6aCVhQZBi?{iieH4&6_;XicpPM^)l7F11Qf71N+D(xuo{uLF%Gnd5R=RUfm@ zl|^Q;ORluwSDnkIcqW3k-v}aO*L4+2ObMi`cxio&t3a5Lxd|P0Fm}yXQ6bG`+=qZ^ zgNGcjQl1oJEuDuHh5#m1ooQxymQtR^QcDAXap@b`yK^*Js|(vu3|tepqP3Dg90_Cw zDbE<0p))z_jim_J9tp2p_Nzb5l((}p*f+%eC>%1QKW%7BKDQ;i|0XGDnsjO`a!`7* zsXlHf_DA3-qfza-Z_yWxzs>ar&e3iDfgD}Bo&E7|0cF4t*&G3G@gC%}_-mCK3e`&7 zazBO;!DWV)A}}pO#6)Xc>5bJa!ID9L<@l_rE3kt<1&8|rCgzL-#A=)Y%u@y`z*B2u z*B0iGW)MYRtF5V_5Tz9{CtS8)H&DpBXIf*Y)72_!ztY%#W6pT{ zm)9zDbsAJt7+*`-m^bIR0qgbV)C+Z4y|qqN-q~1rV@_k`om4)9FF8p?l+=R1wi0Nn zIqz(!f063vBo;yW3)J8JLiI0OU2CC*MZa(hi>GdZVQSJ$EaR2QqX|R9$Y6?=_|wP$ zf$+Jy#x;Zi-Ig+R3%iWBxC(MpxmqjViB4Pn60$9ysS=QYw)Hg|VNmMx*d)?%^?Y*QBo6nAVR%b>sLQ+%m5aq`Hk7H!(C^a3D2it|CnWrOUB z!S_E-ZNjRCtdY8OKgPtIMv^!cy%{!z2e290KhGP&f_Sy2t{1!k`ExG5_=2ct1Xy;B z=Zi8w5M6N1WWF${+C;i-fpiV>#+-3Duc);_y4V&2S}hg$qOE~$;fpEi6{o1)8u!{o z>|Zo7&{%mpl~)*(I$u=~rhGYBNTrj}`v zL6FxX-C3V^JP(hA%hyik5h`Ksg4CcZR7EDbW=Ju18}EZxw$F$rGr<%n)cF4*#C0+g z$k@?kmiD|4&t#XDZAAX(t!n^Jx5L31B|rJ{=wNPQvW!nqX2kN@H(n#A zZt<>~GM-~Zfdb4+T&T+A!v9yz6}lCG@2gc1aEC+)YjpGnu!#U6+COgzykRLDF(Q() zPv}A@CQAuM6KNi~cBP$ZO?i}k4I^9^!We_wFRc4K`cl$;J~XZS6xvXO7@XF9;HehW zepqE%_xb<2?(^id?$ex4>pt-nwL*KF)_rVIGp+l08_EAU-DjWeRd|Wmeg0xv_nFpx zrtLm2X}ix;)4I>J?t=+_TKAb`{G8T({!i;ZkG+(1pHEEdKGV9-wC?kg)_tCy)_taR zpK0A^+UNDF_j!HkrKI~z+kNU0K+`_22>J?(?hHeZDfS`%LRTllSue689WW z>ps)E&xAehU!T@}rgfib-Dg_&`PJ(_UwtX*KGX3&(>||hpVv#<=QTF1`%LRT)4I>J z?(?hHeZKZm(tW1meWrDvY2D|gt^0gqTKAdOeWrDvY2D{nulwwu)_taZUei9WChmEB zfpep$&vpK#oa_9L)4I>J?lZ0XOzS?sG~MTIXC`wt#P@Kk#bz#2OLhOcJIswwTyu~; z#sSsc$=Yhn$bfoNTOz?_8h`zI zo?H#HQWdP?jzPN~?WWq99E(lPjkS30#mS&9;p1|bZF*9PZp7Bv*>;^Ew~cU`6*s+v zLU!LEg$6>Qjmqcue!c5LyxVwg;1X-S^W@?#yUN(snDr=$Sg&4J~!c=q!=iyLic z@PCJHw&njO-RoihHt1T)RCj{5ai+G_m7kS;IjnEEml*XD4)ja`RJBiVj#qRwa8 zt!dmetP~eg-0o9cNFgvcCaZ;9|4()7h--%PopEiZd+P!2Bsw!YpiAO8D}1IKR7Qym z0;=`CUGH=Cp4j{M{-Jp1uyB6=8~xrEDu^``IN(+(E;8UM5~Xwlp)T6A zdn36pgj6UM<=mwaF8SmpDF(imi!K?ys(tLQ>g4X=W1w3Xd)W=$T<4-o74ufR#>#F$ zJfe4QvK!NrVdDyJjnW*uG_^nl2<2|5-snEA6PU}O-qG0<#YtK!bMFa*b9skuj(Smz z70BGBTe5wNQ~?>yt8}#Iop#Ubi>xt>#>q9hxZ3Gr)vN1l?Z%fE2WuGDlWVSUcLhYM z1NmQU{{wAIU8g5%O-O3Fy)6nG|-1F4~RaUtq)vkfs`+w2$+&+I#=L~U|t_y`} zei4`geVz;x7;NKz?k=oCmRh$t#PO& zy5=y9A)o5{HGu>?@Y+21wh#vVC@B|yM5xX)1j5+$K>}O4lys*!kkQp;<3k~Rgv-2k zS-Kle<_6G^f1EPIAz#;UjgaP246fm`VX1L7sok!Z=CdzOuBP7X;)J`6^Rq8bF6D8C zzY)EIYf3dnb83mkZD!8Bap4v`at9e9N#GU=${jblWeXQoHlDH@eMan$3MsS&YC$9J><(Pev}wKD^AxiWBTB zJyFyb=^_qNEq#%0iXhe17cuAL$bV6R<|O_Ofu6s$TZsn})y{=n371DPYBq0g;vRW! z4Qt~p_>!iN7eJ5ZQ;&xU;=chsc6s*;_au|b@#1^(R=Z@Go}i_uC-qLu*06AM$T>Va z{pGu6TiA;dd@v zJrXlKTnr~NwOP4gSdhS63=MK5hV7+Ia)fIoktg{Xx`Y~vLpT`#+@I$Oq|ScaeTo3Q zL-SRg5n(}PoD=v_5;AY&0%xiSTnXR^i7GP7OYdiXH%DM-hOuVmOU)$Jlg#T&xF?P4 zODNdA+I4#wB)#*)HBpKcMyDoSejMvnf z=0}A(g2dTzg+#Hil)TZUYk8)3AobFRrYn~gFdjU* ztK8V-kkz^i3)= z(;u^oD(;P<>?h}NoeUE2@(#<0l_3o*xrVuv5{WV@WTcmOa8q4x#MO=GATC-jLvhem zKwPrRtx9iP=Pw$&qRQ8r~&o9-Tu$!l6q9(Qfz?d$T&x;$RzTHeS#gn4P5 z-A9i`)y;&$pA{a|#SkuUm(XUD`|O+Udn*{ei6nPsHR)1bgyBw&#j~K3>$3D`KBLH$ zcgh|4&Ah2Mx=Ao|3r=rzvr<&p8~wg+;-X&w%G-Y;pG(~g;NK-5(YIbdssq2ndy9St zW)J@F(KHvlH@PQiztxSZrSD#*BZVMp{h8;+LhF13G|lVQ75#+GE?-A)xjZ_(Lll?h zZR;-UXtN8Bm{Xvc=!!K3-BhkbFKW|2<#IP81bO?KTC1{~91Eyh;My|3xALRiN6r0p zrr~oBkxTy@m-;bG5b+hvWqzFw#2+04)MA!AlH$^=2y ztnR02yibaf&>Z4IQoMWkKsjbhO? z6kh9KRBM_0EVrlvITT&(a<}{YuXK4*+3h&-bhLV5%pFzkBTDiSssv@-hr=uMId{!x zUCV#JBWE3{U$}m$Z1*U+gnxVf9pwG*S4WbRx+)Gz7dv!7TyD`FFbQ-790tM*x7~5t zZAUJ0`x@KkE~%pV*m%=jatGHtHPL*_={C>BUZ>f0M!_8{nirQ})q(Kj-;sJI19PWF z=Pu98YdtgHZp^GZpG76n(ipQqlkUZ8a@(K-?)Dl3p>KP=zBIXo03vsbay>_Hizke$ zkSaEQP=n9&eT+V2C93%kjIZtygi4o07$ib7gdz7r&4q~R>NU11bU2tSALs$|k) zDiUtk0`la_xoG53HLi~zH<*?4c5!8iKYzrO0r{Y*NQ!Y8C>Nng6@osnB3#zdDM4E4 z;(|{8Z7T>7N{!u);>|NC78Rjk5@S3s8crL@T)lgFN2hNiH6eilgQ$-5SQ3?3;v1K2 zD!?(|P9SSch8W;S>Tjqa?qK~*+_kU%rcUjtzp2BLWme00lhCgz@LCn<_Q-PfV6$ER znzv!(%eg)j&`gyIK;~GHP;i?Zx9QH0z@$JpQ2_hQ%%pQeDr@2}3QB@CF>wQ8+U&>k z^JHQ4c3tbtjn|vvYKl1Ia^C^Ow+pwFU zO2RUcF_XVr0Lp8ZNuKqkD}*g{E*6iWifnm4@Gz^bubexn0`>MCVEMQBBv}}5ikHTG z?Y?N$j`wxEzU*PwaRu5`vYf@*-S$ZD46VdGng6&yd~|kb$6wp*!j;FH!K;3tC)6+n z@ZeCuGxuI9!wtY~jNMZa*V`uawl_jAKGDu&mHM>qqe|zZEIKSdRvo) z?!v3)da1aY>9Z7mLoPKHNnJ_nzd%cEE0P^(={`66PMfDe-BAf~+r^hh-&8X8khJg= z7Wn@c2VdkY~ZLF;~d2ghRf#DXDWRHFHZjQG&tzAp*Rf&I_8jztbUQA`d++>{+8KA>u*1HyTX5tCoS=ZeCjQ9xC#BqYotR-`wZ{d(^sBU z4oh8}$K46mSeE=~HgZPdo&dm$F{1Mhb>fz==RTfB-Tn9~_A2uzi}x;`*axJ)nOj%t zp}B4Il3cyjPTuWb%3sRRFaGYp%Kg<2{UEGiEs+}&q}^IgrSp>a2VrtE*DNcKi&=7( z^Kv7s8h|oHfbRU2ioV{ScqMEwK|e`kF(-2-h zxAoC0bUqp9+*?P*tUh>pgnJ?HOu7X^L}#41T^Ru!vS2I zRy#Bowkj+11J{ioF+Z@~a!`T3eR1|U#oy4;8=EIhLiij8v03Rs&=lE1f@ZZ0bQU z9-WX40`)GY+!vU#ET&Aw)RRaXHarRJO zw(N+B^#+zP>W(x#Vw#H+(GY}lD-Q_g7Fx%+YTc}**_&ReV)O7W@tDKf5_@U(E_{-iux8})S6JtY{@W0$*5)XMf5QuM5on>MXT4*zM3sytxQM*mRpyn{WxA|lkRv!~8M9H6g zg%`^rlTW^aDyV*2QiBjxUi7jBp+@mkt}sL2L48Yw`}G{7j%Qa=M}iGs_UK489MZBp zb!Xr%!bH-auc?*hN69kx$R>fE>UrJV8lEA2^Tsu`HYl&{DstSjkz7n7->)u(x*%t) zW%|>?f_lMPh_pMwLb8SrKO0?{9R=aOeP7r;1BrxRWEbntQ73?oVUr7g!P;sHzNr<@ z9$!FftFu2oQ-dZ0T0qu*FRM~A zV4`7X8t;TuDpX6*LL@u9my49P;Vx(YZbq0}nB`Qtajzc?Y`|6~JAfeWPAWBK0wr2% zCF&_L5>})9loVusK~QVPy#pKLW$VOXCaWD&F>Bk%{F0TtQxd^65R3mN+;9}^X^^jM zdO&W}-=9jUJTyCUTv!c(OAQI08yH>cp*9m-ZRX8DG8uF~x=6nb;$)X3Xvb|Pbqa|D zQ!7R2U<)l4f(#HbbJhhJh%skcTU{~k7hJ+iK({QIq}2iRjM(M~b)l^XfcjF3i+%W} zpK_miO&Fq$aTQ^&Rwcknh2YwZ;7aF52(H1;orka}>51Ty;GismOPWMGf~)NAO(eKd z5n{O*2PR1$yM!;kq8VwnB%b&ftY-ukAb+qql}uoLLlQG9fYNVzb^Vg+5_R8@$akBA zKqIrX-VcT*kQ`$>?is4@Ktd7E(ug$kbe}_?yH{u5y{Z^BeD$^2F3JwRPJmF`Y9@D( z2Ay~5IYgvL-ccRgp9(WE}87idp5 zsCt-kc~qU3&k!*7X(hL>2#s-jA3ebQFc-hc3_bKcAzGH3_*(IiqT*PrX?b}}J(YGC zvU6el$=J1DXS^-3(1}R`^3CUF&n{4K(m80wZ@DR-ZES&jWARc;^-&E~hlyHCPbO`? zfo|4dR!O*mkh@yF0H9mvUmP^J`=|upVwyTSH4r;EWYA{Y&G1=h!BX&>*^Z8Dp3_w3s}Eb283fx z0h5ZSOjqf9eVDG!=ZWjV$m;xDE^QT!LdYbW@dj|3w%blSd7w* zj8!QUt^i$IS%9giO{;pguR5#F0+xt>Zs)+k$i2cH;E}!idNLmU6EeLX{vVsvB(HAg*0rqZXm{MzEx;g&G@wD`%Vg1$fqZR2cHnLOJNs1RnGt;{wX!)((Z zpLqXPt^@1v?fC9l0V2&R8Se91z8rraRk| z)1oQI54@Vygrd3)ePN2h160u>NCW97AQT75`B)Fh6|E~GG^S{U$wWbcgNoMOhi4NY=>v9c00E|gD>~+Q<2;9p#8)eVQ%)&s{zVw zC3*HwMIE!P3K_= zWc4|LBS?Jfz8^berkX_>%nr{InGqDbQynKNc88uU-BAzK>GU=WzqKTLD$t=Vd8Z6r zkRgj(b>X|pZdww3N6*$J5i63m{45KxZ_CfLAig%m;T}{z`pf}6(U@46wB=CRsGf}O zK0WEd$ShQJK?nfDv-;AVmKH)3VkYfJs*2mO=g}y8)buduYnHdC#M$Q;2rG&#`}+Cj zarHVTs-_5hbQUUR7wr0vXCzG<5_yIPFAl=xLX7$=a#s0alTz+sV>x>jly)4kU!5SrF?n2H_$l zdy*qbU$Vd_50RYjlLtx8!*Xj1inV=_Vv|VqBn$d5Us-B?U$WMxh(NrRwvHkUVi_O} zGS`+py+92gjr}6V+CBj?XZu!;K@$}|xCe8hyzS_K()gGV6lg6ABgvz2tyMEY>%+45 zQAJ)hJ#fr=ZOS3Wm{gWW>vFcg6Jv%u{K+Sx?0q*CsDln}@t_j@xJoH@-4K>&%&0%5 z>_@$R_Y7b#o7sq`q+xKs1xMRJ(7J774}Ukq_{U#n9Z6x_6+Q*yF7qiEcd=A5jY8}e zn@|y7ed~Nb7D#}*#V(QinYhZC;R$3NBBod+#!MmTP7Z3B)|5RhKh{0+z*#iwA?rOv zt|vr&P)|m6GAh)y{y5uDm({E6xoctHpm`zEu0Wp^CV+DnV^_{T^?TV*Y`KfeZt_1t zwTsd6KtMaYG&DwY3>0h%s|pO#d&TXRmh}-HOBg=|KMTg4)NPWbme3tV#%fqmXZQe} zCn20xN|VB@)m>2)Q;_Xb%D#S0KxvYFx>xbV2NDoTq<4qMpW6kwziFk`;Qm9*ENIlc z(7)^>ZQ<)uwwsz8zP3F-zRoU%y$x7jn#=dkw$A zXM&P%^rw{l8-f4E5J|TCQprqvb6@-Or?q+M{_cV{D10pTUmlOM5v$^8%(k<4+@y*a ze#@etS|1Ax;gAIvBrkASV=%lHoNu&N&OU;rf5L}~jW$d|vs8TF>(q5(BoaBH&~jTW zES(N$r69`74zavou+3O6Z0K#L?D)PSQJfi(aE5H<8z+d&!(yY4`8zo-K%s;Y(nmvj znDpV0-c5P}@v_o3;uRPQ3Wjg8kD)pCMl@W~#Anz}dm=uK?x%99kNzC<(`HL|C&NH7 zr0QANk3(hUDAN}`;G5>#zG!e9+Fex9AF9|xQ!F8Q(|D@a8>ue)8eh8pbanQ@yueGq zNR!4yLTO5jsF12wH3|}^7KzBzZKZSHSfb7$-qblS+33&!o%^;bBzvnR6|@kw)QDu;UO_ksWeQ>q^& z(#*6re%7v*@3PoF&N`Ov@`Hxg7=pJ^8(y)4(UpJ)>DCFrG8DD-$uOf~m%{yXF*7E7 z>gtW2hAZDiDo+%jQV8&HTzn}3Y?k24P;wp?2EgSC))mU>d7 zjdvjm-|dkuXhoVfzSa{+vtVr-09-}}y9g)1Y_QV@BTZO;rvzjU;G#?9nJkxH--R>y z$sNHM<|p0VC^Mie`mcTIBA@#2Otn6Bx29kFbt80tg|M-f0s5Idfl2HUgv}b-(hgJx z1*;Fix0c*avfsL-#h4kAPPZLHe0Ow}Tx0glZ}uff3PHJ4p#he9t?dq`S4*Obv>m@q z7g;UoX*+tr{w6bx3laRl_vxa(NOl`ii~FK8d}>)=q%}0PU(pxMCxu#w`gzh+&zz4g zmOc0yuUv&R=%klDsmP(*Ct;N|r!>75uyIe?9fpu(?#H%K!IFY2jmvL$!_I7Lv(ycm zCG~By)6NYgZ%N%O%f|eO86-Mc&$W5>B<SU>*i96D2V>qVI zthi8sPGIXmuis6M|GcO!6n#oXDX>30_oyIdcx?ZXdx~e9SanjC0C>s(z&61a-&k5d z?d`{GZ1paU52zkMIilyTqhCfjA0w%z4uwVXIM*&iZ70w0Z;c*}j*D*N`B9p!=+v;ACz|!8a9Xvl?nX-h}Sst%oS$IXwZ^WxM z)EHiYhr!FXUYpNiB+At$AC>@<_s3{xEKTnelp|;kdLE2xO?RM}<+GL(0P*v#H~Yu+ zwsFSBf$_l1@kSbqdQiuyl;>Dno#BI!jw2(sUaO5U&DCaTg!Kl*cp&a5<2-kV9@!ff zQna;MixHk|d`uOGap*1KN4NR=EQ__?a{YViAB29$9fdzeBq6N#LLlgJksGmI8g(1d z%z_%rRa*+y3r{ZOj301Nfc3mJ`xuJ=>awUv_$zxDBNihrTD=2&wya-QOKtJ#uvKH? zvT?$gVrBx1%QDu%8*SV=iI~M&d%-yz1uwN`Z@ofeyZ~gglE!v}2gSDdleBg5VND-? z^csqm>qSq9zgG#B#7o^j+W3ZR?GhClPW zla(`K18a`(t-N{CXYgK|l#tqG(gC?3y}vRep->?jSX;P~NSci#BI$cDv8CDjFbAt1cHLpPeAJW@pz1Y<9SSOSe{2U+44Lr z*PPXhwGQv2R-bLz_M2U&91#>?1S0JS7S=!W`$9yAo_KDB8||eaxJ5}>mO-+~_H5gw zDrxPJ!&Yqnxn)5qjAKKVCJ4T07mc>d;4AtLr0YilOc+_i^+woWwEWS$)gxgRChi}i zeE0<#TL-mgGEv;&r92>S;)o=w7xS3a#|BFaDqD~z<|-ptaV?aA2qZAc4SeSFr0(Lk zK?13oOe+!zLU!y#)1di(fYZLl$svZ1D_E?0HBs1cbaFpKcd{=TC_-*Wnj{@h+;(&|puXP>))&bKfG0T83%vWJGp zRdYL&C=SG)z0<--_->I)W$z%xHq-1YH)v)sv%n*lnF@o!!u!>~etsTszrm$=L$bY> zLw^NsT|dZG92c_$2$V~YG2V`)h}|#QgBPj+gR_$T^g6_)I8G*F-y`pc#L}uAnnbzu zVSKUSTFHaqTETIn(x@?97xADqjT#b3jS2=08C8Ge(yUUQEjxXj&whFAivpkg z2LLuW0kBNa%`O0wy2){#TUpA(yT&ayCn=yBf=A=1dNv=P&U7e{1Br? zAGzAeF$np%{$uR1`B)FJnzNEtZ}9BrU>zT;3C7~=J>BDj*WxYFfQDV)>?`)09XUfP zD1s7ItyXgU%QnP&%`5}1*FT<)6dIGdZ$-S@u>Fft@tduY^p2s zm;_s0i1h?Q3p1J>Y_CO7X6yz&L}%0NALkLp#)R&AY$V;_gHOXXtH=O_jHw&242D${ z;;a3}uW?`ljUdIx>w8;6eQ0AZqCOXAKYD#-#z{54Lp7E>gfm`Tjge|(v)Kd~6OjQ< z5$wU)UsagE(!qH7hU?kCb(+vBa7<|Zm-E?lrfL*FI;jb?EPla?8)sVyW0fdJD)T%X zV|OCn$ubey5`X5nIL*ebY3Aip_7@kc`CsI-PQyrVG#@diAYm3=(l9R5HsZ$7OeD8a zhmBqL1!|Hz$?b!GHo|?q(Mq82Xc33^M%VkEP{5)zA7T7Mfj0YD7;pzGc2;mP}6^31DQWyn_e{sz(VpQ}-e;S$G-hM$#p#QF%olniI4Sy`Ph*4XV*|Ic zqr)T-RoZI?<>q{Fiz;5lyrPQe>=a0VGEPFmi0TF$Q=bUHak&MM(-+|1`UA}SPsWmq&!NONcUH|nyeu!6}5PXdP} zQCI0?>S_~pp`m+)AX&!HpkIc4=j8&EoIi!muOlKt+cv*I)uDiv;n@#f5q{MJca2;Y zvZByo)OUn~| z!`kRAiXJC{BO(C{%k9N8=9Ot1a6A)Zv9Ai1*Wf`J_w{)MzYA4C>?Q@P%&v8)1j@h< zV@W6@jrh*fPAcj!qLR~|<RB8yKVX4>4mYFs{k~XZv`3I#LEpf0O8Rc`^bN)Tn1Z(m zTBC6mJd)eSIVUxTHkY`aCa2;c2zN>ldV1WAywZ~RwB?Ixs>?-`kwjYw8s{MDv+PNu zOF=|J_Rb58u!^x4LR5zY&F5Ds_Ad_1N+{oauo`FEEc*5~3;)m`8$qx?$EUzP0xFDB zi!C};x$>CO7#Q;)(JaZ1nP&&T z35Ch*J~-B6?yy!bDH25}58LLDN7;PELIkaW7(krLvTpgo zM&1Z+z8+TS73K74rT(cAvguGo4U$l$Vna^lVXZFOmv6X1awA&4LF@=a$^okkOYvy8 ze923}5g-sy{dPdiXJ;4tn}bqE2cOTrXCf}KzoN&8=q9YOWrSUlYFg!FKrP|$>DE}` znFTCqDl?qQ(l3fkD9gM;N}ehnXo;2&Kn(2W*v+v+6F~BuwYB!uvTgAbDypr{O{urQ zTRfoPf)l8)NAN$c_Y}a8Jxzp=!7uF=piH6(`C~^G4r>fa5_q^fBqKrtNQxQw3lnG0 z`GG97657qiew*(I>EOGq`i>;uZPuv*b5>VaRFv{os};^siXTC~h2^0I&EWtIh#-Rd zTRgL%?vJTa<~9U0^J(@CmJg0>QJJ2H;vD<^8aL;^RbysOSy+V3DjIM0z^@B6MbJu< zEvE@Xw9|&l?)E!sDdGUfg^nd4Kl^x(sKL^F{kJVTP(<6Li$#bIeNij|D-pnNQkw) zfp8b>D4xUTb0iFmHN=!RC%5Dv$;>CW+MH;)oBf<9yZI)1qG;g(J%M{8&oEb59KXvk z4=_V8G=?VsD^RJ~F`ILN97iGJ<>%3j0H0c1Y@VGkoDQ(<2_rz>Y&-3Il*F8zhWtbg zuPCXBTG};9ooN>d9!;nK1&}4WT!c#+;#TH~*#Ou_mag#F%0BoiFKtBJAAFTiD$j&! zpfnW&r3#M+{i8W(5Lm9d5oUn*yxz1<8H=>wlD^9$#QQ63wmd&dmbuLjDNGWt&O==j z;{DOx@}?^l?|*NsuvthFpKviuWwkU1FCg2`DxwD>_LL_4U6U0JLb>vNrmj509c?g@8BNR=gT6T;T<3#xFW1Cqy8|>y4T7eLRA3l78SKq)h`(6I|GL0D;1u@e0 zCH*YfRH_hdM4{o>WRC{s!;8#V!X6M?DD@y{tPCcB-M^EYLB7I+LBld8&eeX!?EN?6 zSCH8-J9M>%bp>P@$?h*=71UnDQqllhDMoQpT$U2JSqXY40^7kGgSg7J3ak)OGMBQlf!-OEF8t|AK-BLHQLji~} z@xR((>GuQXX%$3;=HM<6kko zk+zvKUU`eCq1Ivwq-;zaDwK_N3#zP!^Sed@e%Z~|4X^3B}DTFi>jJS?YEr>LytWjNym1npHglw)XD z6UobOc+;%R!MFj}`C9C!%*PZL**LULH1T z8aLj+gh}OP6Y-jT3GjY|a01hd#UPBCC>jF-FU9hBSeeKJwm_Lj5yA;$h{3|bz_HWs zwH;SlNy}=lFqb`yzpvhv6?Sgi>(DBEczCv{-Gi%hYmm*F85vZqK`*gREYRd^(@amY ztm==G)UFVzqL}X`YA(TE(V0&vMi^M-Ga<4qBOEKZ#Ez)x;)oh2RTYiiN4J{7h>37= zRPtA6CoO&t_f7)J%|)C*UG}eV{1(q5e_7t3WSWmE2Xm~P6LSV5T!)bDLs{Vrz6b-T z+lus;Cs^gTWLCa4j?l2NPJ5Ru#x2{FOo2g@+~smyY6slM1}cTl9L=qzTIi<`9>%RCA-BANR*mROMNO2uCp2-@Sp1 zZZi~blZc(*Tf*lAsWWMH0}X$e-tm5E!kJNyl$N?=iTUc?4s`&?hqRk?+##qhE&iJ4 zkmgLNW7iK0m{`oP%?DR#4)1uEltaK`hiLca6S;zWqa$7oey7zCnDv+Ae%*kG%Va5uHr@ zuE*;EIg*bT7u%2N$pjt-B&4=%#2jk*d>gAjl;%K0tQ8e02nHMTo8P6++cs^GH|HQP ze(bVOzD709@dhm0E9{0kY~<;emIv8SUh750A?9mQ;+USunfXiOT^Qdqr*X{dU`Rs9 zn=NVUn5`ifF}8)IJ4_fo(!_1O=OaC`y<}tn6(Vx^dL8?ZeDLZfhrw3(h;X3dcH_ z07LpPX)x~_B7HohkCX0anB6G4)o~;sp2L(lxb%RqK$8+%9hV&rm-61_hdKh4O(h(gmOrP7}MIn%buRP(q&FqY^ zQy$#THlIZ-U^*4&nKP~S9i!iME=20UeQ2fAzu-7he>m0k|gLc z_Q?Bltr2ovCR5XTj%aT$Ouwhg+D-PPLPe~|qBq5K%- z4}|=~r&fUp&{lXFmgfDNo{<9YKYFEoTp1#l+)7f8+uRa@W{o^lW|WS!VQX3L)K-cAj2Z zBNUAXBW-y7tLrF;cVtj&2*a2mTDpYds+pP-Q?dZTW+~CSZ>u%?^deRXigH9{!S$&n z3$q9%+1~}I_DLv=lv)z)R!2bA04OaS+=gE7+7?y{-?p$#VMK{Ao-FhK9M!nW8V{*! z=PVH*mhOP2Va7Qc<}2Y37j^JuQ-}NPllZddHTtrZ`zGc7hTPtu%fyuaZtR5ecn);R zp{;`rKJ)vu*m;MmTpn7kTxV_w>nM(FsZ|h@=^EK1mx+{^ot^0yIJ8M3#UHqqCy3r+ zRDO{*q`)3AP7YQTSe~Nn%dazZ1}BTGpjC}x!(S~j%oe?z(ij)G$6pYGJc3pM^p#w53fBs9htWktjxv2@LR}hv~471nDeKveI z(u%MYj2QAC5xS(gbCig7s?=7peTeitZ(c8jRqrFb0LIDfQ7za4h=i>~Y)-sEi0$v>aR0A_nD3 zFbf9jMu^vXS2_tVxZ20@GDk}#VxH+A9X<&+Y~(3$W878X1_h5j%t#Kuqu6EA6L?iW zwW}CRrdlUTKLw~s9mH;AmIyk?Jr1FR5WVkUN(W1!gPHH3jSC(043CM15+Gr8NsZ$I zWT$G?3|8R*`)SEb53vM`C!iN2p;~$!ez`1eq@ja&eQS}~RIC~@%*3ukI8(@ZAwS1IrC;S!KS zS-Y}@$J$H*g4RwYwy|AncwPe$5t`4M7McU8&6eja3Usn1QEx zB(jDDR2v^uYF)NuvX_>y#IoS~3Vmb*IrF>IQ`}~82+Ms{<*5L~TigI6fm58-o71EY zaM#Qw8nfaSudQ~{+opV$$bsFsZ1P-=F`gaHdLRJx5QRXTb+uLRSdQz8tKL~`8Z&X$ z=W3l*uRIui=RZGXB-Y8?j17YJR};|bNvtU+gc?c3cj~NKk|fX*zK1V1W003g#HcJg zj(RR$Dd$8nGy!^mm6oJ6%UTT=$%0rtgU0L7&Y=@;hP(MMSIm4V0M*TRFfd&m?+N18 zU=)wp0PytEsRwAp??A?9o&x|(;!+m$#ew`;xQM?CqoLe#w*0dJlSDz^sz5y1+u1zt zsogd=V3mYcuE9_&qLI&7{bNbD2yH|c1f+K;DjQ1Cnd>uUg+hHoTIE>W_(&R4mbduP z!u)MZm2Q4+68-gaqIy~1ED{re)LI9Ou?UeS$)(WO_>Ogm=`)FIF6SMxZE>tSG0x&E z4rb2=UULq0ai*23sB@O~AJjPut}JKIvbELBp~xWNhO!u#Ke{}=t2R5^cLAA;g|8zA zz8qzHSqgP0%W5opXM?aZ!d9}w7(4rRkGYZq9~4Rq1c92@8@1JNU~daA?X~75oaU`Q zGh^kv{JDOightNoKO_qDvx@hLiMSjm@M4iFxlP|>qwWt_J@rO^iS+}YP#eE~40MK1 zE+6 zu?AGt&Ch;xU6G#c(sKJSPUAe(YTflgEBX(LlQ45f-98dvO31tonkV} zw4|rzQr_6sPR;ml}6KpJePy#smLiR%T#UroJYb`oQ0a zRG-wb-}{6X6hj{s-i~W_me}IH(n^I!MchU=DSbwS9_w z3>%}FM+B(4gi(SIeBtAa?jh3k4iMbTo*>1p$y--#6W#VkD}>-uT5d0S45J5_7!~>Q zwZf;>UCBIaK;6ae?q#_3iSp_qb}_BWSMWHDj)N=4H^ZC4%VWvtMLZ;zb=sIJ;j{U^ zuAB$s%LaWmpv!&3;+_5CI6|ZBu^UjjWz!sFEgW`tyM1(_nF88jLzmd;<4Glr!q$1N zY(%G^&RcOn@mO1xjhZ$6(C$!++g#M=WQ%iJ8Mu^XOS%jyob)emvw+k_dbM<3>P(|J zRpf$>7uci$<_IkK52Y9{l*Lh7vPFB&EJZYgwxV^J4@T%i8AK}6R}-T4L|PXW42C2X zz^1;2KIUb=98TQ;92aX*ETI}@?>bAvHlUa|+iFgqFn-!rVKZg3u}6Mgynn$1XT!V& za@is}V@wbNHapW97|S|i+ypVvmUuw{UNSq18QIV%{0{Ix_SWq0Y`Wf(V8=CYJK39n zMd~LlQbr6|%HGXUpS&^YGlXm9^QIn>X46uxBoG>wfNK!Ojm-VOhcZBg5t-C4 zFJCY^7hjuY-dQ7aa-y~>U zO-0(4IL07(h{TQXxP6{|^CnCbBI?3Om8@~4E4k^R|2^YIDx6V1LjzR8NY&9{!Yl~L zSiwm^YQ*!!na;=o0n-fmbd=AbUGRGZ(X&(JfJi!oNCGpKmUx0bOFF5bnE@a=*z!5} z!;4YMv&GVjQUoys0@B%_c~o7MNt+I^;7?frK$zlygUT}7c=)NvHtZHdB1&gK3N#4D zgQ==u50iLUV6Z6`(!WPZ_QZ1g!Cf9Wbzpbs0G7p+fia+ukscvUXhsTquyT;sz;C~3 z^#;OrHp_^c;CE}_o+Z)0*w+i=yOzdBd_`1V-*Zdl^giT|2rDpf_Vd@{B&~05@1>3< z(GNpCN8+W?_rnLH2z1SKlD!8=`|Z>g;-OtN#-*AO#I?sPRFqSt6cr2EEVlC>v^-fX zazk@AD!T}aTS?NOUPNL4@4LjL$yGwQ+ctKGg21bdF)<1&2TCv~uM^iYrsHNq z2v{?KVQk#aSDbW#&_J9liB|EMVzMydsghvAi?h$YmdX{#$TY>y8j&!gY(ohMOcZos zt*I_difc0Sziapm8uHcfk=7NjDwU$oJqM-68UN3TWNxD zj5DDkF$vaE^}C;4)$9-;CDj%!!enkNpXoMs>uR5tCQrX{LGQbDy+{4v45Ng@R4*AK z@HA*+7G+4!=3M|6arhF_W2Sa>H03j24!qghFH=nbB2=(&(V!|si+h)7ER1&Q#!>}2 z553aJ68gYi?z<~JMD)0EG^vMVKZVsd@xFZe{e02*iYAf=@#oP*s4;cVhXX z4sntuA{?13!3L*FQxCF30T7mCC7U2$ReUGK zr9hxh0J#zG{2G(wTBRY^8Z+%}mL^7n+4fd)gCgJ+1Efhf94^ujLTu*BFyrE3AaeaB zjEn7mGb?Ei?&x;~+o4W0$C6*{Q<SR4v>_^eA z6FE5(_wjeZDO*0m2AMq&Q#c8{2*sqoEk24Enix6HJ{UPqJ5pp*pBS;p$_p%<6p*iJ zMl3QO{SGhoq(Z^M?EKd8@fb#b)lr4L`+f!Z;Q=Oo2rbil5Ldb*fQC zA)+*XfB@{`)>G|33=rGI1Tfzsi;iV3qHl-oZ(go4W8VAl-iH^sbAdrW zdG8@Kl4t`#GEUT1BedQ)=~nGoTxqX5TZtHH8Smp*w-61<3)Mj->TaC z>~p$1e*hiteUJ~m>(s7YwQAK`t5&UAwdzD^a}S0P(dKTR;)7jh@?>E^e_61eCH3BL z$vk13p?l7hrf(=ivF8;)r?);zV|S(bOAljrY{VfUs4;Pl;HbWgv&2L1hwR!pF@p(M z&aMcbSHr)EK%537i)#D?{~$RK4+Vdk6)dsbjkp(w{eYd?P1>+sF(XqAzrjE?Pr(!r3jgpTI)17{hyVrt+?ITb@1 zUdR0bkt7}gjg{7A0e8slCCOP0$Fv%9#6S}_Gj1S!GTg#uzLM=%APn8j_Hl>Y@5-IX(~F<<~(6FWxX`?%U)TGCsxpu?(~9hBv~}RzMR!& z@HN*RDw@o}*F2A4mDR|kLwkldM-f*FT8$4QK+BS&yWw2PQ8-xLHVCrg3*;E>;T)81 z{7k$)g`9H_jFGRn(&Wxc__}MN#E!D)Ad5t&8l1#APz^FunmjO3%0Oc>bTnOQxgdBy zd;7`#XQ#3(Bln}0l|vJCA!cWoB4tIL9z>Ktp6VxIfvE$I=k~=jRkJvf<&kRuXjxif$(43%pbf`Nr0QJHQmq%JU3N->pkKprth-41b_ zMsYV;I7uLF(;dB~uLxv~8rvie>*Q#(10D>%$%)-)Qz&qMmnm?=AE{U19<0>FY?gXX z3fwbzn>ht8ca_VW3f$-*vtX2rLLtXe;2LhS0E6Ky1#VJD8<->y$XZN=robK0*@ja5 zHn!UPgVDj92KQe5pdy=s4y=!VN+K;{8r=H_od);bLDS$MT&?_*`v-HwzwKwo)Zp^X znyT^MK}qMiH8_E66Bxh@TVia`X>g;1H4V;M6s7J2j!c7_IAU<*RJeTujVj#40QiA6 z#s^IJ2{Rd9G96CUQ#qYIjt-Zi&!O5BD&YRA>2MCumPZ$av_~}znydtMs<9<%Y_<}& z?Ms2|8 z`5c^DVSqAevBTPTZ7 z(BQ_`pO^+Wp~>RA=VirotJ<03X0Xv{&IQGpEAUP_rdd z;bx&m6Jw(a_b!utIp~KXj%n z#g(Z3uevr_n`tZ<0-r~HginJ(k%vlum-K$0{vqi}OZT&HpuH5;@sHGD%PGZllNhyQ zP>|BH@SkL+rW);(P@I&OV3U|~Cw*Ej+=}<3{0Y(%r0O7dP}-F}suyvIS?ur!S?_xb zUfTu1=UrGQ>WJ97NI{RLYM@8c8R*Nx8C+8uKsS(CYZ=I`0%sXT2E(HsG=WT%Vg6wd zBt7lZ0(pw`@jwpe09o|?TtP-(G>~PC@gNV|T;;I5sRl7F94U^kCCPB?_XTwZVV6(u zC(Y)Y6_tlSdsn0xKFmB5mR<%<2E#F5W`;7OJ}nP_to-)v6lpB?Hpj7D9%$IOIkIus zkn@ssp{H@b`euy@_2^dee^eEK3Y#EWOVy(ToLB4E|r`0pflL@^MSE$j88c z(5H8kp7LonC7=XXeuDBdKA)|GG_VIRt+v?>kNJEW-lZfB@3t&! zc$}n@YBby=;%J+%RWX}u_0ysR*Q%zFxw<>$^J&$DAg!8UblsJ_v{qYb)twPle?=7A zLArxd?Wy<*Mo4?{6%3O$@dZ4OQ2r|(p1stGBbC)TPX4g3 zXE)`YtPOUNbh0)WBYCa%2P+)fmFonvVagC@)Me{gSspW%WvXv6MT}*MuN{k9@fv5> zjFl!Xy_iICc+`PQ_q_YM>3Ad z^l{YE%xDu09aAmcDWaf(F<&WF<6;$mcwV(s&X~S$J}epJh02Kska4%JEAUc}d|hK; zk`ENz$p}jHDL7fCmf`_q((uVpip8?JV{#U$RJk> zijGFUA_>l^mfmAmhESppFVPHiSR?}-9!Wu87LFk78bG%og{GDQvR6yTkwG@mz$*fI z*kQy#miQGT3S>#;0?Z{^UBf z&a~3HWwVLdK`6_C3YVBxdN;sGE4@=s$YE>2uADFsx6!4ac(8DTfe=)NMFi;u#lPUED!G}KhJl!oeb%Vl(V&?%Q_rGKe9&`SRwJ?SEs;_$DJ=p52H zEs28qNuNYP{j4RIg_{P0FV>V&xTIbwt&;|Mr4)v!DWxA09Xh2{OlqX-l~PWF$@-Bh zrJ2|`mQreTfXvuRUCE4BN?n6hQM`Xfq;N7gt|lT%9HElfKtZM%}G zQfe~LDWzg2QYdNSFmyEWoKw+YL>n6>iw1>sjz((=>HBJpj?UAlv6gGqI8K_d$lYtg zB%M5?;haJ`N2}tqW9#3!u1e1NzMA->RTGJ>RY^)~_1P<=QXU^MwslG+-frThK+;4r zn$nUoyL?*GXSb#MQ7YYGVJW2Bkx++y{=3P4!lyT7Q&2#}oGIhUzTnzy0tz;``A2l{ zKEC^&eYcFI1!US6>92Ig{n7*^ z`Y6t-^lBNs_rjB&JORW%a!^XvXMzz~p9w}}eI^(s>z!akH=`aWY*E>$#{@9?D1NF4 zVvYql9ManrcC&gaa8tEX0(Z>HIDzZb%4OkR>NVjBe2-AC2~-5=80AgfB)yCDxUYXV z=?P!YIOX>%?F4U~N~*q^cyu@j$IRw$;T4c$<=z5 zv`$z*3zd{5HY({qElLA0`jgJlQ0-rGicAO`Hnx**oBk9BxN)? z+SkC46$P!GeVmv#d?c5D4y!2I6cEsqH9#&toE&;EDZycnhm^#xN&G4oUH)AwI`~dLz^iic1+i@6>}klgaDo? zBn0p@NZ^kKNbc%&kTmPS06@+O3Czb$oKF(>E%jt1u2dKGoK4x#r56!}P;x3O%>eKTv8XKRL+PfN{m3aRV_Yrukm}z97bsFuS`u z@eL8;?Odmc>tTVAaMU5!Jx9u(jHpCIJj1Sv#b8Nv_0W5+Fx^#yqiY#dDL&kGRID$$ zMu&XVhlrJ_D3Q0D@PLU(aFYAkTBk-Mle+m5TCec1lb7g7P`u8YF9wr5Vm*}EY?1E}A4^@?_3m+v zduZgiT-^4v89|GBrx0@d56SBwX{3Mo%?p>qU+O2)Abo~ZMWNQR1(+M5WAe~Wr)rY^ zh@Ko0q1G{TswTKpI>_LyVxw89=xQlW+wx5y*J^&!3GulJK@oNQ(X05;W{QZiNntSy z4AKlb{X(RaQfWePK%@zFyRM+ADQt58;j~y1^T|=0BZ>)h*&jSaTp_`5#gc*GEmAMj z*Q6Zv%*!f@$hnxYTlebh0OE~7E zI13q>fn^=Ds^O9Qz$y9`j_nivmb1p4C8FOJ1ED0|cfJDdi@UJ6ZN`-ZE8HG=HfGg{ zooq`=SVL!Y+Do5;#+qnyge#E&zFlV?PdpwAUT_ZE+FE>U^1$TAW?N^=DL#HkgaCJJ z-~owW?YheO47}$#ZO+Ayf^Pr!IDT843p#m%J}c;)Faf5srO}ArJNc=k- z>2wb%HN8(YHO*Jkv+AM~pmY%nK{|su!vtMa&>zXkpJ)I$lcsfes~zmsKD5qDwJosL6oW>=` z7b3?y>SQ?cdxH#*-_|Snodc>SzljU)d4;|;@`^LbZWU2w;2RS$Z6S;6GYwZvA(8_c ziJj}DH={J5xLs^Gx43PN5;dKPRV{RKiaBxd!*4M8!q$zWWk3vMtGW zPP}efZTgswj)(D=U#wQ`aCF<_3&Zx?xEOkO=Dvst)EOB~kjy!C)I^L_1v{1Q4Rh_L zCh*?!-MuL)(TV`5O7U?Qp-5mbG8-x(2@Zs7U&~Oz_~$d*dP0Y`fWc#6i|wZfbV8sA zL{&^|Mc*_iXjhn={$PQNNJna6QdQI!);A)GP!np+pPqJkV_W^s59^v9(Yxr(#d9;^ zaBaM8jlAKR@@Uj0E%n4`%Y z=4c{yZs0|J1eqQ$Ln=|j8XC}e;$;anec~*mP@};O8G&45B!;+%SVo)LX^LNA3?kG* zbd%dw>JR=GZzI;(Z6<|f;r}XURVCP-2+_GDa#;SQhDvrw3L=A1)1d{xj*9S1ghL&1 zc2akTsjnQ~xhtiUue=oXRp=31ZYI`OW9FP`(G(#-wR*!~2$t0-fUk5ZmjBE7PHwNc z3SE6Q1e)JdDSl?5ylzqT!$0AH+m5C*M53lNB-AxLnAtWP9{LK)S17odnp?Rd{J)f1 z77h)DZ`Es?tOY9r+|<#cYk=$+PU8r=7`42cmXE3hLGI=AvQDHIK#o%A6zIW9p;E-E zs)&~SnKv56G{HkCDD{-!=-}dx4&^rxf=xH9EwJ&xO664 z(bJt#Q1sE!5_v*q=)E{$nNx6FRd)=BgO(B*g*X!#o}*R+l@k~Y`r#1yL+`_smMTm}duH=x8-j?ZR zlT+_}@0(1zqG`6J_1gxg9l&EZ?by=+ht<6V(XcxS;wVSIC31Fqk>h2zUBv{==c~0_ zG-u66=8eTk+<5XlR`}_V8f==XY{Y8V>0tKPSbgS=mRF-(&w|*$WHx2(mt(r-3xfYd zCYbbmmw+r5iaeWVCFRqixMP7RS&4U6|MszvyJ8O^wh{Al&pieGBL-x{8>*zCyPm zkXwqV6n5Vx1s8i6sP9bA3M7%R@A%2n&}S^60rit*G$b7Oso&aLtZz)~QjA9D(q_|W zIxR7K+PUkcc}`$;q1fg;%xzYZLARoeZeV<}BKm?r`vR=l|fO~!WgnN=`h z@&|R^3KLGhk7s{R$8P}3-h!rylo`LONv%Y8Cr!!##3wo9jRQk#i$=iE{mVS ze=SrA+Rz0+O*Zh$8ZG7N zoxs7f=v`k|TUBXmzS4Y-Ds81w=DixdGmKs+HdR`4^``WGlJ#cvK3}~xdOyjUGkUMD zxsl$9)|x}T(Ypm6mFg){XFxn*S}ITKIOgfdlsE(W46#zBgkSQ6Uvh-s;s_s7y{;Nd z`YTpx(9_I#x6ecSxXfQiN$PH(eJWv6fs~+|9>o(v?u5|T<}L8R&IQ4o#GNMOpr&`gNtFvj;Tsd;)s_%4PDD>;gP> zHLgtcvJ>d4rsdotLcr_R*V+MRbTGwq!57!;L%@oLNxvv#mnk@V(5ce6SoYacwwAE$>(V`1%LsYqU!0%KQ znz>{a+q&wx3M~~!^T7Z%)lnn$my)Q6x?fQI#Xa*{k+KxS`Ymm}(iH#j<(h<%K(f-a z8|$p*yVE=ug>NvDxKsqnL3MxvpJ$v)AwvQeOjnbg3BhajX$ zEpheK__5M6dkqp)_8M96G?WTc>k#(TMN|bbtQ0ALGsFl>Ym+uYtL-?sU3%MP;lubl zTDN|KJsTN!j1C{w!QO&^GV=3PKh!Na^-u8a6sDq$T-{FGMrHWRVnhZcZS#aDWRV-r zr@*3aOeTVwRseP@u(TYl{^5WFIMQ=i`n@Av0IT*N6ubWO1O!!cYNJrthX7R?{Y#}+6V~eev z(>J!@_CTeeI${RCmR2=BZUPaVLR;)bq*f168kFZgV5#}%1R4>Img0|IKsM~?Za^dV ztC*T5K1r}&tlO?;)oUaGYD5u^c=I_nQ<$OKtQ^RV`2Hnw0+5La!dPQwWu=DfzGJ0U zO6;wxv_3%HH;MpZj&yU*zQA(mzmTlc7YILR>M%BT(4>8R@4q(*pdMZ&UUwiPEVUXT z$grbdnSb&V?Cfb+;y`Sm8bm*z<1S!a5OgPp3Ca3iZe5i2lFqCLBIJQ~B26-vwN$8e z2`cwpg7kft;D^B3rRMIEIN5M7{-JIpgS>*&AKvr_l4#P*02xcuoO%V89Nyb)tlnq^ z_n3=_?SRWmm^O}!7tCojRe_N;Tfa42$%$4~HEC9(pTuFOw;HvlR-;8?ivs_?wHmduU@pg>I*kRjP{Um9tVUqT8H`wfX%WZ$gg&D!e*9vFOSHaPrVo||wrDD+ z3&(0xuEd|h-W`=zV(K?nSmIUc-Yub3NCWiqFEt-+p2vK&S>~fw4YM~NachG0T$eez zyK`lqa^|Csh$%|bl-8cyQ)>pCycwwmA~S~gK5skf%&ns<9cCiZ3YN7r8VQ|g^R}ZH zg$m=+oVFuy-O#G7{%h^7u68*yj~_k^K7L4>bpODtwKVG$4dCKhS7c4d*SCQB7E%PW zk?5eAWlmRC<$_$5=`z|^dCu{xWCeZfDr+lfU+MYtS1OyC%v&s;U8M_haB^>RgRuz0 zWAV(bli<2dw$8B9I?GrjON3($OBriq#v-E{GZwY-xya3~%Hm4M$|7ehYSl`w$wr#m zGh>mfQN|);ENB2trge@5vl)xpXB&$!R?1k!qtas*#9pOSV^O<|MZcKGSTvh}8iqRt zja^x{EoI$i73*+#EK`v>TxTlksF{j7ys0Qfd84T)<0IW!08Ki=G-|Jr<0WRr#3b#9 z#Zn%=ya}^%omr$Er)tEUebf_rzCPdI8hLkBIy3U-yNqKXZv)XmC;O-wSj&kK`dn3J zb!AfLbbxl~xMhRPq3{EYwW{_L6i{@-Y9VcQN z%Bba7w33?99TYO7yN=3?p4n8GE1cO=mZA2VWvE@Ms4PRR&N3u{AMcXa5^iw9GSti@mbVNw2`Q*D&N9^OEJNv4?pTvN z__7Q=(T%(?T>4RSD6O*$-GybS-C2g7wZiee=SSiA8>evmO{Q?1*f!NkDja)HO5u3d zzdxSBQ7bW9;mEz4Q{mV$kHWEKE``H6Nl4)^CyA3#I5IGP%L+%lr*Nnur*NcIo`k|NN0ph$UOLQNRUTL2$W@wCI2@c(IMPa=gTmqPSla~g3@-IM z6~rg0aJU+4yHmdjh2!W+DI7U8rV57xQVK_k!+%4CBZIG|a5(s+aHQ~^gu;=lFQ;%g zvXOR>R(TQ%#~f8=#!j$K8y2E((WhLJEfi z^|zpK5ef$586b=Wz6b^?(DIEWN0t(07&x6A8FXa>Ri#eW!Qz{3;w77{6tOBWw40QaEz;JzomP993o# z`B^I*xk_J9I9MFX9mXsi|9VmiM-Gj@lL|)$-}9t!Ur;!( zFhJqnU2T2~M-FHI11lW2pMHD`$34%3!ttXQ6b@~=yr6Jo4Cl5~GA?^T;mG_E|9@@a z_~i=Qu@x?WviU#av8S$#bv9x-*~Y#CHDZsLu{%gkNn*v`&hV(H6?6U;Z(-zpUOGAA7CZ6Z&H zq(py<0PelOX{PjA$SLSqP-)>bSczCpLF7o&?i9D?rc^!69a8g*KYtG~l;2pW!FdP> z_1qPK9iGFu^MW8!o1?0o0c=T{uIpKllzRvS&AEdUtao$dIAu5zQLFxH7xgkW`t?v$ zZEXWlhTR##2X>#-Gv?Ms!3jO`cbdN%BBRy#FJDdp?#$lifZC<=m^imEmo3!###ZS9H> zV%g|}B%ZdA2ly9}%ZHw%BaRxeq;#9|gX53m z6OVEEY;cI3l05oXTq*I>Hw10TRvj6$)SkN!aq=`d%p?Bu*YRqzGAhZDEMxmU97um< za)5`GppT9x_B8N>+ge1d97~+Yrwzw7@E!jJbX!lah+IC;=+RMOOG<@05a(&I#b^*0 zLD3*?Z;l3Aj0WLyi_)drhe;7WdV@<@&^6o{B)Zloa(ci(bnh*|gOsr)isp z$i<(OS?JgmyWy1csL@ya&MRq(xk;>MZXi$rR1P&*=o@&FNy>?)tJ`b}kXBr6k-Q~U z#2dB=k0Ns()?8&i%1m7Pu3LYW;ztg>$8W3flH<-~Z8xGC4Q<+!BMEtN)iM`XBg@5| zre_hLNJ_zxJ8W|8BLKw;o5hunK(c9EX#|q4^0tZJPsA_}*Ft^cQa@cRGDmWoiuu!x z1GXJ=?gsFHxxZo{TZFt{bI>RL>Uy%fIT-K?xsCs^2EclYOE1nYIO8{QY{2@Zsk^Vx z+p{PsCX3_82j~adM@)q@sSqt_O8DeD0b~l30g6Mr02PnZW)$izCP5TtFP6q{y#5oa11Lj%~=bcqwlquq}^tbs~T6$xfPs zm0X#&S%naPs^J-Y(}(k65E?5}91&c%fhB+Ngy!TH24;1dVV@ml;XcTBx1-q5my5E~ zENh(e{;|)F4MlbTRKvx-hW=nRd!Ui7&gQQ*q1TteGk9pPYwzY@fHKx*oO(;wbv{r<{JsY5mVPwsYlQh&(g9VLhAYq;9AxWSkHqb!clAKQ5n;tA&A zyT+Bi)|dX@RGN|N5B_&bJy~D&dRO)aU-mz$Y*A(Z#9Zb%Bb2ZCW>kn>4`Qq*-Bzg|5n?qNg&|R+l7S8@$qDaF1!P`QV zX*)oZ|6;5EVq5yfJ@y4d&>y@bcRD5O_D=uBuJnr!+ZQ&@e-WZ?MhQ1&=AnAXe?c%y*Yl6q7r@^i zJRG7v63@T>i#`5}@$`#N*cZUxAN+NQauOwb>%Z9RznDnB_>6r)z%@mWB?Kj$RR6_3 z|Hc0Fi_hB^7Q62YAz~fIsQ==C|6(%z;>-30@araqp2d9eX#E$D`Y#TqUwqBJ0RH~q zv9RY9zCdT^Z-(7N{)?&fi*MN%z~3KyJM1}?vWM%xIPAZePQUnpeF6N6>)Uf0Up!g= z#gqPvne>Yv+ZVv!A3PQIAh1m*$w76*e{nSZ;%D{+@b?El4|`7M3nr)B2TL8TSNwpV zDM~*zX}-BqxCsZ#_-0*p-hJ~;V(x% z$P(DPE^AR+q7zp6QVZJ>@o_$DL0cjbn9qva5=psyR##ghv6av2Y)fF0x-5eBh>P>3 z+S?MbX+DeNj^e|7R%=@Vq1I)gV2YFSrJCCku}VIR_&DN)d{((F5wYj9xa>sKoX_I2 z6On5^tI$T=&-$#WEfK-xOEG1MqH77he*qF*o&yp#ullU~B3Yar<3(K!(G z@*ou4i+QvU1i#0lZ6J6NkJf?U93E&m6&@`E!Pz{T2Ljz$%1wc~x0;C9M5DEcHFk?} z3A2Z&Z>i4E`m3E#x?B+bfN70)=WMKotU{`1xU)H=o2x`MWK^V0pc@VZin-$-OI+NY zGtjRRJ2q7kQ?Pa<-VgrA$GnRKeT(DcKVD4W=TQ32MCrO}0evS-S8IM&pKI>V@&wdT zR39!~YAXlmh9SBl^KY0OA%uj^&QRcpE6`dl;BAc_(kq2T#~I4fCPSrJyf4-h1ze#5 z$TK&jZugdDVMQs9tW-Jk)k})7ut#Wy6FD45tfHr%leWoIAP5u+%?K9OC;+14Vi)qD z@Jb$R{ZQ}uN?BW+_fKX3x|1h%Bx1W5be2wEx&F+!{**ZiYyG*<^+$_zx-jI<#aU#o zXpLGQ2tEw(YJN;l+TWokgnJc_R^ZU8UZ?Q*{Guw0qxCL*SyfRGPZwB$B}cdz;z^57{IsIeYKcazd{fqm;{v#Z1>-v}Q7-Fs zqEc|=O&{`k)+`WUjsXvZmlue5=tB`QHSpC#EM_q1sw+E*S|12?*cA1+#nHhgM?TQr zEtSxY7);>Vd^0#LC&f0AjI@3sR`kiTrdDX!XJYOH>xPNzH`+2il-+2zWt-K{24$Bo zj)}tRVzp%Bx0PR<-b=Q9?Q=o=fvZ{gj6Ig79=&Iu&)c27~ldfnC#^d z?^%h-kC(>6?|q$b+!9EZ*b;Pxge-u?_z4Mc;29wxr`f+rUr){a6@aPi(sSBq*2VH? zo5Uy*%NPIpqN`UJ88e+U!)UAt@Vd_i_I>J%8}N`TB}m(#%GyNQ4Jt+`%V$svM?LXr zP=|FK74`v8>V)}=E{bo;0IXxGsFm@DkXHQx3{Xmbt*{7~O^X>2&u}Ni&#lsB!LPUl znQ>+$~Lb!1eg?L?45aQZ3`>XmX$Iz_L1Mh^1pk)VDcI# z;gbo3k|U`E__=?>CIL}ZGG(vCILXuZYcp$`c*u~<{!}g7*f3PY2*-+klgqeRIv9dW zV`g0AXiha2BxjXx6qqur_{SJu0EiC%;Y_%}6Bl)u4bEW+`WtmvA_ceDlt7q?CU8v% zXH${j)A+x_Uj2xF7~I$_{=gMkl{&}_y^ZQhIwiRWhS;A{6`{Nlrki#piNL`mq+1Ti zJ&G`qVyJN@w?Yz;74U#HbxaR|BqvG+nK!_4qv#AV9>?2X1_TOi`^8t1pa42kYdp2u z{XokK`h&nqqvytdeJS~i#ej)%NxRfsL?ov^RduI5bTt0gYAPw9E+1_HYZE1@o8Mj- zwpvW;Zl`P(Rxu|o1>L|b3nZ9ZOkv#{cn(iSH?9F0+a`8(BVQFf@~N%T+CV|t^R7Q_S&apeA(T$vqxd3K*V<9~fIo1Dh{PqtK1 z!t!4c<<*)#(jx71#@bYcReJWMegXINi8N1GBx@cmi>1MT1g?f1gC}T}%*>+RtsKRvs#C!~|-E zix}=Shen)u)xgOb+(I9b4QJu@{!|y54?( zx7jVf)HL0x3)Prgnq25C)Kgt{R!nx^1ueG41on*(R#M$XYw#HF{zmUQ({~^oG$0Ro zM{JW%a%V%yzk|Vei_*&qCK|FTAawsZ@scA+6h77hr;sqx6*O)~7=^?Q|9DqA{P06s zyFTRu-o;aE9cZGq1d5M8eL0#t_8H#+ZX{3#$}*N)f2$?M-HA+kz@{@6{KDb76lb)H zW@a1~(KCvc9jJ!ys?K9)P{MifPyWDh(Fmj>)`w)&EnkK`d8sc#4#?BJ4)egl+A)PA z<8(jVs5W3&EXshx=`}7kB+Li^8r~~1My5i}YU5Rs=s zInLE`h29tGeZhp#krr6c;rS`G*~-i=d50)DsweXANGFX2+A4xAbpL$4xWMG5wUWKG z*zY1JaF6b>s23Z_*p&~p(Uxw_r4L3jZoo0?xf=P{vp%7NGzl`>5n>u7 zO2|D8=W0sVoGQqfo(*#5Y=hiH$#APC3<;fVh_`hr3vx{5km34JCluvKyAq)c`1w^5 zc-lxwZdD`QB1G#fFDGB{A|DEFa4-uO~ne zb^)>Q>oHpiL}*gbpgZxsrXOhyGpX#Ls=HsR5QY?TcS+eNS}okQ4j8h9-aD|vB)hw% zUwv;$RC4CL$span#FHe9A0JF5C{NqMOyjR%9e))|B_0FfFbhQ0wCb7g4*tIqnrK?p zJn{eqnpVXl4?y*~dYr9smc`I1Wd5&HHmlGcGW&I%LH&P)`k%9YMa3v8l}hDuIm-Uy zN4Z=m6uRPti*Q-e^1P#~4GSjmxG`Yn;hR70!73-*ch}id2#dwg{wp^%x3spkcXW2S z-|laTM)3R4FiPEJn512Yj0<{spxX?{k3aARH=|?zHC5ca0g`2qqjqSYTJDq~R-)2$ zOUdWL_?Q1-AUK_G(E`MtxuR$!s`7_dD}sH&#eBRUY0w|Eqp#+cZJ4T;P#t!XjzQ`& z^?;D+6{TJh#Vbv_MyX68iVqH|O4{V@-^6cywdO@@Ka79C_i_n9<*yW8TBzu)R1w$w z7qQUw2Sn;{P!wxWEDKK^46ACfFYH_qoerP&v$#_n3b z`h(LUI95Ps$httS(NeccC=XiY;9iycUKQ0P>I3HU!ZYGKUTv16lR}w1eC9$F78h!L zWfZGclYER*4NnTr&f2S@w3jwdP;o)~>hlg}%jEChVv72s*}tDPavU_L?8 znh#GFQmt@4c%oL5nRz@(w0cDO*J!XJBSW4?yw-mdf+jSalCj4vqUN<*@^$Hr#Znm%gXFDm#gr0oolhzyDDZg-M4{~Z77Z|rx3C@LVpY0GIs|7N zT2ZJ-%k7JZzt^qq@&h5N^_#Y>AbFcnZ9+E6^#GtrPis8;jG5Ntj1SajeXID zJp|9y7Z+U+wUcUE!9+#H5_zhT7qrP^Nb4DC|Js4WuEq*P`)y2YY^`z4-vl3_W+-vR zlK4(G;Z(SyZY#V^)XmDnM+iL^7eBV;YA6Q)q1?J;D3|3(9##BVs=%STtqJVA1%u&? zp9AsFhM3L7MwF{K`1zcRD(Hd@QlK@t8)Y*}{+c~Dnyp83BU13d^k`0Dk{y6nWCXG6 zmDtS-7g7nqm`j5p7S`mMX9_nO3nXk0`c~O5Tq)Q@BSe@as;-|Sgg!pgl{tlE3=56G z^^~f6SsYRQ4pF5hBh#Z84v{^bnwvU>r5bgb(&K5#uB5{l()N51CS%Ts*9g-wxAHE` zk%*?9yIYmpZLUSkFc7<8SFg6bie8DfJsrwP&Z^A_=|Tv}SYJ$Ycm3Xeg~w z7@Mm`(=d$B1WWwO-%px)EYFzElmcKz&Op@h+g{~n@_EZM-AZWOh>Ffk=4pr7wvo~2=nP7|bw*-YnX&{{vIPJqiWY%>%@B+XxQM}b9wIVt4JvkKQtf{%knL#u;8f}7O} z`$OF3<+d>^Xl1&8*GPjhu6OhIjUwiHD7Op505b)vCO1nE19+ZUf*Wq+G_+E#6FsG9 zs4x@_rD$Q!_|G_zNOnbh2sFds`E!x z{j%E}ohhr|J#^)t3{_7A{HBnC{JS>_@-Lf#g8XY2uomQB&P}Y^^MQqtsuq+P#Ua#& zU1}lBhwCqN$gil+u8U2^?)xURww?@#boCR}1IQ-G&rA z@%r!y`1z}}nro=B7UsX8>)TGI#y~Y<=dG(TVrH+u0AMWC4FGc5Iw5E=-dH^Ar_Q!Z z37p}zp$VOUskpo*9 z16+R-B!Xk9llK=hcQ$l`d54XC6Bq}0s@oPK9>>Z2r2|cleA$#zPry%abRdlPnp30Q zN`P}6A^A;FJqTv(y|O05_(xDlZ*)+0FzDIt?S|}>cL+Y`YnI4HeMvFCXN8%>q{&Q$ z1ndreA>jDMc4+Vumkwq~{|C!v(|JYkI+FAe$|Z_>ut62C$0(_aYDhqaX#0oRdhW{y z_N#8d*~e2}qwzC?B&P7E;ed`gzc>V&6Y3nd63Fc$8p^QbV`T3WEx=~lm&cz!Wy&ZK z^^~-RF8PZIa?~Tky^!oCYI*|^fq$z#-I~JaDSicG2VaZ$NC&?ue&kB^-@=LG0FJ=M zTF=-JINz+Y+%OQeC|6Ef=%>J-P{3x19>d z42@832iFi?7cjO!pe{M={PRVEVS0`Me^LWZDM%!KN3XP|vUVw)@S!toC1|OGZBG2<`+Sb0IubR!*HvEq?G>D3dvCE(OxFWwbtkrR@2t|lX(7T~G6%F5%rsRCvaBX`)Vxe`_Z5XprU{~EH-ZZ7Q*{NV&@v@s_0*O4+N8Jvz#?(2={ydIa zoMoMh<=SOt=GBtd7G-82bq2T1B>|mpzG4Z7AaH!(g0v*)X^u=TKKs9zMp}|H%uDXl zjtU+e^bj$lSk&4KE+!*WpC@+vt1Q+q=2ARpn_0?++*-%|glEM6`0wy&Ei(*Fi1^M` z10xS?><_dwk$a;wJC}d{$OFl1Zgj739!#RO9C&fBUY2{Mld1(7CETmt+$;8HlHywS z_uQ*$?v-2^OVSbDtEIVD^7AaOWrN9HJ%AhDsc+5zDf6;Pd&GK)YkKVsM?{nIMvj@e z?j_A@nM7ReSr2u#v}H9Kh0D+PP^Y?E*P?{DSNR?igEeVe&6T_ERlbK3)$ME1(%h?j z4>^#VbV#LguktW;Jgt9%d7FgH_lpM`|H6`dw-%VQ}ltD6@{c1^Cl3m%a)}%EV z&wg>RB-x++YERmegW0c+q$8Qmesw0D$JhoR*AyKW(o&=}tzoU#BOhC%dv= zXC!ANJooSlpu_U&XB@9>+; z3uOYBpmA>jIULjL)1^;WnQBXMwhgkTFZ@wv$r#J)R z)9eaUB?tSH3vcWJ2z(=CD^!bInPr>qS*vO@Y-p2`)~aqKriq)ARP(7zyzGpf! zjJGM%f|cWrHWn#Xt|ckwFkmO6rERNRONJPXJ9dE#r@r_%opk^|*<}B>)9$Eq2kU-K zXTMbPX!^_8d_1ki*nEHXD}v1rroYk=Ye`2F1%efwV))0{dMeF$Oh#pA?HNlCB%^{o zSjo{@&DqgYn!U44{=l#7akEDL)bf!$(&o_QBQ!hibVO_O-j8Ov84IDfD8WpDH>1;V zQ1k0@+hib?-{#!e zMaWw#Y72D{f8O*oZ|6%`fDHGBalb?s3WR%SOZyczG?u{$Q7r1PjLWbrW+#rMh&FW6 zM~g~GKu?(P>yVEv#^F-ObG>1CPMjdoTo1f*RzJemULQm)wMjw zg`1d>Y;6J{)1m?vM|jIe!Yfe-A~Pr`-o(>%P(s{xBt?a8<>795r1z;+RrF}<-2UK$ zwcKe=A-JJxxXq4H&_$2f%p5smlobY>vA#ggbXZ59WW&l#acUb4JpNkZ*f0J4SYoAX z{NUW`oNdS5(AW{`B%Y62;l{8S|9rI@GS~1}h~KRibctNo=&>2{Y~?4D!3=!=&Oc;Y zV};FW23ykEDi0Sdj`V7{wF=vXorB{5_L?|S*wZZ%l#Qsv+dp5VR#QJK-kTbX+eVl8e}#>mjYSpLe+LHsD&de46d!u`v6kQd0Uz3 zi{UF8I$shX)(iDHTks=l)Cb!v6T+!<*s9(f#UsGoj|hQhvmH-23h-F`iOY=|Qmn|} zr1Wm!m?GUD{AZ3O-mLw4$fcRX$pt%^Y=VuAM=jbQ_C8Q0qXT`7Z@)rjM-9(CPkuc} zT4Z}FIP*s%z0VfKSezp{rq{6rpVMdI@_x?0?c4cS&9S|poy6IaAGu)mmd2W7>`3d` znXAXFL&*pSB#yq=V3&iO^byw~IYVm9%o);A*(WZ?SQL8BHmi+pN|ez-Cl)vzXT(J} zj1czg$yN|Y&J4XegObwC6loEP`Ho_KFlMr2hechg<4ET{ZxB%wZ9>=&l7I1X_Sto^ z*x5BaWsAym3DiwhuB4201aMRp7j+odMFp}S1b?w;L8^SO&hh9RXIJfIVT-khTp^aeGa%Thv26u(EzICLFi;Fm*sIpjQfNnPY* zt^k#s9=b06``6ev>@NNI)kaW~)XtvM&XH8f>Dqiv%SF|INT!`+rCCaJDhC?j{PnD| z4P%7Axwd``r?emV3f#S%>GVJ1r4O}{!cOTRj( zV>-WK{i=qwW9nB8L-5 zR9iU=7j**oT$kDFGS6YHJj{aqLY}P8E0ke(e;612ZgRA*T*Ry%I~}c3><@PPc>}e3 zk2a>grK_gF4XM<}(o+4w$3x7ha%_@5DfcB*c3JB6_$!i>Zb+Gq(6{Z~paj{DHtKH)} zD$+HzYS;u^3V@;XEv&xii7CnMc%fyo=cl(?C$LU7WU@{+Y_j~xSNpTG(<*P3O0BQa zx=}SE43ztie6@B?x8z(|-D*j7b3oKV;2ImJG1gf$+(+~gt=stkyJo%;g}t%Si66ET zU92uBZ>T};Xe=4CI~Jkm6e}&ZIKuHr!BMOW+g$C`O#DhqyM_5yr6CknRnGEM=qPA2 zp4#Ra54&I9P^5+Z1_9BhY76V#cN)8qD}{v$0g}wsv~C35_{scbmDCL&aeK(L5oAS( z?aNl!STz)sg;kScN=I(pP_PjdrBH5^r6wv4*x2MW95<3isLK66v)obH7tA3C(|@)C zq6#Xq)6p1_3NcEKtHB0XCL~(bZm`A<%g*gH3~mdqH|9yenmhBNab`VMhT4p!II&0n zVzsM`;d2Bi3m=9DwzF7PVAOYqThmI-451aX>zh^aXP3At41!JWNVkVZu_m;hjvxO6 zaL20H=m-hG+Ma!3Lm+X0wZ=2(MS0?JsEGFviV-=4QX_I`kKXF2CA$dX6@96}9=72z z8)L!3@7Ty}l4XNFl~OEloEG4Wi66e)h{8JYuGdxZ=+L17M`}U=V5MKF-@L+i<{eiX zc4%}g1ae2{jw5dnFj~$RuC@GR8$J2f%f&4sxTcE@Y_oqjtiUTG!?}2cX&Nw(!7Ic+ zPg&(f901>C3uAO^=Mha6seMj&49df}R$O4xbu)CI#wjxj86P9}3QL_LzN%G^T4 z`mnc2%M>3Qs*G~%5VF3yK;BWadSjejR3Ino2_J~zRn_-jLZoH-P{OA{r;l?W!ZvE# z2!D%HS~U5SJ|O zF(T0XplbArpynNVju4JK`QgXdKM3QWVklPo-A08R*Ov%X^m>9~D0+RT0jE*y4}K44 z7#AVDFoa(S5vDZ&@N8$LJ)Suip&>!fXY95)`H$I(?U8fY>xz=#a`J3qk)+nv9(z}E zg-Oo7k-D0a^39djoA~)gwi3@!frtX^Mwf|zsA4xaz-N4*KlmfLIU|w zLGiUqAg_&PNFr7+ADSnbNqJ*X2Kg2-kZ2wopJ&v{M)s5F{#CTbW1X-jR2oLt&_{k< z=*Zeh9=7}{Y+%r45P!b|nqa6TZEN`<`9>t0bjE}4nQLrv)2Koeo<`n#dZk74BaRxx zH~Hjpk_1F!I#=m&+{r`g>_Ci5yFewd68;Pk8=Pf`kNTX*0=3C)7WeSB)k}I1C4u4v zvX56^Ot4Oba^~K#IBL4Bp!j<;1r7tC9+i@D_GoqPu^4~aCKGvPj(e6?fFk6%4<_M4 zFstwORebN7N=f?ELxg9O?H*YRicHp)Or@d&=I=SiGgYdX$*k6rO;Zn6AVt_NGcVCb zJD#4IPL;EUsg&Q%BBk9dr&GDDL{SYBANIjg@{_{GWWvWOE=WvRPzC%L;6`7LQgmEu zmBkmpAGJT&!#rdbA>d9;LguLY5HC=p)K4i^TWQ0!#s-AiqbB|mT}(d0R0R6$EEUO5 z>8LmIql^-C@Xp6;N|2pnci5*2IK2@6ttIwGRa6y?fo+;}l+I9VebEHF7UnqH7wsoW zL&}{b+3k`CNmdxhdPvx(uLC2T4-5|k;jn0YudYRKKoG1$CmWiz8Z1caP&|=szl&LlC zW)|65rSdpKWICGO`4~?CWH=jx!T`Y_*@2q!Nv!<`eG=3Dq+H^f;~!kfl#M`QRziqr zL!+aZ0wo7wjf>?PFxq4jwRs@rl&b}W4Z$?LNl+`&ebH2by$qi|NP5htCrJ~F%gSi; zLEunaR}%PSH-&w&LLJ0~pb3pXkrxZ`ubbE+>(F7f6a<42#m3{&Ad(1CagQ+#mjuXO zi*DjZyv7d9C=~YWKvCKQCZP^cDlP?l;sWvjTC8DFHrbTpjucJb3e*nbn2Lnb&%Dv{ zax}}D!Gx7mXEub?KZA!SO5|Z7gvn#dAqK3hfHuf0aaRZF{XRWLdeWzNkv^D~A&Ay= zT88vYT88vdODk$68l~Droe+mfkZvv@8yVYFyRrtUxG-Z(#X^Jhv`+(wj8j$y01F4x ze8d7eh~?|%kqMvPMS8!bUE>6SW)#iKxRh*$+a}G+*x}1i=w0xsiSrAv#s$%SPY5td zdyQE3qrBAUWiqOEdXnJ_=*7CmMlOzh7VE84q4cnRQ^!#c9i-(+wZJHQN-Z$Vo=^*n z^C&S^7{mEwlH`>{go~ZR9wLA{36&r1XBHlBw7I$^8*LDnjW!6(Mte8ubhH&5EgkJ) z^3%~~3pyKZ#ZsGZv?aaJrKLC7>e5Dz2C`At$fcvM5lu&3cg&=t4iMR>14K6J0FjNl zfMC?YVZ$KPa!LY@Q5b$X+~vZ8)^TxF{Zr^$`O*1I`n#&q?>%Tr7E$5usELwvSPU_ zvVH}|Co8;Rg%llq#!709QoRu?rFEoekx9rlZ#6C10gWKx$VH$+)WnS>fN0%y{tc=p z>Sc~F>CqR#E?x*pD0sf{QJD(I15M_NiD{)g5owQ9TfhnmaCV7{9y5&f1Y(bw$i6N((RB89HSit5bP@uOG^^qef2-HO6^ znIA6ES&U6Ii>P_jei1^}MQuj;nF>f!f;_M0`jT>j+00 z7ZQ<0O@Hv;pte8V!a+N)mAsF+RqsS80j#U6#gtKx?~6_eM`gs0KWT3xLFP zbAhSOnx=*YTj_8XhdGS<1!_ zUh2CUG8`N_-m3GhG`#Szcb$^vtb3vM5{tiLv1`;qajiGVaG9rwjw0V z)jNvLYUHjU9tJJ;C#rwGp_WkE%it)0*SMZ^caNT;BL94-6^%DYM(EFYWF2x0rPoNO z37)PiJgsXmjtqyByhvAe`+ebkdcuXRsP>P_8X)=)l1E!NCUh-+3||y60D3kPougqp zgYT2df<0^j=5%ob;gD(t;)8@rM~I_PZvB=IFD<&8YVF}tJ6^CP-u7S8xYIL4Z?#y| zg`sH3&87lvUn@71!MM8fuF}a!z>HkG*PN46l=t$ryNkcRSXx_&(iM0JgjJXK8Zxo%@31f@B{L0wXKHF}i6n{x4Tl+7tFB zYORW1#O`0$+xUH#i}2zdm$EJt=^^L8p7KN~{%D6~yEr~bdRLHjrSD!mK47N=D?uNG zk9O>7BmUQyXqgpiMQC_XLCrN{g-Q4v-I6qxg7hOG^d;|lu^TCeB?j%GW*I#pRe$oGmT1#rE|(Ov0%Z$?6zCq~pJGnJ+fYoD}c6U(pdi)e1SZ}M6kd%UNRlK6THWmRM$(!|T2Vq#>6_w*FEw>kPL)t! zG5*1MrYta@$B(?;NmQ4v*!&B-^XAhRQw@rNMG}S*B86L|ceJO;;(&Pa{EhK<&gQrF zLyNa1#Bc1151p^^b4_7yq??)~9W_K!PXU*B>BA{M;fg0*w#UD`0;t^B7|%dsv~7H% z`Nt4MHBW;wi8UKpRqy6|(RTc`wTg~Qd%C}kc6M7kq46!Af@)`R+K#K9q6{?ch!m)O zIT_pu3jos1d}5Es0+Z>qNRewOFa)a8Z95hfT2l>hQnoN&q&IXlYHp3cOeKx^%ZFuTRKnCu#G2lIcN|q~tCo884EU!?_>=Y9hUz<>fz|sr^s8W`O6ou)?;_=D$NybtgM` z#2;TNtqs>#45J0D3p5bA4*@Db^=M8ix`YrjuPps#nKU>rDGLY2ct2AY0urffs3tEqQ${ctKEgtO{05H^uL$3NAdPAx2#hDisYR5ZR@1h3VrC|N zjR00pnv+96+aJUSuBOB{0tT7|pSY=lVSH$F|aSJp-5AHPIEO13-%3*Nk;oZU{_!hF^0Lf#k4SfJvW! zz5mA(DLjS z*c*!93_5p77BCue2H(v9*=C$srn&S9lz{_H{mX&hE^hFHRz**^~?v64~o7j2{kS3M^iv!wP>&p~kc-Fo&z**nqL{3Fjc;9KJ%+2ohf|99o zLW%#hKM)_#xe9WXZ+cYQU{KMf&y2w^M0k3q;-=@3}&w4$6ES5hp$;PF1tp!}x=* z1{wgSuBLcq70R6%Mdp6_IKA7CDO5XA-V!ppTp8O-IfSFW>aYH5!R0UO{Z@uyvRv;}I`&b@e zDU!nB)D4(=Ah?X2N!z{swY0PF7I%Ld$1_bk6Fyp1AJQ-7d;dg3tLQ#@3*D`YE)?4> z{`!kGu-!g{ybFqoDP7}@SawIO;z!q8C|;FZDt?2IP$cM6beUYx^fJ0gmL*GFsQJWF=dUPW&58fzjp!7#x6W2j@%}4&7$bFy6LZik zDzipmo0e!ihk3TdUwDbW*cM@o;klg)eF?D+pGR~6oY(>ZPXR=^zCHNy$I|Lhtf-E# z^znAkA;`947{5VD?7`5{rnF*@CovVfYZ;=o;%j$X}-yQC)!KnG#V08C6ODNA8b@eew$&A(4=GB=FZmeRmyTT-?o9vRJ0)7z{07H!JUz&tqVn;3} z;)~?e`0n#^WQQwaK^sMLGmh2+5-sIAPMyEcGT~)?P6>7Eo(4kI^=Ek;&fjN=Hs5Db z5_Y~T;kW+ChPnJnwvh|T9j(G<8|b^kQ@N&q#HjM zFvVKZ9M90onDo*a)?9?J)VYH7Y(^vz$Asg1=U~F@?N{`+k*+PeR@#b9vL*&(^gpb& zmO7=166r9e!@7gr{u+JQ@=8;W8{>Ro?P%TF<2KoKmfMv$;)Ugmge5j+TA22)4*OSA zyka@!6b!rR#s>BOps)xB3$;_G^@MOVvQl0&vRd=R_r0PGd-|j6)h*12t@>l563?6> z4XhbI&VsHy`%5gAvL6Ke#5s!n*{2pn=zn&5uD8t~g2-v%by9d?e`@za zt8s<2bc+wlf>>`)qE3EFfB)CBHKc2*{*EHjml2G{!a~TcN-r;y+Ns1kr>_W3TLA&a z7_S7OSVZ-4HPH4RLA8c3T|8dP%7o=unyK9ZmtVEpryvks;v%RoYA@XxTH`uaP@gm1 z8YNgpXc!i7?Vb;w@S)bmZz1v*mtF`|$t1xexYWNn>Q*JZw$<5(AuV;EIn)BO%1KxP z5A}D9Mc**xR6x${P9YU`xKO;9Y<)j$XCX|!@>1CgSxd|sG=(JK`&najF%EH7Z`~km zv&L+Yu(x1g*I;4TZ`JzJ4mU(tNTMDcbilmT(_+#qMgCSg>uwA)M4H2(jeuX1Xw}as zBU&-Xo1xqYgs@_jy6eH{prJ$vX$6WgY;cydE`E29DjZ`u>&F2VHKLDB7jb`8;)9fs zy_=gJ6bJ+SZ4LbmVa*yj_AT(=N@Q)Vg;p@4v$69Z5HN!;Q*f$$q^NLYtuuM1!6ih7 z6EVUZ)Htdqn(B7j1_D=UGk4v~U@f)_#f)@BBEFen7)|6#)sSnot*2c_QlQTC+xztG z8SYyf=h@%VN0EAq48L{*6--Cx#`PtVTz8al{LqfVf*Rg@Rc|WpjqoRwtge=1G%>o^ z0ljHyV9PKJH=OqoB25+$OCygLj=U(6hJBVYD5x+7)#eG`xz4yEqU3Q`GqtWTGf)zs zE=HFu=?Pb1SHYsf!H$S1iU}dfDhnBmM$42t?60IHv+w(3ra%%r2G_ zro!0q*kw-3SOXhtn_FnG`uMKItdr6S*Bs|>R$JpVSXETa1c9L#(bQL1!vdK-I@=~o z3iUjRmt$0)!(N@Z2PcIb?-~UQ^fjc|z@~(Zfeyurp@H3=yh`a}8>E|L3p2?=>1mQz3OdwE+A!RNEaAz2TJ4FB#h;dtbV-61}1vxx$Ta(Ab zEg2dxRyLqP5~u830PR@H$)Q67n&f(4wz1Bz<2$2CfM(Q5whZy+3u|~_K%8%i$PU|1 zh54EkrX9OBr?0SF+Z&eGs~rwZbbP^s4@EJeV0MXZH_fWAT`lG@trjvUfmi#c{Arh# ziN0g@uAeQ83b(aL-6oqO2AEtIS8 zSj!v`h?l9fQf+Ohw6(EPrqeBys;{!Op~_0z76#TGhM?M&)wYIe+ZwCwmM+8W^4QfYC3NNRz*hT^lvg1%Ypz0kRifk|_LH_>DEjN)x^&q`<>9zoI9 zA++zG$J?1eJS?*R#BzH;{bG#aCWShs2$tpeh?fWF1Tq-R!6qvkC>r$UD4G$6P2eiW zCdVmE6kQc>T2;BTjupzQ>OVA0=UX8ZuEqdn@So<${Wzbp#VP<>84=fNM$#wRs*&_@ z3qv23_AS+R-%3Wd$NiAQUR$c2d{*gbAk7o|l&d~HS~BvZN`V19mL(GN{jYS^$cX*e zjEqXjzC0PlBBRBkkw&R`{++8NA@BY5XE#Z{opa|Z3DB9_Cz@u-%wraPb`rC$%I1dF zpRK&CtF+uu>9duVb(JincVg|Li1XU6rj3RX$reSyyRWL#4laQWDz8rld~HLEg*nWNJi2*+iy^pA3cbZka=Bwdf_|Bk=+gddAO5CSIHL(PWzn zu1xymzcvZers~?+jz@~5vMQ4z?Rwdf3Yb}vqC>Ac$)=2aN+jtrX+XY713&XQX<+cA z0-_fI;c%tM6WlSJn^91#*whAB+7)m6_#$G@+ab}hQoReFpL;=YPe{Y;01p$c(m7Ko$Xu9A_$$ge;lOIkc0?ytRQ{`4-Kqk-k%&X!+^1L; zq&wvW*0sq&_Jhp1SKpY$qDejqW?S9F!)^E7tbU_3t%|N32yRH)S%^uSep>Da+n7&D zvxSG#ht$!E3`JXu8{_T$>YmV2sVaV7D90ZR1i1Xm=+Z~=9@fxI(-=o2Ki|(aoJ`HQ zknmUvfw30A>@UEiwxaIZI+Vr09<6ThCfTiLJ4ey+Lp6sW^Pa)y3HQA1{i-IeHq$hT z#jaYuC~CUL8w$Hx7$3bvFWJVjvrYKiviMbV7;LUn`!ozP!5~1;x?GgK;{!`2c{#~C zLeipaP?|9sV*q4AdxtLMaAWcg;1v8fP+OB?4ifH|6bifdw$K(OUMcLTswALErM8vW zXM5DnZt7x{A^l+@$xgiDnmirpVv%r_ovAY4H*MwLE3ly>JZD-{!mirg@qt=;C9xHWUQIY$p1(ReSfw#JKsCa4%MT36Y(z?H#Xil1au2 z`jq)`>i1tU-d|D+TwwgMa4_6&={`sW3bYlkx&UWzvd>Jv1w7RpdWZY-H(dGt{ zAUQw>9>J_^5R~J4&(F8(>E7x;=qo%xg;S)}jAV#$u=R7o+r6fX>WeD=?pirL3#-#6 zZ@B!Z$j<7hs)9sKet{0jE)_ah#B;|tGX)ZNl7_zcgG^&j^WN8}ITL{ZkChAf%JGMO zUt~-L$HI?T$;L*!DvYZpb!CD!(k|4xG=Z&D`Py|>+5eBd_kp+Ts_K2$UVEQ&_Bm&t zla(}0Lla=_ZO{{MjtLStAuX7d*ETIJHbtJFUail(_v!n*+@$Y)`X{%yA77z|l5)ef zNbpt+SRhC=Rayzxq7i~bsWxi4L?~JyNWfTv1PvN6K%wvZ`^~x5-us-BHm$9S4?@qH zYwfk>9COSu#vF5uF~?j9sxKhdgIoDij6pY1#1t?MHK`}aYjt2h9oVi%e0q=$$TBQL z($0t(I1IACP@pUUVt!21X)ym|C3m9#;kg`wDq6YLU9O__v ztazwHF5}9hSBF&wv!;B&Eya?DIotmN$B&0s*u7pac7Fg48_GWRDq!ZGC+t^eP739n zDsR`*;|}oI&hFa3SRmMsr?UPBAPAI~bUYGey&rpJ`(CnPk2`@8wPEtI~eOd#8vJk($8k^LKQ(=t2Q2n$}E8`BunXkOnqV^ zATjQVSR_{#yWKr0;1+lc<}VJrqxaXhl*uDJzu#@slz7!|$dn_8<@?MAFl$UlRZjB_ z+d~DE#MF*J<%|jY3vh*G(?6cekrU8|n1Em;okU2}5R%6Z8tWgshaK&V(99nENvSMv zs>Q9gVJZm%)xRm!PLl&QW6=LuezBmJQ_&NGU3q?}wt(bKK2~Vsj8L*l!_#hJI&7@0J(`k%xxURACu}NBiW-KprXx6*PPZVu9gR4~9hw!N}Ly}V&?IF&8w+{lcqC0dURLFh4 zEAIDDhVo7{nh{ji_#R#s)Y|(~@aydBCV}jm7vpUCD=4Md$5xq#FQ#xmg+II)gTG@= zO$nXR>>~>$5Kg*(r)$~&yh09kgxf!7AV&xsBF#((b-IS?|!sR~c>8t;BTRmjeSxK);#|+`y&cHQu`K z;^Q8t!>C$bKPu4}%i3-q*_l?v&PBuv zYagndJ)W{4x^v&_E2*P+aG@f3XiE=r*x1BM1*1bO^uE~g47TVyYyHZAS z_1puwBGCWS9J+5;Lzg`Dp&J~fGfKo$N@N{zMsk`r_X*|jKx7((a&>Q^{5qKLAoNyz z?L898*5ok|vXnc7D+M1=5h#l3+yeWtyY$*leX;MaK2C9NX?;X5umE^OSDFYUU3d?U z6}Tv~gJP%L^`-pwBK%=K8Z`Og>BtWr)U|7C6RbK-YviE^hi&T_Py8k97RyNk4@pGeoWsUESW^|YlPmY-I+ znuGHdNS|nly^IU{hjT7Su%%q+wmf6Vx`kX&MC2V~bHNo{EPa%9)Wy?inyW)m$w4j* zMdb#$NX3=4TP|RC8KueO=hh}ylCJF!UkcxUm>`ugO=m&GO9Dy2KUhnvIl4%d9AsHNM4v%0w zW7DkEWR`3ClV!j3LLRY$4KBH80LCZ{1!K19?4pl2r+@wbb+`HGl@6*(Y%K^~M(`zO z7LL1zePn(~6op}kW}@jx51NwoB+g&}1t3$UnU*3mr8$-&6Q$XeBJ*V0R5-yij(y~| zfm&*O3%eQ%h5LEO*hKc0wnyct-(q{!FRTYKjEa!LAtb`TN5|6j-_AHRG!EpAdL|I2 zY)3`n@R;mRH@4}p$c;r}J^Q_OF2nF)n~eX(Ne|kToQ|Z2%_#{R@3B+DPVBT~LJ16t zO3lry_2+7y1V-HKt-oT#yTpirWE&b`l;~C%c^(JygHSc>npE{j#MxBL6g6JsNHV^E z00oZwP5N_fcJe&g#>m*n!pU#K=vccESG1%zwOj9RU*?y@HydMhYs%`_uggm;pzd2y z)kGRwb=aIEGIf*(6@@xuXos0{GcO_tra{s=6`hZEjZ5i@Fst$NY6S)PSAs}3s>FP& zupvETTM$NJKVz%Vwc&7MhF<;a6@UGF9iij%v*c^6TxqdARJ&MpFV&!NWliYQ%jh1W z8Gl6fD9&}+-EE-A*fXnq(`m8O+!XWVD8h8E#LRMd10n43ew z0n`NP2Vktl1;OSB8t+=P{=gU7v?#@b-tB}0@_?OPJe3Xtfvn=fY=>5{p26`>(m+^( zMj*v0qaSA+A@tN_AxhXY!P@0a^k;D<>Xm+)mxd(^7vo{!vZ`$(inhViGz+jAHl$K) z=B&DTXCmxBzgo=Wf$?kDPfD?gB1pO*>xSeEv5Lde+$*9~_B1p}pWW_B53C$LvzR^l zuOoE&=R2JjEwv?xL}v5;Q9fQ0=FT>+c+8pS_14nt@6Y2=Zf07oCu>Zb+P02o&4DIb z%JaiI{~$5aaCMD|`3M)G- z;xS{r{+x6)M7Zx8JhSUD#Hv>j>#~!bUL*~Q>_229D_#Rh(4CWu$mz@>$=(Nlij#pS zlcX5fz!S_s@|ZNWkS`N%A6P2G5X%8|wvoNVrsZaM#ta0yi--O@C!=Lf{HgbLV^hcZ zcOx~)2k=rJq4DqLWo@#cj`y7>4cB`rVAw;}Yq2G;!{Q})1PJhBDI&E^DZ6cz%w$@s zp;m^pXY}ip>Q9D$|S1d4Ir*+5?6_IxGn#4yB$4Bza#77Us zNAlyuM-RkD2fL3B#7FzPkM56;_H`fK8z0@H>j?uP{|S9s#X5uW(rSeqO+*>%aY#d< z?H&b4^Ijgn^#&f3hAat$Ca5x~A$xow6=49nLbzQO#%(pK4R?!e-Xo2+kq0W-^!upV z1($!rRV&V;y3)=OT^TXb#2WMW>I&-b(UsJK=|n&29=MLTNW^X$$32 zJ-Pt^q}jLDYq7bz(Mg>%rQr+#sB{3J*@ie#EpBH+ugr=D_K#^?!2Xed0N8`N0_*`@ z0d~KxkO`g<1G~dsfPNqz2fsZ)V1&VnM=6U)Cr zd3P+ooANHoav?GOHnMO2Z<3r(|NC9bP>YI(Ac+`mK#m)x{ekT7IM0tD2NL#O!QH8; zbe;a?O6L^(s4V?=)us}>`LY7+riklGMV3d&%K}L6qj(WT`1A@cBzssvr7g*(z~#;M z5HYUox$pf~pjQ;Ft^65%%k^-upUe_57dz| zIL=rI;3X;!;ZX{6M@X24iM%+`eI_{WhScs=R5oVSyYK_;Q5ml(`5+y5K^91&H%XYO zE42N9uJDlLi^$aSG};l$}xc^3hhAShK@JeA<$ z(f7}v3aLK!JJ&~Sh^P9`s{zFDi|k+hGC}Hf7HhWkbKa?@S=!R_Y8iJ-VynYt1s8TEwCCg6 zGf-)<416w*ajNaHbdSjZ+y+jqI|mdRMG1{SPypC~{D4>q23FR-SYzK{>pC(V-PUgS zM{foh#zrZgM|o5Hh&+)512Y+DvI7a$qFU5JKbp8X#-wS@;ghtT;UW-)?4!q8CE=cu z8DR}~0$EyO=zY9yvSU+4m5 z)k@HN5yHr+8tZ_}49DIm>aCN>YN3`GgV-s;zkrNlR2%=vu}K$|%kmzs9GmNYa$pvg zZ@ry2I_TkB$5Sl@sBUO0m3s;6k9PZ`mCx3-cy|{z$;kI8B`Z{Pz)qm z>|lv#s$ZD>#*d2THbXsJHbFgHu9ZtnyXzq8e9=^>gyG}dH_%knSX_Xb_CiS1R&&C7 zuyKW5d|oReOX{2XmSrOnroM?HU~LyHfH`fLi5WPn^(kd`h9I*u@-7p|5lpqd< zOk^XP9zcUhjT&mpjxUP)JM~scLTuv~$p?Dlh#QMLaMFEblKHk1n0dS!fn@M1m}KTr zn@DEZKf=*hk^$Ci-XQ`51}AWHIXR^k<)hO11XM*%dI3@y*IW1`#-bh+S5=TC#+>$h#hyRXEU6OJhhE3Qk4wkoUD* zAk|IjI(=S#Mdgd(FPTF+mq$P=J(v(b1uv&0Hz{rlq~|@-zF=PuiZ$t6~xW&=mJD0!2JxH2v*_CoLtFxQ1649P)`Of%dBQzcd629K&t$n-Zb55gU%y(8gMk{CuLSg);8M$Xx_EW5^lLV8DZNk{gLGmBV_Wv^rmm}qM$*h^ z7Fpd!ez1-DwdADGxvr=tL2|D~oC(yb>R53^4c}Rum5taJ7(Y-`A4kbn9zwUgir`;w ztp;uP<>`ylHS6;?Z12odJfLU4}c3&vg(goJ;6|rqZtZ3g#qkVFw?*80s>PWGHIJ z#*Do+s43eY1`Fl+L@Wf0Ltn%--M~zVW}^E$^}@LB8C&k(uKOXIF$X1#HxL>|BiFGR zox{Q{ywJn4FfOa5HEDPpeZnk*dW14S7@TYiK2(R1k!B}VL)IV9_y|Z)7eTw9vkXPK z-n>tBXLvip?YEH|*+y&pXLvbws(d*N2c3v&_$u{Dq&N>?$Jf`|nR0*Aku~s4qdjUy zIz!bAcIX&7w_&c79KzY62D?1n#ujwT9*yBDa=HkS^%A*0^ie=%Z~JlPKW%H)Y{E7p zly_{s!gm&qfOH;(GvOqTmAdIqq4Ie!$oP`ZJlKG8%u(T~C+jBI)K$g8Lv^}a{1V-nlO9Opwe&(JWG10KX4 zy$y#I9`bB3ior@Y(Q=T6XC5+-MGzEq#N(h7_;^?x5}p>*7}|gNN?wDDamV#Z4@=k~ z{Mb+nN6dLCa7ofsWA>B8Cw$L#FewYfvgib# zPro?0rJ=g_U!h*+O$JxlinMI*5sb4ZHYBBJK|cgc(OKwrM086&N5s(`Il%?Ien4u#DoVOX$~%ww9ne=rq9!#!7=nwVPRS*CB=m z$_fG&1&))arEW8+Z#7wJ9VjWu;7VQZkeHusR5Hg9;h#t_NK#7&;5f_n0F_bgHgtg6 zjUB+e62Z+v1#3iS=yK|nM^4o=rCc{z|LY1F`JvW*6#X#!&{a8$9`%kI^$C++Lb3cL z)HCA~XO~rT*?m*=vu4$BRAK~Iz-3|Xq}Q11YQ=)fI>X8V0$FZ_b^t@oAV3p!BNawC z1QcYzRO~e?nj9DkF-u8&&ks_lF%h|dei;hdOy?(>qvB7EP{8653IoMp`A!-N^ez-I z1cU-@l|NOV$FBy;niDqB&1@omj(4#9X=crX<>#P-cZy++vHH|18yqP=9S#MSkfAV8 zjD|v0eXZ;Yhzmb8%6Eo1Q`yipi&&wibw3F$(`dc?yz1_7`7#cGvcjt0RfQ3Zk@6iJ zqv7QW$5>9nlfe?6s^%WFRoIF(S76{pC_#<=!le_QRHIi_*wdZrovQUGABUz9Rg5Y7 zwop>lp?-%oK50SD%ZFKa!%mmv7zlFwOUh-(rbw;s#T4~zlsg-4$DuRWtTS4^%Q87~jZ8qbn|ve71WN8U z%tXM~%sD*=NHy(Zfnz?=9Wksj08vpk5EDEAae>UQu>yAXCV{G=xDa<8j$8!ZpPcQhGUnE?VHHzG6rq+^BXUXh z`=P5ga0oEfF)!szdRRP=Z>^g+05}0hDS}ZuJDA5LhQj#JKH9XNbO(udB!H2~JdMNU zbojBi>K*4H{LRNXpkzw10!=!?B?J4490128xsY*+iJS0zG zeuqo^Hici>=;HU&6MguNzm@nM$@pDl?82P*oujsZU&1*wd-os(0VNWMcp0(=5XR9` z2s%C8LwS+p1TN#MKe%g(9glWtQ^$7eF(YHpAY$PVdScX(SlL?;TJ}x$jnrroZg;6F z4;(v)9fNZ?OXuI#P#E*h5Q76_No|mJ&Zc^35)Ny0LR?$+1%lM1_HY^!BqH6*9B8Ve zB$d7vQm2}HwBL4yX_%b_=c=V<42zXW|f8&&+#RSy_ql!a{8ZW|>nE{FIxdXsi4@}rSRxP|voUAJrHCn>A5DW-98Af3 zpa4)Dr}ZstPzpYF$deNkw%yoan=NOV6wfCBsmN}YI}rLn@WkK9E?F$;{S6#zj~(k1 zMa-kGvw>OSY897rr-=VxcZ?iq^?bf|Jh0}}u^j9n)j21)mbK%79jc0G#EyYY7&F3m zR~NhYdHzq)3iah6u381r3OIarJKle#2-CrB|!oArav0=v8 z_a`OAxcX!GH}`>lxfAXgP<6#U_|3mG>`{Adx-NW)P*8HYYMA?4#nT*HjjyRI%NZ2H zu2nT{pQf3klqWb07+VO(kKE$inHn0LJ=3qfL9rAoYudeA{FNy|C>LQ&CZ8vLr7Aog zV#rXC^X!gbQ2v+C8_6VZ2!GA;iH*Ej1`OZBHpW+<<%g&j4 zrn-6IZ*d+}Y*{p2D`zuSH4j#P^RIS0ntZ+NDC{Xfmy4D~qsiw|(=G>8npTtVK&#qp zr{BI1(h#2+YrRPH=th}fG`5T@``F{y9%Yg~D3?r0 zT?Yo*gzm9fVW2GsjAUL(RqCO{m1LeMl72X8;llM3*eb_zlX2TbeLU?f^3(Brk?k~t zj5O@KXsqo2zj?U>+ zA&_&+4YB~VcnRU5a1n-G>hj=y5og=m*i}Uga=FZ?DvU;~XB2rG31HNS9RshhFY;qh z_k@z-MWeuQd*f|1RMhix5Dc1W&qY{h5w3T1+A0$bVL$HBz5$lKf>R+aQiC^WQVbN6EOEq`Gh$uINyW!@HXMEro&0gt8Nl5bM6 z_yhOhJuI2vKAHA)6bxYjjv$w4pWx1dKFQBhPHDsvNPW3C$t--i!_v>akeC=eW^0oc z7p4litgLxi=U$*WS|^sE1=eKuWQKA;$$RJ3=4o?!j>CJI)JN2_bFdAptMgy@hstf! zN<*fVye8F!wfQ4H5yw^s=#Y1^EtjG0$mW8vp;pYhoYyfS$S6X+*{=#bt!g?fS}?Y3 z;R&AJ5pO845+JG24j+2jGHkcZ3u@Iu|qJDE{*ejbsZil_H;jpu6K|`zsn)ZF? z@d0D1!&khhL3@j9n5H8xI`YNyd02;V{+8B@tZ&}Sx~ZSqOa|-l+_0a>|G_#J9XkM`gBjE}N1n|lpSQqjG03G6jHM4*NICjjr zn$`FER=heC^3f}o2u?>2z|vPrmz24R@1?987u}YOD78%@Bew3V6kG2I1)cdQFoTr> zJzoo|SXD+kUK=nUUl#0GXgsc_Ir_zv zL&Yh@3$Q3AnrI;l4lY^Su|zu8EMO)67bs9&wYdUJRul;Gu&j#um@1eO#$FkyZ=SI_uSpu4?!q}BK2O*2L@btl;YS^%r*HsK zEjpy`*@v-&#rBBw*~^!RnU%9V)JgnPJ}fkAuCo&YPmrurrFnr}F4@=5XB3eA5>6Hu zvPX2(9r z>oi~7asyUT!sif2I-d`Pi){?^<))N+Ti>OiDk^Hw4E9ic1ZD+DgVQx1lOl`ya#~ju z+f!UMcvf&5MY2J?IT2rywyT$p#g~rip5Kq?{%){OY*leI-J)fB!Qs7Hz8Ck_w`c`Z zoZx<>j-Fi{K~w(QAJwiRYMV^ZJ2cqt780nTFwyt7qDn+>cFETW7u1V~S%VDpgv*~G zJi)(&`Mkafa7KhgVBAbaC*{uNuZWO}u0=$h1PX`%i>S0Oz!|_cK|cAMT~h4Nh`$fS zkHW{OT}Js(_PZCszN*4&7tlOxZ?IN6!t=T4C+7&Dg}n6tw1?bV4OT;6hJlGrOhs5D zB(Ka_RqET$c~?_B?<&T43H(7Zr*N)R7PTj5JRY?nAAvfO?bsNwk?mNWXW9NA=ZxkP zKcSg@BXW1XDqZwb`g0X~>UC^28i{C8PVxTp1{sz&^=(TE516HTMB4`G=(H6MkN?%Hpy5B7LR>39t&Mzv5sb}Od5y!u^1k7u_(^%?} z?+HWOJKA3bg)9^6#dkd1PVZ(gIXVa=1wcgx-QkwswWY0EEJ@i&_5yAZ6Vu+yDGd(Z zBi3$hvKb)^_iyBa;qFo{qf9FW`WeFRBH=*%Sd;M(S(9e}6)+@Xur|ELhTGybc*2W% zX%<43PSr0JOxnbviYeT!Emd{m=Cxa+xVKSy)k#Kqx#SjojX5NFc_VfelLKd0U~bWe z>|n_WyBE!B5fdaIlMtdy;+YN}TE$b$k(R6ydum8>^Vo|73#l8hRx!|q>p0dbrL>cU zLF6OTk^r1=;yjU@ObQafq0L~TRy9-+K+?;HsYZ|*yn#OO2!0Kg)*T_gX8A2r))45^ z>v@IXKK{~R_?jOb7Run8sl^;dnJDs|*YN6MdX~NWht>R2TuNM&m!qy3$VNo2q7EtF z9{-{2AsKIlk%n->RH{D-6##O1*&i) ztA*j~dEe}D;7Qm+HI!`50!Hp1bT0QwJ*UO z!H~Qf9wUM&iBGVBF{cGJk0B(8amQaOhVKJQWEpz3Y>E!FlK+5|UvE zmBgwTbd(5U)!F!mHYcibjd!ZXk!<=$WTc2O!NptkaB=qC=c$>irJk0cF>%usr6H?Y zbHK-o(Vg(D>R&!kL7ghqtre-_w^Zd|gj^{&yO3{FQU^po^FV|=0wN6znmXdhLZb$2 znN(50+2l<-vExexgPIMo)UZ%!^!|QyxltKI0=g787c=Ds}bs>jP(?LrcBq&1pVj9xhLFv^RcP>c}bj*(JnCBBG|pgxz_wh!Ik> zLjveS;8jWV$RvG{Rdgi>TMx;*6?x{Zi6+G{y*+T2^~0fy&w5N&_l}9;?C3Hmy|fyW zb=8E)PZKK>$oz_IhTxF__gzPK~A{_)!D`A^AJF~~E=@v5d( z4oWM22=dJ$Fc~E`Myu|0Fi1p{-x&Gu349U4y`UC{fz7W*Cuzy_L*_+GDaU_mjO1nus=WSVoH^L(`d@x zHmL#ML69OYi!r5W(*0&eM4PHMhe44X*ZAqD>mZcu+y60;iRUY@HFF@TCd^PsPKN+o zgVMsItJ^}ds#8tDbX>29P9SLbBGH9m(95<6qPAuy5uD_3j-C?+f&;cuLl}1>eL2T( zTXcze*y3}Wk`EAEk$w1Qk&2e$3S-LCm9;y`>un*rvi6GX8r# z-Ov%?4ro*lsEf^{qQmZVW9FGn;Mx}0OW?AlsPbz9kj(vp+E|_8=OMT}c8GWN3iK)a zEJI?L{7nN;^qcjWv|!I7hMD&(y_{8)!{yoUvo^mbmNkx|JdV$o59VrF^ejwcBApDV2AlR4xle&Q1>& zEzU)ts8knJmGPsbo5H~8%bMAOphb-}{R)#e-_u#R?%074D?y92g91Z1HrN0p0ErYQG-e<>`ZE~bh-@*x4P@_a30_9QdJ>g**MrDZn}$Q$`^jW8v0S69 z0eJBFpOG8KE5w29E2IWhMe0e|drj1Oxbl`yrzzferx@=I;n?tgf#by?D5$savO)z>o|S zV&N7IodqGM7f@gtAh$k^L0d8gg)?5*Kt@ZGWE5GOY*le(@*AYt_)o@6itv{iM&q)d zqC_jjgA}KYFXcG)9yP<-g#h*z<(Rcewdas0fq5tJ8|!7>+Z;E;UY!6%ph>`FuJ@Li z$b^+oT@9e^6!OLnjMrVUUV>sW`FZH+4?Q$1lQ)tqD2(uOh^IvZ&c?!8a$x3 zFo1XhT(C<~ZKA}| z>skO;2UaHk=>p&m7`;ByIY4ogMoIqDv=Z1t8fO$C)l{(-dCD+WlP$+*lu%T|duBQi z8fOxTOjChMq$a8A9;?o+JUHx7)(01)=f{(*LPlObTfC)xUYMBT-@XmTYH2YVvu3RD zyVc{)VvbZAPit%xVy6-78u0ZlOnuYeAbR$zOA$HH5udi&Bf2z+PO(iB6wq}#??7f> zr+trGP$vNd6piSFY+(pDtu|0noJtZWW70=Bl2_AN3yLSx45oj0CJ7 zishq{fMLbRYsqrm`K{!I)l11s%Wo%>B2+nU47B7*^Y&t57u1+SmC~DT7zP|HZr6qECbLV+dU0vSPSt`vn&Bxa!7jT*P z5>9bo9V$_1GvEp?Y$Ig7EjC`pg}GYffl_@Tm**+xYMMWH3Uy0F)kOQgu|p=2)!fnv zwgR#amu%7B?bz#-m*n(A-M!R?976iXD@E)g7t^%NU83>MbBaU-(tY7rxSFRJC$+R^ zsk4zjBem5szSa#LBFZieF9;@HSQlOpp!~LmJ4tuImwkW}Thijo>{!zVa?sBHHv%v< z3@SlTT3~7v$!*X+U%(L#h{IiB2`Cy1>g!zpQPidLvybN~xB91kZt5)2S}$>JO0Ok$ zQffS5l@f~sVU!YU1A%i8%f(pv^|c*FhsAT}+~U1EebUb(mr3_(=I0h4{y3N$3EQo8 z|M^F4vnn4kUTtL2~)=ror19JjX%^O7=SHEe5Oebr+W!I zN3;(qB(7C3`1P^_eu};-trG<`cEeA-w_aFv&2N5zK)hB|BD{(hP#}aJQNB*{P+~I^ z=>eXLN}0_}ruW06?FF{#O1>Hbhi)1-p|RYS3k-J zkqslLY<8ASU`RQ+WIHLo0mO@XxlaNpvY+G+C{`;HKMb#ml0J}#c<=w^0`L77F7V#< zT%hvnxWIdxxzMX?xxjmyxX{eDyk$1q#x2Nz&B$c$TJav-8H>!(+hY;U`c}Po^~EsY zbBgWXn!$kJyUT&1@pAa+=a3e?Smrgd;4E(ge`KU4SJ_(5$rmoy-iIWVn(T21rFl~c z;xKQnO{RfP9#Z~F#s!JJDXi82?Ap*wO0-;(Nh(=ha|4HXGN1_C>{fsHRpLLNk1fup zWdYUZAbqb5()a%$6oZHVd%LBT_G3GoO7%C_(S}Aof&tzBVx%rxdp30j*!;uEz9iEF z1q<>aCfEVO-BKdENXg8OG}CK1!ih!p()Lm+%P}To--@yyu#nv1Rz`MtIwAW6^2<&k z$;`_7;#41r@&qI{EQGf_T@GTQk`}DkB|)PoUUsls84&cq{kfkS%@-GgH;^`w@Rk~x z=0xT+y)2ljOqQCR`sR$DIy3}dUtJP)7X}E;OC_K;Rq5~uNEM=55lYb1vQUDg2;40e zY0?RMKTwV?sHwkD^b#&m^m$yMXobo`(Jd}ew2+{NxIobuv(6)cS3TQpMd~-^)y5RT zyNZBLNAPA_+Y3@SxXyp!AF9`XB^>i{b9+3+1OPeOnMUMK z(gnw<5?DW!0lMIo2ukMT_7Hso{N4avrcVHG5ugij?N%N0CwF2Of|4c69M(8U1CEpI zwsJ{ljBOWebc~31$%DbBHibmSuk)=SoIpmWq3Z|q5`{r_=JWgF5Qp8&=jUVHsK}mL zR;iZ!NotvRvRc+@pNNkBdSYnS%v}%Y8`L?lgNQ7xJBIsE2F9vb-7LiFYPbmojRImNdF{PmBWo;rv5RGjlfE}syyGJ^DF0dKbl)1Ib0KEcK*wo=qCjDuA(gmVxEs{2-m+J)uw zVMXn-c>~jPs1{{{-TYG7%BWq(H?T=F(yU7!7unj0(xU6={$c>dr=G8WqOeR;wCzHvm$aTu8peWU~SsByu%sKPh z_55nnsnWLAFc4sBO_dVz%jT4~!6}Xpu*#<) zgRByKhrU1d`q1|QQunslGsQ-hSy;b#jD6l(miOVn)-lk$Ct{fj$zz^<{rLi09lzeb z1%ay*?Uh{DzXWTn9^TTnIcXdEXo(Tk@cKM_Jyg6#e%$zVI=Wuj8A#0Y*F9!MMSjTh zjY8>o3)k8T-(Z4?0i~+-kK3{_UEi6%{T7zbTZkvB;0%{jl|om;i-6rEqRx zbt0{z((Vd7+3trJ+TOAu)CM(|EEU2OZ^7_x}X869m<;)4~b9jq&-jdD&x~u~w(j|dJFkF_;-|J+wLF!7hh_dduPzc1RoReZ#Ci2@P z>xUdHA*UlZz##q!6d1Puv67Twx=V@`8-*<8W}|a_P>b1QPWFMV%s#Lg9to{=Z{hOv z*{5Ey4=Y@;53|QC_MtyyR=3g1((*z{%(G_GaT>N9iO5OT0j&7 zZ1$@g72jIVYjIAmGS3ImxKOMNryKZ~W}bahzq(Nb1LS}ud8f3fJ&ERPGv3DO8UuU zGU6$9W>WUY2euU3_Y!mYVblg?!xxZ>=>#AvCziX+nmC4Q;6|>+GA(<24Y(ceWn6J6 z4Fj*BXr&xem>G|Ig(S+zQBbbRIZ4eG^7lx6OZJA$6C<(~A7$B({k0IK#?uez1WV@A z6T5N$p4!d%0sr$q5UuvwK-&P;VOnPQSv});DGK^j*ZXUb8SD$L3wEJlLiM@LVb><* zL+o~E7jkvaSyl|K_jCd$6X9{e3kr_0zqbqPI?W3A*XUtvD`Gr=S(^c-e-!p2h<{#! zNZkfeGEPhvyK6|*+5z;v2uraONXZ&f-QUAz!U}HD4;#2FV|H^5ja8WKhqez^(9(m_ znUH>>gmf@MI?6PFL?4t~OpD#@hkfTyN|GF73@H__#Vcs9s8SyHk&WbWO&nz^!7aZO zL_;OowafD-A`@s0^b-^7t-ZdUK=A0`F)|k!P1+1pfD)PYiaj=Xu`qf*;Yq)r=t}JmHaF>21bL)>hS^{B#kv2_t^S{rg}Ql>(4__V8y{?TMV- zUdc_&%y3i1bzbd+vA{N|-gVn+%oaStELv|vDf=P5z*{r>D8_M{rK~{OrjfmCi3q+5HVKo4S(ErTWIQ{SOQ}j2lA=nAQxb?Gu1H!QXQEy`&i9JJ?@#qc z56qHt#}&zpQ1=2+s|sluL&d!zOD40SBsh+FNkXpmS8FkY`%wIPlEq97MQV z=UDdCbq>yg(PG>)c_oRTmd^3XQq&;mpBm0$*@C@o4yKD@4R&f8dUTG8n4TS-qdc&u z)H!Bx*)yzj^tac@W(l7EALtzLvRC9f3GNAJxS-b5ZJ~3{@cGaIUZzr;zOlW&Di1 z1K9Ceggsh8QV=5t4-@3)5=Lpvta^q~T6Q5y1pX16qO;uno=bkuCBNsA-qZev0oGBn z5f|uKB$=ZUjz!@liI9bk3u)?ty@^FE5LKomwK01Zk`%r|~FF$j?$ZVJGnvW@g7#D@E zDH$f}G?$R0js+s4LgXUY9oVKMvaGI|nsY6-X{?SyBJ61MN=UOfOm6@g%`)6eLFYdE zrI%~&^>+MA)SpJgCs>N`xnz90WcUDv6<9OYr4&V~o2aOG?WELQsezm6DcClthp| z{)65dC-ut|iNtc8ZMu^}G;k|=}< z0|DgiKqQZjqim1Xh_W5wo?~+8l~Qj5FG)es$hrZyI>KWx`_LjSBv}dsWD;+Se^6+} z&=e7@BSPY{u{eN6G4Z-y7kdPSWdz-yKE*a(6)qs{(PRRu7 zlF{Ol(E@~9i-DWlBPrYgvBi@_xCT;CmRga7V#2y)rty-|-qDUM5>36Gal`@)+RPP) zJ7N!zXi4K=W+$ZuLgKWz6yekVrhbO`1|zgC8CsVNtxJJiMFxs3^&SCz+Zi&4;69T9 zMU3q*GTJqH^~IK+Z7VU}G_Yx;MaI%cktt(rj5lqDc+>4`l*v-@rd;xNqRWK-tN<^H zH*IC_a0H9MH6y#@W$NK>O5Zc0`Vyt}Rm^6@kxRzW7~2;_-pZTFuf|bR;ftlL0c=q- zi1AQ~aU^IuV5b@?#EfzfYna9;ljAs~<{i;6DMVT$q;SeWPcFH2mpno)^^On%Pe53@ z5sMzOG<&>6WC9}wTMmWsVyn;A&Ir<6vr30pZU7nO&9facytJANW)B$^m-$miLI9?+ zDD>t}?H`sIgTUwq`md7ScDXD>t8g-#|Z6L_cBQ;`<o-ly4`%OsUYfjaq{O$+hotjyC&#hQ46oItL?c84dC1$m24Hl1@qj9B}!-{^cVci zw!K5XJnl8UpAlp8doVTwUm7qQ0pM8IC&XdY^miR=>2aIlD?~%uFCPrhR z#RPk5sW%+sObfy)x3)Sjg4=q~i>0j}pkDImQeh8~7=L|aK{scgYrJwx@j$N!jrqDH zLxwbOJxA#1A6(fPtCs*QZwWhnqXP_s1fwy6Y7>I21dOU|-~hvWPflV>UkvRQMrM-ygk1)%8#aOvV2xgPZ>giYAE@FkaFl4E;%+{|?!!8=2&(};lVwYP)J zAki(_6fc5r+Xo=a{n-C1;J%9t#(^+td?sNI*nh%!Xk#8b^eJgy_;V4CAX!s>8t4)# zmGcYgrpnJ=W>G7aozYxyV2%l>xuzL`DlyHkLWuoarM0w_u(N+rQn#K4z#&?Ps1GZzT5); z#^?PIYS_=P&%nGNY^~p8^FCPE+UeTAXOJA@?0J7Kj6Lh~euYmFlr^cRIq%!@d-n5w zbZpsA(L*Fpao#VzSpTefzZxA-@RaBM+s}I5za54?gMOg-ey({R$aUbZ_3l2_bd8~)OU$hlz+*2f6paPZ{9Dzn`7P&UYl~>|H_Pc-}gQ9zVCbHecwNW z^M1)BPd4vY)b`}_e)TGoG@+Ky_PpP1Zq~ftFEqag=Ka{0vzYe}R4FfavM0DsU}i0@ z@Yki)KPhb6S-v~xWkbdssY)cD*P!UM0+t8FKa@Ey?~%o6z&S6K;7%I(Ze0%%>QOI9 zcMx-49!i}Ulo)HBFiEm~a>J0AU0D}gR8I9}q4*F*LQqr{IU?2eYDLmgTAr?$Iz#qL zvicEzQY((l%z1gdH|OOkYzd^(RNE)Wu|@hz1)(*CJ7QU#+&<(|(wWsHuQ^V_7&!|< z;!D1h(|{+3-D_K14ym_Vaj45md`WcB=?`=hUuvnRq$UQR=uoGxlzo#Q8qQlet$H~j z*#}dEGU*FAz<{!>00bR_Z8oxyqMewLGI!->Wn$*17{lw5vRI<<8v8Y}`h?7iW$wyD zO2Zh>CipH2qz)%wMaY;u%o0r3!!g_cL&}=iAa`Zno4Hc?^A)oddLPfMU^Hi16UIGvampZ7EuO$WM)1~(J$%tl$B45qAH&y)TGpp%3BojS&E>`e3nL} za(M;(`6v$ZSqhgT!+>?IMCo71XQ{8te3sSMPG1yWaz4v-5l5&^&T0v2j{c0&tp+NP zDielwF#DE|xn-CPJ~b-%+L>ADs|lwi!eP0oY<%nyC_fBYG5bH%lEt*8tcEXEwzOSj z-Xj7(qK z*5L#iyL%{`tf=B4JtI`lWTl1$fS4;Je565zBilm7rwN}X|CLHqem80Vrd?K|L@=SM zFrVESn&G#pH&e-7T`2eP=}G@2a?qZc)7-h^^zsx7%xq7G2b`fpmPhrx2Lswx zBx{LmCtVEaB~_`_(n(*2H-7CIduHQpt#;5*l>{9fu# zU)364$-jDWC*bX8I63pU){iGrG$o%`YvAe2BxZUfl%0cAEm)wzz(Q{L^pT!G8NOXNn{)I!FO%!stI%IypjSt+oyIDc_YglmHXX^ z&i`{&E2SV(B8!&#;#^HAgwdm}RoE_DVkxv1#Usf3tc!F=UZvM@Yj{|5o&`j!13 z%T&T5!A=h*=9!a8nB_@n8m4V#e3d~YsDnfq$%#-rOflze`XM;+%TC0pn_^D>L(y2z z)Gbqq9`q!?+)kZ37@SNH?_7|M+?MJf_rsj6H@EgA4@tk5WS#V>`;~EGd>~B*TH`fq zR7G+@@_`}1q<8yaRAwv6%1qpmtKx77I^{>QhUuM6@JVa#(9~O@pPQ~UoV7S4HvHL0m zq<9|Vq(%;H#u=xg6Flo3GdK#}k=bu3dlRSFd&EMDK7k)bERNDW<+um|yW0fwIt&c4c*RAp~o&(o@(&iY8*X*(>HwF&ozA7 zDJR62!^0fsVGHn9js?>mp~*y2UxKx{ zGD#5nV(RT4rR{Y*abc9ybq?f0SlptbbEVg>4@C*j&7mlfx{2>$EP@H>7W!VZq(~;a zwaGzfNYnKJ(Gn8zcf{wMWj{@N>{UHK_z<^&UDQPC}M@l-xP?^I;NeAPNDQUlM z7=e9HLP=JGpNxw3h007tv0_t^TLf6i0D;m+MUd}YR0OK0d#R{o{s3!5Mf-cG=wJ^O z9V)4aBgbY@k%fk-XvkFb4Luk#6`>M7ArV>mC3WPtpg_ft1kIaJV}G4mw}H>v;hFW47xeSK&}| zAUExW!wRo)qQlhY#7P?9DD@3#80`_XGij|O*_*CJ<$=r?FzIIr7r5qRdDP6)Ozq+2qrq@RF z*f)xA6PX~Xm=Hz3ztUlT_a9(yoWL!S6g1=OK?M@-+7I)Qf+xH zwDFJ8o8houA^)ATY)~WBa%$KYJKD#*rqg1(JG6oVwT=}DTW(wHYufG4gNsn+{Cv=m zgzw&f34StJQ~9+oGAl z8{)2wo~p%Zp<)Nm7P z$Njsbf(ok5-Zl@5gI&^d#sg?NoQcotXajt1rUJw;>THT04xyrHp)3jm{L#rRAu6D! zOZb@^RV+(y=agUC_DE(w5p6fO1C<56KL-6=sBjAPo1h=HY}G(d)@7f2fvS`})Cf~L zei|I^Yw!+!#agP2(L@7o6oV23BEG3YD$p>M0{}s-cs#g=X2f?Sry%~}ci#aLN5lS3 zrB8{&vN?NvgW=MC)8+Mb?RmUCyk2<(@gK8O9V&WC?fhZ49ct1UzTw=Dr&i0yR7)#B zD>?Jss`RGJ&xe|G17`Plpn|T^_bNRw8n2(`p|Mh zPWO;?g#3f7&jsJv!lRx*39@7W!AMW;jK?Vxe zB$Y!iDw-A!CtA=?bY@@nqj6ju3{s>F$aN})ewj#Q>u)^J`JWMBPX zrA;WWL#kBS*%w}fmI5luu$Z2?f{%bU%qN~I1|g~$K(dWgKmyi9T;OuSDl*~1H%|oX z^%bmW_Z#^zZWk?~MPn1Rn3iK|iU2M|FKT15CJ;RjB_d?C>49emZ3!Prj?_(r6zm;& z?ote0=b2+_{fsZz-XK=8?u1ehqh(+PHoPL(*xBoI)83xdG6jtuj7NYtZmB257NlHF z^(36C%6cAyMtefq;)L{MnJqrTM%+EWhEt_cLPLjLMln)g3nbTu8*0dO`P^Fp-`8Jhqhah^=J*Rav_ ze)!wvhgJb@h4e^Hqrjb*$@jhnY>04l5J|c2qUZV zXBeC6JrVps`A{u;J#=YseZ94tJOjfimL|`2#j3{$WXH}h5=(6FW^qhjXFoTeVJtR9 zKU~Z8l`uh|f>pLVQ?U`t3hVK}`=+$R=?t>Z^P+nLM4>Vw?239H(9-ld{*n3~xdL1u z3x575LOLJ94dwJJN3)71^Wb%3Uv$_@ZI(XKH+ql&aJyH|FTwoY&NOI*&JFXQV$j_T zxwAvxLJWdNcdVYS(?1QwYbq_^p}EsWv9`87F$+Nm(-oCO#R819!I+j?IGMgVT5+)W`!_-Z^UF{|p0Z!4QT%o|M?IhvG0c*3n5*CJGOhTCJ3N`nkD zS=NEJ8N{r{I=208bm_11TD^l3Ps6Z&8*Drl%gZQ3ePzl=T%cX=pzC)+G^3K`?O42P$={GP|0Qryu7uEBhsz8EE|TwMl7DH_;+s4!t-j}!h3 z*)ig@15Em}o=5m_Y_l*Y12{Y@6zFa!Z(Zy`ypeglI~dK2(d=#%K?rt+C1j#t#!ogV zkC5QgU@_-*Me?j&pwlp|rqNre8J_J(H%Fk9nAX&KNUso9|A4N{zXx^2j*B(j8q|JW znUL?V1!A+;uuL-1EFQ3(T`He4tWo_T1QD^!)&m%#?C2{i;a=(ny+TQWq}4>^DMmhE z6Q91D)i?HjBAG=QGy7(#+S4~+?&}-Mt@}nF`}#(sW#2SO42GN&GBwj1mfs^~A033+ z( z*)!rN$|>G5{we4NpDaH-Yu$jgy{DwmNMz8bs2kk=?CAzjrRj%-7V-N;Px-{9e@!x_!fl@b6hS_{4Z^Ty_JtB8M}tNTqOAXI>q50>YXy zM96;~GDPTFyBY1PR?O46Og$MPzHWa7c@{`)AYF^B&>4H68s1!!>mVwrE?7t6E7&^Z z_v0Z-txZ4))zxqA3>Qn;d+$?&d{uq0 zNP?xyU%vuq+!dU8Xv>Hwc8l|vn5c%ro>0}dvc|?Tt+r4rTkKe82Yz~UyCt2N?kEDm zpqGFfE(`!Mj%1^4n^>aC6R^Ooj-6qZLLLb))bgfxvPKld6=SrgXCs_|1%&N$SX&R~ z=fo4RZ2krhTSL!%hSgYTCcrlWDCn$sM15=zh?>8IT!b32p?p4D(y5egk~V@WB0h)o zO_@N#74&|K!c6LizHeLlHY7%P%HR4ZD#BbuGMzJjJp$BjdBmqR(Vmh7uym8|jLl(Y zf`VZ!OoSK~IqWRlhWUjC1iE?&idk=IH1%6YYi?1&pzJfFq>=XadtOzNl%e(@D2IG} zxE1LRs(P?`K(wk(Nf2N^?MJiyi4}|DQJ{Mo@R3&U^O05y+dk4NYm<#ZF+}`XO1qd* z`JhD{B6EEWofM(>owr8s z;6G6shZf=jZgHxW@F^>fG6`tu(*x3(0II@nO!?V^|4}Ehlpt}4)kxW^Gf|o=5W|<> z#_{g`_Dqy^Hs79^()zw0C@F0~>0*S)9!ld#QZO@Y%nXMd3oRSwjG6i$@a`o z<|M0X%qp_#B{YqL_zsJK$SPt(+*6U2C~LGlsVakrVX?(f5zHX(X+yNuO*J%*)MS0l zUIeA}ArntZiU_kxJf?~nL&5Bl(>|uE(HU5R=~Zcc218mO@(9H`Iifu$T?vYuvluZX zWm=!epd@a{?r6iA$ZI9jFxyM4;UW@Cpuz!2lD)@=Q{{5GKYAvYySH=py4=fEH(lua z=T+KMx5rmb_g;H^bdvPh<9i$_!B!GqvaO`g9N)F*V*b+Nh)KQIX-hcC3Spq%>3*am z-$uXF-B$Hpr#otuo$-0}Bjcur_~YOe4Ftrr~7w9wPCk_-XD8%r~ACwPIuYQgVUWwpLY-UAYJ~{ znmlT=tmfk0nF#Lj!owJNF2x_xtb2X(P;QSu{_t2yPwHb&uQ6uVWZ~`U`Pq2ngXO%} zBM+vZ+#|2d!TP7>Dt~+fZlB?gM@DPxP=n}J>8wRyNU2~L<&PgI{n5_C+~hZk~Ws!v>RpCt3RMa1X6W#DLMpj!| z?Eh{t&YBgBkINk(Yf(US4e+ADewRBOGuw>~CgygzNBeVdVxth) zhdnsj?{xp%3+(`q7ip&0nmt$OR2&WM3|KL!YeogSi?}e{P>LA2$MX)5n|K(b1o$n2 z-0ykE0RWt7h!U_%Rxm?OHmdR<;Ya!21$Cc$+~WP2_Qd!5+~1Lt!eJqCmE>mi_QWuIB5 zM^|W*nnEE5iuPq=$Y#Gz%o*29Ss$~=*}8@Gt3K}3whFI)gRn9`YZDxa$H^_J_5swS z1_MR|I~M5`^ah*a3`O;kez~aIBK?wco4~}pxrIcC;xkmm0Vro!qpWk4Mz&rKG2r0R zif7^cnqU=isl&WJ1Wu0B)ZgL}{6)Lgc51~iE9%Qwtc+b^w-=GLfP!s6{?*|b)$A^- z>9D(Kk8dJU-3E|^ia&W-@%hIe=iIG7V7>mFS2osZhI6yKY4($s(QG)h#JfW|5rEgu z7Z9tq79*G4NZ~(R!k*N!p8Kzs^&#cf0y7d{*wU7!PEDgnk-dxT8i89+>E$$g{ma#O z!2rgw#B5;zcd++@Vb&Qn3M`%iK39;bmW4&t){?d;QLMF{?=n%iJUSVIYT!BgqCR#$^?8QveP4BzLFQe zcDeSVC=#(V0ErhUyn~YGAN@0D*M(dy*$yWsjH+2^hl}?%6YlW5gsD?8VF++ z&-Oc45HH^2mL*pnRIhW_R;X}YM zeUCw{4$PiR4nhnT+|aYiLK54J2=!3I`#t=)Q4P&w#B%8AG`pj-N3T$CzWEsj`zUWo zLoCNhKLF65tPB}CeHfC-hHqQULR=Jj%YU-i>n~xWCm;JvlD&TwGKG6nm$*TS3V7-v zDBbrG6codN0AcnIPLSIrJ7B1Wja*W+SM$F{@gTp@1a}(uyOgl9Vh*x+xpkOBad$L* z4^6J0=6~5#x?9bw;v~CogMQ{*A0BC7Osx#eBVk}7y%I|Uy^;wk(5pYD%~FU+Vz7If zF5gqjz646yCJceG3shhX6v)_0u9}}jCB5BeMu%mQ(4t4th$pt#ooiur^w2@f24c(# z%2~qGrgLFF!2(4zYN7By}m8X5dwW3JN_J)MF6julYLXgL=*v| z;ovIN1Jd83n7M|us)6v8C;py@RP7?@eh=D5_hN0yckInu{9lFat)xMoOth4yx;3zL z1P8lyy?EJ{Vr7Je5Pa3fkP4dK`NeA5WOA>ieCVd`SR4Fax3gt;L$WohM#T4a7i-NF z+&W5nfNp08sv2Tv&-^u=ZPKao>$B-D5(^Q_Z{6Z8dtjkOf`Ryw0>LC5mh* zj5p%DYK0#f>)!GriU9lK8zd>;uzh=bRB)Co zjb8`B@JlauN{3z^XBtvgziQOresu(8PC0i`wuOdX3h+F_VpcMP2CDf*5?A{Z`X4|e znry45QVklCHPvgXPwV>Xfh)oe(f@!&e*Xhhvi=85i2V;F^77G_Cj&emWina6YR82M zQ(=Jw)wJ?5-*_Txbmy@+b4Vr%;b=7&%D+4>t%n)%a5Y2TEv+;=YVo)m^*Tt$yOlMg zcaFRVwWypU*$me|$FU&vqhK`Drc}DWJs-TGk+e!cS?{UdtPI#? z6vN9}kfhn~+7$2vZxfF#;_=kam+Q7Ji~2|yuMaL0yNB_bIbwAg1L{SEh%mK3@fcCr zb=VT(r`Wl}U|Z>sS?q4s9a38B?4Yb&h@h_(cc-lX$vEI)tD|0KA6wD|Dh^vDqNsUP zAW?xfSDqDQ3g5JxigCkWGPF66eW=31v)mkGDW&(bKcjY(Fe0cTV6EB38e?q^3B3x$ zjAqJr4^GU0FAN?1m}{iMm;Ay)kpqEE{v{rt{6k`&H9bs=D*tihseaDX!XBCI&NCu* zE`XmdX~l6Aq(`j7bfr!t?kB_$Yw@S`p=<_1kxngs8Yrr12M`+NfqzjP6?+hlPlq5x zx8Hy<&zg*cnj^;^>FCIeu#4WYq#2 zu0snapV=0+a|W_ZevS|2NS43}I)g;xVNdmcm!*q?t^Dv&4N!oJ`+*5p)28j@Mt3d{m}I@N<;pVILY`GEmB+ zRm_C-<;nhmspN&B_z{YDVU-_dg@|ZExr|QorE(aqA=OkYu9~VJt+P{LusHF{pHl=` z@!A`T2FJ@6yS`2w#G%V=QAoARM-OB|O0$#C9ZRKg)ru8c+T?)~m>t4~B%ntz)Zr5N z$Z{T&=>X$;GkfPX+@L3-KX%lQ)$K*PtZJX9%btPu;=H~-nM%ny!7R6yeuOJ|B(UGH z4?)+5P$a7q6|5>RZ$F2wjxNV+MwSW0ipr-+9`!&hE7KJwHa}MeEDjH5E&5vHrkNZZL?_{bR#}4%Cky%0MrK@J=qOeUWCI^xwZ_lJMnIZ2f}3&xn$$c!TP zS;!&h9DqKS@?ndYAUGPH=S{Pq6$Nd9_P>NFk&z|viM8N6ZP} zy7Rz@>qN)FwAfZoiN4A?Ax0n?bUO(EIdYj`x6eetJYCUMbGXW$R-48T)1$bjw> zJ`;nlh5O?XGP44EM*(;sKc{#gygj_K_Ko?)=#@4_2zJ5&Sp=Vx{pk0Mv}{4Ib_%?qU>Ij;xc$o0#6X3Ff3uQKHC(I9fTh6fNQ zoH#Hach;AI?3RL+Cnd^!tt_4kxuORZ8Ot}M0?*QKr@@(2#wZqHd7uK zGcF=|tFGtS09?zTV+Rzr-j}5NcwW>ls9nkhv+y+gkuT!SB_xi~F9?Da;e`{b09(p2 zU0G=y)fIxkRE(fwEugSaYyiyL=awYlye88KOc+9WO)%@SBAhQ&dBL+|NIb?Q#Cg=Z z-Z_M+p6dg$r3iJ!-KRgAWbe3!Qj~;knL)mWXgJ0f#V7vhqZE&-2&CddVFMPd7kBcd z8G<3b_b(_K&B}>yhLlR*qBsozybYe&QpI>?q=brzR$s$BRoE|qRpkKP;rqXk9>w*;FOGaz-t zVe-ZPIy4sE7xEaiwaMv-`%_$tZ-Q}G9xL@yg(qvuN{id5O)l8;c^gT8guZJ=YD_U8 zkvjQ>hTIwD3!7v*K<)poW0#V`z43v|bv5S{sbH+A-5A>(%KktZdSZS~!<<&&KoZ$^ zUZq}14lo0s);brWIaM1KulRNMBYuKbkZNhn--s76HaK2hk2A2#$C-`8%#41;Ed6KV zqc9`a_ft~&AUVno#`1$q&kxq|Ajm2qG-_2Zivik%4JKe9LXc?LYA_-I?0Q_AoYZ7? zcub~+Uz}eX^L}_jA=71!xyySa@79$w4c9&m1YwroojO-KNIe~plQ}7lG6(9fh$7y@ z7)<>8&z(#bj?LFcOnv9t%fR3qu4%iuB!ZO}T%7iEN>jjXt>I&C#&)J4O)j#e!5C|K zD&Y)&)jCbd(h2Q0BviOHU+vaK9DK-3=52^JZ!)pFL3!5dqs8HO{85tq!%y=zZjJCE zV^iGqXk=5txeuU;a%5XPH^=`!_TC0cuB*E9y&qN8)m>fPS5nJvSu(y=2xx&C3nQzI zWD{MDKVMOQF3Q1?x6_t(A~Wh zW!a^;kD_uO@#XH>a-QEoJ%qZ?R&yB;az_GFh+m4kA49lC7GcfU;WBt^us7%zHVq=XHm z5OmdXrSzx(Ku)MUs`4p)5@kD7KA|$=@lglti30a_5P^^#V<7O_;61dyLE|8k zu{wdjU$z(43CUWtuaqEJMj0rfTZd_)tc|E{iYPN%eUa=K+kKIg89OOvqu4|8dZ=P2 zdP0HFUSeu@BnMW=ddcs9iOL_kSS;+>XYxM4 zpWju5JsO22-(M*dIuKE>BaQaVhMhii zV^h!o&s)T5!8S%-Yq-%Qn`59Hqqavm4L&}*7OH3HJ+m?QBN@!knkj*ZM#9*2ulZza zUhNI(vAN4>U5lOr4|??P#)B-)4sc1{eG>;&us$)1cAR|YS5Y!h4+)~iQ#O_63QI($@D=yDHN0j5+d6rAEJxbz#4q*F*!Sq}RHI`Iz? zFN%=qT1IhbQpX+5=J6zECv-D_DzB_Aes z5MWHqp~H;L=INNF;v4O8Itj6M?i}XwImX)k)ANkA``Ao41a_uotlh_E!V0=%o`A<{ zF&kmBXuJYD8Fn`Ty~|L|P!Vg_m0jjz?fkKz+|Fa|IB1j^bbJm=Ehz?0!Uy#(NY(|^ z5kkaV!35$%$?BEl6E`8fy4W;x;Ydsf|0+*ha9x!ZsZwina3}2{xUN%kRlq|0^hm*V zZ+%1FJq?fxu3Nr=+XUBjNrm-G)$X*@dd2ah3ayLptW_btA~SG8#ERCg77C-8{fV2H zXwu>vQFUOE0Fh=?UDXbMRyZ87PPhmIY=x*gKx-Ust95V(cL2_X#Hj_}S6eDub9GjW zYS1E_%r?PWItCTLGyiSkLgMO)tH8qBTm|{Jio;9%fLbVCv>bZu1shdeNjP9I+d3J(};l|P*PzLPudq3A3Xk zPaaOE6T_27eK=iXJcXOKBkISq7tG`x!!+eEqyB-J!2UV<5><<)b!2&izQ7lOk)kd6 zJ!0x2j;Rbv%8VgPgqahZlnB3;i=gfEO?G6FEHI^CFx#i+zM8Ub`w{ML|Kvh%baGu)V< zHVsZsNDQ8)Sd)HLW9MnPbrZEbO7*iUNb4<+$ zqbnbAQs}oY5#6IdDRQm|3y$@htwlx7b&1tq$GPk}U>qG+a)sXGGNaxj7O|{>A{@2l zA(+oa*$NL_2y#FbG1YE{JB*p_NU|s-a_$I`b2>|#Rr~)pIT{_j&XNKpP~AUpSra!Y zpbu#(ONxcb&tDh`*?CS9va>}(b~Yqrr;f+QD$taWE*gF00+^afNJJwjCj7i9A%%0; zNw=4SRfz+g2vv#N@S&rL#Fz_OQ+NLriUxI%de*$qidk&qL@ zIonD|9ci7ljXSSGjgXC(kTW!s(iuJ)xWQ2;@>4a(3SRN%D)syVGO|j3D^SUC=`GT6 zW*ZJRK{}rGt0wRA-#OmpzfD80q>g9RF=!bmYSz#NIF*a{>f7fD1elLE|x93B2FTh zDN@LEg$ay|nT*CIDmIBI<5Esf;0wvzl!%Hf7b1HMkv&aXQs=0^$cM0NPd+Z4Lq3s2 z6_eyM;cT8T${7k5!T^F5yRu{lluR`0Ln&Lf6=aGUX7c8TNW}a@bS`B&;6sy(XZg@b zD*qIPOCpd@jj;4-Cv6rRLKtTH<|)z;+)S2+jc{_FG(?DJ!IPz-4=0DfCP~ApBQTSO zE#c%{!aE#zg4QKzI92Ovk%p%YCx;1W;NXI8=< zd|n_nLdgX<3JaHsq2v;X+A&5T{&#Q2USw8mFce%IbS(>I|H2BwVPfbggF%&eATG-J z!9`AJTq5y?!60VVb7A$TOA+f0mr@M`3}#=Y12dk|gY-eP}` z{mjO_OZ`2fA{+OH{5^tO8}}~r_b{9{?!C_4145nHq#a>Yo27xKMUbJmgUw)BfMcMr ziIWQI6C;>o>hr=!*oqH&t)XQ(72%p$6MC=`bvP~RT>eV2+R)QCb5=kO^+K`KQSKyv ze6^=HnbC)$t5Nv2S~csAAD^qLeL8{O9v+=ML|0X3b?0Axf9jVrl`h!6{K3>OXXwBH zd-$WNUnV*t-X8wV)GvGO6ahhdV(OPYc3_Ym{&eb>RpkM;YX5HPm)(k@wuf!LtSE{5 z>Avi;oVjZA)YLXREj551{^Qg(%W@62YJWEM%MRI{?csA%zf{(AQI5{p#44Q6iayN> zB<}CrGbZ|A8b14LWZd*xunWqMvM%0I;_3*0-$n%sT|La{iPa6*iwQ5LR?=Rrns{JB z6DSZK*n60(6DBfhiS45b2hU9Hi5(4S-Tc;M9N>Q=(~Um-#*}9~DcZaW0Sh*#c@b+#!*9d0h2%k**Y(CFDF(eF;h!0g66**5iIUt^xUbLzucjd`+t>cg3h zdGdQxAI@mZlO0nZCXIRW`%@qGHs;CBsSkS^^W?o#A66Ulq|KK+^P}13%SvOO?3!9_ zS7V+$IQ3y?W1fsoeOT5!F$(&_sSi6E^P=q}de;OBFNwl!#<9}{*}Nc==-~-XSO}s4 zyL&3ImSxNyzHRD5i{7(`TPHtsnQHCXmdVd#8f{FmFKCK|LYC+K+O}8FgZ$7df7=t5 zwEuo2@S2M@?8EG-AAT8OMl$PXS7?4{-VJ1tTzuF&T8P0!Q_M=b4AkwMc3yBR17ki? z*x*JoZL-<_4pL*=e%*R4u5U|zI8+aLInG9&B%wB{50Oavvne@ZPh6Xc(z@uaUH9{S zDcN4dB;TBU+G=ue?ZIG;Xx{eI7sP8gf-$zq!cxIt zO@0q5QJfWfZGlR#7`BeJDgB{20F4ej7_3&Wk#efpb?)ZLox@Gijj5Dok;)qPx^B@e&K;kAXfIEKX`i_dX%^{Hs4pqc&s%BGALk!28Nk|zYvD0riEW=lo40L8gJ{WNrKGNsvwnJ9vgPu_MQsso2q7lOgZ>)YlEP!C)()OcCNZqCxp5f1rqRkeO}SkEug^FV*f z$?lifmj*MAEx4&B_pCw;#uaT*Fg|NdCMN$qQ?`o;aVqf|l5gzT)@N{n%XUA;8Ee|w z|F1K`vIOo4c8=umCWg`0;Z4iOaZcUBy{#05=)6I;$K2aSy?dL&P2EkRx4(Fy-rw)u zkAp}%SUhB*J;we!oxmxR12RFBnA{Ux97FHR`zar`a)uK)XMNbg6>|9rvT;0}@j6X@ z#vtG+5R)>+Tp975!2IVlCmwv1_3v+LKraqH5-$ta+1PS`r_QA1E`D;bQfQ13=ZsEw z77=$3ItGge1>QJ%ZC{LKq?ml*^=Kf@1(Ht&gWp_A3s!x&ZW%3DMLLOg+=_60dgJes zfro=bto`#Lkjiv+oNG3QZ)ss8HZ1sV zB+qRG8J29sb~X;6JnD=kfcqs9L0)peWMaQKHpqdq33$B=o!zGiikz1}C0krlH{}C> zD+n&56lI``kEvPwx)19rH|Z!lMoZ8B{BV%$%g_VFDcgyty^O2I@lmeA!>IqwG53t3 zjE3BN+&|oHx3J5!XaoEFvpxR0lWUHY11baESY+Kb9~}rFd2(UI6nFpBF*H7>MN5w~ z^wIC1&~I%R^L#Aw>Z8I!>G(0VMfMe{K0;9)Kd9?ACMbLc?E8-Mi@tFhu3e4N9U|~S z<)%99rUBJv@Fq44{j{;JGv){EHO?3@;?WOo+H4ZhsA3(RTS}f>8X2fZbvCDi`dIAO z1nRFt`NI<|Piqks;JOcto z4XT0YFo@YjIm6#*r>-a95Fz`7`EcS|n%C{NUZ+%=9sP+vDm&Z$hrMO}<`_ zB8LPH?zJ3|V0H(zbQkYn+PR$z$ItVZBg5f~Pu9eWh5q&8BLmT`C?rNSwMhQQ}S@Lmw{xFE|mnDGg4BtYiLu`Zu+?~aEEF@pL z6j~X3t4({h1^My;XPHw00zUdS7A_4BGY=mR&2w)i;Z1}Yg4 z;QdNxt+3k)*6VTg`b2E12z|zp+!!qrNEO(m&UU^X{p3|V0H*A~?|zQ+&_rP$S`bt| zl|(b$k+cW>X>}M8E;H6HBLP_x#YZG;I$$Ol2Ma5ip0S@R)lKXJb>gew6)IyS&>9S< z_-n;8$h*PU?yJ9FtQY*bidUL_LLR{D`4I2FTe-L_gko^gSUbd{s7)#bFWl^2K-bU< z*Yk^KE6oL>54Sj*Xt)iA8*5sB!9jd7Vn=uEsVL80@(#S2F+$YIAqre7Z^pG}Ke1Ky z-oaok&R)*i5BX^yPaA**sVmTg`Eancayz?Bz1cTu>$5HjMaMUNTI)`F^8{EBv5C5 z6OPvIkVA`uNze3?gMb>(wcWE_yK4d(WZYKcxM=h7A%0LHa3%h+%l-R(Y)pcxvaw8h z%9MEOI-zD!Z6++bms>Cx-AEb5Ao={IDsQTRQ02doU0KmH&`O;svhA9pGo7}laoeij zT(@x5p^2Nhh=zL7QoUGH_^I5EV8FN6`dS@eqLzRa05p%{^J?c?XVOIQ6A0VwqDaf= zPy7lj9#uzCYdgqdjRG1!f5=E2_5q2fvvuTUObtXo-c6@@(2KRT0sPGCWX+ z1Y92#3s${v&b17P`sMqR_PJw<&l`&F$}EZ3?1$6YmX)LL;k3`Pvplp$M|}B;M2fx& z`RRfZfdxNLRRtH&u@bQ(lBc-3P6K21!!+#iDD8XLMF}$kPehuRX#Y{o!VSL@D)^DN zE&V0gAKAg?)P>~a%VZHIGVD4f?T-98Q)z>%zTV4`A>`s2q z-KH%^5OOm^+`_LMA$6%;Q!H1~-^7@j6isNQ07XdD*?rZEE_$mQXWm$=p)R;Fh96VH zY$iU9FPZ^J#85!QZMUG*#L!QBi=arki@*h3Qjnvp6uPp0I-+wKc%5G3pTI!^&5rkI z3^LwC2LrFk4&-}g#^6^&(=NO*M!}ZP>>4{H5z1k;fk$WZM+1VbzuuuqE+a}Wd4b?2 z?EB*Ks@PVD&BwMz;zmzh2Y5J)03z=v<^;rP4bl!8got3_xJWkKbNciQ<$A|ZR^nmU zQRFGCQEvi+W8tc?n|MtwWn3GzLJun0UfBm;ksan@T4VNE3FJB1GhDnHY3v@tW(I2l z8f6FREaUEJub4mn$S`?L?OE#CEXN5E&I@$1IR*xa>6H?Sc8~mP-LAwi%RIn)^M=@g zx6<`P$WZ&@X318&w{R$0=t}d4qWLOe`;;Bh-h&0;!=PH6!@5?2I7N^)sMqHbaCvuO ziH(1Ph;#uU*6?8*pn#tPw+psp?8uJe`GJ(UIQ&Tw!tTBeSEIWnxR|>z(^;@Wi395>tdH8s{L3(+b!s}-IwNL9Rzz(gIG{)?!lI;4R@~4NMY0W* zvJQFn6o^)L-|gqxNreVller&;vYa@uUT+I@p>x z-Y`52h5_$XL&O5ZzVL%poyJh3WdE0)BH9fRm^LqF4Scr|FQZL}u2HYJ1KLPVy_E*_im$A~aG^@TBIox& zmmGnDjsRXnv1L)LJT*nJ(ss+DSSoH(>~<(6C)u6gEvMNA#iEKZU?!c)psA8o8IzB4al#@HT-h`CV_fFc7imWbQYl2G?4&}mfmYJ<6y>thHZ1WjUU5c4 zA~u^Co{YgngS>?x2`nQK>|h=#;v`J7oVry5bIJIl28j49q+VC@ZBmNsdv#OF0u8A5 z%sv((PRh5dN;+oZHhG~7bFLpGrr6EVM6nGC1hwY z83_-*;jxn)`Y0s@U1!^bK`TA}4p6!%JIckObc=4J*~!L@9bh-RG&>+9%dSJU<<@Fx zR$=x9)*bx8@F#8|IZ+T;%S9up?3&7 zaco$Eo5P;!LtPuQ-_7}wSD~pY9QHFF2ibha_ctdz`HOABTbp@HvYyx(u%TEK$~F4} z=-ve<*xA+aNZOqvY2+6T2>97AZ$Q9vbEX3VrUL>rDQ&^_Vh9NM=r3nLK)diuR@DLO zNtfFoAX6=IR+9n(TEax~08H=D?}Frr571YWq5)dI%ERMY!vGXjaOSU?!6p7X7hK}M zQ%GDMd(bW<&Q{11L*o8*1p&Chs!xio)Ntj4CG;sAq9q8x#X`K8BLIG33HaQ!1e9g) zT!O}@L*g{~a;`NU634a~i{56CIIFj_g~UBREdeu!{DYRVDmWD zmKeCld&53?w(Vt8f^9?@>trHiS*{I8LbsIa6_b!MA>zm?cUpGimIm`v<^IIZV5Z+0 zGA(NlqJ#ZyaNQQx!e-;Tvz6T_w|&N5>wPjOYp;?&3CfOa5~3M>1;dtBT2Rv}xTp*#d~UAAj#6%rbgiO$}fy)gDTRf0U9a zNf!8PsQ7#9mzL3k5SN(Zy{Kryu_x(U08-(rxZ1A~Yq8&s3*GA7)hgzIyE zcRyJ%ArmZ}$+KNpShL?#@9}3LLJT`EyIg^Pu%q#SK{uBI+xjIpi*1dP6vwuJXJC}7 z)?`8_D4W$V!DQNd$U;t&uR23~0g}sJ?Z`klBsGq#kI5q|$n2!E?djC^5GNU~+t?^v zRn_VB__tYtJGPs-&xm%V;jq<&JxozNZa}DPgVp5T0vfA@{SK=Y<5#ued9;69Zo~3U zr$-w%=&aBXElORuTo1KN?NF@>g$X4W~9fsiyP zA|z~GHll3vVI#Ve1HkTQqRYpvOS`F*hzNT7D zaok{4!XHiMv`1aH?{Y;f|{EAhWAO?qHb}d-FXWp9oi0FeU_y z0>@pssC8!}q??vkiQJYHAw^E-tbC^<>?C`@Qy4Li31nlhr-@z<6l)c@7ocR~#Bw*B zj_kwOR<~*k@Q{x3mK#o+XGhQQY=;K@G~ew$!?VZpXAV-|D^gW@e1k7=$S&wA*lBW= zc4LiRUwO?&ZrIQ<>mYhrh(T4XQHWjfTRj zpqq_Qxo7~fkZ$Ca2>%mDBNtpdSA&&m24i*SskVkEJ(d52rwhN2OGh@)w5JP*1(4`Q z&TDAk)i$%zPCMRwBALJx9VPU5!ht#v3t$I3Fm44VB`_YhkcZ+$^_1;(obNZ1pBo6? zoc3+3^~v;|`v@M&XM0K-2FEAi?13CaW@z2c|J3thw2L#80_$--PslbTYZ z%80(OK1aRmKOAhlE1@TNjdy29Mn&avSsq6SLrxnUcX*{R%;Jkb*ok9_XBL^ zdUvz)jaV&@P7BPkx>CFW(voxm*TIimYTOp)O~M09YDoSAOKJ!!@D7%U@KJS*{rp|J z(yyId4M7Zf3~8CGYI4tNRi-9P8n~7WJdN?~d zYs-~aNJF)WhaE9wJoO(V7rPkA7#j1nimcG#R1XeZcnkX?K2v+Fh~tVm?b|$1u1pxH zLADtZlvj>Y)w4OD`(M~ujli$z01D*xZ+h22_=_uN@i;n zN=8HL4LUl)4)>qZ3@A>WjNBpU10_oXMwej+*Eki<6~~^tG`PVcMDV~yU2nb>*n4wU zgg4Di=d8BZ6n!Bg=4H-D^G^%4&?a;N|JgLB=-MnAsp z#>XF=t12Pw0xcHPR~>4i5;BF3Wa_4!QciutR)Pj zb)HS<$k2**kAUfkVFLz%0`vASR={+J%|oPAG5f)nnJeYw@gY7GCcGE5-hJ}5>f0_Q z59PX(a~d`LHu$3v{^Nu~!cQiJdh2&6QBAp4h=#pm%lT}!fkLC_WM-Bv>yr_?TPLqz42`-&>ZcZ5C(a(Ecpg|KDnPkO%YGj>Ashi(yD@!h)3 zp=1*`0vx`O4NkI}kg(IPB@m!MVV@Z^j9ZcsORLb3KHxe;A>ef1W6VG?$ zRB}Adpvf(aakl3%ok=hvCR`vORA(S_ms_WFJxr7do|4%qI=S;@66S~FY8UTPIvH!( zy(4{>x00i|;Yt45fXhj6mC)VxO0)uFu3wGp>hYxQB0(pMpg#NNOI@6=YcB z%yPk_mP=|`xlHsDz0*6a#a|XCe;U>*$y;ZD+{()(K;?9l4k!0t#ndP;$TW~52~3GQ z65|s=L~*j`mFgRzD)EpFlgb=EU;{~+A+xX*y~BuFI16RxZFNxk3k*b~$>N zRMrzdQ@G6-AE^q(9*x6x4f^#CX=5~Zn=2BDNKgu>bdiX6iR9#NSB&10$`O?l&2DGG zN3@7k0rXpWM*%xUNX1YDS-BBNj%KQd0~sL10Xio*Ye{1UzdiP+Pr4I7 zXdidjLh^lFqZMukWcb8touN)%$^m}9YVh=!JM2(t`{4sOnn;>u{fBpWa%_cMQiG_xa6S^noVYX7|D-R=-+#Cx_Pf4(YSY(s+e*=P?{e7txTy zfEOB@H{PH%dX%eFX=Lm8w5StubgG($C(Pc(RU@lVGEHlGW9rc+@y2`z znu`5`7V&gy!pvb5Y%QV(?dOaH16DjO_UPmiSi}1T8O4EuQGw`@CUT$YYahFwqxnCLK(n+1#d!QvR_v4CC zW(Y-w8MNs*d@5; ztVYxexQp=`6UJ}-^lDRjQp|0F_=?Y z6&r_Hqzr93*+-O#-=HVXvZHm5%LGz?x>Bsu7fz}H8a|;b<8fS9aBz%g2Q|Uzr;n$z zvWusqidqC33$d0_h!*~i5y|yf;_&C8ApjEeIM#O@O)^Y==Ni3m0(D1vi~RERbps+J zR7p6%5}bHFf;thcYXA5kMq)lc32bb-3$){)*GI*)nL9$!#|QPf%_5r+$@h%VY}T2m zNPcvq6lz2JWbWa~_J@*r#MgWey@v79w_=gV89t^o7~JX%7pNi+USf<+yy}=FDReEw z!MKp5tSyaY9uZ~{tdrYQttRUOU`Bq+?8b`E?UeJG~ zlxz9pt=uWaIczCl@0+A}z%?{KW$Ee6F1jPT=xWVCQ{G}7{xC0U#Ov4wL%m~6{-rAm z%OSRo?5#3V2Zbosx<@C8Fc2BDVqO|93?jXGV-+?~0_S%ye5NMFY9hJ;n-lJ?8?kxP zdW2^ymso652YAd&$?s`T#P7?SXe!yXaii&uS!)HVi&{2f1+r?oT{Tu)!D=(_^==tn zdBLKqHepWc-=y}-s#DAEMx8Rq2^_%z>0vWbR$zhVUa!;%34Jbx$BL4OWr(vr)I}L_ zA;xmu(Ak+SGV_>jG0PNSU=(#FZ=k%A^!msh3h>CHMs2mf&f(r8BRh9Zq#KU}s@+PBvkt(`Y4b zv=EYgIT-9}hGmV-=HM_0 zt#R-&nQjV{=5zCssgGgQ&3POR{&$V9NWQz=AbcL0`~9p%!XR-w z49bo&>xT*)LQ7#Y#4+#;ZM7Ow&m8Ejs=9ROPbK?ZUf9fYW3w2}q`N2YhLdP72EydJ z#ZHOV))iC1R^7(ZwxgupF4*11o2m2KqDwni$_HvN&hiSkqu1mW0F|ga9t^e+x~M*G zWYGhoIQ{ED3qyJ9U3a*zglIlNo$0L26^A(emyQ)Zckkx>QuF1o5xQ<+01{^!4k7cgwn4`BOl z6Or|>;*?-Xwuz|qmhB!glxX%ksR}kF!73`#7>$gSO-ojh4I;8Fi%B}PSJOGkKP<}L z?FfnYfqum7^g;FkcT=~vux^xQXnm6i3S^U0(A8WSg9B;5-TdMxLBWP86O&4f!F9m6 z#^{c)5V+O^qh84VSj{+y`SoA@FJWNRZ2LQV!fpx8gCuv0vFvLTECefC{^T1p{2@Tc>dJCLX*tfh6O ziYIiM7eNZzFD}uy(f2=yJX?2MvN`kVa2Ta=V_zqHD$eW3h)NW=urXh-}M;zXA1wL}n~%!R?O4qZ)*w zOD14pgSLJE49x@`1hkVIdqdq0W1tn{VrYeBtKJqQ_Q|hY+h8! z6kkkt=dl58#!@LF9q=Wv1`Bg%4P!PJoB#-%E8fbK8bO6Sg_|0KM^X^=vve~b+lQF|K3&#tmHKGTBsDHTxwsF?$MP6Wc$-dB` zAgBNL2EZfr0d&PYYAa}?Aoj`%icj?y;c*l?j zLFjGaazeBC2+&EP5n2&p2w7QtTNd3Z+P#zFunq={R&n|pl;Fl*=h(`$CLe{YkUgrV z-uvo+xG(-ak^fS?465}9?CaS94`LpHjN(zg6Z*u7;!cL2-E0~tWn-rD+DdCMxRM*R zY*KhIScz=)1PE<1Z;U{>gMR=oI<`lElTJ6ZWrdWs4&+`6BR2z8kVeZ$=WQZnaf+*q zvU(G(;KU13PU3|W;oa^P9g>Jwc9bP|%G6|rd|A2g(A+}QqX9YbkFfKHN6BM|ueC%* zIBAZ+Km|YLW#K}egv){&7XX>fg;_2@nB|MofNV%`7+hn9MWq3ymm&pR>-;#s0SZ5s zZ^(k|+3?wlUZa_DHfq)Cey*yAo1qC5^S}ECsBI1~d7EWuhM;T(sO}73s}&dS zFWC9Rte1n5xpZ8|1f!-UQcFoBu{mPpIJLib#RJ_E#CNLz5M zBfdJbdH#s6PHp_M4c>*_dl$>WaTYyC-V{@c&w z&#se@V&daZ!F_(GWsdfmaBvAGnL5eu-jH{zd9)Yi-+SHwuWj|xX3IuZqw!Em5zNt@ zwVnvxB>uz`14N8oou)nM<|#r+SQO6(DYyVAXFx|PU6MnpV&h z(rG&QknhV3tLtj7gG1q+%+$O!JGci=0o+#{KlERf`O3Y-s?R!bjvsdGL(63KJU>j_ zL0%TOa!#Lu51krjI=yH_85Ej000kl5CtQRAjkq2gD%4wb4rGeJkbQbK`4q2&MI_o7 zuj(|CDQA{|Mpuu70&P>B9LJbMEoYWYKE><9XFtV@y{wOW2kpiH0=-e|*+#;5N+W5Z z_*$rFLrKJ>8D_*pg8c?D86lBT1Dy*(!m_}5B|>7t1M*?`^GX_UI4F#0m1;ngB+^K} z{vYc)PzIJGGSc~;)MCWfLPpQ$vlb$HKA%k>p|gKDnSdYO)ni>ZtMa#L< z?vO57Vw#6^wVX*p+_UDMO-6Q>g;0qIGcf08l6dUMPXGB=fEE^OOb9oDrMUsWpx44U zCBvZqC}mRabBM@ zjp)pn%Vh*A$+V0^)0lV=<<@B#H@%L#?sN;l78U$#%Z`aF#|aGTTt1zwhQDamaZgOk zxM>+Ty^bSV5EDBo(f&8AT2ZlpG_d4vwt|5fL`>r%2v!ZXysqkI_?YSV5|H# z=O=qx<)Pka-rdn#H45;DI8xXH(v*m+(H!PN_fyqI`=jSv*d= zgmp#PF7jj7aE#2z&8#@oC>v1$pTz6{6_Qfg()4z@{Xz`dY^~a%CdmgDDgG(Jw_p2M z+VqZ-kxch6;CerC)wla1HU;H6*^&I|Ey+I=*e|cet~%$bsHeLxa$eS!!upAe#g$J`K4oR%DCp(LTFl&vu#YziGFSIs-Qcm~JEJ&_j^xN2(Xntj zTpEmPcbcAdB;R_YjHK*dBtN=@XX96BWau!skuUQh-4GcfzE)Q-0O%Kq{rcMefrR7bQ9(2RHGHl;d-)il=T-c-I1YQGdybyMI-12=xa*t~SrdRr89w ziAiA>0|#okM)-<5l1HFE{JO0M+{15S=g7_>!Am8%k24C~clv~^pk)QeIgkv7Q@12X z@s+Ueou?LM>bTI=f%?W#UJR~IqtYO&vhgd_({AN#?$@@tl}G@ZxDt*oIw##SIvWj9 z#iJUL3yH7g>RJ~VdmxD9Lv#JuT1o{&_Ur{g$58Os`i7#8ETV{8+**KV{w?6qP|#sT z9t{N|RDyMn0AE^|3@6FV2ZHjFpqx@tZT5P_>OH6?Dm<3k{9%4H2J6r*geH6i6lDhm zqel}Ej67KPd88A;>MPq*jPI}zU1NbC3fnA5NSk? zGf|Gdn>5sp1irS$&(X5;SWgp9%;SVEokmZQFsTz(gclN!N0E@IwKcAUNNLbCD@*CT zyywkY&xJdjN827{#hNmmGf3?DTS{kxfMN~-n~WZUi-RB2@?h}OTjc-jkzo)q5$UC1 zJTqI8A5OfnQY)>vyY>?DP&mvC#eplHx@9QF^;>-$Su1yxD21~TJ;Ro$V+?WtW$cW4 zJYN9aFb^hYSMsITFiAC{l1unb9nNVES`)AI3>Wd(mwaDmn}9_5dfCV&hiH$6Uyu8f zBJtCi$*2AUe&uq&!A(F;`R)uD&KA5v-OYXnS9;ABYC$q)Lyo|+`5G8JMPJX+3of9D zja%o%V=-^;J*2cbHkT{D;@(6?nrI#F~F8ZoHJxFOzsK4vbCP#-l!_3OrSg zt*&Z30DRT`h&^efFk|qIY{db)E}M_ELM8>`{A|>`{A|@`J?N!(>!+wz0F9+QVdz z+QVdz+QXEeU)~-jf_lzAcJ@+xnCww|nCww|nC#f})6x^}LT87`UTP1MJ!%h=J!%h= zoz8w*m~d4-J52UcdzkD|dzkD|dzkX$+}n>GUX*8t$zEy?lRat=lRat=Q+|qkdzf%c zJUdMGQhS)}QG1x|QG1y3!|U6_guBYwVX~Ln!(@-z!(@-z!({Q;G~6Dh@LXWBm)gT* zkJ`gzkJ`h8)JL{zS%-*nzPl)Qa$_YLrJIYTa={hPg{|P?8gP@~;O3D%`Jp@(Fuc$` zC0UVMazo2`JLs<=1qZI_`8z4B@x&<0Ofhk&z&};dh44X=xgX*tEkyIh07eWPH@*)LYF1N50 zI}nP;tf2M2m)kzo4b`D1@zioLX>Fw_*uoImVSo!2M9rcCqso+$$61GJfNgPv7cF5s z7wD+3AaBW?dZ)IOg2&oQ0LZnaP*BxIQzYGyA0I7oO44nV7^C%=^3lLpSUiMDVlWsB zr3@=gjnh6^;(Q^j_xdD0Tv=wK9|m8xyo^?SilUMRaai)VLOU#ZAoy&kRpiCNr$f`p z=m@QF9MzYwJ}7-oy;tfXP22GpE@6sJcUitH+$U`C(q)|N>5CkUv&R<)1PS?ew*N8f z+GaW?C@vp9#)Wf+lHG4qgal^*PIwWQ@%%l;fN(T}>ZF}CMVsRxR*^t}a4z$!Ray|Q z846zRN~?#0m$=f(q2N49RI!Llyd=~{1Lvaf@d|RurM)Yno9gjg>CHHFqdTiiZ9>6c zk*`T1F%3YP0BdcnBYn2hSvigG)D;bPGq-Jy^XfJsg6meh8bw;3CScj2*JV_aA?Fyx zO$suZF2=c~QDzimE2^xBl!Y*A^ABn+w5D@%jafdYF>BBAIhm?&ROD6xj*(R>c2t?&W$x zt4j-ik1`_AROSU|r3jNh8idX`RoARW{_$~|(n~zF33S?zM>vm3ADbm;^2Z~+qD+P` zdFOz)<=6}o$2#RXmex2Vl~CVA54%M?*w#V}9&~h+j?Tpz$SOkNI1OS`>NjFk6n9|B%fZc}?NGlfyglep(L^}SY zPSwUHEH}S#CrYf6SG#7#m`Z~||I%Qc(6b-M-i$P`f}ctHtGMC*SbeOv>!UM67~(~n z-ywCC=UvfF1Q+oGelbHKxFCy#I+0D^S7nvt{;3EnR`Q2!un7^s9R`EprGYpJ{Ac~L zz&Mc-!UpH-o)W?aI_;MdJn0qgi*-wbiz&g$#ff^B1PafX(PTX0M4tDk4}bm&F&}Xy zFYGj!SVG~JZJ`(T=~rA#WTCec{v z9~m-egKYjVLkEVbUfNE8;Yt@^W^Yg=NhHtoE)4g{w=Xd_e`mJGI7+v0`!Cc9!BeCo ziEOW(E5~gH)z?YP8liKTC(sz^A^QS^oXZEm8KLZGFb^#EJi{-hB^_jo(LraQm9jp` zpq688iTNgv_n~LS*VYSj z>j-_L1}M4FA4&#;y|v0W>NRq3&UQop;`wg z@`(;iv`<>zcyl$lfa*EX6i};ryY=DRN}cc|I^GY>R@8B%hn3I;WIQMAilcJ7qvg%8 zt2}~bLR^y@QjNf*C@khmFXKfB2CR^=>Q;VBFv8$~kUU-n0>mJ#m=TdGodv06WVc{5 z8x~3p(lGgBP;LkkPq@dcsH&e%h>hcJmZWrN$>5RFxMQN@%*O2qRCm_6)YSq2TTuCIX!=fVWLg4B>zI~+(-QDSCjmb*Edi$`;Br|+kkD<` zfa7j|BqKw@^coN)ae58-Z)^?tiRm@qi+c_D*=Y$lEdkFU0S`<|!09#Mzhx`vpG`}^ z7q^LCEyt(;J2r(pwklY-?9Y!^JxkA;+BA)o0fpn67UQX@Qc%Hz-b9MEdi%J zVP3SJFrS~6fYTE23=;4=(`&$K2{z%xj|FHNrjrzPOOWeNC| zX)EZ9+X^~9Edi$`;29*~m!~D*KSKh3cNVcS)A4}+n&Sbd_W@tz@qm9eEdl@SNWf3@ zN5#8CCD0)zUO8%`tbdrO`KOlU2_m@Ot;_`d3hYJqqc}$~`h&p*7LUIm?yq;OcrLt` z|H=24cC09GeV7+IRwP>=uH=bYU2VR0mk73{0h71>6~$HGK~Vj6GU(mZ6HNRsp7?Xh zuc#13#bU8kDn*U|_)#jwaon5CoE0esHI1vi71!f`wn8K#{jEFevCqB z|GDgb-PN96_uKs~(g-KdlCFU0^Q8gd{mL{L5;{f-i=dk%!Q4+Cyrr8gA92><4mq`h ze&g)o;cWCBoZ0#}i`>EMBq!-7ShtvcHcbBU*OuyZRK8)5CcIj8RsL{ocekqS))+oC zUx%!BlQ)szQAUo~mBFBQX)sr%i-W38TBStRMI{KL^vWo?ESg7&tRhO?q-K)C%Ty&l zc>0OtzAN1M@J=M{^ZkWdZ z`FNr-;fc{F6O9^u!SH0KwZ@l#r?*|9TsSWbo~Q^sEe222N|5|SJShyG#|t1R|Cr2G zA|t!!5$}?VDYV;a($f}!U;7A76nRo&sOQ{Om?O4RCbo^o_peDVbDFR znK~!VKF14DsLULmZ{GLHoL6ebDJ4#nTIw5>`bl13>3)ofDifMgkSz_$mMF+EUWnT> z+tXEGIblfjZv(-?Mm_AlQMi?f?dW;jJdpr-v$Yh;^4O};JN zuz`WM3+H!KUWidvl3$l_f=imqe%+hrvQQa~iif|0v}9!YQ5rNxlk6J~yLvRz4LlI1 z=s_e*q8aPg93-gC9wnb|sY7{esI7f1(ek_=OM;~zR*#8hBT$WM^5_47&*WB;Ho;_L;U|f}ar2P*yew2t0YDSe<{?r_ z6P;?60?RQ7q`ENETJ2!){AP+^)Lbe^3gv*qlV3Q%l{m`*4(oj309T$h2e=WtV=$Hp zT7&_Wv`- zE@h}c(qceOyZl6?%TiJ#B|4I#po59C&36pblv465`4x}$@s=em3>L(D2*t@+YP_4IDklIghtkj z1hwdUv0&Nk>eys7H4trfecV*D$p#*!>?#|0_YArM-#-}FXRdgQvfOv*NQpq~%yg4y z=)pc%t=Q*L%45EKobtFYpQL=ym!G9P>dRXSc~VYNvH_Hm@C`(VV~5{O^p<>c;4=AS zmd@mu0Mm!)`9YGm38;PHP;|(b$0$GJ%j1-f`tm`_$0>{Tk%Jv_c=+-b7C=1%v`a2b zN~&`Y=>|u9d6e=g2dmnO5BoB0#YcRZw&G*HOj{&>q?zsixIf5VpM2(5g=(OkNd`U1 zDQo|Mn;h;_E;E(eFd(r!&p2r%TP)(ujN(K9jC6Ja`c%@aex1hx`P|O&3AgFIZAh}- zs~`0;s>YjYMw_?Q$l6|uJqv#yDknCenl5(Y%leex-i#o6+ z?N$0ca&7V6ZFS2D8fRor_r|d(?DJ8e-PKz7(_)SZq{g?|x z^JBVJmPAkJ3e_J0<73LBNBJ=2eZH)b*z3yCv!VmSgUIJOV`@@%MLd|D=C^TMXq<&Q2D@iFQQ8`RNnc z&Z6$@Yu?dlo`MPwdw5O&+d-8}c6NjjJVmmY9Tr_vBopEhUu02mOhx*%6If1pSVnS56=81dzulu!A#wo^Xg%bEpy z{5zT*qrR+Jv(uONQr=FP6rPZ#%>|{>>o*QF5Dnz~X`v>~ZElXNm!z1&js^qRQJDSQ zG*`06i67bN5cfmPKxCB8DFz!+ab9XQ?sXH}?n0`^cS_ZU6CSeQ5;F zVD}go6ob9BrNQ1P8~a`Og-$$SI%eD6@wp&7%$?*z3xZ1W&>JOUEWPprm#Jh8gcZ<* z{8QJ%N*0N62MA$KDnw1y?@Tk2qceW?@-#^P@ zsC{>L78iN>{jX>8A}eiOz*jKl8sIus7D>qgox913t%>~LYs5hjZODq`A6Fq0O~;t> z6#|a0Mkjp59M^#z`pS=U0&@flwP7o$$;nymf50y_O zQQ775-s|#t3oQ}saKgW-cTD^r)4H#RRMNRdq4C%o92&Dv3jK^ldtRkW}xvaevCtbzRlK36m=xm9E=E(yD1{~)OH=_gh9%MJ{1dLe3XQS7vq$eR zRd3b>DpdaPUEIs|&;~=6?c!Q84b~N#k5H4W@wgJiX1Y{rI49;A67+-lOp<;{Stw+l zuF8PfqPgfDwQ3rUX*K-lb{{aSW|U2-Nb=cBrgtS0cJPimomDA?9djQg@v4Rz7BE4< zVEO}wNS6h-^b4q0FCvkH!G=;1T-wknf-4#-MR4U%@KmVTv=AVmsOym+qBS9Ccjy&} z2zjWCu%<(l$&yLk1Hseq+~uyBzYObLLowv0Hva-%wa67eOL2fA)8I-Vf0kUnT@OoD zOFsKL>q+wcS7sqn7qR4(g=i!i3O+zZRK>la;187SQ*%}8Qk$37`j^8c!Ncw~bS1c^ zFN=fjbmibLDLdW7LA$+CRa_VIV&N@DSdA~hV4OU5oxjysW;lMoMFT<)w(3g1AC8s; zQUOtTMuGJXSKJwag5W>%gCUSM$>Xh2y)qQtMPDi&`J|lP0#FA*Iie-nWW&=XgFQ&U z-Hr2YQdusBC_^!3RRlh$C_t&xk3X=MVDiB4nxf$~JmZyhC@@9gm{qx3=^D6XCbv%? z0$y^8+q?h<=FUKLv&KVHLbNr;2-%Dv(_xq#CT*^0V~k|hhA8a0pmvb-@=Jq1Rv#?I z{IU?5rM!Ss%0Rd;AELb7m!F}`T!p^&hxCpssfNj_F^hs z7Q9bo5UL3)j%JgCa|=f89WX4yi)@O6@9m-Rz1Kh68P>apqJ07Z;vCa8ABJul0+9S* zSmW(M+Tpk-vr12Hgx`=82_ebv&ed>k>;q8(J%K`LCpu4{i9fJdC*frB@dYi|BL`|$ z)Y6kAexhcHnS0AMmIP+C$k9h%43$D3J+ZRTr+#>}HPCo*_!+?u-af57|K;TCO?2u* zQ@j~xD@%nK_hqRlAjCjVKL78vHWOb#{uiXpmXc5XM&lu0LnS+y?DjQOyUl&=jx9Jw z26G3QEuGXVQxJ{8hzT?pi5bt6^ox_xSL^k$Fni0@^`clxIr-r{*M9P@A?533mXoc! zDfgdvN3IL(_*!1t^*6aL5Rg!JI5~#V$cc2)J%92NFq_>|j@~k1MjILq0vxl!+lp|DNh5xy#m8(T zuKc!2olMcuy{qS9SnJZUXErApZ>bKuXb@qMs}ABp@NTa@j9(os2WCu)_V{2G7H@=pxQPx^F)T4De_*8XrLOJyo zD%ssyRcFV4aJX?^2=`-B_fEJcb&XwX9g(Onnq4I&KVt|6?wwVKsBfoS)e^@h>3S}V z+^t+VSYaI(l)JTDm@sQVuJ2EWU`x9!ll5v>B9rw>>@aFe+0lgIn03mvZP;M^3+7a|(3ugwhLRmHUfIAUcj$y6*CEX&3`*xH!PQXO+Wz=!JpD zd?;?fTO9Y4&v6ka-*CXsdsZ2Km^F5WK@1Y9olQkV(bLzubs<{ZzQKJ2LBCPjl!N^K`Y4AFL=ow-oAWW-6c6ZuokhVn^+mR(*U>EJMbL)>P=|_~{B_6| zIc@D3E81@4QPdS}yTsWp>?Q}?P6h+BG}vnUuAl(o){0xN)jCx`ZDB6gi_m4!nHAt1 zadwJD9QuHa5@vWvw)_TnHB=lmIT#k5it>gKqaCKABPT54^zDF$dL)!6V2PAN4Za&t-_?N60WIL@Tk_-$fMSHN z*+*!Ejbw7_rH)8%*V%8py&zt%Szx7g=r)-aw1xyX?x9xs zoCX3136k$SJrEr1V~%FOZS%y|=AA;!m==>CGga|E1`3^B?`iEQ;{p}|`!yzp7H!inxSU}I2B*;zMhaj=6`YDVuw6qhZu!<5 zt-I7EcF0#46I2)Y6m!IE6~h8!=-KKV;kPC>XUZiHEo#)(tPDf;@%Ma_6=INa#JzTm zvd8(Ij9(`+S6$~7+6`U+pc5Ci{Kh5`v+$4}9cSY(HAy&(+K%hztbXe!^uWk)@1rWZ zfoCb}Cb;n>iq;LG&yQA|!3;dP*p#&Sqb7xhzqpXm84NCig~84)Hw5|7;`fyhAeZIN zG9F-qa^_9W%EHbCeV^{*2I(7A45ZQhhtWQb=A-Pl#iR2Iak*w#^h^TeL}MV>_tDB@ znvaJ2y;uFMbamc&a8*Kp`pBzE>}rGm0(EkG8NtGS=XrNH{rL=2Ca2X zjYXb5`b~HI9*#Zh-0^#q)-DUR66WczFAd(r(u&0_9qVOND?7M*!U>%^lPdY6o6Pq> z7L*o*YxNekL9Y&~VTc|cRH7Ip6 z=qNjT&2rcN|0Ufwj$&;%@yR;BvMmS;$!dVh0n<5wZegq5=*<(?=sEyepr%E&85yS; zt_W+1rnNcFyJ5@jdmlaPwj&K?RCef41wVEbh%`h>`o_qmbJwkFoc(#aSNsXfq_mW`P8(q3mt?sD5;Xn(7@$*jD6S#X6) zgTcn7!LPV`o0bJPxO;al4OUTN58!(6YW{z2C{t$=pn^@yLL`|euS~hb}2eips5%U2Oc8Qj9M;AJWe2KXwzLK}RLg5;qjomzG4`9D0Jy#8R?BBB4K3d(A+MMgvCFm}v<$wL!l^hCLX9G2W^E2A+~FX!1WtBn5k zYhN%K-Ne;>vuf~0S&*gAfSq%c(H>VQKwd_-(`S&|UPdFg+sJ4RH(}dv`fHVt4TIYtk%x7_8ugMz&h4MUo ztHbM6S`ZaD51Wsmkwqy+0JBG{^=vk4U^+jt`OOr98|Sh=l85L?iB?NcA}s+of4)pV zo_HG@M(5i>LpFBiJxjc@4SFCMDNee?9CnKknr zYRs5YcNv?4ZCvVwF_|{G@(fxOI{o)=%fH7zMOdT1b%hJzki`<}XN%b$xHp(GhmI{~}^X z6}UARFv_YN6PY}!SV__#7J|81kcPx=eIzvQD`Q)&zvVqF$-LRWBD`sC+P~Vps0~e# z4X^DL(TJ4fHZ9X(^0Osu%Cq@kYb*a)uj(Zp8pAs6$3MEzeQc|d$shj+GpUhj^2Jx! z+S`+?=Fj2#-Tbkxxh@Kyk30Lu<6(NfaIiP5hjVM^vxmlykA!rbHFpTfo$qHy1ZLej zxhD>zz`$TQ_Ai!Kgqt}sx@J4R#xy7-wij=HV^A!x@#>SWRabW~-E_qnkFR7Afp33X8X-Zw*LBQ38Ni1WZAbC`@(rcSVHoe$r zvgx%Yl-Ag^KtXms!e-qGnu^fmYF+?NnAA%Rh)c3C7pruL($^0iC*WI;6R6N zurxW-o(9#r{+?C7gRCE|H+ld-AG$@|F}DbOJKa#Mt@({;8;gb7!c6G}L;|;y!X&E4 zyQ{&3@cr6t9xxiOK&ZeH2%w$jw$s7~WipVV1-BilFdST}_T^IHgrJFmjiv^`@*!VG zOd^X`fuPTEw%WZ~1wi?TswtY%m`>)Wh#}*r*k&9Pn#4~nA_z)K9=XJ{Rqes6wp24j zGv>Hl6eMxfIl3QkaiTaoXq)K|RKwo8$x*R4-B2&c$!#$Bm8|2=jJyyxFrK*6m2iGA z?pQA-e}R9pd8-%MdwgI?+I>gz`!_S1cWA#z!&6)kV7A!<-KdD&X4DsnNx`|)?!x5Q z0b*NZK|t{Y+r29C!YNcR@(8fR^+>sSX9 zMs>ndpDXEY5aK{eKKAPjZJHHywa`~U%AcfBcyYn=TM`zf2?IS#HP6mU(80ZPjY8_RZSZR&E^kwf-Ke%PjM(c z&khpv6681mj!u9}4$tJt&MwyU=Yx8nV%Rpq|XM#Rv@Qbbw*E> z)I@zgMKpzho4j`k0}+6>ARFm2ya9W!Ds!*pol`G|Yl@sOobi3s=))d<6&t?}bIiSZ z3o;t_Xb)Tl$+kWo?3|-*qYo@@GL7bIzf>)}obULt?*d`B1LzUN z00uCgFek!EMJQea&sGfmbJ&&1j{V8!b;pg!F>Vpw(|T*1csdO&or3$)4SwSwnT_yU z1UkxZk;mS-!|bdubX*gzM=lsfA%-M)ZzlLOAo&XjbURwEfBduo9$pv(=*PhuKwGeK zgQj{<6e;e-^-~ii+C)c30WG*oP-cS1$f?0boBc~q$HWx1|3`>x52t>9I3Z))GQ4`zK=A@6%D zkiPE%Qf3GMbiMx5evPlAZALeFk}X=MYpi*iGb1-q>@5g9a3Dc)>;d{8&?m*+*HRUv z$#{3Wm&C46N0WPAf-vHlys?*vvaYJ389}e9ysbMbAMcHN-I{YRYfgld8;PlZwWbW} zC2>;uN0iOdSGqWSXH@HC>arVWcj#ihL(aPhG2)>hawsx|Z*7mnaXfLy5V!WY=qid8 zi6dD1>4#w^i#8D`v@3E(C`1VQ!h9~MPV-ck`4qCp6rcmL8u99Xkj}D2B$|GHA0s*O z0=mzdfDMlPK4$d9-Pg<@iPJ(Srv|vN5K85wT97uu4XuBC<0&_rF9V8p+YJL*v&888gd(*P@_;MLN~kn&CFDLS`xzR2?54nU7QKb6%BJ`TY0TiUv1&F zS|v7RwF2zQx>so|7;46XuNlO8kI1cO0}T*GfxPWX{>KVx>rrhyQDEb{U$5$|Vf;MJ zF%(tGimPosN6~!YSkDyVixqx-FZpIuC%weRER;@UqFXagj?-hqf zGueI#RP)*Ztfe6niR;rZm~9-r=_5q|REY9uHWN!&&3M}n(HLb&2RF())BUP|8ka`Od4vjKRS zWcUt^$hKzafyDJS>^PI_it&rG$|`LI!~W7_LX-0AE$AXCeu&fXepPvJi(N6gq(_3WsX8MQE`|vjy?Gp&)Rj^+SQ!AJyEx zBw&7MMy!-kWHwak$pANYOjbZxCkE!Aby}bIl&i2@De?f2)%jB z2psfA9<5xBz%lVydk7pOaPojb{#{1kBn1+I117w=g}jaW9DR?9oE(8eeI-#ia?eq? zatbkOI91I^yEhPU&yo=eFNwmt(r%-0ZgK+(r-deki>yXeGsqLQ8PR$o#Pg8N8BIwl zm(xBqRc-)POsEZM3GSFZvE>=mj_fFx)_ufgsp`w%RUG(pc^yL?LIL(vl} zJjd zD%iAAxWE5@&h>umy%RvFZEqzHd(C&P`7!30V~#QBm}8779XsO+WiNz4NMPBKMif}$;PB-4WsFWa1_Z=r)F4x{_W#JK20glkI=~_p#}AQQJ8vz zs_lA|UOcYT0!fLn<~&@|oQ8`u3xjHJc$SxqebXDYY9R7h4St>afZ#;)J+=r&KTned zN}4d6m{fGY2=CGysv)IopvDu39}Ge$7%9Xu!!p1rO9`hE1c>&e3B=W3YLWDw`7?L3VHHUel;ap366#wOS?r)JgnU2W`vtntlAE zC-NH?WtIdVd@)H>l-_Y3K+o`3ui*tdRX99GfxP(Oa>fQeeg4wqN3bdH<=95!^7O#c zM(_AdC}hDO*5vitLTF0z)k%B;k*qZ_@yEs9WRrT^B3{%MCJL{DOTW|GNbip6Eu<%7 zS|Jm5I9)t0BfrO$W_wO(gPIr_!9!}|M~~VB`idVZ?}3osQ6c?M#oPzwPPHKi zZ&uaJzM6N7wc;U6Fehj66VkdX(_*z&>}O*MK^B`T;9e7=H@~?j8*AD?R@M|1B3_?jSM{@fGT;mDSNHJ#SWdZ(jaY9 zc(pE9rEV_is7;>3o)rA=1K zSut=GfNkzZbR%PE8$SfVr5pLCUqn_&FTznORkCE^|GvV$ixB3fZgy%lxMac1!B65t zr>Pe?3mYDD8E!a)rVKa~E`>wmg2s(g90%5`*`A7Mhmq@OPzwj@A!iSblL2&T5$mRY ze1^Uqswz%UPn|t|XiDE1f3;^8=<>tRo$~feuIE2o3??&Hf>LOOpIRRyQ4n*(h;1Bv z1AJ<*(UX7TVqQTk8^PDOj!GtBW5B&#m=6dxcw|wp)DP<2cvgS=5I9GqCFcmEPcHBR zbQ@Wui7++a*LN>AW!48#4)acpi{6As=nAx=zT>CB)0Be97$)10@@pGd>dp6v`BU!! z==e_4-$LT8P_H07jEZIu7F-s29}!y2OG?!dfh)3Q32kNh{mWS?3oMJhK=unO*CF)+ zw3Rm_3}cdYU7&mUdE*ToUvD72Bc>(UCSzJseRoJ_c==WyiRt~M55@EW(!_XiUml_V z6Czr0ge$P(&^SFwdVfssAicK>dOVznm5RI%2TdEB(Yfk|AVk02mH+v22xF$V49N)W zb$9@V{D`Z`S{&Ifx`X&vSfgRiy-TwSCOWAnOmwH7(E1KNp~dZb!m;n+sj<9Ezky^g zF=!6N^lsAoV|tSG-k9D&dbiV~NQ$M&Bc$=O;?F%Oy3US3fRIyVTxK+J3Rma5VmH)? zCQ>X4nas(EH>{R1ctT<6+;sPdC60< zvVYy#>d2OEnQ-sVOA~Hw{qeB2&}<9QqDTh&E3EvnZ|#;kiU?Q?8yYerJLuTM%SL|) z!~%nE)^a3cvY2Bu*%#`b{h|=8Wqrm@I79WQm_lwfe^EuP!hf_;;kkh*2YRw`v6CA@ z$AN-l}<;_i4a6F0;=MNuYu|oe?*_dq}$vId=7}Xeuvm(~=c*s55doncBOlN{+ zC?0q52!z$k^Ia8h7&Ft=yF3f3UB^_z1i|wnlB*r*${2``L0qEnML^Aa2ey2Od*lS|T_NRl)2dz&zankpS8D z#6jN8QzXAmzo|^5E(!A_&*oBvjRNQP)sjGV#k}ivm{zQ3DNupx56@~;*)`kIf8#e| z0I$&41b!{~S|Wn6hSJJiA(ImPDLAb)0jf^|Kup+YZPggOZx83kDzzJQF(U}gCu?p6 zst6_r_^gE^qDEi-xmTbdrgjcCS)S&f?;$5eCmiaUHBWv(GgYEQGX>#lgA8zlDgdR7 z&Y|;fpQ#hR)=5+Tzd4iE9=?QJ4uH(+5CEzY13<~90qzn*S1Rveu!pmy(RStRE{IQy zTA_`ELq2V2!(reb;83hCM35|*2O)h5f|ufosJW03O=f8#9w<*iLOJ>gBZh^^KyTmv zGH%+Pk2hnbhz`jZ2vf1#j1-4^(HezMYylaM{3mZB&8jVBD9ZU8xXNe(>k7Qab6Luh zaxxp6Ol-~OExhkwTD|%D)2TGfA`y$06rmAlxhLQI3Vtyp+H~f3U&5}zJ_~FVCI}ab z%Pnl2mPToOY4RI}3P!gq`E|EnVOi*tdgeK+LU>Dfy@m8Tr5W67c);;=f)C2BVl;JP zeK+o9I7^wJkwW<&oSW~6pzO011n1Jkc>}RBBaqoyD>e2=#>b_G-LL)on8IJ?Ns!{&JMf0;r!9e>C1S$9xOaNr$6x8(7lwEZTEu`K>$@^yNb zH^0Oj_7}^;K2Jk72ad;Mw#SeFjE$b=ofTM&>8=Vg^yu!2etX6IY_6c7vz4%lDmymw z6Fn5W*4FhCl}hUWh)rMX>Fw(u7!1F|UoC-j)L`a1{rU;XT{H4TO5HMvP!acnb%uK* zs?Biku*=Z|rxfgGbZ+uEr%;3+FBk>x)>HUn+}D$94ZUb?#0AS=1h92;h55<%td0ooD-={ zFM_^viaL?E`UEMkjG^8+ENW=Lj`8XPx?A*Z zSzAs)kye@7Z6q?LiS32kBAyqDsI06PJFyoOMbuYT&Fb}qL6Mii0Sz$2P83O{QZ}fM z(ob_(!fmnOBuI21IxttMnJ$W$(_hYIGPGY5 z;b{;qiV%bH8bb05qZ-((Qmp%uV0k2#WfR><2wvZZd31{S+0iOcUaeKJUV`_<3M|5! zw?we^i4Y(aMiXR`R|TgfNVQZfzY03}q~NvQD6%<*Djh#A+@&B`oH5=X(3)bd@t9_f zv*RrhiV$oOgstWPDJoWtCUb6QC`Xe!7`)WsSQyFmRPN4pLOZqYF!+KNR8E6d6)J~L z({xJ&OQa**5iuKmemI@ZZmf)H5Ci+wmMu%QUki}s%tZ}><%LI4OvPem4zirq=7kN@ zT*eZupw76;PF3?e7Ai-MOlN(;I-HM&kTS|^VEZ}#^4eP{^GP7gH86CzU&>3^l$RwD zZFZA$=QzNaqkvtNV#-ApivATi@xK%jY`eumG1=+W5lB&V(jrCHH%-E^O%W2Zyv5>q zQ6VBkl)?s5c+xQH&xyLTqNGmScG4ch2HTGKM8=pL+NPAHiovD=Ti=UBG;o@i(=U8L z9Owhp+OX9VJzV&ZKOfo`jH3N683x;jkfc|Z?X0A|h35*m42}cfEe`bp01oeufO|0$ zc!l<73V%~in-f{rwy0yBm%U_gU`=4c;>g-lYXKyB{xwh0h)`_croNMM-i9V!G@?lf z(WS(CXV8?Iw>a(A05X!Tt2*>T!M;;=Fv`Rl#g5XEV49$MTGE$J(9L54_|-9XmcXmE zvInOVT6PhzAx1A@(F{5IQkyVm1Y_AeFq+GDz$o@J6Fl_LqOAYpd8I}Kr}Q^4Je}y8 zA%@fRHMgAhw{n6Zg3aC`4u6NQwoj`7M2&OCb!?DooA%#_`-2Zups8h5fQiwld z&?o{cT$4aWn^V-;RIw6)!2<(s?XNioYxH8rmujoQd6;*prtOWW`SM`U?sy5Op^cEYwc)Wqf{_RK=3GB3RSGifB#Kz_U;|| z#uf175PnAW!IWJu%!p&i0G`0y#cAF5ewiW!M9v>R*LAoc%zZT?_bsX^mZc8Ls?=mC zCA*uKyW{0N36yn^OfgW_0VUCy>{mH;ALmpKI3-9c z#eTM9F-(?C$Fx$~T~P>IVM*aWDvDrx1wRzBR$U}yt-CgYf=-cjv|QKvXkSGtoj2V3RqaeFqy^8N6$Uf3TPxe;rvOqT>fEHBz+!?3gX+e+g*7<4F@Q>4c_2)& zF^?_iTQ2N*z^LD1}}@ zXEopQ3jNlqhewWmoR;Oy+(B{G%6*4(b1{%|vk;MtAoqi=+ocq+3S)z|Hb@?Da~Mz3 z;G+%=q{#bxs56sm%%QmKc0;J)(O+yLmQRSJ4^6GWb_Fv-vEpJ2$LZC4+sjn^&WQ6Z zP#WPr&8iu*XbWImw{S1+2DP7a3i##!p8O9u{>^Wijp^s$OEtutiM;z|=@8TVi zLA2E~LQdb7qIw`6-=gC5PSRVT3y$0{B2$af9W4*ZZ6q&OGTeA_g_>p3Kphz1FxJS) zB>ypyIXyQr6fE8wl>v*i)6+M#jgqX{HWQ)QHZ!41!M3uXOY-}TDALpu!K$#!B`a{_ z3M(a?Ylwvhfvm&P$xx{eO?N0QHWXu%!GSoorZ}AFiCIhpfZC6-yiM2OK z0V^ZfU6nv-B=-TEY*xiH8Bs6Z&92X=SDG4ba~}F1f^}){i?j@QX1sL(_~^wXq=oy) zD@d4=XtI_cl?q=;jlyO^H^_hZ)%q4#4_`i(YT8jZG?B`=Q&jZe>$C_L?`jL=v=!vC zD$p_D14HF44SU%{RjkjWC`+qv)zz^r=`brVb$qj2u(ZQr;ep8ZYHi`bN-SK)Q1}3m!UWPI?rwr= z@(<1d9;vfY07Y=9O!jc$G+ET^5?vfHlmEU2&ybrP8%4mJP7JCrXfy%l1OX54br?JF z&@~kgmEz;+>eG{C7{WN6r4t7Xm0x7JM39{jVW$)?l1vw(Kvl0ulFjHoN++rS(qC!jdLsb6jUe)6_}n>`cmD8)-f1;fvD}X~S5{K)ah# zkf2y+xiPiG-(ab(Lo~$ARayn;RFmylk+8qv=g*S}slv3LZvn4GSJGQ2c!_N3c zf+7gJz?2D)Sjs>NKXqoW&2zsuRGQ}=3fCWr548U2SdIfqtw}OP)@oG63W%_Yqhr4L zqDFw$Ph?TK<_BpcIe`)TxHTCA`F=hZpoEB&}YKmLxW9Wn^bib*nId8WRo zkWT)eq$|2u>9C%BS~tp&i@Q`5tdi#nW=*!meSnCIZ6xtxpxTf8I{_(xOuUu+z6%8}?k~>BRYqm;O|9Y^TwEEj z$BIqKn#-Yfpv(Myr<=3Tr~GzZ6-pDA#__iMxfT{+AUdL7+K>iJ7oH%UO=uol2#v7~ zSV@Xce-Jx-=#d3*zT+hNN>=Txll&{kg@o6cge#JttkR312f6#Z3e=;So%6rcJATO1*CE zxzvrtZSjLJi(l}%=fSUP#ZBwMX3uoIM93uqgpqd0h1UcQEH5&m0o?w|GK#Kl4Z)+R z41kjqpVg=jLNgwXVp2bk)lVi#Qal)%{_R)E6s1c{b{d*nlN3KMh-x=Zh&uSw#He7@|6}ZrE;q^LhFtCVSt7 zqymG39E(lwq?(uW4XRxC-o4!K_~=)|MT}(&citU+YyRh~^6uh^c+(&-V&x-HWm<+& z9!QnJtlL(Y3P2D~6C+n78zONm0BO7M5}d_zYz&5F|r!_^-nqi)rC8QaMQj*|meQt%F*M41Sgt0r<^5elh7s!)YguL`lwqC)BQsZh{Y zfu7Z$yJz=BycH|W3C4;_PCi}qSsu8=O0fT8l1b`_VuHz9>B;KWQ2Kfx_u}oW z)1`1m3(7j9cDtS+<{p8%Q!8Z|ZVAJrkczuc=X<|TbXJBGgt;oD;0bRIDOOPE?avic zx8BTTv=4_`KC?2oE?T#ed~?f8c$GaPodIXsi8S-P(O>8ZazXK*Xk1K+Xs-e(=AT-| zvIe9~%DRvPs4w`blND*@$fqeyj{NYjph@UF6b}(AA{Dw{5k&&&=`71P7n+;;8r9+I+3Pv@jzHxFFRd11Okcgk!Cgf0hJO|du^d@{*g z@PX)o)?8?|GPUIvG=h-84w}#Mb(3~HQ`-l{=0uwLt~YYU`N3DzXM3sKUrhCa{iA_& zP_dFQrW{1`i`(g%Vf4LX82YP!fH`c>bC!+344PmI`F*|xnw|fJzA-38QeFt3U}jy* zTuX~t7m+wqz6;qo zlQDkizVNN{O?tf-y>)(nV~E$f6^3XG^<+(vT}xA4VxFT3Lq>VVQ%t6Ekqjhgn!XL- zumWkapa;Uf;ogcsL9VZ9K(Wl}{!8YIXARHd1J}1*B4(_>0hI3n^>wu=$RJ&{o|C?) zF?;^%Ixgf1u+7%$KW6V))6{$^U%mgrBjp@W&K{xDH6A5rzNW#o_2l+FK>)4xbK2)v zP3;qhlDWxPbH1tdfI6rC^t(R}P>|MprN>ius4GN8P-j$uG<6^bDJE5rzS-$s;~w4Y z2kLV`A@z34L!)LjC}9K~8>!cE1VTOVZ^l>E@m53|E}}zY3L$9KCQ8K>OdjN)TCBC6 zj2n66!-*dA^v4TRxWgdb&A$OD;+a-r*U%4nsD-y#O-vABuGx`*5HOMWAB~ojfQZXK z^J-q0v`)auZrzM9tsYh|A}iFQ=RwA0&0JD^i;@z4#tgbCjFnm{)to{vN~1k4e% zgi^TnlEy5?4Krhn+pJEyAseWB#+=ZNat6vdYMrJVA?^ z(9oJ0X^5h*5N0uGA9irb8o;H++MA&zqD35;NHkq8X$+LpB~m-?pn%>a5-5ebhaftp z#5_h9;_U-|&TFn|blEQnQW@^Y1%@RsVUz0>STfnUk#3+emT~2@jVdj+tU$#i*TC(Jfv$%@-it*`wAo9Ug%kC0!z5uk#E!Bzj)N6NPiM(&`=MmAytO_I0fijJTy!a}`Kl*Z@tYGim z)-&z#@b~O|2ZLu{cVr~X4lUk+dWMft!5>IgyyJjmQ%Wb28Gj8f3!Z>DF@Z3?gs-By zhfcB9k zyi|tS{M-l~XWC-qPqSMXO*WR3L^$3=A+5G)5lD#LL!HeHc z^C!l7qcR zQRyLA(qZ-MgVLw>U)|7Js9t_vKBWok40 z?e(H>VQ?A&K!#yd=%&UttHZRP!f(Nj1z3%qR!QYW`ylBkpYW=o^v5^=E_u2-jmu4}`@h%2EYXz)ns39DqfJ zuuQjwTqaFenon5&f3nMoZ3VaYQCQ#AAFWbaT3?6-}diB!yx3DhJW&t}&dN8;M`H9T04E!uaW_hJc!JnEdCjYOd5IaBJ-Qa zXI;V3eNnl|#0sAf)$MNXUV_i#_{)32(d0#1@r@=YxIGlW4T2A)@8JK}ve>H0X`Ku; zIkB^hh95QmA*oe+YiH2uEbHp(>hA8&n*Z^m zySq}U%*y8+!#Nl`@5l!AS;}Q5Pwez&ckZ z^|CBqq61)gzm^b{j`RNd-}86AQXwu4YUw*aPrmc@%F8QteU&>-*zX7L`9XAqG&^9c z4eK9tdUV{fw4oLkrbCO<6GDpu1}wEVOl2q?g(x=vYLxXc&7Ptf=e7DJiezhZT6zKt zW7V2*mAv|a^Sml&2vm9ORnvK1md+>SA3syhFwYHTa*3V^QB(vb&dji>I#b$|DR|=0 zM2F^eePtyc+YB!B&kIjfCOk3v$buIXPhM+RUICugy;6I&7Y0vM1SZY^Pt>X%r`bY` z#V}8r*odh38NIT|$jFO`m+=FcDA@9&e}+tOM~FRUf?R(o3}Hu2f@KkViGgF4n#qs; z80)~qEy&RBM{m9voS4NcgXWc;IyQW{Hi^NbUftyfBy0a$GA>Q*ni*K5h?|c`t3av( zdAFX>UV%BkcZs(z;5*id%?Za&bTq-dRmWpQ*XoU~^aEg&7do^-rh z9ujXeqbq%D!nsDS|A{reD7w<0h&Gf@>~IAcI`TGGdTR8iy1(atJU6)O3ujhG1dsZ8 zoj^}*A`Bk&2&vP6##^5a2425Z!q$UO#|n--#Rr#6S-}l(A|7`!Yh$>AMSkk|=2zHK zp2wCYDc=5ePQlHy;|To=8saur^#Lg?=+n$Yt&wdFH98W#fbtTF3kP#4UDco0D9fCM z;fJz#)a|}Xf|ZjO4$@+Xf8UDEm(x|p1SNpGbm(I3=wJBw$G$1HoB=lirpc%)|C2Wq zH9-m`8)_>>+NzVc9IL&bvO*uc0hNtj^8CH$Nst*a=q_Y&5IIzso$X|5VPpJ8!e$r;r4X$}#E1#Axyi~^(9?BE`v zB$y;5y^E6+$|D4)O~rg3CdE5`fC__%C=zpt%o5i7%rKch_q|XsQQJ{r()dV<^?!e; zyc}Z#W`#JSwN|;(#f0lHz;Ms7N1@8mFRz0oUAIF_a*TCa`aYbd31du9-y0R+5@q+G zgfvrET!(P5vKi>o+14zb{L1t&o-TH=7W7d>Z+#Z+)wydy&Gum<(0|eV{JuqvS$emo zK5KrXuSj0a32pNNnP6$h6!$$AG84iLPL@A)9#|2aDBZS=AXRg3e$N$Jp|ly>aTpg4 z@-}gMJDU~E=2Q!pHE1w(X9l&5@Sp`%4f9AE$H-EOG)PfP$843-I&H(7@ez!k;>4)HrKy-XBnt0h6MVAKgfX*suIpy>2I(pVIdmTS6=&Z@;h-Cjb)+ZYt; zD=>v5Kyk_dp|^+NiOH}=s%&4nk%{^Z5JzqXDSFUYZ@*D>)1?i1qM+uCz+L5hz;lkU z>$Gjw+;{`z^XTh&K@qnFw>;-Xc4C5n;E8 zFyqKvx3}1^O+-lThJi6$NHq!|?BrpRJs~-fEtWC90r!Esu7H8!eTFYaQEaa09*wRw zw6uw2cfRpeV28sZ;!fw=UkaEEi76G5T4``iQLADnc#G+%yT&+PXH=QYur(6h>$HiB zn?MYM8c3O0lz-vH)Xc|q)V@MV>@jgJxilo{LFIywq+gKYEYUm+L_rbR@bWy6Vw=F5 zg@m%DZl^9#zn!{N-FE&J;+Czsg53=h3(AHMnLUcu+QHHysGN5rZPPB?F@cbs@s5dS zyf*^L+HqBg`9eD%j=Z;>Ba07X5`e57W@AmCbsdBlnw+iSaL8m+P=Z*7g|oVaw#xSq znIt>!u}^^f%J+FNJ>ws}{H$%96wk=io~$>j4j(=^Q@BuMw6u z$cnQ68$)TYjQ=LFl|i{wuW&gaQiQo-(|So7v^m8DYj1oz)zn<_Oz1d6>7{z*1V_Z_tI= z(4S98bF7I4jXOfwMwV|J76cnAD8hKYSEm0q=}D1Mx8&g)H8OAf83tZt#eomv++tgh zKYw}9wy9EP!3g%A`G*Y1M)+$02wW2NV-Sr}@eo%7;DaqLQQQ?mK*-7}CV`DR3bOc< zii@@sU1|d}#PG|2X5=F2iYBtGNg>0%MB4D+ff8nwQazjKTE1S3=^i#l@IJz;H)IweZip>Rezvltp;v33)&*vlV zDlkJyqQuz3yQRyIC53F3BYovaW47G}Cs)>jJ$8>}>>%OpL?YsL_BkC1@NI{+Y~@4k`zUQU-^L zVq2UCMAV772*z(*>arZ{pfUHgxB)-xM|98+fqOP^N+*5^W4wJnICQr*@=@LLEMg{l zMlv2vB#7zmRo_wg?9r1&*={{ifb6P*c-?7E*D@Bp=DfPrKo%n2@yk*MPiSELyVHZZ z77XP-e4|;CA|zUcJHsrV&LGth;X&Px!_TywsdqOYbJX53v7S@!H09`>jajs2?d&CV zYyxZV6cV=VvYm5 zayi0~sT3v>J8+dBzR~D1Z^>mRQ$d_cxZa*uy2^lX@<^9}o#`;CT|`=F$~x+1=J}eT z?kuTs4SK3$ASAu*xmc7>q?%cZT=tMiVH+X0V#G4;fko02LkA`qLi;FcfJB0v-#ZtQR5$x+QKrik6Bg0IR8w^r{*_c?L z=7QEq_Iz@ZH8|TA#ct;h9aXF_xZ1Y+%J^7_0X9TMD)t%EnRVKJZ>FkE4Mx%msz%&A zF2#{07Igs@c2fDbexU%{f$h+%_g!Ly=_0qReGy6FUawNM|n1v zAB=*^O4zG=5BX`^r7GE(vJ-QXohh3%lDZ?1vYrP95RZ z8v-bBQgE4N2Dx_`0ct!wn9)Ck{r zb7?cz1tA3)j1>uttTHAU-TAMc1usZil0hQCrp0?n7`q`l+`2S!%qCKC*392`yx;_% z-NoBvC|2S#tRN$auoq4T~vGP57!VGq&OdHlhBE~SKvi$o@Vq{B%5#%Zkp#_@mw9aon zQwO#hmHazbgfmIOB+-T@r8vU|k#5|>MuBR_mio1^Dtt1L%=AqVT?B}EAmdIgm42CDp184(^;+MtTWsc60 zk=%s7{^D)JRyH%V2ZVj-2R_8MKxu`D<1!J+RTxdC2lxjotg^FU#UFT`*M3oSe?2>`c}~%pySEGnFo$^?I5gM-K z)^K<6!Q}=CrYA;t4nN9SG6M%xy#bGj$*L_9+|3L~@ZInK>Z~lonniT;eE$_E*mbc{ z*;)*)f#L>M%qO@Y_aim0I2f9h&z^J4++&YBe%^~tn1A9)FFv`>q5_vVsRit`BlmB# z+etBZb^dk&6W|E1KZ|(J%QIHzpX8-T{kDsFVu1aQp@EZKMP2z8gnWE=KKz_jiS7Xo z1vvWl2c|X!Up%cK1=<_X{;hWY;7O{Q<4-gwg72gw6(bYdYiIl3d3wq*f87-&zyl|` zVD2vlw5?V$5r-f^S&v{78wDumyA)@9@N%jJM|K;U+#acn} z5qVEMev*)cIFJepk^E8bbI+U^}h7KIXrT*xZ217<)??Q|lfvC`}^&jn2;6+x);VE&j?0wk^9q4Cyl8cp-iqN#^< zbdrCwPxF%~4`G%hZ8X!)?VGbil+F;bTc+72k!VlN??av?kH=ZUAq~~j6IQYLW3QFK z;|3|yjZ@(*I}=JW9w3{QP=3b>l3^^*+FSH=*G@gi(`UFc~5poSEk4#QioSsnK-!X@eZQHX%KSLnn?i8)*!}$wMy|;h~fEk8^P<-v-CC*M`?;ph%>Td~L7d z%O~sQsc6c1j40-ukj^!RUb7aD{dYnwMa{S0*`UDHNW0sFWNi*4#wIH1h|NcH0B>LgdLLL6>(7$NL<x8plXG}*x#-zE z*h?BP5$H3M{7dqPE&fBG^FGz#8| zIA_@*d({DvgKNN^58$%Tp z2VHY~FJV`#bu9-RAmAaqTPQ0l@BlYq0{LXXTZ|S(qkGT}LFYx$6;;8XM1wjU=rUdV z_aaVcZrTAAR`UH9hTUCnF(EDd5HCP0nvi18ePrn8HW7>^A|WG0q<*^aB9)yJMg%DNqT(L^TSWrCg9Cps24 z0n34&tz&oDahHZ}%Biz5zn9V>fR=Db>>VD9G^>5z?qOn9icH_k1Ng2|U3`K7(30U} zgw0EdLsuQZ7bAg*bLjGx;mUY|!3UIl8P4vypuCCaFuBoFHG?5#*C-g0XFtc9$-6-g zPhRQ#lYQBIh$^W=wDX}{qD12dK(za3~c0Udz&lcp-&(qvUDP!^w`{e*;(aR9}c zf#3&gp51YFHhm^LXa01NkOjsRzz{n}1rWT{CHXX_b%$>g+*}rQqTbmu7b&Y0yJaof z)ECJji5Wq%#cq%H52gJ+bLR9_DshH1TsFp@o|8|p19Swe7=trjn6>4ZGuc_PGg&`T z&&JyRO_iwOn-84pQ31uyN3_5J&2W4(nlu{I4xDM=i^$cDzZ=e)E9DUardv_2w$7TZ z%8|CadCnYj(UsOYv%S^an~rnlk_n-y=f+eq5b(s*=hlQIXuR0Oa8!(^88EK^=5Sd2 z#=z8g_bW^+=1;!4E*;Mbq$W!8evIDaJk0jOyly2%a(umF7(E|(?|pGNhF_sk<+V{F zRm;kt=u>i4RPExT@aARd7C;(JXjN42n)>9t@GBUH(ZFeZUzUbL18eTXkwGNq6a`xs z6Ps{NS#j_Kt>bGQI(0!*_;r`3%k9W)o-9wnUGrr5$jCz?42z|M#3H@gHh@(oRtHw& zNwRV3RcY*@1PDD`n?e?*JLYz4{nO1}2tmOL)HMcsEvtnIsDfS=#U5ClKFg@*d{S7lal(gw{idJDpybj5Y5CNiHA~vELHfmTQ-B`JyH2 z)Pn{C4#-%{uD_EwHiOH-r6ZRRO0Tk8We5_9!F8F4KWRbvRzYzGrHr!xHu3N zG>C$gJYWWa)Q34<^@6`gEm|qjYm=@_#BxRN!=RvL+<&A^Fyj zVFwxhACd^06;NXsu6pXVNkzM%1}a^`pDiH|Db{q0LJBGx2`MP6?gd;pP1deGoF*gE z=#g0qb2^-sAVu2eY&b`5XMoU5#E%M2!vu%N?(A8qx>XAu?d`xzi4fve8zJb57E9GE zBwVmKy;`Z$(o2`6|2L^tzcr8Pw}!$oG|BZG`j6C{(p~D2KoT&FLjKZ2zuV;tyAVUffL~|I?05|v$ootGlw_=tq5*? z$WwNq&oYABWK9zQozt_7;C6?*K={UH1h+fpVMRRX)ixV_7!!Q}Cov11S{+`(LI%B$ zr?rYAxGlL#F^MpPR#-mxwR~W3z-W)(#)^-X@@*$eLM5d6t8-2k(0UN-3@gVF>}pEb zHsX3Y_?iNIfmH&cYTG2MN`kmmuBEju=tB`O>)lf$xY4(vwkTZnew!f)P9kv)6eQ{c zL~yH2i{MsaM~vBV&l+7+7`U6PbYKdA!3J>fY$0m zodiQBk&H~0LvS~&l|AQTe76?CC?_QIOgT+3$_v4Syb9S?*4m8P)LwQXCj?XMS3d@jrepGJY;H+L_tEVv+IPpNov9 z7-Eg_bCJP*r3R<$4D|VPkr71314C(_)pqg1hpgBxYq@qsoRn}u5!bGc^Ks1fXgP`M za7R$djwbh(??#i)aWPvw;Oc5S;QAs4MH{yUMVu9oh%v_`LCmr>w2I9KT$eL!zBQse z;VN?>g&lB;QFS~upGcg@!tO}tTc`?_^L#l3yHP}JAAkG}<=v876!+c8c>-9nZNETV(=HK-xz~z`3qDktbd9wV6 zrO77*31?KVUzTnoi9$su6UKU0JcM>Dga?##r@$wq2qC4zfo)QRkZJ!ktXX9Hdes2RPtjXB}M*yF;jM8s4NO8XZ?cZ^?Shf5v#TZhR+PBN}G!9qI z%0Q2B&B{OxuqKmcW&Vwvcifg&RB@vfVb@RIfNa(ln5{R#5#JdHLgSH212~bsvbK{A*_d zK11qYx(HJtNFO4_fya1S*6KGpKnB~S5}>+tSrWVb+NH_!=(SXU^xE23ZMcm|s*IgS zWjM9(Y)q$h6~$kP3K`22gJwk%^448*!_xp&~T!kWf;^ zllH+pl3@L9jsfGpe>%aslMyL3m`o%=_frVg1#m$H&x}X?U?)8~<8KMpyM9{1y7rj` z>jMyS$^ZT}3s$2S!MfmQCRl?>g;y;_^PWrV7@Q&i{D@ z>$ZPEf|VJA3+4iNTQtY`HzHVD{lMfCFY`#ayJxKSu-rdE< zL)~FnDJMPec}M8E5M-O7zgxf}F}cJ0i_yd_;;Ew6TiD8qWy<|gur+GWELL*M65`Y= zSQ~atSkIz~Py0I-GAwFPvGm~FnpCURG%SUh%|6;3nyF1a?#*~>WQ;Rbm)%=wgH2O_ zJz%mY|H?^I%4;d`JAn0Hg_B^lausF1?^@e>fK!vUR3q6{?bQk;8ixl?(I>{iS%j4- z&2V8c<`PtVxYQj4-yd3KO@2)P6f=ERNR|9=Kzw_9`nAfW=r#D+A=hm$Dde*iJLtjr zDY2wAxkor)Y2XFIQnT6@3`?%D#L|JeN5qmgiV;g+dnG$I@AYP&B@y71fs#odrH?>Q z&58o1245gdHLHEWFy$IcOzq-^;Th=(O#?%ZZL>)e<92!ufwq$-_|eAX?6AFyNd4+7 zi&PhOz%b4Ztmo8lt?{Bps_Wf&e-7#zPO=>7SL{qS0z}1=jRTxT1`cpe3>?D!@0zFL z5d{w>BaIfn^%UXh&PKlznvuW#y3GJzl?M{MfZL&z5V=-RMhn9b7OCeK!4h z);$Nb&>i(wXOJ)oTo8g0H1Dp6Ty$Y}d6Ts+hu>;vN5;BrvPsz_awMdPl2Z>UOd_Xa zMq4dDOSEWa;_1rS+>yoB51PC&199z)_+P5n+W9jVTR-{d5nHVlMd!fSa`?z>=4U0g zCdLKUKfBoaDY4X)FaN}1>v?18g%MjVEd7fWThAL)KNnk>e2$MIhX1vRt-qL^4Th^3 zw!~OB-1A**+4N0Y?F~p{svS@rd;b_eZXR#ut!B;UT)uC;xRdRgT6~iEIXEIjB zLJ~{Wag0-KrmDCh1RKEDM%TTQ@wBvWSt>i|3QpF#D$UwiY{nYc9j$H*?23JbcHO(AnDl^J`aNwNnwO%j;N% z=MJochkJ48Yq;V4&_N}Z%kEiwN$fQJ=Te2Q;H*J^&cVBHb`_D2&CYwS(5j4zIeWWO zFr1cNuq<84n?3(aeZ#_&^w=7m2`GS%EZXmU!0k|R4-Tshj+lT)=_O}z2|7u7U-q!Q zV-tJ>oZ|BvCn=!52z0|U7kF68QAe~&a(%2xgfv|m7VC*f3HAKLJE*6#2JiAPEUw^# zDAyGa_rVy|g2Gzy;Tn?fIYm_*bSx!0xUh17?df&u>%xix=Day16-H;3_l|YPFLia- zYlTlJ5#nlQ`Ax^Fq77NuR{Y37YK=)8p)CJ{)0Aa>2BJE1>9yilZt#GI0G46!7giL( zQuq=siMvyg>yif=tc`Pj9<+$#^qzMKj;j;Iz(h(W3zQ2NA1ujtR< z`AT2R>Oe22kNV2_4$)E-qZ2!E0=X)MojB`MB7({r6ni#P4CE>Bh?2tEm2NT8`Gc2{ z8ZXhvP^|K`^d90jH~mcF74{z3-NG|8&+)J(1YYPoclcPiQf%R=s@L(W2QG(Q?HWl*aJ z(-L&e0@n{%qJ7QcFeTK2o6EO~qDC6HVZz8BQ3jF&i{;gAp0-(7V{|qOIHHU&%ZCU- z6Mj9yFG8p)1knhb;4k0K4E9vQR)II?z%SthVV+=t+nxV~34N|MUi80Mdl1V0qgOV# zVVP4_UmV-$(*tT5n4MA?PHfru*1I>{_Vy<>Z|%ETFE(Z4fBxY={i}C=?Av$r-@Nux z6|K~P$-wtHo-$;FL8IXP4BXhDw}E-^gMirqAX&Mp_FOhhM!EU&H!jnL(0ncb#$_ZR zcF7(6;dW zyov)A$!4L%bdV8F{}cV3oy@JB5!fT!p7PaQOiZ<6T!!Habz3HC3qv& zO>gdM6|~V~(C2si(asCu;A0h7K2P`%CSewCqlrlPFi70@J2aQ(Ga)clXEhpZ#X+DN z*_+y9g~4HnZ3RM0UWLedoR=pee;K^6_K3?AJGz^TZSm3UpATfU8~da|J`^;_a!`O! z(18fMGB=*5I*u<0S0-|+tcG0|$DfCDs?{dNM_B7zXNT8f&e8-Q0SOa&v398#eECnh z$yIcp$A3XyocxyJWMLzd(~2|e%gVuo{L!+io}HTfCz-cgP^A_IP0q$QVT)2ts#(R` zO6IWIQPEuL#8Z>mDsb^2r|{0tQNE9%kqKqSCB)bx|1U|sNi2ls`$ggX=~9YF6I$kH zJ$CNZ;oCx49$$k;PLW@8bx>EbU}@%DA&U>Wlc{EeMf1a@;lpLFdUxB03&MvBZBjM1 zrdfdA(xz)Gc-RdS7P)*65m1f4aodur=?6XB zzd}rTRRITKR^;zK!>l2MeuV4k=$}HGY4G|@DL=%ucxqM19Lq#(JN2ILJK}dNQ-W{3 zIgo8x#*^{CO7iu`t1kEq@nBdpTKT4B5Y>oR9X03p!Q=*+O({Rup?fT!p-@-<_+vxk zdpVy~p+?{M>2H{CZ;pUA)OR0n50-JauX?gH*=S^F#SR(MJ*YCcElZn4l8AmBGdOvj z779)w<9!`QdneNIfoZ*U-7S#Q%(1W{a03Lf0@>KoUq9SGe)4!)AGigGKk@Q+j3=)h ztejBq8{a$EX}-u=od64uta~UaMvArTxv2fOE=&5yU#yPx=O0?yj|2WxWUF~2Z)gg- zk3Vu&P}eas%Z{9t)0bz=THGYe4uk9wh$iS(cVG;8NxgskGqWytgjqg8KY_J8$d$E_ zpP^>A0mC9=`ZmID984yL=Zv#>ba%C&ocUjUK%td}`uh@xs?m*btoi!JPre>Pz`n0< z{8dU}MAkR{P@*IX&c5-VI0<9v8^0~pTewKy_zovgd-RPz;3P!YH~xf^*wgflZ_JdJ z!;8N0&p1g$kdue0yvwI;>d87N=oyKLdhxFG0a|_5_=Xd2sORHn-*A0>_Vx7tZ?hW| zU}W9(^*L`Nv7s_?eSPTqdhhk)6Cdrmfxm~p@~3~DzRgEtx|ksU&dIo;nB)b3R$h~g zfYOhU-c8yFW^PGZ$#oG=sX*OKYN>3Q^DF_BZ?ZK3cDpB8Y(h+A18dE{eI1EIR_)$A zl=X)_@9YYbFnlxR_KR8_>s23N5|MfCbSmq4(RmMV5{t^o=SlTRaf^{i^qpNkM z7wJqOz9#0;HUs$Q;zt!OW^U^fg$d9kAtN7{G@~hc1nUjgtcUnEtiWmeX*Rr%z5VNs zZ$og>3n@yVDYiD#E=@m|fVSQSm44yw;B|osOX`9L{&M7#KXI}nWdq)F3?m)vl(hP! zb4o;s_wM19Xo8J8w*s_AUl^wrPQM{@n+Jvje zh);(#oY(5G5rM|xpZt&0V)Mhq6^Y?)WI(4c&c&LAib7oGfCZa5AZv7mI-p$%gaor) z$%7~p3PXc7Wd#om125;n2@gi0+Sx9rvqT9HP~AGosrNa!3m__mu4M_4IPu%%r2AZq zr@Hg6pBc=5MN)6SG<*ST%;lL!1fxf7Bxf8EN`q)!&XbL`5u3&*m>zXfn@sas)WtED z7BX__WWCtlg2o{l_XZmzhE;f5UIdF%FTVWd^8AN3?p@WSYDNGNDu4n>{+ABR-fNm6 zRA6>BqpkSf{ftsi?noup{F)3DKAPgetX$b%q*u!?Kg1BY6h5?O3m>94hFbgTAR0}an z7@)>5CG#qfSkJlchs9lu9WrFzBC95eZ=T~3E z!)Z%gLXm8%GVRsT68+6UHWb95^k+8AscSli$w%8M*8&#vyz3?k`)SD#+_dK!cxcbH z*v4?kt(OD%WAlFZpwAqleeWh1Wd|oQX_TNqgfX5ANSK^Eayd5cI$r00(=x%;0J1WlUWyV)FnSlx z7i(fYsUQ5S@FKB5bm34Cl)!Q4H?+*JTr^_|8j(>|@02Fls6jb2dE}Cms&%$yAiIxT zLY<-%yZUC=7)#VuM{TFxFJ_5Cvp@?w|H!q2WkLbqs}6As^}|&U18eo9knuxc70@l> zoV-18#144G081L-V#hsyoD|>q`ebv=%&4_{WS^qj%QS!G@18#@PD8+{P48q2^K#za z&!j*2DT;6S%pWKDCl@j$7?|Q0ihaDy@0{(?@d1FEAMja;QcEHrha&0F(RKh}bi~7# zdV$9^Yy~6)n)F7YppwpqYtWr}D^c2urS;nEN+MPu)g}ZvwN{jJ1!`N6PnE z@#Lq0pVf)9Gd^XY)zx&p=QUx>=uZ#6AjUD%34l~o%5_PNh3`*F`L`@H9t{e+pbd(@{Ap@P1Plq6|<9#OCK zzi%izHW-06w_MuvNW!K0o?i{yCEI*T$gW+7v*FI1souQh!yCSoKr}`qEka6i9Sf_0;U4}c>L1tGWy7SPqGTWCHo6YK4kb0u= zswy(IIsqb&QB-`@5-w#XsKW1Gtc{^w!PLSXIUTje&dgA&E?Cx#Oj|=}t!2Q`-52M7 z&x%QYon*k93B(X$4IPl~e9WZ*yi{p+PL1Ogip%MwL6D`fIty5#wZDG6)_MJP0_D*a zNUOq%nk}%wt<3~(#Ptl|62T$UIWT|e_D5gR0ULGc!Z6@mIZX8P;UO)?-OB7>+}w%k zID#{@LUiY&BjtaOYCpC@J~gOx8?%S!$O+a>4Jt%iXG4)RW@xCy0<*!JSG?mnkTZ+*&YdHmnP3m() zY(`Gm>imKT6`yeqhU!a`rKE@tM`{Vc+*t2nU3SBH^ECm9t9f_*SQ%Tc#ULEgDOmuJ zr!B}m7qw4pAFI}9PVTDB@sYQ1=j4JF@W!YI1?Xp3$g-JOf1ZN&vTYhq6>XB#1&!mq z{_T0&ICp0}{TtE*XYw!9MvtksGLBi;8*LZc{=sPqRi{)i zYDj_8MzeStAN@_YvNyeB z9Bv)#+nHk)jjWn2U{nu>W)_i}E?O~rQOzL=77>z6YC0UdOIT@v!x^R|k|M3SH(*hf z@{(QBT{O*Ep{{GXQ%Ty{B4~EYGDHRg`Hw7d_hR}H_UK@JcZT7xCa{zKz6TLZ0agoa zP0)VQnFYa>qaj!1bn~h@!atnZ}4K|~`+=d@}vao3n z^hkT5DjbUsKH5_D1;b|Ri|7ppLz$f5Rod$bdS@`Hq#cq2!T_K=q$jZW_~;-<15Mz? z8aVj3HV}&j>xM8k&`LZ1>dWi|4JQR_H@``WJt0Z)cuo9ZTN-gOP93UBnQ)I9(w;~v z$6fltbJ9-_wSu~7xc9{TThtWg7i|W-x7RJApH$!SxN~Q{Q(Dn~vgi^Xq z0ieGQU4-^D^p)M}3W1x5GrKn?=VJ8XBqzMwg~MkNQBNcyATL5Vmauii}!q$8PbiS)o@8X?BJwDl7J)uFe@y=O0x8{6>gbg`2z(Bv4l!w z2TaMTX+XLh_)2DniO2-%vho@%Cswg3Tb&<@I`b_eDP|Z3Hs&>$)C>V#U=>==ArYfi zc=z52Y@9!lC8<*n{G!?pb2+kyQZXDRx~Ah@YLe+H6&3nT&?iOifEa5)hZ|z45gS5_ zOP37o6R%<7me^X)?VX%gqs1ExH{KbLp|X48U{BpJ~-Gv0;minsVn^JXsi~(5S={U6Pgq46t>(0l}{*gS@BfT0hZq?eo0(gGeG~ z5@B7-D6qb$SVDeoOjSil&x*8{4-cdR3WT$Wi{=;T^}IC-L>?FyI*(z6QB=SM%STP@ z{5QMB{F%QOvfM!MA>RlYk7So1`K~4$(8qSn04 zOYuG6s=VO;{Pz}%)u2tr+^Eqzzfs}|q(>||<)&#zi+N&$#8Lw;HP|Xek76mOT#D82 z8s;64DoUZQOc`bbQC*|x1wb1%vIJL3E4o$Se$WB`YEG+-^MyEWtPTBSd#%vhH_{9D zp25g@v4=vUcMP z2UwaR-B=!x`S2s{^m*-#IbNCT2>+kntmZZGYQ~w+<#Ju={23_`l=B{Qd?z zXB1aN^Yk8CmLyIgUlqrcaIN$H>#&s2U5p~Z5?j@3O4rdV*a^);-yoW2FIy)_0mS!v z@Bz(O$RUL8daj8{lt^tg8G$u~l7*7ElO5P1Hk~pFIu+<35S{#G5l<@N3x+iuH7ynU z3EN29>UT{j>v70f^c&}CA9?h;*^4Rik%lCYcWHxbi^x97SO%CzA76__%l91#bpcxl zrdl1k;xVE>r3p9FVp;qJV~?D-gmHaqQM)C`i>lTG&+)@EV}8wyn5Q}*hmg7;B8L&}p^5gGaDt_UTEgwN zP&}#16Qq9lrBlOe%fQBDjA|L*)^+W+03#?n_ERU zhe9h7HP{PU&nITA?Hsa@yLzM!NI&zKUEjGv%jpON72k zx!s^~c0m}9OT%#BnG&uh@ldVg*DP8H4k*}n8+xver>1a4fR>FFU6u8r)3s%~ie(Is zDX0Tq{P3gA#8t*enog#X#}UyT1|7*SP!XnnoXG1`BC41P4P=;LK3( z3({BGB47!WAw|TM5FSI93k5vq!Zk$CQ!!oFort#hc5sc-37)H zx}e=}Ipr3}68Q)-j*TZM>n=DqelVh}*!NjdKYSC&Tradbwf$D`yr?+HBj95k1*dHiS}w^i95>@^qIL!)aljQPN}o>MHC>&57`}P>#PtnbRw!5nH1Ch zHPwybi`*|Zox+3~stji0zqC^9p0k?&!*ENj$*Uc6&_tY6)}~VTqT;3$7Vs<$6P=RS z5`izzo2jH((5 zDeo_VL;^j|HnNiX+#DDSvG~HTd-$b@eENk-1f``nrP}~d?shQDMBCtoqIS1eM*Ky{ z^{i~Wo;C6E1~T*>{h}J2G+fPu_w}wptKQLMXC@3(Ye}VBD>ij$dltI7mdKU*J%I{T z&wJ2&l0l8^h}EJObhYRO-J{Q=>ww8O`j8?4xZ<%7*qgJcaF2pEuv^~s%_QG_kyZv$ z1%wxxYL)!ZNo~JrTa~WMAeF;Xq3Eh@GQ-1eL%p@F7vSRID$^G$hk`&sZ zLQkqtCM#NO>qGiUSEf8@xRgGmqD-$zmBK@iWj)QReE#%YUZI+zOZ0tR#KDe;8{7kp zn@tqAN~qcWdd(N0PpB1=_`j`-Np>w8Vv@tYO==pYGrX%gj0E@NB?@=uLW@k+Yn#AW zJ_!K|`G@snOt%Ap)-?C9#YhUuhT+-`NZPJ21*oo)ZzPzc(ZHJnyh-y3keT0pv2-zEswmAEGpX<}LG9jP1Gwo|#P}+(T3&Kx0M?0h ztZcM%Le4~TRk9>vk|k-AWb-Y8*VGrzX|K_jAJ7Gath~GOb&EA1^YrIL2Bj~bEP@Sf zh25$qx@Kd(N7`A@H#~}3l%!HtJNa+_Drh06AXi^*yNq=Z)r>ww_R3<$9Lu5`Na}ro?tNM z{146*Gq{v73miV&{tG$YJ0~bM2xuurT=2XX4z4GX1V$<_IkSEE9HApp!}d zsZmf~i5A7h1e||SfXVm_E{PjY;RE#Xk<*1iwp=V>^MAOcRF_UIB-1c_oI47k64n{2 z3JH>cL=r5>Z@Y{JVIy^ZqAcYntnieW*ysdjiA#~NDkycPJJ5gcth6Sb=EQN{aMsh- zDPT4>^`Fc$AE29ShH6>j`{gZdSgvzvxUxPe$vsi-?Btc-CmEtSB!&ko8|IS^cSo4wI zC3Ba%Na=k-dKb%f(%UMl^FQShdG9W0#m{YeGVlU^oMWXedNK_*=_y?)Tg%D@WupGW zdUBR^kf$8lcUL%Za+>2hIQapm)es^qq&Fyii1bJ{$@)%xp{k|H`Yx)d7EcPkbr65p z;}jE|NijR}Lu{lFI^jay1kO%;*20m84eeK{(A-x0fSxA9uI68UU8p{c17y*ia?!s%S~gDhfk&D*rHH7_?Eox3ao;NnqXT+aYkb!FAwyLwa3IA0W*v zp>F(eNFSEJ{9!KQ;V(5zWUiu?A5cWpXn{>*f5eYm!`vg25tO@J6!v|BIRb(huF|IutJ`A=l|jyK43HMZta z+DC51{k@V0EPN#o_<}+^Fe0W^yryY+3p`KV6+|p2oEAi^GMpAfEI#<9}5fDVSYMAQLkr3z_jqS$sHB2iRt(y2Ms!RR80&?u; zejjbtO%hs~=1;tY3_aB5HmlfdP^`Py#imXwC0v|FZ0lqO;YG;|uv>73a>9QT$Ti)I4e$p~V)(5)BklnDiYIU1%ZKfBE^-G?`oJB8 zb0dS3Xj4;|l|nu-HpC&sXGoh{zy%;(AvAD^Fj?8BhuL&+mSztFq_6_iTTa{qSe~`d z9?jejLF;TgDyY<-@-@`u^a&^H#a}QTG;5i21hBNh=!Pq^CD zySg~sZ>k8ngrly&(Du%NmwP#0o)IrKX%Q>M`;WB(W-4Cp&88-%lOu2;qhK z7;Gs*LpGuZ94nJSCwG&?I!kXSNiGV>9VACAyC2X{OdKao@m~*e)4U^`ZfN=wj;*0P z?f!&gaY2GIi**fxT{ac0yyLQs)cCXUCv1=QF8dIRlDXdfb5t$y$)ZE6R%~Bb9hLrs z=mUm(=$btX`HS;OD{{BiX=q=d&8cgQ0Ajo-Ba@XF8BZk6K=3DQ?-O(udeihK9B)kZ zCe%Xq|79z-^OoR5(m(5PN zp7gQD+N_3jKQ`te?eDak6Q6HhLt1tijUKVF7tvi$ z#uJcXf@Ly*2m+KatcX}ia3a7E!8P{^5Jm*!2%cZ8fFKi4xFT^t1T7-K;P?CQeX2j^ z!;*ltk{e{f)aj}^r_R}DpMCcCVF<{jd0#pLSEW9k1@^mW9kAbSwav+6JH_sJv<;=u zHHE0bTbih@IgqDU^RN|QcspppUST^y`|N5yJE8_>W-i|;4!|ZO`JqJ(?qq8Z!JQLw zSZF^I&7Dlf!7&N;!fs}IJKwkw zRLWeX`H+sX%Z6aTKwD(nh&Ip*YxO1tPp#0nr*Sk1B|Ab;|LiVwf;{ zyDvvu7x@}0PyZxQffBaRo-lJp(w>|vF0g}GYhn};-rhG$Zz?fH69vS2?IX!P;(A3n z3fdZnAnr<{4pk4)#fu;Tpp#S@fJ3rA>V|z5-^^rV3DpA&4P@;hVayjAXn4XvucmDV z3I){?XlO_TwtebZDSK)1+>>AOU-F85Z{G+$8Dth1=GaHN>3Y+j4Q>B0xJ(hCBN57rG&C9_;2 z{>s6VPj%-8sImrK%BCTIC6ovJNuhJedtU(Mv_`s-{+f2sZdsw^5ORc8)Y?(ChBZo7 z-b}jenUBgSbdt|+0Oas#A7w>qC9OXHydmFyCDdJk!V#s7DJfhZAx|Gw`gZb=d71p}a&6|myyMJxP?8N63@=I745pScQe6{Z zM34d#Adf1;CSW-XoJrILJZvzW7hc@%#VLxndvOm%L6U(_Qrtul61_{`WOxXhpq8bH zvSE)Ge5GNHWfPFi4Z0xP?ewq*wMhj@Ul+;o7d%znNb8%I9mUwEfqFUl$g_WyJ7y}Y= zH6&!g+4o3tXGn;;03_@dreNB1B-DwxPy&v_btDuS5EAwq5>5+16v4t{1(A!Jux6_& zE%Y1uC29Xy18b_GUq$H0iN1z@GO<>Kel%$xW>QggFy#^Sg(5jgAk9v)`bB~&)Z`0v zn=i-$dKmRTZh<&yNJ62t-M;uoCZ_tmU>LZA?$@*x;EtVmVBCLYtVY4FJ zgV5Y{x)S`Dxsqw8W##?ov(?NnS=+=7su^_72uQS?PF{t+m6hY%9B+ zpavq^PFh7!@t$R`Rq_M+JOqLW0hHttvV=0mraxl8f)=xBff)IHSYvr5a=+qqmaX!{ zjcTO=#v&@Vt&)_qoiT#vS@Et+@#l5`T}?YY?{oo!%^p0icY)kgok zZNxY`dCF0$ZEZ zx=Mf+Ltsqo*6|-U1zH51I5ue{G)O?*rs4V@`f$CLzsvn5ms5fr$lVW5|yA*8m7pUMfaF#3(!p> zdeH>^MGe*-*}+d+-fEE^u4g&i+h=W!jlq0JxHA^p!L z8V4s*~zw=0-UeD_L{s%HaM@jKoT~(8Dy6Bggt2! z^BG@a6CjX;o_@&!HEwiLvfflX9!k0a_j~9fc&sse|1mqa)5f5wnB5bjZjtw7p(!L3 z4=Ke&$HJ5DsE?^)&(;F8w(im9%6+nP*s@>8USiaeqv9nn#@v7fq&#fp1%l7b_As>@ zxa9MY1;dMjMqunAYl$29q47}bq5HwK*P=d=L(St!kR-GNLmiLvZbE@XANn3p|1_f_ zIBH5ehK8=)_4@8$ zLtd^(i}F6rB}QDUuZ2PF2{L0!HfM6an0N?x0Q-V+3h=NWZVi6Hxp){S?|7*&P2Ow- zp^mYGG{wF%gU>AXN#5&__Of27=HZk;lUye3U}1PWOXxRlzgbi>COO4^4~mN~hYd+B zFvi##c3xv~P+T*H!$bjO6L7H+MN{ra5Hc?Y9z1T*?=D7Tz>;&V-18nK@}k0Z94D44 zut46N!NAWgR~`=aj&QBESb52nosW#Af7e|#+D#q_8E&0Ex`Gl zE^vyf37830)DXn5M=f*rLqW>4-oOoyV%1|*g8X{iax}oBc&@W+=U+1B^ssz_8QG&; zC3lX)2WWpkqTj5({c6MI&V4Ep2f*7?h#1tH!k$-RLq(qd+G>!|QZ3jg_fQoZwsG#0 z7!|Qgn+*CC*G#5og=B^iW1B9zfEfn?GZx+=wQ1{h`7*d#!I&1|B^^>GNIt2C>F-Hh zp!mEd-C5eGZ#q-k+h0O%^*S~!7a9IlU#@t zE(!2l za|?5vGi8UwdEwk(iiVP2pTcIA@||j&oDY zbdGfU!GI>#_2ZKpX4^>~jIh=(pSlUHaV~8>HAv!kmp0E(Y?n6USXJ;?8-z!ienZ7~o%_Y1s zZLFE5^!8WJVH^DE%BuQ8yN>Q_t7i#_BJ1kufo^SdU+c?LtSN>h9?}*l{-%&jnOWe* zI(kBF(d!Y3Ohw(yO~G#Bv76dGVN;#`=B@-1)^R0G9`MYK>;i4_X1*uDEf;fcx!BAY z5EYE8fkJ6_WKJc?bi)EKlH_=Tc)4!WPpixMu{1lUoz8gId*0!1CmO0O0co z_qX_P+n@yVb@+S;=D<`iCjc%F&%X*VDh+3;*xb&2O7jmEQ8Lyr$H38GUWisH!sBO<;Fye-gmj$+J?{27@%zJ9fo5i%(Q z9QFG~<0~aUaU)~2E29$D0+Q%Uy27qP|H9LCJeBky>8dE{DkMuZ79J|!3vO0SQn%q^3mlLc;cQx1+88in0Y_dI zBbWGu>RJ)WKfLr(&1y|~+K1y&8@?}XjgH$~Fd7=?nT0P{ei=9hw<;EudFK7^WCY#*ZK+UaN{C^yOwl7eJ(%OE8*qWJCk&O< zIq$v(X5hpqBXd|K7~{3S0C??bCfg(YkmtRP8Ud>COr9&e8u>Cvxj=xG&Ifs5nUtz# zyc^~MT^aKGeSZz!D#VhpX%yYfNR#eZCHreFz>6>2(HtMn^7ji@so=s-cKzCj67N+kBmL`1C6kFY&M9!`fV+pT5Lf?>?HfR zm+i;1F$#X;k;vZ(uX!3TDp<~Gy`yf1U=wMhsd|@MQ$}m}6o7&Wi*}61yvc(@VnZxJ4q0^-RB}kK!&;F%M`Bl;5yR39C!zOrW0Q|@ zGd{cgS}$Idv?9&nkt0Alh%K~F39G>EUV^XM?j=0($MqR;?mbQ5AC&B9+xfA!_>reH zi!M*tZ0=eNNo5zu;Of(aJ3(5B(iXo2V z(A;q(igg1Lta$Cronu#Iu6>R!6FcJ383uymp~Dm4zR-^VAM5ZLUFq;?UBSRpMv=Tn zblXBm=o4FKvpdZYlE<08wh)p}(w#?a{#HdFCm2IvMV3(nGH6yPnz76xY}J}S{$jfh zoh&9tErev>vCw9A;@k6tko<(-IYaV3md-qI2ckvF0E;IvCwsFBZ5%d!-wMCA= z8H@Kg!pm@k1X*^^h#Wz5MmNuiCmuNxsL^U~s8OYJ5{g1xNVPLAL@R}Gg!f+Keo|7# z(-`DF4-H}FkA%<=id)znIV#{42*kXoo~f^Gks+q%rMHK`(y=UlwY>wfcw~s;JutgM z>g2v~4SS|OXVM(}Uh;iqx&-xDL@O!X6lMk_QJvgwL79 z+K<3vB16DmMTVSN>{oV!XNVB_#B-U|VsIWK5G2oSh?I_)u$dVi^ z7`}*D3`H$Co`6=dw3+QVZ zAd*=TPT4u=At0CB^tu- zP;3NQJ0eo9;l~zI>hz`yoXKW`+O7$wE$luak9tRwECWG7&K5)v$z-Y`woBZD>`i-i+41jkjgRA zsM_PM8yJ(!DM|%n5%+}*$C|HdYb$bE2)!u4#wt+;xa^#M!4e?!aT`}La&B~UwKviF z=kHX}gTjmqSk10vx&W|UgiLIU4kN_Ia0H3e`8^yl`rct-K+@>Z+Lu!pc~?bWuzR7A513dbdy{#H z!$>@FgSrQn!#YUI+6|&$(~uP3#8TErF}d%u7V-u^(5JvSvh55m`Qq!JH0G znQ8G2{cc*E_FMbB$@|teSlD>WRK<80M7V1H1Ww-565x&GJ9Tw7 zs*_el1@qmZ4IQ__SOk5t<)E&xDYv~ra+>^T8V+dv(6oa`cGw@)tcb@biXJO+fSVW~ zUetWqT-iAI*|Z)*Nd##6%Nkx=7}wSMs~qL(MM~ZRL%s1ThCDvvNa%(!TZ?Z?$J!%Y zFK-IO%LPS|_x65a^AL6H3W&nh5XF4hwSbUo&}SH6i(;v?MXEWQB^7{ke}7mvq~uAO0ab_|yb+Ji z`EQ0cSMR7c`>_}WN(-`YMy76$#dFywtRXvDadYz{euCf1=)X2A{$FgWoT>;L=_e41 z&vTQM`NuvC?@Kg`uv;!qOF&QILjH9dlon9o^)yaB0k0mSbASt zHQdgvqs?v(HXUG77^ZBd1FT{%2irOYlc4UC*}mS#vuvg_7B17A|Sxjv&+? zuqw2>r1|tV@CZ^dE65NC6{UJ8CVny@tr+N0tr+hoY_&V7d_HNi4O#i1*knUj@;k-Y zObfMja{rTmVWYAX$J!`eq-nlc-kA&d1^c$NKFARd(l6jei2p5;f%^z57dOAK(=R2w zq5NRVDfJxtz~JR$SXtUw_yE0IXcp)$fqa(FW(Yadv?DGiZ(E-uCytlk!}4N^;G?-j zvopm3i-G**{fzak_xxOW;!--`YJl-Qbp2e)DyXge(-tV;m{X!6Efv zNk_6aPfZUCwb^a&Iq%&Jb7dbVp`D$}5XJ^bk>l;IxdfmF(iwASg=;4i zlF|5zWQNNgv1wgJjUz_yMlLW8;DtEetGS@-WLc$yuFtC~sLfp2S95`pALhcII;2T2 zD}*pDV!3kIIO*kq`LK)j!uq0(Fg`^qRnDFOx!2be%!ib-d|u23uQIQ}Vt6pg1LhB5 zGc2OpjNr2Vb}!b)YVxV)&_e_x4o2a$FH=7y68I0AiF^&o#avkL=sLV38l82kkfT5 z!lj@Qqw`CeIXw32+k~8?7CBbTcEd%*$=9w^n|lh(JlDP2P$49)E0>?i!>YxWa!@^n zG+}Sxw{*6=bU;6NiPUuV(*E!gk!RM(l+<>myRt;Fe^6!krJmv_C8K9ZzRAZ|#G}BC zPcLb35}yjo8o-Q&zKVK-dGlm^O6`{90tGuCl~~@*mnC<+c`fV!j0e+Z^Cfk@bY(W$F)ErW zxr>F!*BP_DoQZjQ6o%%uvNuq1nUvIQbwOw*kPFC+zDOxXCu< zx^x>T47^ynA;M(lr!yS;N|AP z%NjUsv<=*l!v`LZ(TIlks0RLrS7_k&vId?%X$@RYZDO z#>z*|FEk2Fd2^s30(W;6v_|K|cka)H;tGNRRt3>`1MW#(S^c&yxPt!%U6M%J)zAw^ zj#Ik7ADq;6pKz0_6jEg^Z~bFfbV}qdnK1f>cY1WA^1JoeJLz3G<8!6efNXB1A zHMS?zol}P2Mn*w#>P^YgY#w(uTrH4Ey#qmD=@ch8rcdjOkhkQ|Uz*=nyu5m=2KJ*K zG4&0)Dj$OoYQLWH)|AEqML~JN(m~!P%Vr?d)YZt*pIS%u*x$WzAlBR$H3G%hl-TBe z-;Rcv(hSkE{L4rWrH(2Pkh5SYW)KK6X9?TLM1-01yV@Tg{#6@+y{CTbO zgl_U%LuWZNe>e&OKOBE_oK@H~_O^gS=Ts{r*H(Bq$-{Aji6Y#p8KI0Lg$~T4}CY#&wf?`cJTeaeLs+lsI+ColE+)=I=-x_EPC>*hl z2=9Pt0hp$K*07jM5-kbx$$c0qiefdu3BsZlr{x{AtM(n zqk6crGHPT$hzKX8GsuF=Bnu*}EaM9ZD++XyT%#1gF{%Iwk}SnY#-507aVdF}5_?D z6u|n%Uk+e-=fz@EHc3-$|AK6;o42t}I0iuw;2;Bb2?a_*9^sA}#bo-jMvqofEQY6; zd}B}#h7>OdpWGM_Z;AhTav#T;DUdMv9-1qSipPrxI`H<;tK{)RiSO)S#2S4Gs(8 zS@Xazj+~T6nXqVjEXTpN@E%n{$us({MCdEprZIHY_#$TQFSx(#$}6Z9zvw=?S=?UCm9bc zn+Ii+&hIu9!Ct{2pXRW758|vOAnv0!=#X+Ed@(~VOpNUG$ zj&3%ivQ1|c<}pVSJ1yEY95(%fZBs98=ub!cNu!;8HEK#aT%EB7#wdkGGxH6^85!Js zW0QBoDZ3jL#?{RZo=sd>R=1_$2OXU%l2sLpl>xw40=G& zc#ehMw@M&h;`1Pk(|Fd_yi}o z4EvQRHvj{jl&S7X4Asc`zEoDj=%Sj69QGuaBm zW-4o*Q+=GY!lpXx36qS*Rkf)q?3M7ku&I{SrK)eL$ini@Y2Q?#2HI31YpqRHXMxG; zlRR;a*qml4tcc7SdIadT4XSIlt!Q_VVhDg-6*|tUG0G|}(MIXDdgw(D^cb3_NBIWp zX_Ks~b`n}rY#X|#r^K3J6xC6fkVoYgJlQmGy=ROT4km zj_H#h6R5-9S%KB^t=Fv7yfLILRm`k3E2=V_{2`dD61<rumqGER>YP4-|v?*DTiO)AUkJWmHRS6i9f4l)$uz~~T z;QHVs+C@Q(!3LnOtT5^;hD)3z4A*)p3$jFbKu=cW`x`!`%1=l^x31jYv z{z=|fJ@nM=?iiAaIv<%^#?g=|?oBLLbyzMd)(w0kni2gxRNQlj=Wp}|CnK_B;dhD6 ziBNW4K-Cc*F(@Q6Jw;Em!6zKlYEKoXTwM*eSr}PQ7MF+e6MSij;!If=vd7_tK^I`} z35}H(G9^Sni7*D_NvX@}`yQ^Ev%R`Pe0J-~jPBP}?jeNmsHm;cPOc^e0K^!brF3Yf zTu+XY6jC}Md5ho`xPuF$+0Mms2q*=QeSN*>Y|F?}>Y;$zspuL;T;)dV;uFwhO{6?h zan>nr@}fLO1sv|;H?e_|QA_La?fgQgw2ceHAY@Lhgw$_Pb~q?jM)GyA3B=(m^d%5@ z(92Uyz}zqtAC|;TB*5ffFY{Q^JoOuS%FR{RmeoLxZ^E+}JUhFykM@6gOvTXckcY5! z%dm?4gXZDJteJsYj<_HOQ3Rt5dQ#36+Lft$2kdsok~Uf4_sJq643%!jytgU<%3&byLKn z0yH>P>Ltt~#AQs!dCYls7CmV@JIkCqE7a*$W&x(dU4CR^smRwvl07Ichr7S7Gt&@R zLs;-@3fvGzFsu6^7ltP0f-lS#8)~eJB$|?OJ3VaQ4_@RId^t3iNS~0HPnm6s_f2tM zMRVt9ti&DM1B)wE4~Pya-!24(Zb0I-!*+h?Crbv`M9bl}#U^5EYqy<32CCRjD`zEz zTLyULs!O;68@*?R1243vD*YRDjI{#8q(uU+1nxj35Cj-7d`I$)U(*v2jpoWJWtVG- z1v+r#xj|7^u}w{(25bX1c?WD?`*>g6Lw3@p5`Vq96#*ABrBtj zdCfuJT43bk`5C-qp6+zR&{H(^F4&ApO<#>A+S!n*8#5C z(W>VdJLEY&q<@X?f$qiGAspG_>;UGb*TdftL5A0H82I5TFo!^vY}e=6$9X1eFYYU< zg&L`h?DnUr>YZrSJ6Q!keEVqro#l+AI{%Q@Ss8u3inJh~BFX7LFyA8eTSMRXJ|DVe z1zse^57K)G3Q39Hqx|h%C{7p?R$X%rrNo+S0IF7h>|~d)4v7>Nr>M0h=Uau{pO}N2Hk}7A!NU zhS9X}(g(JGcA05_}ZRk*y4NoClU4414 zgthDy$=|dlyQBH~*)?ha7TJcep!CDcSc54MmgF{49F} zz0f&Ur1LJCJ(^xtvSHJ=WWy+S%h_^(-6U|2Jx^ek9Vcky;NxjoAY0N*wRlhqKLu4X z2zNGN2ORTlRRpW;y((XkRm%)}!t<^N$=xQuEhRY9-e6(n!kC#*L79NIOWdPm#tG#q=VvrNwn0_~OK8 zKmF(LnEWTpa#CFP52rqU-`DSd$K(q~&@W*c(}8F4CNCk3Dm4W6@W0*QC9185N~{L< z$(Pn@gTA~z$PJ55%nn6Q)z}-@wHp^J9Bm0th)%9wsyDbU)w5Fl5?ypU@5R~wyyu4c zGT$PKqag7h=wWsEyN0w*=H$!Nvf%8DWVlf~?v5E9#-h)r%JncyTGweZJL`I?;1;W+ z*oO7{P(h|EXhH%1J+4m{6gy-w&gM<1*UgvIvX1y}+A^ zy}(_aDcgHzR{8D5vyh(%BdOk*b^msQ`)Iu2^~iI@`OS@zRqVsHHB^NC#%5v_pY6|B z$pgxKl`g~))^1U6z+S&hM}5O_+w1+Dq}?Dl%|J?T=p~1p>to)Q&Sv)~-M`J?#bZ^h z7AgdNv1YwvSmaH!Z!A!+;o__*Kq0AMfz?=`ju2m|8qAX!0n=xzA3j80?Ma_yja1ci z4znJ$$18xOnlentrZu4kD(PiuYF#J`oB+e&4H>fzU}qFS^DZ+}BtNs-Fm9+8BCUIQ z#)wBo&^!tLNMbvpD^W|wbX~yNU%J8|m>bl>;1q_j;JEI?ZJ*MW1%Fgm^eKmQMfWhR zD}+PdN8-H9=Y)lLSid3ICv;sTbCz&g_ymgE!S{~z_%8DXn4ek%oR+cDEr4~>kc5t} zJLG4q;m*Ok5{M-`UWzoLtF1-kWj$lf@mD$Ey!oZcmxhJV?!U1cZ;-LNt*mhg={z8Q zrc87neLx*2mKp_##V&Kkx$ZO_wBa9rL0DcGtt9;pHOv)C3XNM8il z8%BW!vlkP^MqOkHQ4of&Z>?x(h=-z^mevh2x;N|}P747(irxo4gX!SPh_^uvu6L5= zSzm4f$F_y!3wF|Ws%D1xn5fgCDEUVyw|SckMI-}SmM%#zxxtojF})ZAgP_M=@Ra6g zad49{zdgVhh}|-p5zlWGY|^RlaHxQd(hgTPSceLWtOBzFym7AYvU3LNO8JYx!)KJp?TaTF)XN`om3>>aJF9)XJ;3O z8%KUP=Ne^JU0Z0caE zfBK>n05}IxYQ}V&vnX}sJVdGEEm5jELzJriM55HJ&YzPgC5FC>6>4Gxdy8HONra^OB)J z19)^05`_1|j^-C^;<;t0O7i9BpNkCD{wWR%`$=V}=4a=Yp#bK=a)W(T2aBIwg8J~S z0>4X8wnfe_Imt&*k`v}zX$S~&Z)WcVULmz-)gMX93m8qcbp4xG=o-V4gsnK zF*`Bo#}lBKobwl;-q#y1c#S7RBk1m;p~yv$_P_3gTGZN55ew`F7#B)OqiX{!0Fpu4 zwWCq~H5p&i(k(bfmDj zgCwo%xzqhJOczuMZ~Kc>dOZw!{uVqWZ)Hkl@H^l@F`ZuYv182GvuzX3suQnc>H6NprlDo9jR`0Czk*_xMRFTMkrkK0QSq__;j z$#Y40y|HLVV{lzz2kd-t;sM0N$;Tp@%P!6i?fj+d>GH+d_$QuNC5M7a)}vp$|LJ(~ z`o`j=^-JuD-$?nrSZ+>TnN@l4tEKP`&1B>J^fyoiT}&vTn#1vz^2zS--ie5E{!#`V z<6+MYjZ4&S1>We7A0dJ>JN&>Sfj4@bQueIubo0i}{r1Kb7w4Xi{Rua&$R__ZzcHyB zBiRuy{>A}SS(!~YtKfpjXQ%G(3Y`KN`sLjc8^S5g*=~LEoxgzGk8{E6SW!rB%H6Q! zK_r<=lw8C_YV2-zr`hZ9PqJUTP~v8xqQoUWIp7pIF~*?1N*eB)Aa&vNWz z*7|fmeb%Ee&wbyg1PiaS^_-kN#A-x2>A$qeSZOCn|&{&cs*Mi|{klJZ!UG+8W zmNjzI((1)(wa6`qy)}+VpclYD`qwCtr$uTfmII!vx1a_9t<&n=uR&HT?xiz z-RQX$tiY{tV_z&k(ZyNydi{AN6_(V=gA&!UQv&FxZlgK%1Pnw%yc^&UOMSNm`IYWA zcSlTtj3w>4g_f(b4EF7~Rg6E7TCAKc!U0%M>v%P-?LZt39itOn2=BC7W$231?p61t ziNY!NZpO6Opw*>ZFd9Xpn~A^_4%xg#17r0tl2<`GFmUbARG~530k9VAxO*Kg4Fq;l zi>CMhGrWT-P8Z#sF1(u;OuJhW(2dfl|5zJ$q}_SvEx+Kh^ip-+=8`#3=dCx$!nZ=3 zpezp5uDj{KToDoYZ47Ak2l+QHG&MBC9YiWRfXHF3QbyV^fZRrv=p=BsRu@T4>1(@!R=20Xf zgr{BWHoj(u6j5F47QLq9BfQZ1NT&RQsAADS(YG2@4qK`OJyJ*|V~xmy*DgY|cE|OL z|r?L{e1*4|mC z22D3l4T=;H&8MUusF*TXz}yapg5<##c)OP@I~CqHQt!$k$yIvVn9bEj)>U>`QlBLE zy8aAt%i?0f3FQ3PWnPn5ZI#N9-x$@{m2*Fvwiez%3!!!;yF1tj@Ww&+mv@$4RM_j~ zNQCkz14$u*#2>4l$!F@aw`^=EG8?ME+nZ#VDrA$>9cK`A_Ln!}jyFs+%!g#$ z4QegLmI}?}Awmrjjuc`jO(Ai|NjFvtr4s=?E-vcA7*v>OTQO0zX=b2|(TgttT~FHe9t(oeJS zY6SGrCY|I)cF+)K84@;>@Prb60}``m{A2Nv437V{-$^0QmK}9>7rOmFg?=kHv2v$w z_)Y!mru zLx!yWs$SxuA;`Ry-^O7Zsw{I*-nPDDmET74OUL~D&>>&%a^XGGdFT)w*Noq09VNs< zL)@sab~JRXdkB7;{(w!3$G@&Khx*LHw3%HS8kqQrLm{E{_m8r&ihk;@0vRl2mke~t z-`H_KVa;zLN{p55>3!r1S;Vda_touZ2pxZnR%+HtCqi4!=vJG4gwQrARft%?2L{)QIH?N7C0<4>TlE*fZJ9zH!vVj7Jct|FdYa6 zC#}~RD;+p;Y7h&(rxPx|&^f#>z<(E+z=_tg<8B0xO^ST)phyO4x4|{GkZ{6L z;~5LH^;`avzgvPo>F+K^ak;CzQqU&~*?7D*x=-c>h}3jZ#

+7EufH$Ecw_Iss~P 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≻DYoeeAzL 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 IZ${)rj}=c{&0HGY&8N$@${JY&#*`m!-(qmKx*c z>(%OqdhwRaAGK`v_2Ikolk))|W@?-<*x4a&EKjvz6o6mH9!xdt)QN5*1U(Kmw9ydS zSORMpeKS0vJlzzz@n=-F18nLj=9JiPM6B$LOE!PG!0@~n8U4cYi3ZJ z(UUE(`bP0tTfb`-`mQ;#Z`(>S*nR1+nke0k02ozZ=8dE<8HcG{jTlK`l8jLB-bf4Y zr;rxjLqNDk26jgWwX|7grJ^63>9tdj2eM=su%p$@aqHCb{Mb-(ZCFH684%xbONc>L ztnN)qc}s7!6;;K?ShooQ;r46HhI|AusT?wp&XE0EAM)d=iv~wiztD#v7;w<_69Wf@ zrl59uFas*PCa{;y`W#0JBA%SysRt1Gsb#mFs6uaIsBc+ilv36XfU zKydonhGICKnh9YZ0fBAPK$-k;L?0LQz!%wVE7=I*tbPCB^p^Vf(r~5STE=)`lnfW+ z_sq|!Ku^;$Dm_)p_|`;PM%Xme1LeHKS4qnl8|rs0qovzgMtFK?eQH|7N0DEpWxUN) zpA5!+7Gv~2yq6ZuwT$2w%^UnN3O1$=WFvj9<^y)>M~V?{D}cF0wCp+UzJjb$0$X zo-#YO5r6IM$YO>>Zlm8HW@kLiPM^=t1MuYGeP?z+2YrMUYo-O!q-=K5QU}ZITtCRC z=qH2g5If=kWQl=e@yu>mO9C*|Mme`N3-#;$rhdg=#E9&8rD>bq8n7#^?hRZ<%F=DUyHC7Sv1ik77P?W`l;#U-t20U=D4?5D5J`xw@&X2j}O zF=|LTh%oC)&X%;Qc-n_4V8wb%jbv}oNW#vWMybbMH`WfEMi*EmG@EBpFZCe5(8(cK z3N(@Zqoyy6at>-orLxctx3~I@=@2mW!h96Rq?wc+VJ52cUe}ljrNRXFnuZRG>S*g! zYT+`R(N;tHNWE8()xqL081_^?Y-HDYc9$}8u;9`t*4L?3KB%Mh($%LBt7<;m1Z^qr zn>lM`I2eAPeANsQeti%DD8fYvAbJ+b6oiQmiZIUyA+)cjUmgxQ7lh0tegwK`%3*fo zx0TxgpR1h$HZ-QIP?UXKxfu{D!z$Cy=vfQo;(T^F0llU`prnv14B*y3Wr~qFvn|gD ze%$zyvfJ{8F4}519vmLcXCdJK<&e5J+?u70K9ro@LJcT9*dyA)su?r|t0$%zv3i$lqsi>9ixdJ{ zhfy^+2c;W1N5=-d3vuUlfo&qpA|gD}=kj1l6J2Ko2gyDZ*rS0~ei%>lWyb)%efq)~47ut-3(!v-K-?jbl@ zBHdVJu&6oOspqGZc(+A9_;|E6k19YMn5~3)=O7|ePwScMb47=>yl3(iDF2jT1xoX| zQ&B6m8r~H?T$Ehs>On5X(f9h0DK&K;uh*l$Ma*M`bDblh(`a!z=9QFQFfgW0o$fC? z?YL6<9z421N^M;EUd|5$CdqIm#**D}X)F=xsO7V>t%fb%APb3>@Z#2NT{YVr$z)nVdeOm@ zA%NP2hPE5h>mYGU%|rk820Szo*tu!&kj}Z}r%LWPb&A|^fw4*AE7@mx!@UG%`@uJ8 znT%aV2H||U{oS^4cI#^*wQd^QlkHLTC?-zOX%1vxJI;~sK~w;xzwra807{+aUUBar zbnV*-(xpywKP{uvG(i+RVXl+x<;PT%SGZN8qsf`Y!}7=OD9~K9*9@976kz}hA$x?p za#x4x74E2Vs1c%ED6Ar5J_vGEBukDY9gdVTI`Wpa)x|m=^$cDk8?q?U8`A^S4}$}u zY`JL_7t%b!X}4yL4a4%}YUNz2c27NJQTDP~)kw)XYF-J#;OZ`4>)0~kekm?-)N0e>q&b;x|k30QCmGGzj#fwPJVOP_PIk*$P(xkiVHU$^msq6N_U%pG=7#OQhb2v*5 zR+RW&VJpqL4zAC>xlV&y1aGbbyOtEW8T5X0uDrnv)A6Ae3+_jTz+3Jt1R2zHNQU(| z*KWW;HzEi`002&Co`=jqe#*5+r(EOmR3|%Cb&JxOCpMHqCWJJ5&kJ(drHqs5(omWA zwvD{>;FgaHRp|UVk2*Fe<319zWl9-!<4W02v>m9LSs9@ zXK_Hm_wNDx&P_AIUOq^=WX2|ey$O|JBbUl>X-u?{t+TAxIKQP~@Xp@O2|0CA3NS=a|l+Oz63cp*KF&NfPX8gUH2=z~z$Q#tkOrl+}gitQU zOWUfB1~oW!7%X%D3xa?FN``jTdxqY)ArC!{8l&7ZE(pzNtUie%K_CT~**3B1WqoDo zzC6`i1fz@n#GEamlq1RI*(2u|{{O|RAyp=y){1Z3@r^sG+LVRXhZD4aWc|ywy{ZWo zu}Kj6uo;FEw2^}{$19;X2&aN9CLLHuZpyBIjRvbez&?TznH+7}8(zlP*f1Kb$+BXV zKf6ThAd3PAV6xAiKe}PXxcE8>*x#X*CTJSq*3hFm2J-{4)Sn2`xpNQ8K)Hw z^RSG3hTuNcgL~2QXJn6HA~d{H=xVZJ%TI_tskD&ah%WPG2RLZCrbH#T$Qr~^ZN_1;W%!;zun;CB;{VJF)&i>&U3KZY70o0|SFm?*P zn%!3bJfA%WC^A-a6%|@@t*REFl6`#*KQ+TTv=(QdI9vCIfTW~~d6QiIv8%-n34A9} zq&+s*zw?tj!mGlJA9=oZtHLZ)^hcYCSK2xZ6t$&*1a*K^Kao)#)`G_C)~Ov}BvsFS zuKWB7#H4r(*0j?3Nsp*k8;^z5eD}CYiESv%MYSvl)=K{HW%-?*Ez;_9@OC{mXOT4~ zlb>K+yv^wfi=*F1DmuY?f8voih6z~&tZG#wk$6TNFNqq(9K(e|l<6hA%r*GP^Ec`i z2xTSRSun_C#obxCvbw&4)CoxVQz?FR^@KW!we|h%F>TC5bXPuSxkAmYprMCB+bXaWaB*^hhZ2!OXui0OIczK9#e_4T#8?~k&NEn+$%CU9o)5Seys z6lHY0JdYc9hW*_MY+%Dg&BJKxEsk6Nobb5=ipW2#!3r|3JxW%;WwHCrbwSzNls&_< zlTP-BmF*RIsDO@inIvo77V8r??RzcfOsiiLGYHs4}hcb%ELEcIVmkw#f4DkWl6!C8tOBy z0XGC@!dzCLqEPWs)kwigqxhJTwgsQ6+T!Ek3*he#B}I4=5u6_^VApDHZBoT5YnCM- z5fDZi22yj}LzOw6C*UfBz$6Bpgc9?E&k9VE8bPv)J0@N(q?MO9t4zIfBZcN2e{lzx zCo00xU|U zXoyNfW>D>@B(UNVVOkI!;mCgV}w+JU`FHUxbUiNj4p zRFZdeqLMH_MIRf$tiu)95F*g@VA7#uX@NQu@se6bbKTC4cm9LX8$lyHF2<)5>Y8pq zo&3gDog3Mg#(#a&MQ25r`io=~?yb(7i(OCN{T3Xhh)yuxJ0F#QFRT_fdAm_ommgZQ zU?+0h)#LItO;y5940^6>dC|qRzooq;(I;=Z2;o2?oc@6kd^klPkt(wrH5nFQiU3xJX}ZRO;%ua7 zFY1Z3zLK$8J??17s+q<^5G0Lg*? zhJY9lreqmg%a#V-328q{wDlC+34AD#SuEwppQ)0|A+ILHxc8qnYbXZ}(&Xw-C3Cr& zut3g#NdZiLU4QzsC(LWo6z5uvKIN_iw;&QI1cZy-Xv)<-uU5lJn-7?DZNe_>I(x-g zz-A1jfaaF*F!WrygX85MBC6ncn)}-!%^I?p||hNF=@i=z~$MhT<+CEqjq7A z1%TxGpszi1>SxjwjjW1hFoDSW!)L`Z`ErUN;a-6C#S-H+tqx6pUcEirWQSJkEr~#; zJ`(>6UGx25q(W=jCN$DB2s6bSxD1}D5utO^9iOM|_mT}viMknq$!Qk$*^g>DwNUqw zFMz6#CU%>8!RaYyYvb&|Kr*ZWL@qV5M8Jkk^ay9AtybRJNxMiV+bo9_k6Z_%OO4c} zLDeGu0@&s)9Hao06lZ)C5|^NtTNz6D1aa%td11Z@My+el z)OAonKMFeSbGf4DmC@{-P%}uEFEOy`LXyBSyN3%%Yy{f+g23!uYo;54^%gD@#aedV zxtb(N@kG27Q(Y}K?g}@=emsB}9Dj^NZyaaJ+%XQ~YoLBIzF!Z5%gA>Qa=cD9cJ((2 zphCn@gO!#ZU^WMN>725|FS4lev@b-1X;@q*U;0l9Gv+9}`*g`^@*NyVwQ_c4>TH@dJk*0G^Qz( zPKfQ6Keeo+0s!{r`-u=^L6}(^z)TpMJ<0W6K}HAAj1SGx9LmENXe4NFGbth#1Y8eA z%(9OyRZ@x;L-OWO8xAs(%Qj3k*i>+k0teaK-FGZq5{2c5GAs;o(vqmDZmV-DuEoFC z*j5S{6Abfql_|KLbbfV2P+ z5Q_+MQ3^kGaCW3&3WYFM1wY3Gste4uqEvvVbH7q1&4_W`DiMIMggpd)jT_SP`W_~) z0--crF7ta-m*%bAIqg8ViJ#HK=Y zrTT>AQLeDW|eBl)FQ3j8PXd;_9o0o2uVe-Tl{QC>2x4a%mLW-8T zog>h*&~&UJO|e!`CSay`NVVz8Xr|4U21HDEYAP3b|u)V_!56E3lUe2C#8AfKfyARnm^ zkPq{iRHOE4p(ZXdDJ^uUZZ}c_!OT0_W$j`>()G-&yBHd?RGCXK{Z%+V!JH2V7FtSZ z*gYnP!cIw_46!f|ssO|yW@76t6ZBY0 zse|WeUuKe_nDFc#3qZ>Juq*ER3swcKxG*EByH7QRs6Y_qRrYx-^~iI4CH7HPvm(Vy z1VzAO|6WFO;3cXW^=vTv+4K$&80@vw?2tS#?Y4)lzxh~Ed?`edS7Q8$fv ze>RDG6;ZR~bR1<;^*jj}OQKb=7> zd!JLktCF2xkdOeo4n?d$f7{?8zaKO1Sl1> z)TpsdYoTe0m}sGCh#K^?L^|40%i9qHrn^gxcCOM|Pa_?@5#Q%K*V;c$B~?_Z&*#14 z5v{$>+UwVzYpyxxnsctX4A+tL!}vSv9X<&w{zWZxXD#qOi0%)^TV81>^W&zMY?Gbp zM>>Xz-9ttXxb4sbIK~-YjY|T6KIi$q8_716^l7yes~dc)uaN}7rC}Htn-G!77Wy0P z9x7HYB-J5a>EG^+fIit4GD|we2`O9Fv)JkxTVArYS)0KdI?Jr3$;pc5Gm2MUG?e@ zuQXx=Qr~M~^XbBWKS+RPjK?nMHi^qOrw64>cTHh^0v{!cXVEktE<_)<<3JQC1Z)W- z8nWh}e#OpcE)%eg;RI>@89V|@BDOvk47D}kC0=Q7nR}awttL0KcQE=u!#;>Ecp&g% zhWao9YgM{U5QA~PZ5Ui=b81mk1S0LqKKKo8jq}=4qJC!Cn^and)6sNRitM*fd{YRe zGwbjw@&!Tr7y*S(BO`4|W#F!+KiEbaYI>>RoA_lwF=j-vzY~G(kHU7pSXfKP+M%3UIG7_@MAWJH?8qz$sc^td0mC4?1Z|m+=4v7V}^N zaITVN44(nFhXjd(S|>Avh0~x57IIiryo8?cLC`$6D~4r-nP7a9VIW~%W!87ctr$}iKeEKt zFnPmmrLxy8slz_OG|`{F_{VEpX=xEm`&^CRdacZ@kwGU3i(3e{YdiAZ>w>P&p$NFG z&Eg`;D%kDGH|+)3`v{?5YmYzjLanc-kR(D>P>Sio-{UM$kcl(AJUE}HW1&C`KVA;; zaV7Q!F@{qFjWYf<4&?;};DZ)03Kn>0EmFX!Xv%<5QDp#ZiPnp(5r0{D;etis+S=-Z zMRkF2j2qpG3l=r;DlNcJ`yuuMCk2U;KM4pgR^FyI@UM^zqu^4}Citol7gjoUFR|if zKTg5$b~%sQTJG+;HemTMj5J7p5~M!}((eWAlnAH79xDCs+*)A&BlAZAx216}n=+5s zUw$65Vm}Phr-Sr|L45f2vZ<8j zi5wC5knUr$`=Hq{h+cw}5;ILEwHFn;|zExzrU<;eSlr-F7N`f8usX%KzC#Dm}~*nujc=BfbgP#6O=kw`a8=z!*N> z23Uf0D^=cQmvr#KABUN(3hsAr)YxcEjq&Dw0xTlgEMU35g zmVfoP*4`)Fn?o4vhp{hOd!Mj354dBDcJAf)_5RfZ_G%}uG*DIP`k?SFx=l<1s)rZ* zDX3nL^bX8atI@mer033BMf9#RCA|}at{An0(>Y2fJJJSZ!j^fJfE`Ljl&Z1`7AS>4 z_h9{ww{9L99%yu-G-QtV=5dU)B)TYSKkn9bX+V zLLs@peCVK_UY9T5IjGh`NlDf}f8wp!h{ftD%zEQ({Arw4L@3bIY26Vgf}b+e*q4hm zAv=kVvFeoR&DyBpMN@6h2t`^I>_xb>Q`|Hn@`mzW4Bk`&J0dP&jC_b>0nVsZQquuF zgT6@6O<1no3l_bE8R+YfnfQrq3|#>yG-g%B7lF%QSMvsf%AYS<|!?17MIg2dVD}Qby~CWx0gdyXi`kcwfJ;G%<9-3ko=_ z)SuPy2Q&z0BU=^xr(Pyd)7=`sbt$QpAip;7mH4yVp27JQ{p9iu`>6>ZqP+6Bzk0Jz z4se**C)a6Hzmba2;#+xq^}+8VL*MMG^j{ji(WUyNJa~gEb_0*^JfUL$m6yQi^{xzC zr&qfaci6~lkWN<%hOcn-*eIuuTfLXLjH@UEQoYNDlDAYl4eORr4J@=(~~(=Dc4XDkBC# zZmw(5rVag`wAO?dlk%Pgil>03G+?_KTB3ElqwrdoN}d035n1it_qzA0TQn=>vQvJ^kBs&-LaoEy52n*1P;0 zZqmJSl~utT*%BKesl?w{sMhFI4_)EL9>GeGVfY+B44o`?kIrrJTb79V8w0MOa+SFs1cI%Rw))lk5~m&XSwDKJJysBOqcc znXP<#4VU_~9*f?$YHcEX-OMJtUQM^Y1M}~{y_jss9WGf~nw@$qt97J%vX?-SGixVStob$*u!)1`eD_UX)T=uYp__^= z-I4BB4^OOvPgvi83Di#y75$1JK)&OD?xSK`(*06~fJ66cq?xq++ZQ+p6tn4sES&A7Z|`- zMQPhD@kg&TlL0r}n>kI*{5bZX_ z`~uTdEmo8X^3H9-q;~-eCU)mKxmxChM6gAQ^cGi#ZC`9%hvk>oOJ6 z=dg$bHi|yS`I#W;qB($lf48OyS&6u01`5&_OUVI0*9Zlo3UY8R?5IaN=7Y^nQIW{3 zZfNPp3&a{%I{0UxNx8(V-82At`P|EbR%%zC8?1UkfIJ|f^5tuSzp_+x)tbs1U23iF zn|i%V53sYS+#q>kH3XQ-D}ujT6ZBaMN3!5-QmtzO9pgtiHJ3-*nt+1NKEb58p`>@= zp(#|8Ekl^>Jjt+1bQYGd`2H6NUKVeXCmTFuGUFRQoGOGHY{zZ&_BTW8ia@C-LKU0< z!YxACX*doY5y@_~FlKlH7<~n_In5>I=`bndB5i3m8X=Ln6p!*Jz0(Lp1)?rlnjRoZ zoK?k_RZA3(!O2F_s>=f{z40#1J~gq!@w?lux&Aq(^f)V((uD3rJiZL+p3( zG7;B#rJ3=IDQDSg@*~JRTZAu0?y_%)e`(`I%kf9fbf_kMc&2CfVw+YN3xbE-yX-tk zu4kuZ;lK0*;x^;a&&zK$ z>j_61nv-%pblUTfZ>_}tce`&v#(a1ol#SP2PKTa;fQO{(*7(!uZ#Jp$$nj{fd&zKs9~LG6A{k4+I!G zuV~Wny=e0K9D9=pP0y0Dh@@2fn`B>)ktnxo8xCXTIsI-RW$xM4NlTh&lTR|jVyIU<*!tYB)vl?v5<N2?)ZA9s>hHU1*Uc>yBKiGgy5 zHYgZnZ;eIYKn@zO*P~~Z$1aKrQxSZ{%QvV9LIG0zhRs5@1&7t7LyvrgOul?@gzX_3 zHnfP4I2g1bWS6oPfKP=V-8b>4>*Y%gHJO6QWBm@y68y#V+v z*gy4%y~m8yQ9*qF8d|V}Qg)BrFA#Q>!||#Sppw>)!5wwH>QL^?JdQInDCrT>qouIz z+1%>2)e@57Raez-0lxE6#)_r+QWn*EN6b+isF1d3D=Q=TzT^6fbViw{XB- zDAvcm5rt_5f$bSPAa>|ZT)+&U5PQtU>XlBwxmd^8O--^=$Ji~^r+bhE89L4U?Cniu zKo@n2{sl-okW3NHtJXMo4l~qg2SVO@UEXQsFyqZr9_Jt~4HB2PjJGMr$3PQVnxNyC z1+Y8$R#Hbe?pS<9R5BAMv!z~wtlf8499WQ4t1DtzVSYV};_w}0XLGGo9KZVtE4uHu zk2?exKo_R^Ig3*YLz{DuTIdih%hj2zN;lFg+F<^erxc{samO+pUSgKup*^P!&(nu^*n2|w2(@58?x*M#;(I>K0hlL(VW z<*11X%=VZ7w2Y2IpJ+g6wH4YZVNF~;t;#XD`lk5j{k8)Hd&x&9>UXMA(1|89-G;`h z;@UUrs3RWZMjih?2i`R3H!I)`6~IGxZ@?>^m)Wkvs8T#gE*FcYq%Q;z(h<^O~u;{Bdx~K4oet zI;`tg?l*iZKk^>2suVrmph`@DimOu|irxbsGaNPphrJx&Dh|sEMCxD4LLkB+<;EPc z2l{Md=y1f*N zUDU*kQv4WZ2>yTkvki63eq{Try9v+}rla?LCrF_y;x1lWn;uXeVK;rA^t9=ZmDii+ zNkf~yVpPOZ+*m$;Fhw142oTEDKTmzQ2?tU?o*Y3#c{T^D5ON@$joC zOg0i06``zhklz)1c5yanqpQGc%q8xq5+*EYh#c^5iVt7NkJYSCzC(n) zGiguHzB%a>r^I*mmN!X(LtW0cv(9B>L3gPSZk3?|p^6NBs;XN8@IVzP0LcL4Ly$`ZPivyihU%YBf-7b8W6u`#GYjTbetprXy?9OXFTKM*gJ_vit8 z>T{wXjQC{8?WsH+AO}`kKhe!>y@utZF7TQ1flZ(k z3)?Z_*&hcLo1U{^DCqwR(5@I z;hz-Ii{=GZYi?1_FfU#Mj8dZamJjo582FtrUtrk`4)fzlo!|5G&Rp%Pv((avRoq$X zhx(A=qXC_z*6PDIh#i-}R7mMfFlkS zTJhI(+BEx$>)`#=_%Y6_O?Nx#lz^;f`tYO81&>8 zG(j3{U}{$l+8v^v?Rp~W=%2=VdgrUBSWkO&6l4bL$*rPdWzA?k{SnaTzIe9i^Yh;u zeZKs=q7P05O`3Vg`+w`vV%848vER)ODW-sUq?~BW0U_AxaC4SRf-aLIKh}Jjf4|U#4-jQUR;` zj9WP4kuKqHhow6e?QJd*6S}E_>x8{hkec6~O{Q3bZeLO@g3q{;`c9cS)ksTLQo2V} zELIXNqbn&NSg|RU#CYP`Ovuy*PHkchb0zzfNx5{v8=y#5l6_!S1$u_zVu2FZRX_<0gQ)_rC^9Lk zepzCD9G2~ONUtR0g=skT)9IDie3n#lQWR^M4x|;QmV;SKhngNO)W&w{hiwmi;L&Cc zXJmZl*7Pk-7iX6H6TyvW;(#uf+8S3j-cnIZE_$h?1k>ADlWAz?6lsH{#vC=>$0IrP z#+(OBZu9wLz;E|ko8YIP4u1Pl>y!W};O!3;$~A;1@wqbS0KemR6`HwwaJFGDi!ySb zi=U@80-9txVh6!{bPKJC4zOW%<%IDz5Mm^<9kXOX@@dRB<6wvvk89NwnF1e25!i|r z;2Xw=NdiKqG5TYG@7Sg$@ad-mA6nMQ;2S>$`1TAH;L}Y-6{%;r&NI^ppA5b|Irt0% z_m;p{#y}eL&EzQPTFt@7IT66O)vGrKAQ>iHnR?@g&v8rGOu{x-bOse!6?DYkdXaEJ z=R3>d5+>Is;m4F-zrEu`+lI9LR_&tF#kZ#R`%R)I;Rf&s+siF1OB{@E5kXDcZ}G3# zZm5U^Oc5`F-n_`i6S$0nQjjtDx~7vCXye~ejo*Ko=^deSY5j-$ zC;5G5zM}8e8|;;Ak$|@Jl9{jQeJ8!id_^DB8)Hpboy=GC-=BG0BPg||3DO82QXR*% zd_U4n>dhDR2FhBDKpINDd0cOnl-~f_Oiw9Y{LfTiLHaRHR?)Ux%hHcU@!J4yn^PNK-PDmYLq9eW2;)fRtcxkoP< zI>|@;#X}OWduu?jXL~sSjlsu>a|Z&TuG~XJ7(0e#eNU<)%mwm^#sSOZXZ-LoEh>!* zhO2BCu4xP6z0cL}wR)RWS8(+R?e@F$x*8s<34^l}aR>mi)*`3K86A{R`N~z4N8@4X z0m|bjP?e*rOhB{*4NA1%hO_-S}dy!SuBQ}kiBCf8sdJ2Dn5#=n}cPKWs5CT0#b6N$DPl5|O zAqv@+pXN+SvAL5Sdw|Qw$0AO*i%cO~Y9yarqqewPnfcVA0{$dq>bv;=OKR1nXqG6D zq^lFsH3@v?h$GoEd@1*SN%>`3ZK10&Ut*cQ^}L~$rJ6@7yI%AB)}<~|iji;bHPuzc zT%lnj>p+a7b7gVCs6T&6O6n6{5wB6grypssw1#GdLK6O*jsD9pk~o7F0Zi3xh9%%$r?$5hF=I_NbjT5V#ni=WD_^x!Z_$ z{79^dIb?w8J~2(0$G1WqMu5$gnM}@ADe$$5xGLOE1)RS=X9Vt}D?yq9Z*Nfnm|nSs zi4Ve;(MGDk(}4uEVO}%I|7jqZ%+mJ2&K4*giuC1m4Ta;Z7i$tzptV(MaiK|gEH0lac)tIKOv_% zBUTVXNj~PO&sI`loOBhVTGtV3HgLK}MtrjE>ZSOp1P<#^%0eq0&I^T-PB9c0(nu$; zg-Y+ckbLV~*d}5Gg4;p_cSMHVO39TvV31HBR2D6f8Hv+L%(M3k6-uG-+kB5XhC#9Z zu0StXqL)LRp;y}m);b~ZoV%Z*lhUTLaP*6CIrHTJp2AwxLg6Aor8Vx%(ND$5PoKUY zcSP<_lRKgh&t>kkLQ74io-iz}w3;GN5u6<@o~{>xhr{P|{!3r%JPozn_;3oxZzEn7 zo`%)*ALPpljBSy#)bclCnApFyf*}S^ukW(4OXiiYtYvPy8YMmZs{_Q6K>B%KYC8M$ zr~>x)r+I`43QLqoqOQ94y*YOzCc%=nHgNvw8HepCjc0k9yJzSLZw!P7T0 zbxG%j^z6TajZszio>hem>1sLrT00!20Oi=CE5VgK9NUNDF}EAcw4g3r5uXdSw)>lt zHeX=!TgImP{wXO9h{$aF^h=x9A zRnRKcoP;~p1VXCgb52R;cor0v23^FUg^tz`CB~fuF^Sd~PBlLXB2KQF`AHC8NK%hv zPQ5+*#&q-s;`n?0dUC=u`-&-Rv3Qt9N4B7BNTA?J1bV>y zKrcHrBZ=Ldei$ST>2`A9F4C9Z*a&4&~&(`yPsgdBL<;@p*#yL}|0u+!0LcStDe zLHm|{`{hxZs|WSd>1Rx$Yw{@VmoEfr!qn()$@kH@fL8D?QHlwAy-P7c&c#&FSZ_EF z^fG0aD|5q|C~>LROHj2IUb#j>pW0e)HaRUev2AxRREmz!EOX$v=?Q_T7)@pXdS6ry zWD^aj-&f#ot);06)&VEYrBSh;Ut&wu=Vz|ZAfrz*VOEJ#utHxasw!NIW}TgpslfM! zrm#!xWUz%P4!PL^t=%OldoUH%$!StmL<#%N@nB^y?!ts?wAfIK_0Av}ZUSF!ees+0 zfiHd&fn(h!vK5t((S5!a-UA+L>_!)Cr-5CZdM(^z0)ylQ-zd2Fb$MzE_CVr!fSqRh z15mJU*`eb zaERFFRyjB0lPw&c@yS+VG?8Qzo3;1@eurv2vRId1u6)w;9-E!L$aTRE=d z3$zsl+R?N7+zwX&92IlWM`#F8Gj*wfSyBObeX_!FAD?tx2CRF6`&9hFL%C^EM}gu# z;a6N;q5m_96wrxWdJYH^fF8BSPyCs!qngD9TtSS#>6#50}}cch*_!@Aoz4t!x(-jToWCKGs-YN zMtZ`h_me*A(+$$&q~T_6_uy2`(nE|}lBLHsO5zSQgdsOv0VG|G#&&{QboI#OcDqTW z`15`Vp%Ok|1h9PZ6Mpc=GnFq~XUc`eC^pHL?}Xj5rXS?^eef5qt5wiK&{-OzeHOR1>y;S(>XO6#2Eo{gliD(ae5IdXYC#yL-F1>u+;SAO1q2!y$cil??`u zZn*~t29Qq;#~YjrggZ32^^ z>rn|;*>{wmTF0Dx<;YV@7-)qvF(8PBX}U9B_uK1^u*!Jcvg2z>BMn^^NDsu|*;)&U zT{Yi`sR~WHP{BS5vfdK+;PycI&BzD?XYD3ae3}_ivurO}eDOBZNTH`zG<`n)3s#{1)4xQwS15R5?&g+75wn!kTB_4hfC4 zcR=zaVEh^Sfr9~UBCkj(Bu_X;|7|nVLR@a60#4Qnu=O|gwqPuRuSP?^@*&hGif@=Xwz7d3Ae#VjUm7jZcB8!dN- z1*XG%yV&{rY!?mr-PfJ!vmF2Sg(htmw?Dw4w(@qdT#WCI#Ptl4Y!_E0$Vr-4|0NJ+ zLq;IOdUVn-d3+Z_0unn2odalR?zL9;>KIWUqgYz#reQ-~mJ^GR9VC7Ni>olW--+_J zJz!hmu(`q}i_Ic|lilo4j)(%<%*j^C9~{e~_&rNp69W#;eut4Yan(spyjoGTY_Yr| zj|}iKiv^$sbfxw=xVpU#gjB?4%+A_KLC!A={x2Tms2)E2JO~gkW!eC8Qe2TjIWe(F z+ZzSelyW=%B+3-L@G8t&T9?xU^yWb7H99rR?tcJuI<@Tn`=V1>cK?41 zophlLab!(Y5J8Z|hj{;pOoTmfj14j)aiYUTiZ#)q#RA2$-cJ!S5m8168K4G$z0W*O zYy_>7>R>%FgrUH4wPg*s2#R<-v~0lJP(g9JaEzvdq$^!%#<7W4p&p9z=&#ZvfO#iH zjg?Fgq=*7|M$rs{81Xv!%lE>U#c~PL*s{T^`aY^vW`0KyYIL3v1B-XBhal=~I9x{O zj%~#VF|`6A$;L9?*{u(uys(r5`L|zBc?mE&(HpUAVTHvtY7m}?2qNk2LS(hUpZMFj ztFJI0Fdm9PPGMPAc(lvvYp5=r2|b3R7MqUr1}>te;3W zED;~TB9Kp8{tD{kzK2y-j}R>gS@1XiOdkXukdsAxix}!rvP?SAiZp%I!x7PO>{Bx- zz&_mNOf6JZq5;WV{U%hk7eZC}9C*p~=H%q1slhuqSxv;VlSL^>V>A9z#~p4d4vF&BBcRV~MH{O?ES(ZvjolSH9LHDTr?0KbsqUE#S7yGA~WY?*b>)r zoF|~HL-0qs6WLjBvJ*yQbb8pW+Cu?{ali$cqNJB z5OI~f3@n9Yx6-AM_AWMINfVTc|Awl>L>d%$&-~Blo@pZZx1@ts&E5mbWm+89s;~k>R4PV;XIl53Qt4aY_83T+*jw#DOy~aS zLS#cVqz|M8qg8@XkZw|WkV>s-mRVIGl*C7{QQyoVw{+y5$4CirfELzvhY&&`Bof{$ zOhMv0i-hd-M>aT}jz9dQnkU^yr`Cyj9hOs&8>QI@ZE)#u@r|yqqLM~#V_50>5Gt74 zSiA&+Sgk*x#EME%iw4ga+6ehx!r#jMnfs~~(~20OKTulMESK!4V4D@J<^?4r^Lj0e zNUvQB@^Y0UEiZ_vXfIri%xjkypy{MO6KW9G1@GETNu=l5o2aaD*%&VeqAcyaXK@GG zxytwKUZ{gUUbN-yEEyVHa2t%n+RK|Vo{~2ulSI_!R$d(sNEs!V=RPBfhdFQo;*{=L zJ{&5#l4*-qMB|~(;-ts0=5dV1-LtIQyEJFVM5?%zk(-uDjACTw2CXZ&N5$UmuGkKR za-$U-oXv3BrYo1-y~{B-v9r1L?3W&p4LB)`Phx(vGM%bC*GDkVDk@5c-w-&b9XNVc z>36{~kcvOFkkz#_6Rb&cS!9#0Q)ZchbXK3YT25{9LiXWCd8f=vaQ19deG-S6&2kTgHw%pPmKibepksCN}oVoD*jl2gg zvH}j<<=db->6qU1mEUA8e8=<#V&vAa949gtzTpOM$}tyB@2b}B*BdBfQ3nwtAN0GX z9P}3+D-Bw-f(8;mj)a3?M1*VsQif+P^~=~Knl00gI`ykz1SlTs6qo*K5D4)mU|Dse zn@}GVSQ;QvFgq zYIYAWRpH{S(!ZNujdW4%w1^M@b&WrGIiDsAh5icZC+{*Cf30e^5=k+yK*3{FvKSki zopkRohiQ+Eu(iCepMm6CLq?AgogB@-G+bRHvV)ZaDqG*0cgOVI4TWjP{VYx9rG6{7 z3@QLEf~4(^us*e-$`q5s%}$gBM$VB!au?r7^hw4?S;fW#*?26rTXlJhDOU>1ApY?TwuLpOUNkkaeL(z~_)-6T%Pho)=88 zK!zWM9<5GrzxNb&J_Wt8^%2c9`yORW2Re?CvSIIYAR8U8&ZTnMI(xqVonp$$F3i zW~JiX`%%&PYXE#)D*zK&3}WYEZ9+2(a)42AH=x>~!aw9Tpp&K&a*oYi&?*ESbd zQJzhYr3WaF=!osg#k!&;&#cUiiu)NCSXKno7Ax#0Ou)4@fP&0=1I!>);Z>*{%<;4Jdf9 z#l(s7Iv8zE6dPZFR zYwf1_n1xdJtfSh1DXd(RvI~Jls9SB5Cthh+H44G#KS~=igLXaM8?8YG#IYL<>?4#_Xm=7 z-XKc`$IKAQ2jWjH=Lhm@jR@HBXI3Ty$qVE6q~tNvdjH7zG!xROw$Ezr*lIOLg)mvC z3YQB!FQ5SWmUaEX+}ags>n++h1sitNxLCA5I34J<_5?&ZAwIU>zS&=9!vXFMJ z$l6(uwX@I)RfcMdlJFv~N}}HBWFd~72sUl5okk@F*F0cJ!F*O!`mDt&r}_-7Tz`ol zI?cK+N#tFg;Tm_Jxm1ld17R8O-DlCN`z#WZJ`0Ua_T>&Z^e_oHXVK2QWFcU_BxoCK z%K&nABGArF^o?<{fWM0p4e9hm6&5E;_{*r8>LlbXOU}G)BLY&rKJb=W``{w>pRLLK zWa({ek}a=FUhVwBZ+)_z(ycD9lLyz@yoF_JvM$s1+X_GD(^#^Q${NGc+xUGt$%WR% z99Ol?x+t~1v9@w>(|!LNRI|@GGZBztM!@71SbmOmGtW9$nDkO) zu647(V7|z@Io+x*v5vJNE^7Bt{>-EX+%IuJxzvEN#{F2UAIVA&@e+iCO>e2Ka*k1=4c|VAHoqmB5?lSk*E)*vM)zxOLgLb|!OB!|<6}3(OP~u|%k= z1#p^Q5rRxi4(~KG3k_^%*vr#wji>>e2|=%EjjSHr`sA|Pl2wE6J=9NCj}^>H?ZUx- zdz#VVW1UZ6hmGiYZZU04v|4GE8>!qRT^yXQ)UVZt-+Vkm+kGM>;CE>$? z(b0Xt*i82~)-HC%`)zVdOP&Zn?hVs^H>lyiAwy4AGbEzGth>QGMitwr&hWD=5_y`R z2`z*Lw#F9OJe}^BfWG-m8^5ES4AHSM63uK(D}R*(?n)2F)gH+%^fU52PXfC2HTnGI zW3MuGjyTP+kMg7_o8MY7VPQE0Xg($dWbCL|1xk zmbKDXTji^*_T##QqFRz0lS_-DuI?&dWwozzp|8SnG3kKi&jc*A2{_G9fcRDHCqOiM zfw7ZCM%Yfbg|fsZW2sHRnYK`vYSD>e_W9vylAH8`f`9=l{3v>Wh#PpeCXx&MM_=Rz zzQPZ@L}ku%waa)^rclB=CkjX^C{4x1^yU^)e+H%teD@dmUQ4sJ(jm?HzRD_JVznRF zg??Pm^Pkd%%#gKecv6Ceu|n3mLN9P1Yj08Lu;BDR{I713or7p=h|?}Yy#XgNDSMkN#`%J0e_7!OSmSTkz=KilK3komRy`<>jUCRMy=mk20|uI zAmgnA#4q4?J4W1)RKHs*-M#>C)L8dm7w@aQ?;fm>s#u+PXb|gC_h8Fio7V-ARTim& zE4tQsrOM|Hwo;{)_va2qcad4Ij|ZCu7YtFW#cD}BXZn1t>`ObS)xrBYY~j`g?Uri0 z%XluL(BK@^Z?pQ^MZm><{R~Fk)avGa*I<=YmrLDcXmXtT^Hjgn>I<5#;=I*2whwkvdYi^pc{k#~MwG^FlcTVP{L(QzX$#mvTpg`c6kq=t@87()b*y(a^Y} ziIb`*h`(xTy2Vca$Svm9g!H56eLfLI?arQqwE~@V{OjNIejAKDc5+wop15)br~ZJm zRI<{LLQ5OF6ly-RVy)1nkZ1}2P}kaYst5Wm-)937qX9#^wkD89l2p7V08^A&ye3!; z&KP=`dR59wfEVxxK`FV~M9!SCSx4+m4_B9I5Zgy6EMYS0E{qIbXtkDAL7-Dup+9-r zdbJJ}>d>g}ap4CQ=oq-@-e}HGpoasG&~daVg9AeC>D-suoCbIf@hM!7WFBA$G2n2z z;VPUVKofFpENV3LP11K!Gg4Fr4unwF`BQ;6LSlbBRsLxDWk*h1tO3S}%S`gVTn`8^RudH&bAX8fFSAO_v~X3WW=hv;b)}(a~ht``Y67 z>Q*GsgaPq|LJm~9mO^9e5e7m5!sxSB@(NrK(sVjCGZ*$wjVfDme+FlqPcS<#tFm z@Jh2_o>X0CO)Kz;Ye}sN?zA~dC%Az8Ys!%e;GOF606G7tqs?U8p^P15yxV8Im5f!v zU9RpnUVJdCdlya-yxQbm>0a{#*{e-fX|sE?nK$pr-fXrvciWrdI`X?)ySfg@gc$yx zXz4w*9tMZb4dacyt??c6P?5JT57Ddt>uaz{$*Va7Hm4Lt7%2G`Bmb7XZE_{6k`=tY zC|D1tEqO=iibm-i`CC=!*KAp!VSMk44Rs7@#N2oXHgU{=O9mCRVXnolF{DUk=m}m* zGBEc5ut{~Gm z%);#)X_Vlb-xr6rGsJ!>zDaN-8hrWD#Mkz3#hVj4k3b^`=^jAN_t?`%cbD)rT zGzqy3T3nFbd3#lNwCntYto^Fta7#|K{Lb5J;BFk%5c$#hAXoItUhIlE=k)gIaYHYGQCCE7?41izk+{{E zYBJYx**T8w_SiA*fN0Xxi$C9Za+Z04jV7@c+>I2o?zV9G@|F(kT7*lLv#e zHU9eby)3ds3yrwtZk@HW&RQTvt{OP@67f(lFkfeZ*137K_!XkXr_2hp6kb+|_q-N& zb=>xha=xh+X*J@j4e_C<@j_;|7GUtaG5-EaL_Nh?(P|ZYx)R|}hXvS+cG>xz~n ztXrF|miXb-ycJb_@jdcQXcwKA{FR0vU91Mi_om>dhA?k`SvsQ;5>OANmF*LKng+US?-*=HS_WL9dDnK z&x<4Q_%C@MuW6w52R!Dxx%rr{eohTcu74CTb^a=~!#MlzoF16?P(h3}ckYm{0BMeT zQvH-JJ>&B^|4|NfE7w!IX-Z<3m9}4Y-bbn_2dz8gO(|~Du8<@!2lNhMcC}7gk6qZ% zRC8L_MXp`27)rBmz3FOWL`0N{_h~tUb0{RtUrlXX%Ufq99f0HB2id>=P1)jG`D8zY}*bK(zpg+19#i$P#ZoIa)Bi`m&-fNv20{K~2al97J zDqx%TS{j^Hu0Z#4H}V&_lT>5eTEfeaUUeR$6CLAu!S+JDSyU*H5dyy2b}|weDC5}wU2Y+X_?jrr-U2$K;2^AOG)~z+CJfTk z5=ctdZh93nM8WVS93$h91h31br4tiSs zwX3sc$kz~f*dn5=;)OD!LSDED3J@vMD3Vmzxt#&_ND~FTxY?Fr#NV6G(j&HL&?9=t zppmm&Br-|hkn;HFaW8lnX(;TnH01cYt}R+3@TXxPgx|A*rqk zuB)}+uEuwgzFr#MTL{i0%t%Mk(6yoC#Us3nH7UuA88fkN_eb%3yZ8B`lpI`7BHcM+ z;Lsis=v56aQr1?vvqsx#Iz+6*FU}SuvHa9MRe=9>%0{!tA~CggC4CAv-Zr_(0S*Q- z!A}}~ifOtot$&QJ_rFLx-eE-!PuhX_(fbI|_xyCbhGpRy_K`}@ODD37cSb&LT7=%SSlBsD_2v5mTC!v==7i~ zY9Uxk39Sx+j_+|ljd=>j?q_!wJG1Q4&A=VHb ztDlbL^q<7PCk5{+u8Wid^FSV`YpwH-C2zGheOhF!h>Y=os=T?%ZK^7^F@_K-kMo5R zXUJQqy}spf(lBv(%cLXVEqhCL$WV={&Ptf(+F$!BSZA)Z_vLD+%<;IA-T{?jOR7b| z)&|(bm$>~G!IRm4asDIQ{8NP?&M)yH4CM6H{?>^B0*%Sh%BF%`RIJd$rcS8dvpLd7qKRHJ$Pw;|~-oF7QfKKEM%ItN=TQ?64k2LDxZ6LeWQEvdbWWm@e zcPP=FwF-J)D&!^KvZ+aN4DpTzL}J(1Iz)oBBA7pS%AEt~Z93)tO4RIKoKDxrbftaf zG)(ky$d2^El}%n6me*W(S5y1z%ctCFhNwYkB>4+HZcR8Jf*C`d-~%t4!LtM7k>!7i zz_26#e`sLD0W-mTq~p6Dg`WMFt~_Jn!ATjzpLH4AB6sB0DScV)eHJr_Id=9a`K!lo zUnI07d@j>XVi|H;#KbeXsiMBpp@n%ofc{2)@9e1zj}-{cLIiC=7SJLc=BYiz8{7jD zqvgW^5Iy=S!zzW7Ds+dHU+J=t&)^NxaaakWdFkMRR$1^;mA+W{@?W<~eP}Y=&Wm<+ zQpb&+nE7nUG(fg-p)l5mssdu>)^B2SpphULL{5!cT%tT>XvRMnJ>UJ+CVH-)Q*I&3 zu^5kU&NmN^Kv!;XBpAZ}dY6K*bK*g7A?)id$=fj@4YZbyxiRo42pZ*1mObRY?oW?Rre@N4< z>7&jwf+L0<4m_RU!Ed;?%`LSa9igzYSxKNu_lQebhV>%Toi=FNYjjE2*M1YEkIzE}21oU2 zQbkbO^btJW;TuIbfUoo09c&9l2e8@yABm-~H=v7H;(m!NVyun z>VqV}V6k|b6t7*i#Pf)Ir2-+q^#25e4`36&X--#bXIs#&?O9g~hAjZNl|4hcEjM>^ zGIMg~>vSaBX(@kpPB)n9()V56-I=8yx>mQf=RhmkWGVQTpe)0^ckL-_Ke&qyi#lw7}-72)>_1=Rd3hovy%`wE(cxMTEjaVtIZM z0K{h#iVwB4NcRAU;7~5RFu>n!qrr2k)0KOhT^PV}GZy{}b!BPxPnn^~tm^+G%$2et z-%ecALE=^DAQtB#`B}|cd$4}azH1dn;-ZqeH7d$$`D*hU6iOWoD!258dgE0=pg$1h z!%P)KSOR?rYgKn3vxuHlW~o03t2Gcd16BBB*^x8Ug6FcOrPe>&`x} zDF7)(p?ZdO^5OaX$v!-kW5=!SJ9~X3wA_~~vfi{C-_6%`P@-F&Jg`!2%b0FSb7*Ux z&3}h>*}pS&Y!unFedY@G`-n8&e}}foe2@3vVK5L{g%&XF7^#yzc@T>g;l<>}eu_iW z`*@t%O!SpglWd!gZTGSYTe%y_@2S#9bU%XKvlLo^C;l2tvHQ*4{2hI#maT4Ug7pFa zgYV|I-M9pV`TfaZez)npv>H+ReZ6njZ*0Q+{;_`B)lMif`TYz1w%eby7v-|1r?P9& z?c$mA&iC+M?Q4MajAqrbgifW5A%F^@V+Sm|&@ljlRfLX>up&c6@_-a6CB0uN1+Y2V zq^(LBLugaV7C-)J7HxrXlJYb?=z7S@1lgViS-`RX)lMdgv

9Xbe6Y|75u~BPc4; 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

+ex$PfUsx)$jI?1=U)hjoL@AjnRt?@6n?@5 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%0Dk-RpmoMQZg>`+BzmHXs) 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%0Dl{f4RgY~&sH6DhaPHt&g^K3I_Mh|dSon3 z7=Snv@z-?FEQL1ikdrKuj2CFKhsFeQ-&-YMg8CMaO_vd z&|uc7F=8Gx1|oKiIa-Z50&Zkxbz`R+I*G<;3;@T`PGnr=r=PocE@q%wck_I}(u?UB zUbX)DKA!iJ7F1S(m%`H0{Hlp=QV}C=AeO~6rdqW=3fU&h9LZcSFw34{GJs}`03i)o z773uU!RGP5LK;w?QfWXpS!sa#!l6PW?hm`o^>j03^SWPpE zr2dUrsUdHYK~tHZM$F*|X608kO(cIPPa}T#QvV;1Gra6%X1z9<P(PtrLyJLAwy88`Z*viysitAJQj_@_iJ#f3l~U|>NKhNs zd{bopvE@9-=2kr@=>gm;TIK9HR#kY<*{+lh0D;dxR0Xw^SLUmc7z|r!kk^s|jb{lU zPHHrT>%Y!Yen!Jh2q;W)5VR4eur_3@q;|{Q>TtzAD%d1M8=gG$ZTGK? zZd%I_S8c*5N7Z}jZ;2t|y=%E+dq^im1jmL!qm;Hv(r7D`PlTdH-bm=P2E!Nh%$kA< z$Py)v^?H;Uajy<)0u1k(U)34kY&9xMqrqy?LF%V2oVD_n+uADKRw0%Vkw31b8khb9@TH zSP!JXtJo=XwB=6To_ zvj(LEWksl&^KJHDzB>F)JL>ZMxP_@}0d4r(D_?(GcH5lgmQ2P^7;DfY+C4ODmHuhq zPg(2cENd+phiT4QOUMgTa32ukaJg!RKRUyi+AKqXwsLqbDeFMa)73p@^&0G~wVEHA znlE}W#Ib~F9<9(^)`}u*PZ?#FY#fq{@qpZc1g}hLdr(QWQ>PnHr1FZN7pq1 z?gN)d+7x9tlWJ;UJFud1d|kp?U@YQpQLDIci?+GIPgsjwl)gD6V-bpEthCQhw9?u<-PB5}2};E`Av0uqN5|8Un#WHk&ZI^e z2{b7&$x9oA18_gN5H!alpinGP4^hP_Zn{+)G{t7#60vZH8Xi{y2ucSr^ zGo;F}D#juKLVYZyPw~x@xmDE~PsxQT$i2wMkg-B$f{}waUrJ2xPKb;($8WY}QaaP25Ut@2r+>@w&Whrju;&l+Dyq zA7iR7(W#P2PN=LB?p&dM1w*{1j#?;?n|-m28whLl!|-I)mT4bs4S&%grIFr9erziG zIm~V*6cV_I=tUFQo0pwr8ga}_0$|5cFtWC|2v3ulJ6Rb@R*L>xjLlUeMj02XvmAFt zK-YrBf2-W2aYQ3frr|pE3IJ|lgV!P#w{oU+O4(;@RTB%+R^3-wNz;{nY}S>Ip=_9cal)!0 z|3AJtD#4VDmBIBy%hn^~-IGTmkq;Y3Vxut68srW6iMe@%wKYu&T4Qr!k@z_>V*StY zbu*>QsMy>HEk=@oG3L1D%Dasg`hTOu*kEw>)kp9jGdt%Kep*-K|6l>8yc#cQj4!Fs z35{a-h`Z_F%FRUblte?!doqIM+a)V%hE9!U42mt(!D1zmARlIpzfRY8c(b9?8-Ja} z6@l5BZ#Yv0ltM%^{xZI13I*0?3YGf9SnukTf;v^rzH4S9kbL4$kp^L>M&y*zs=g+& zGpYhT!8j-&h%|&zx(?25 zXmDmlQq|jRJMm3sPKC&&zR6PI=ThAFN;*;n-LLpRR&l@5Ar1)45|-4+0U07-G$wH21+-6BP9+)D z6~q2sT{)>}kFK0PvRhXz9_Wgf&n{iDh40jrH4GbSKs&7aBRq%`jw<;`&*e3wYclk1 zxNN1pD5|%S|JE5shwymudaYW*#Pqu84NZ3FWOJa`HS{`0dUkJspu-uKZunvVfFc?? zj-~M+i@t_Hj9o7swT|(81JA9qJRcy4tO0`OeLOed@VuYr1~@mBxUDI5-2T=XrU?qa zMNiIvCT{O>TWjF3qKsvcVeg_ut=h0OF{g?{L>IMzLR@#v(c%$@#LNMexbB$aOd`W` zv=|~qsd|L2Tjx|IM2Pj+=rYRINJiO4mr=G3Fv`{`M%hM}&Rd5WWdlM&K#Z~hC?URt zQ6=OCu$l0UCppp*c_*ahU_eL3Ij0~X;9xVj)Gl?vNC>tw3&vzHMJtGoux0HG*+_Df zx-Bm4M9NCUv$HxXW<76aJ{9O8cPN6sHT9;U@3f(n(aK2jc+)V3hnD1%DP?*AehYg$ z8kr59R=e~I0JF?y;+qV!fxa|}h}pOWun7V@+b0mJVc&H|!=ftlDiBN1vc%e_@l}TO zbVs*x2LoZ=&INqAj0@-@XHKvM$1$-4oH@l2@E;RHIG+p9JckR2a0VCfL^SRvLlfz7 z^cVYw zWFE0J^EJ?EpNGi%^-SIljg{s~2SJ%7CFtnft~@3od68NRYt@z4T_h(F_ZLICT|p00 z@^jj^xEdMiCh_ps&!1T$x?4#H1oOceaRI};Qh>y~Qe)$D+B2ntz?|71IPn3FsnCTl zzC?kP*L%%7N#rh=AG_WE#Co-2T?V3#H5BkzEW)xLoI%U2M*XbvHw>9O7?5#x^{{|J z7gnr+V5=)v{NwzYL0-E@)KvYrhAGv9SK{ozie3eb)jTrz*=vKIc!>nHgyND^ENnRJ>gk}@wy z8=kDEG7yoZiy*^QC%k@ovCyVK=nfkcG7w81!8Gl;hQvV_Bmf-1(O4H>ruQP5%)Q+~ z4LVZJMTIMbcf6(&9TzR6H29dAkmk$Pxbc`f+SJU|7*=ptuEze5MC~4+ae&!Ww$#;_ zk%P3pj4Jk_Q$;b#sKQ{1o*=dCt}U*<*rPsqeBo4|TY> zrsg)OSxgRO2|V^u8ZN~Nfy*UG2Ap8RmVfW&&$Ek>BDk!o&XH%0KweCE@nt+2W&24; z46FCg07J`wl5a-?Ln6o5s%+N(Wd!2*18UZ{Ln*K9|dDEvxa4 zE?08}IB|qB9_6C;vov{76l@LGGzEq#xo}nrn0FPeqdo3~vF=gFzX-iij&Evi) zuC74mG;+;qHrFb_{RLXARha&-c`$KuA!2p zS`W*yQ3#zf7aw`HTTk=l1-^o8o}7HLp*2EG4y4 zadS*HpsIYN-6~OjO%ku|Q?E0xT@^vg6AuUh!wQRN1!HKVW`L;=8jYRq zdbwOOC(Y2nwaD6wV7nrBV}U^@JY>{T3z#&IQ5}ev^g!E9E9c54eBL{NBU=xn%9_1PpT;%W(}ogeU5LkrM{@C(35>Np z37a{Kz?R#O)O3`D%`C>EHDmCL43e0me@tohKMH?8e?{&Kdh`YMNQ+T{IA17Y`-?RM*SK)A+8rCoD`yt`Xqbqa z;Zv_7i#o+BPHHL-IY z516||WEBc&A;Kry=m_$OHxS&*)26=TdsU+^{0H<5{JWZq6)W@LmAZKiqMySOHH479 z#dtp&(I+Am1F2gVXqnug9FyXE!ZssP$7?+hRJREs*2eTb98;$rquI*M0^W*TAYUx4 z@W(>}ln$;@)?TY+ZC+aQT+d48ij|lqS7j=7MLGU-85SUEtiT9(b#k6{q9O%7 zu@I3AQV#>EhX6`jz)HD%P$=RFVI{;np5cIsCE+J7?U*6=2w-e{3v>v37k0Es`4LL! ze$z`j%BBSQ`;W}+NQ}|;{-g6cT1-+?)8d;{@M|d8Yu>K9(eLy01XYKY3VhX7%w;Hl zx^60Fb!t!DrI{@S4uK7%E`#O!0_n>@OXEs5)Jz3ZF{wrm_vr|2ai12HXLX4152{7L z94GgGm8N>D`E&ds^9K$cR6=4der9q5C;02cCoLYU{4iD90J7>uYu$J88* zBovy4d6tMn46cSS&n6HJcsLk>QDr^MGffi)X254@=)>Mb*tZ`uL9iybbe+* zvw$yD^)QE|qrd=dPRVN1xN>g2hE+4^aM7t&lcM1!npQD>9E6>qX>sg54UneAPgy@y z;MA@9`EiN@kcYfxt&aO2VYAY

r&o0W)1Y0+(r)J%FPZIMn2}w^cIt?cw@{`*{=Y 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 S1(|PX6`J}J&IYHJ&dS*=xmP3g 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

gP~4j^ogKT$bL070^~L0i=8xpQd9dWW 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

wAU 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%0A&HQ}~uylkR4vLi`1lQ7Tyl5E+${g0n%6f6R$rOR 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 diff --git a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts index 52cb9a1..2f23726 100644 --- a/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts +++ b/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts @@ -1,700 +1,404 @@ /* tslint:disable */ /* eslint-disable */ export const memory: WebAssembly.Memory; -export const __wbg_attachment_free: (a: number, b: number) => void; -export const __wbg_backupdecryptionkey_free: (a: number, b: number) => void; -export const __wbg_backupkeys_free: (a: number, b: number) => void; -export const __wbg_backupsecretsbundle_free: (a: number, b: number) => void; -export const __wbg_base64encodedpkmessage_free: (a: number, b: number) => void; -export const __wbg_basemigrationdata_free: (a: number, b: number) => void; -export const __wbg_cancelinfo_free: (a: number, b: number) => void; -export const __wbg_checkcode_free: (a: number, b: number) => void; -export const __wbg_collectstrategy_free: (a: number, b: number) => void; -export const __wbg_crosssigningbootstraprequests_free: (a: number, b: number) => void; -export const __wbg_crosssigningkeyexport_free: (a: number, b: number) => void; -export const __wbg_curve25519publickey_free: (a: number, b: number) => void; -export const __wbg_curve25519secretkey_free: (a: number, b: number) => void; -export const __wbg_decryptedroomevent_free: (a: number, b: number) => void; -export const __wbg_decryptedtodeviceevent_free: (a: number, b: number) => void; -export const __wbg_decryptionsettings_free: (a: number, b: number) => void; -export const __wbg_dehydrateddevice_free: (a: number, b: number) => void; -export const __wbg_dehydrateddevicekey_free: (a: number, b: number) => void; -export const __wbg_dehydrateddevices_free: (a: number, b: number) => void; -export const __wbg_device_free: (a: number, b: number) => void; -export const __wbg_deviceid_free: (a: number, b: number) => void; -export const __wbg_devicekey_free: (a: number, b: number) => void; -export const __wbg_devicekeyalgorithm_free: (a: number, b: number) => void; -export const __wbg_devicekeyid_free: (a: number, b: number) => void; -export const __wbg_devicelists_free: (a: number, b: number) => void; -export const __wbg_ecies_free: (a: number, b: number) => void; -export const __wbg_ed25519publickey_free: (a: number, b: number) => void; -export const __wbg_ed25519signature_free: (a: number, b: number) => void; -export const __wbg_emoji_free: (a: number, b: number) => void; -export const __wbg_encryptedattachment_free: (a: number, b: number) => void; -export const __wbg_encryptioninfo_free: (a: number, b: number) => void; -export const __wbg_encryptionsettings_free: (a: number, b: number) => void; -export const __wbg_establishedecies_free: (a: number, b: number) => void; -export const __wbg_get_backupkeys_backupVersion: (a: number) => [number, number]; -export const __wbg_get_backupkeys_decryptionKey: (a: number) => number; -export const __wbg_get_backupsecretsbundle_backup_version: (a: number) => [number, number]; -export const __wbg_get_backupsecretsbundle_key: (a: number) => [number, number]; -export const __wbg_get_base64encodedpkmessage_ephemeralKey: (a: number) => [number, number]; -export const __wbg_get_basemigrationdata_backupRecoveryKey: (a: number) => [number, number]; -export const __wbg_get_basemigrationdata_backupVersion: (a: number) => [number, number]; -export const __wbg_get_basemigrationdata_deviceId: (a: number) => number; -export const __wbg_get_basemigrationdata_privateCrossSigningMasterKey: (a: number) => [number, number]; -export const __wbg_get_basemigrationdata_privateCrossSigningSelfSigningKey: (a: number) => [number, number]; -export const __wbg_get_basemigrationdata_privateCrossSigningUserSigningKey: (a: number) => [number, number]; -export const __wbg_get_basemigrationdata_userId: (a: number) => number; -export const __wbg_get_crosssigningbootstraprequests_uploadKeysRequest: (a: number) => any; -export const __wbg_get_crosssigningbootstraprequests_uploadSignaturesRequest: (a: number) => number; -export const __wbg_get_crosssigningbootstraprequests_uploadSigningKeysRequest: (a: number) => number; -export const __wbg_get_decryptedroomevent_event: (a: number) => any; -export const __wbg_get_decryptedtodeviceevent_encryptionInfo: (a: number) => number; -export const __wbg_get_decryptedtodeviceevent_rawEvent: (a: number) => any; -export const __wbg_get_decryptionsettings_sender_device_trust_requirement: (a: number) => number; -export const __wbg_get_encryptioninfo_forwarder: (a: number) => number; -export const __wbg_get_encryptioninfo_forwarderDevice: (a: number) => number; -export const __wbg_get_encryptioninfo_sender: (a: number) => number; -export const __wbg_get_encryptioninfo_senderDevice: (a: number) => number; -export const __wbg_get_encryptionsettings_algorithm: (a: number) => number; -export const __wbg_get_encryptionsettings_encryptStateEvents: (a: number) => number; -export const __wbg_get_encryptionsettings_historyVisibility: (a: number) => number; -export const __wbg_get_encryptionsettings_rotationPeriod: (a: number) => bigint; -export const __wbg_get_encryptionsettings_rotationPeriodMessages: (a: number) => bigint; -export const __wbg_get_encryptionsettings_sharingStrategy: (a: number) => number; -export const __wbg_get_identitykeys_curve25519: (a: number) => number; -export const __wbg_get_identitykeys_ed25519: (a: number) => number; -export const __wbg_get_inboundcreationresult_channel: (a: number) => number; -export const __wbg_get_invalidtodeviceevent_rawEvent: (a: number) => any; -export const __wbg_get_keysbackuprequest_body: (a: number) => any; -export const __wbg_get_keysbackuprequest_version: (a: number) => any; -export const __wbg_get_megolmdecryptionerror_code: (a: number) => number; -export const __wbg_get_pickledinboundgroupsession_backedUp: (a: number) => number; -export const __wbg_get_pickledinboundgroupsession_imported: (a: number) => number; -export const __wbg_get_pickledinboundgroupsession_roomId: (a: number) => number; -export const __wbg_get_pickledsession_createdUsingFallbackKey: (a: number) => number; -export const __wbg_get_pickledsession_creationTime: (a: number) => any; -export const __wbg_get_pickledsession_lastUseTime: (a: number) => any; -export const __wbg_get_putdehydrateddevicerequest_body: (a: number) => any; -export const __wbg_get_qrcodeintentdata_msc4108: (a: number) => number; -export const __wbg_get_qrcodeintentdata_msc4388: (a: number) => number; -export const __wbg_get_roomkeycounts_backedUp: (a: number) => number; -export const __wbg_get_roomkeycounts_total: (a: number) => number; -export const __wbg_get_roomkeyimportresult_importedCount: (a: number) => number; -export const __wbg_get_roomkeyimportresult_totalCount: (a: number) => number; -export const __wbg_get_roommessagerequest_body: (a: number) => any; -export const __wbg_get_roomsettings_algorithm: (a: number) => number; -export const __wbg_get_roomsettings_encryptStateEvents: (a: number) => number; -export const __wbg_get_roomsettings_onlyAllowTrustedDevices: (a: number) => number; -export const __wbg_get_roomsettings_sessionRotationPeriodMessages: (a: number) => [number, number]; -export const __wbg_get_roomsettings_sessionRotationPeriodMs: (a: number) => [number, number]; -export const __wbg_get_shieldstate_code: (a: number) => number; -export const __wbg_get_shieldstate_color: (a: number) => number; -export const __wbg_get_signatureuploadrequest_id: (a: number) => any; -export const __wbg_get_todeviceencryptioninfo_sender: (a: number) => number; -export const __wbg_get_todeviceencryptioninfo_senderDevice: (a: number) => number; -export const __wbg_get_todeviceunabletodecryptinfo_reason: (a: number) => number; -export const __wbg_get_utdtodeviceevent_utdInfo: (a: number) => number; -export const __wbg_identitykeys_free: (a: number, b: number) => void; -export const __wbg_inboundcreationresult_free: (a: number, b: number) => void; -export const __wbg_inboundgroupsession_free: (a: number, b: number) => void; -export const __wbg_invalidtodeviceevent_free: (a: number, b: number) => void; -export const __wbg_keysbackuprequest_free: (a: number, b: number) => void; -export const __wbg_keysclaimrequest_free: (a: number, b: number) => void; -export const __wbg_maybesignature_free: (a: number, b: number) => void; -export const __wbg_megolmdecryptionerror_free: (a: number, b: number) => void; -export const __wbg_megolmv1backupkey_free: (a: number, b: number) => void; -export const __wbg_msc4108intentdata_free: (a: number, b: number) => void; -export const __wbg_msc4388intentdata_free: (a: number, b: number) => void; -export const __wbg_olmmachine_free: (a: number, b: number) => void; -export const __wbg_otheruseridentity_free: (a: number, b: number) => void; -export const __wbg_ownuseridentity_free: (a: number, b: number) => void; -export const __wbg_pickledinboundgroupsession_free: (a: number, b: number) => void; -export const __wbg_pickledsession_free: (a: number, b: number) => void; -export const __wbg_pkdecryption_free: (a: number, b: number) => void; -export const __wbg_pkencryption_free: (a: number, b: number) => void; -export const __wbg_pkmessage_free: (a: number, b: number) => void; -export const __wbg_putdehydrateddevicerequest_free: (a: number, b: number) => void; -export const __wbg_qr_free: (a: number, b: number) => void; -export const __wbg_qrcode_free: (a: number, b: number) => void; -export const __wbg_qrcodedata_free: (a: number, b: number) => void; -export const __wbg_qrcodeintentdata_free: (a: number, b: number) => void; -export const __wbg_qrcodescan_free: (a: number, b: number) => void; -export const __wbg_rehydrateddevice_free: (a: number, b: number) => void; -export const __wbg_roomkeycounts_free: (a: number, b: number) => void; -export const __wbg_roomkeyimportresult_free: (a: number, b: number) => void; -export const __wbg_roomkeyinfo_free: (a: number, b: number) => void; -export const __wbg_roomkeywithheldinfo_free: (a: number, b: number) => void; -export const __wbg_roommessagerequest_free: (a: number, b: number) => void; -export const __wbg_roompendingkeybundledetails_free: (a: number, b: number) => void; -export const __wbg_roomsettings_free: (a: number, b: number) => void; -export const __wbg_sas_free: (a: number, b: number) => void; -export const __wbg_secretsbundle_free: (a: number, b: number) => void; -export const __wbg_set_backupkeys_backupVersion: (a: number, b: number, c: number) => void; -export const __wbg_set_backupkeys_decryptionKey: (a: number, b: number) => void; -export const __wbg_set_backupsecretsbundle_backup_version: (a: number, b: number, c: number) => void; -export const __wbg_set_backupsecretsbundle_key: (a: number, b: number, c: number) => void; -export const __wbg_set_base64encodedpkmessage_ephemeralKey: (a: number, b: number, c: number) => void; -export const __wbg_set_basemigrationdata_backupRecoveryKey: (a: number, b: number, c: number) => void; -export const __wbg_set_basemigrationdata_backupVersion: (a: number, b: number, c: number) => void; -export const __wbg_set_basemigrationdata_deviceId: (a: number, b: number) => void; -export const __wbg_set_basemigrationdata_privateCrossSigningMasterKey: (a: number, b: number, c: number) => void; -export const __wbg_set_basemigrationdata_privateCrossSigningSelfSigningKey: (a: number, b: number, c: number) => void; -export const __wbg_set_basemigrationdata_privateCrossSigningUserSigningKey: (a: number, b: number, c: number) => void; -export const __wbg_set_basemigrationdata_userId: (a: number, b: number) => void; -export const __wbg_set_decryptionsettings_sender_device_trust_requirement: (a: number, b: number) => void; -export const __wbg_set_encryptioninfo_forwarder: (a: number, b: number) => void; -export const __wbg_set_encryptioninfo_forwarderDevice: (a: number, b: number) => void; -export const __wbg_set_encryptioninfo_sender: (a: number, b: number) => void; -export const __wbg_set_encryptioninfo_senderDevice: (a: number, b: number) => void; -export const __wbg_set_encryptionsettings_algorithm: (a: number, b: number) => void; -export const __wbg_set_encryptionsettings_encryptStateEvents: (a: number, b: number) => void; -export const __wbg_set_encryptionsettings_historyVisibility: (a: number, b: number) => void; -export const __wbg_set_encryptionsettings_rotationPeriod: (a: number, b: bigint) => void; -export const __wbg_set_encryptionsettings_rotationPeriodMessages: (a: number, b: bigint) => void; -export const __wbg_set_encryptionsettings_sharingStrategy: (a: number, b: number) => void; -export const __wbg_set_identitykeys_curve25519: (a: number, b: number) => void; -export const __wbg_set_identitykeys_ed25519: (a: number, b: number) => void; -export const __wbg_set_inboundcreationresult_channel: (a: number, b: number) => void; -export const __wbg_set_pickledinboundgroupsession_backedUp: (a: number, b: number) => void; -export const __wbg_set_pickledinboundgroupsession_imported: (a: number, b: number) => void; -export const __wbg_set_pickledinboundgroupsession_roomId: (a: number, b: number) => void; -export const __wbg_set_pickledsession_createdUsingFallbackKey: (a: number, b: number) => void; -export const __wbg_set_pickledsession_creationTime: (a: number, b: any) => void; -export const __wbg_set_pickledsession_lastUseTime: (a: number, b: any) => void; -export const __wbg_set_qrcodeintentdata_msc4108: (a: number, b: number) => void; -export const __wbg_set_qrcodeintentdata_msc4388: (a: number, b: number) => void; -export const __wbg_set_roomkeycounts_backedUp: (a: number, b: number) => void; -export const __wbg_set_roomkeycounts_total: (a: number, b: number) => void; -export const __wbg_set_roomsettings_algorithm: (a: number, b: number) => void; -export const __wbg_set_roomsettings_encryptStateEvents: (a: number, b: number) => void; -export const __wbg_set_roomsettings_onlyAllowTrustedDevices: (a: number, b: number) => void; -export const __wbg_set_roomsettings_sessionRotationPeriodMessages: (a: number, b: number, c: number) => void; -export const __wbg_set_roomsettings_sessionRotationPeriodMs: (a: number, b: number, c: number) => void; -export const __wbg_set_shieldstate_code: (a: number, b: number) => void; -export const __wbg_set_shieldstate_color: (a: number, b: number) => void; -export const __wbg_set_todeviceencryptioninfo_sender: (a: number, b: number) => void; -export const __wbg_set_todeviceencryptioninfo_senderDevice: (a: number, b: number) => void; -export const __wbg_set_todeviceunabletodecryptinfo_reason: (a: number, b: number) => void; -export const __wbg_shieldstate_free: (a: number, b: number) => void; -export const __wbg_signature_free: (a: number, b: number) => void; -export const __wbg_signatures_free: (a: number, b: number) => void; -export const __wbg_signatureuploadrequest_free: (a: number, b: number) => void; -export const __wbg_signatureverification_free: (a: number, b: number) => void; -export const __wbg_storedroomkeybundledata_free: (a: number, b: number) => void; -export const __wbg_storehandle_free: (a: number, b: number) => void; -export const __wbg_todeviceencryptioninfo_free: (a: number, b: number) => void; -export const __wbg_todevicerequest_free: (a: number, b: number) => void; -export const __wbg_todeviceunabletodecryptinfo_free: (a: number, b: number) => void; -export const __wbg_tracing_free: (a: number, b: number) => void; -export const __wbg_userdevices_free: (a: number, b: number) => void; -export const __wbg_utdtodeviceevent_free: (a: number, b: number) => void; -export const __wbg_verificationrequest_free: (a: number, b: number) => void; -export const __wbg_versions_free: (a: number, b: number) => void; -export const attachment_decrypt: (a: number) => [number, number, number, number]; -export const attachment_encrypt: (a: number, b: number) => [number, number, number]; -export const backupdecryptionkey_createRandomKey: () => number; -export const backupdecryptionkey_decryptV1: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number]; -export const backupdecryptionkey_fromBase64: (a: number, b: number) => [number, number, number]; -export const backupdecryptionkey_megolmV1PublicKey: (a: number) => number; -export const backupdecryptionkey_toBase64: (a: number) => any; -export const backupkeys_decryptionKeyBase64: (a: number) => any; -export const base64encodedpkmessage_new: (a: number, b: number, c: number, d: number, e: number, f: number) => number; -export const basemigrationdata_new: () => number; -export const cancelinfo_cancelCode: (a: number) => [number, number]; -export const cancelinfo_cancelledbyUs: (a: number) => number; -export const cancelinfo_reason: (a: number) => any; -export const checkcode_as_bytes: (a: number) => [number, number]; -export const checkcode_toDigitNoLeadingZero: (a: number) => number; -export const checkcode_to_digit: (a: number) => number; -export const collectstrategy_allDevices: () => number; -export const collectstrategy_deviceBasedStrategy: (a: number, b: number) => number; -export const collectstrategy_eq: (a: number, b: number) => number; -export const collectstrategy_errorOnUnverifiedUserProblem: () => number; -export const collectstrategy_identityBasedStrategy: () => number; -export const collectstrategy_onlyTrustedDevices: () => number; -export const crosssigningkeyexport_masterKey: (a: number) => [number, number]; -export const crosssigningkeyexport_self_signing_key: (a: number) => [number, number]; -export const crosssigningkeyexport_userSigningKey: (a: number) => [number, number]; -export const crosssigningstatus_hasMaster: (a: number) => number; -export const crosssigningstatus_hasSelfSigning: (a: number) => number; -export const crosssigningstatus_hasUserSigning: (a: number) => number; -export const curve25519publickey_length: (a: number) => number; -export const curve25519publickey_new: (a: number, b: number) => [number, number, number]; -export const curve25519publickey_toBase64: (a: number) => [number, number]; -export const curve25519secretkey_fromBase64: (a: number, b: number) => [number, number, number]; -export const curve25519secretkey_fromUint8Array: (a: number, b: number) => [number, number, number]; -export const curve25519secretkey_new: () => number; -export const curve25519secretkey_toBase64: (a: number) => [number, number]; -export const curve25519secretkey_toUint8Array: (a: number) => [number, number]; -export const decryptedroomevent_forwarder: (a: number) => number; -export const decryptedroomevent_forwarderDevice: (a: number) => number; -export const decryptedroomevent_forwardingCurve25519KeyChain: (a: number) => any; -export const decryptedroomevent_sender: (a: number) => number; -export const decryptedroomevent_senderClaimedEd25519Key: (a: number) => any; -export const decryptedroomevent_senderCurve25519Key: (a: number) => [number, number]; -export const decryptedroomevent_senderDevice: (a: number) => number; -export const decryptedroomevent_shieldState: (a: number, b: number) => number; -export const decryptedtodeviceevent_type: (a: number) => number; -export const decryptionsettings_new: (a: number) => number; -export const dehydrateddevice_keysForUpload: (a: number, b: any, c: number) => any; -export const dehydrateddevicekey_createKeyFromArray: (a: any) => [number, number, number]; -export const dehydrateddevicekey_toBase64: (a: number) => any; -export const dehydrateddevices_create: (a: number) => any; -export const dehydrateddevices_deleteDehydratedDeviceKey: (a: number) => any; -export const dehydrateddevices_getDehydratedDeviceKey: (a: number) => any; -export const dehydrateddevices_rehydrate: (a: number, b: number, c: number, d: number, e: number) => any; -export const dehydrateddevices_saveDehydratedDeviceKey: (a: number, b: number) => any; -export const device_algorithms: (a: number) => any; -export const device_curve25519Key: (a: number) => number; -export const device_deviceId: (a: number) => number; -export const device_displayName: (a: number) => [number, number]; -export const device_ed25519Key: (a: number) => number; -export const device_encryptToDeviceEvent: (a: number, b: number, c: number, d: any, e: number) => any; -export const device_firstTimeSeen: (a: number) => bigint; -export const device_getKey: (a: number, b: number) => [number, number, number]; -export const device_isBlacklisted: (a: number) => number; -export const device_isCrossSignedByOwner: (a: number) => number; -export const device_isCrossSigningTrusted: (a: number) => number; -export const device_isDehydrated: (a: number) => number; -export const device_isDeleted: (a: number) => number; -export const device_isLocallyTrusted: (a: number) => number; -export const device_isVerified: (a: number) => number; -export const device_keys: (a: number) => any; -export const device_localTrustState: (a: number) => number; -export const device_requestVerification: (a: number, b: number, c: number) => [number, number, number]; -export const device_setLocalTrust: (a: number, b: number) => any; -export const device_signatures: (a: number) => number; -export const device_userId: (a: number) => number; -export const device_verify: (a: number) => any; -export const deviceid_new: (a: number, b: number) => number; -export const deviceid_toString: (a: number) => [number, number]; -export const devicekey_curve25519: (a: number) => number; -export const devicekey_ed25519: (a: number) => number; -export const devicekey_name: (a: number) => number; -export const devicekey_toBase64: (a: number) => [number, number]; -export const devicekey_unknown: (a: number) => [number, number]; -export const devicekeyalgorithm_name: (a: number) => number; -export const devicekeyalgorithm_toString: (a: number) => [number, number]; -export const devicekeyid_algorithm: (a: number) => number; -export const devicekeyid_deviceId: (a: number) => number; -export const devicekeyid_new: (a: number, b: number) => [number, number, number]; -export const devicekeyid_toString: (a: number) => [number, number]; -export const devicelists_changed: (a: number) => [number, number]; -export const devicelists_isEmpty: (a: number) => number; -export const devicelists_left: (a: number) => [number, number]; -export const devicelists_new: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const ecies_establish_inbound_channel: (a: number, b: number, c: number) => [number, number, number]; -export const ecies_establish_outbound_channel: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const ecies_new: () => number; -export const ecies_public_key: (a: number) => number; -export const ed25519publickey_length: (a: number) => number; -export const ed25519publickey_toBase64: (a: number) => [number, number]; -export const ed25519signature_new: (a: number, b: number) => [number, number, number]; -export const ed25519signature_toBase64: (a: number) => [number, number]; -export const emoji_description: (a: number) => any; -export const emoji_symbol: (a: number) => any; -export const encryptedattachment_encryptedData: (a: number) => [number, number]; -export const encryptedattachment_hasMediaEncryptionInfoBeenConsumed: (a: number) => number; -export const encryptedattachment_mediaEncryptionInfo: (a: number) => [number, number]; -export const encryptedattachment_new: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const encryptioninfo_shieldState: (a: number, b: number) => number; -export const encryptionsettings_new: () => number; -export const establishedecies_check_code: (a: number) => number; -export const establishedecies_decrypt: (a: number, b: number, c: number) => [number, number, number, number]; -export const establishedecies_encrypt: (a: number, b: number, c: number) => [number, number]; -export const establishedecies_public_key: (a: number) => number; -export const eventid_localpart: (a: number) => [number, number]; -export const eventid_new: (a: number, b: number) => [number, number, number]; -export const eventid_serverName: (a: number) => number; -export const getVersions: () => number; -export const inboundgroupsession_hasBeenImported: (a: number) => number; -export const inboundgroupsession_roomId: (a: number) => number; -export const inboundgroupsession_senderKey: (a: number) => number; -export const inboundgroupsession_sessionId: (a: number) => [number, number]; -export const invalidtodeviceevent_type: (a: number) => number; -export const keysbackuprequest_new: (a: any, b: any, c: any) => number; -export const keysbackuprequest_type: (a: number) => number; -export const keysclaimrequest_new: (a: any, b: any) => number; -export const keysclaimrequest_type: (a: number) => number; -export const keysqueryrequest_type: (a: number) => number; -export const keysuploadrequest_type: (a: number) => number; -export const maybesignature_invalidSignatureSource: (a: number) => [number, number]; -export const maybesignature_isInvalid: (a: number) => number; -export const maybesignature_isValid: (a: number) => number; -export const maybesignature_signature: (a: number) => number; -export const megolmdecryptionerror_maybe_withheld: (a: number) => [number, number]; -export const megolmdecryptionerror_unable_to_decrypt: (a: number, b: number) => number; -export const megolmdecryptionerror_withheldCode: (a: number) => [number, number]; -export const megolmv1backupkey_algorithm: (a: number) => any; -export const megolmv1backupkey_publicKeyBase64: (a: number) => any; -export const migration_migrateBaseData: (a: number, b: any, c: number, d: number) => any; -export const migration_migrateMegolmSessions: (a: number, b: number, c: any, d: number, e: number) => [number, number, number]; -export const migration_migrateOlmSessions: (a: number, b: number, c: any, d: number, e: number) => [number, number, number]; -export const olmmachine_backupRoomKeys: (a: number) => any; -export const olmmachine_bootstrapCrossSigning: (a: number, b: number) => any; -export const olmmachine_buildRoomKeyBundle: (a: number, b: number) => any; -export const olmmachine_clearRoomPendingKeyBundle: (a: number, b: number) => any; -export const olmmachine_close: (a: number) => void; -export const olmmachine_crossSigningStatus: (a: number) => any; -export const olmmachine_decryptExportedRoomKeys: (a: number, b: number, c: number, d: number) => [number, number, number, number]; -export const olmmachine_decryptRoomEvent: (a: number, b: number, c: number, d: number, e: number) => [number, number, number]; -export const olmmachine_dehydratedDevices: (a: number) => number; -export const olmmachine_deleteSecretsFromInbox: (a: number, b: number, c: number) => any; -export const olmmachine_deviceCreationTimeMs: (a: number) => number; -export const olmmachine_deviceId: (a: number) => number; -export const olmmachine_disableBackup: (a: number) => any; -export const olmmachine_displayName: (a: number) => any; -export const olmmachine_enableBackupV1: (a: number, b: number, c: number, d: number, e: number) => [number, number, number]; -export const olmmachine_encryptExportedRoomKeys: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; -export const olmmachine_encryptRoomEvent: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number]; -export const olmmachine_encryptStateEvent: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number]; -export const olmmachine_exportCrossSigningKeys: (a: number) => any; -export const olmmachine_exportRoomKeys: (a: number, b: any) => any; -export const olmmachine_exportSecretsBundle: (a: number) => any; -export const olmmachine_getAllRoomsPendingKeyBundles: (a: number) => any; -export const olmmachine_getBackupKeys: (a: number) => any; -export const olmmachine_getDevice: (a: number, b: number, c: number, d: number, e: number) => any; -export const olmmachine_getIdentity: (a: number, b: number) => any; -export const olmmachine_getMissingSessions: (a: number, b: number, c: number) => any; -export const olmmachine_getPendingKeyBundleDetailsForRoom: (a: number, b: number) => any; -export const olmmachine_getReceivedRoomKeyBundleData: (a: number, b: number, c: number) => any; -export const olmmachine_getRoomEventEncryptionInfo: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const olmmachine_getRoomSettings: (a: number, b: number) => any; -export const olmmachine_getSecretsFromInbox: (a: number, b: number, c: number) => any; -export const olmmachine_getUserDevices: (a: number, b: number, c: number, d: number) => any; -export const olmmachine_getVerification: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const olmmachine_getVerificationRequest: (a: number, b: number, c: number, d: number) => number; -export const olmmachine_getVerificationRequests: (a: number, b: number) => any; -export const olmmachine_hasDownloadedAllRoomKeys: (a: number, b: number) => any; -export const olmmachine_identityKeys: (a: number) => number; -export const olmmachine_importBackedUpRoomKeys: (a: number, b: any, c: number, d: number, e: number) => [number, number, number]; -export const olmmachine_importCrossSigningKeys: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => any; -export const olmmachine_importExportedRoomKeys: (a: number, b: number, c: number, d: any) => [number, number, number]; -export const olmmachine_importRoomKeys: (a: number, b: number, c: number, d: any) => [number, number, number]; -export const olmmachine_importSecretsBundle: (a: number, b: number) => any; -export const olmmachine_initFromStore: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => any; -export const olmmachine_initialize: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => any; -export const olmmachine_invalidateGroupSession: (a: number, b: number) => any; -export const olmmachine_isBackupEnabled: (a: number) => any; -export const olmmachine_markAllTrackedUsersAsDirty: (a: number) => any; -export const olmmachine_markRequestAsSent: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number]; -export const olmmachine_new: () => [number, number, number]; -export const olmmachine_outgoingRequests: (a: number) => any; -export const olmmachine_pushSecretToVerifiedDevices: (a: number, b: number, c: number) => any; -export const olmmachine_queryKeysForUsers: (a: number, b: number, c: number) => [number, number, number]; -export const olmmachine_receiveRoomKeyBundle: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const olmmachine_receiveSyncChanges: (a: number, b: number, c: number, d: number, e: any, f: number, g: number) => [number, number, number]; -export const olmmachine_receiveSyncChangesMsc4186: (a: number, b: number, c: number, d: number, e: any, f: number, g: number) => [number, number, number]; -export const olmmachine_receiveVerificationEvent: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const olmmachine_registerDevicesUpdatedCallback: (a: number, b: any) => void; -export const olmmachine_registerReceiveSecretCallback: (a: number, b: any) => void; -export const olmmachine_registerRoomKeyUpdatedCallback: (a: number, b: any) => void; -export const olmmachine_registerRoomKeysWithheldCallback: (a: number, b: any) => void; -export const olmmachine_registerUserIdentityUpdatedCallback: (a: number, b: any) => void; -export const olmmachine_requestMissingSecretsIfNeeded: (a: number) => any; -export const olmmachine_roomKeyCounts: (a: number) => any; -export const olmmachine_roomKeyForwardingEnabled: (a: number) => number; -export const olmmachine_roomKeyRequestsEnabled: (a: number) => number; -export const olmmachine_saveBackupDecryptionKey: (a: number, b: number, c: number, d: number) => any; -export const olmmachine_setHasDownloadedAllRoomKeys: (a: number, b: number) => any; -export const olmmachine_setRoomSettings: (a: number, b: number, c: number) => any; -export const olmmachine_set_roomKeyForwardingEnabled: (a: number, b: number) => void; -export const olmmachine_set_roomKeyRequestsEnabled: (a: number, b: number) => void; -export const olmmachine_shareRoomKey: (a: number, b: number, c: number, d: number, e: number) => any; -export const olmmachine_shareRoomKeyBundleData: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number]; -export const olmmachine_sign: (a: number, b: number, c: number) => any; -export const olmmachine_storeRoomPendingKeyBundle: (a: number, b: number, c: number) => any; -export const olmmachine_trackedUsers: (a: number) => [number, number, number]; -export const olmmachine_updateTrackedUsers: (a: number, b: number, c: number) => any; -export const olmmachine_userId: (a: number) => number; -export const olmmachine_verifyBackup: (a: number, b: any) => [number, number, number]; -export const otheruseridentity_hasVerificationViolation: (a: number) => number; -export const otheruseridentity_identityNeedsUserApproval: (a: number) => number; -export const otheruseridentity_isVerified: (a: number) => number; -export const otheruseridentity_masterKey: (a: number) => [number, number, number, number]; -export const otheruseridentity_pinCurrentMasterKey: (a: number) => any; -export const otheruseridentity_requestVerification: (a: number, b: number, c: number, d: number, e: number) => [number, number, number]; -export const otheruseridentity_selfSigningKey: (a: number) => [number, number, number, number]; -export const otheruseridentity_verificationRequestContent: (a: number, b: number, c: number) => [number, number, number, number]; -export const otheruseridentity_verify: (a: number) => any; -export const otheruseridentity_wasPreviouslyVerified: (a: number) => number; -export const otheruseridentity_withdrawVerification: (a: number) => any; -export const ownuseridentity_hasVerificationViolation: (a: number) => number; -export const ownuseridentity_isVerified: (a: number) => number; -export const ownuseridentity_masterKey: (a: number) => [number, number, number, number]; -export const ownuseridentity_requestVerification: (a: number, b: number, c: number) => [number, number, number]; -export const ownuseridentity_selfSigningKey: (a: number) => [number, number, number, number]; -export const ownuseridentity_trustsOurOwnDevice: (a: number) => any; -export const ownuseridentity_userSigningKey: (a: number) => [number, number, number, number]; -export const ownuseridentity_verify: (a: number) => any; -export const ownuseridentity_wasPreviouslyVerified: (a: number) => number; -export const ownuseridentity_withdrawVerification: (a: number) => any; -export const pickledinboundgroupsession_new: () => number; -export const pickledsession_new: () => number; -export const pkdecryption_decrypt: (a: number, b: number) => [number, number, number, number]; -export const pkdecryption_decryptString: (a: number, b: number) => [number, number, number, number]; -export const pkdecryption_fromKey: (a: number) => number; -export const pkdecryption_new: () => number; -export const pkdecryption_publicKey: (a: number) => number; -export const pkdecryption_secretKey: (a: number) => number; -export const pkencryption_encrypt: (a: number, b: number, c: number) => [number, number, number]; -export const pkencryption_encryptString: (a: number, b: number, c: number) => [number, number, number]; -export const pkencryption_fromKey: (a: number) => number; -export const pkmessage_ciphertext: (a: number) => [number, number]; -export const pkmessage_ephemeralKey: (a: number) => number; -export const pkmessage_fromBase64: (a: number) => [number, number, number]; -export const pkmessage_fromParts: (a: number, b: number, c: number, d: number, e: number) => number; -export const pkmessage_mac: (a: number) => [number, number]; -export const pkmessage_toBase64: (a: number) => number; -export const plaintexttodeviceevent_type: (a: number) => number; -export const putdehydrateddevicerequest_new: (a: any) => number; -export const qr_cancel: (a: number) => [number, number, number]; -export const qr_cancelInfo: (a: number) => number; -export const qr_cancelWithCode: (a: number, b: number, c: number) => [number, number, number]; -export const qr_confirmScanning: (a: number) => [number, number, number]; -export const qr_flowId: (a: number) => [number, number]; -export const qr_hasBeenConfirmed: (a: number) => number; -export const qr_hasBeenScanned: (a: number) => number; -export const qr_isCancelled: (a: number) => number; -export const qr_isDone: (a: number) => number; -export const qr_isSelfVerification: (a: number) => number; -export const qr_otherDeviceId: (a: number) => number; -export const qr_otherUserId: (a: number) => number; -export const qr_reciprocate: (a: number) => [number, number, number]; -export const qr_reciprocated: (a: number) => number; -export const qr_registerChangesCallback: (a: number, b: any) => void; -export const qr_roomId: (a: number) => number; -export const qr_state: (a: number) => number; -export const qr_toBytes: (a: number) => [number, number, number]; -export const qr_toQrCode: (a: number) => [number, number, number]; -export const qr_userId: (a: number) => number; -export const qr_weStarted: (a: number) => number; -export const qrcode_renderIntoBuffer: (a: number) => [number, number, number]; -export const qrcodedata_fromBase64: (a: number, b: number) => [number, number, number]; -export const qrcodedata_fromBytes: (a: number, b: number) => [number, number, number]; -export const qrcodedata_intentData: (a: number) => number; -export const qrcodedata_mode: (a: number) => number; -export const qrcodedata_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number]; -export const qrcodedata_newMsc4388: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number]; -export const qrcodedata_publicKey: (a: number) => number; -export const qrcodedata_rendezvousUrl: (a: number) => [number, number]; -export const qrcodedata_serverName: (a: number) => [number, number]; -export const qrcodedata_toBase64: (a: number) => [number, number]; -export const qrcodedata_toBytes: (a: number) => [number, number]; -export const qrcodescan_fromBytes: (a: any) => [number, number, number]; -export const rehydrateddevice_receiveEvents: (a: number, b: number, c: number, d: number) => any; -export const roomid_new: (a: number, b: number) => [number, number, number]; -export const roomkeyimportresult_keys: (a: number) => any; -export const roomkeyinfo_algorithm: (a: number) => number; -export const roomkeyinfo_roomId: (a: number) => number; -export const roomkeyinfo_senderKey: (a: number) => number; -export const roomkeyinfo_sessionId: (a: number) => [number, number]; -export const roomkeywithheldinfo_algorithm: (a: number) => number; -export const roomkeywithheldinfo_roomId: (a: number) => number; -export const roomkeywithheldinfo_sender: (a: number) => number; -export const roomkeywithheldinfo_sessionId: (a: number) => [number, number]; -export const roomkeywithheldinfo_withheldCode: (a: number) => [number, number]; -export const roommessagerequest_new: (a: any, b: any, c: any, d: any, e: any) => number; -export const roommessagerequest_type: (a: number) => number; -export const roompendingkeybundledetails_inviteAcceptedAtMillis: (a: number) => number; -export const roompendingkeybundledetails_inviterId: (a: number) => number; -export const roompendingkeybundledetails_roomId: (a: number) => number; -export const roomsettings_new: () => number; -export const sas_accept: (a: number) => [number, number, number]; -export const sas_canBePresented: (a: number) => number; -export const sas_cancel: (a: number) => [number, number, number]; -export const sas_cancelInfo: (a: number) => number; -export const sas_cancelWithCode: (a: number, b: number, c: number) => [number, number, number]; -export const sas_confirm: (a: number) => any; -export const sas_decimals: (a: number) => [number, number]; -export const sas_deviceId: (a: number) => number; -export const sas_emoji: (a: number) => [number, number]; -export const sas_emojiIndex: (a: number) => [number, number]; -export const sas_flowId: (a: number) => [number, number]; -export const sas_hasBeenAccepted: (a: number) => number; -export const sas_haveWeConfirmed: (a: number) => number; -export const sas_isCancelled: (a: number) => number; -export const sas_isDone: (a: number) => number; -export const sas_isSelfVerification: (a: number) => number; -export const sas_otherDeviceId: (a: number) => number; -export const sas_otherUserId: (a: number) => number; -export const sas_registerChangesCallback: (a: number, b: any) => void; -export const sas_roomId: (a: number) => number; -export const sas_startedFromRequest: (a: number) => number; -export const sas_supportsEmoji: (a: number) => number; -export const sas_timedOut: (a: number) => number; -export const sas_userId: (a: number) => number; -export const sas_weStarted: (a: number) => number; -export const secretsbundle_backupBundle: (a: number) => number; -export const secretsbundle_from_json: (a: any) => [number, number, number]; -export const secretsbundle_masterKey: (a: number) => [number, number]; -export const secretsbundle_selfSigningKey: (a: number) => [number, number]; -export const secretsbundle_to_json: (a: number) => [number, number, number]; -export const secretsbundle_userSigningKey: (a: number) => [number, number]; -export const servername_host: (a: number) => [number, number]; -export const servername_isIpLiteral: (a: number) => number; -export const servername_new: (a: number, b: number) => [number, number, number]; -export const servername_port: (a: number) => number; -export const shieldstate_message: (a: number) => [number, number]; -export const signature_ed25519: (a: number) => number; -export const signature_toBase64: (a: number) => [number, number]; -export const signatures_addSignature: (a: number, b: number, c: number, d: number) => number; -export const signatures_asJSON: (a: number) => [number, number, number]; -export const signatures_clear: (a: number) => void; -export const signatures_count: (a: number) => number; -export const signatures_get: (a: number, b: number) => any; -export const signatures_getSignature: (a: number, b: number, c: number) => number; -export const signatures_isEmpty: (a: number) => number; -export const signatures_new: () => number; -export const signatureuploadrequest_new: (a: any, b: any) => number; -export const signatureuploadrequest_type: (a: number) => number; -export const signatureverification_deviceState: (a: number) => number; -export const signatureverification_trusted: (a: number) => number; -export const signatureverification_userState: (a: number) => number; -export const start: () => void; -export const storedroomkeybundledata_encryptionInfo: (a: number) => [number, number]; -export const storedroomkeybundledata_roomId: (a: number) => number; -export const storedroomkeybundledata_senderUser: (a: number) => number; -export const storedroomkeybundledata_url: (a: number) => [number, number]; -export const storehandle_open: (a: number, b: number, c: number, d: number, e: number) => any; -export const storehandle_openWithKey: (a: number, b: number, c: number, d: number, e: number) => any; -export const todeviceencryptioninfo_isSenderVerified: (a: number) => number; -export const todevicerequest_new: (a: any, b: any, c: any, d: any) => number; -export const todevicerequest_type: (a: number) => number; -export const tracing_isAvailable: () => number; -export const tracing_new: (a: number) => [number, number, number]; -export const tracing_set_minLevel: (a: number, b: number) => [number, number]; -export const tracing_turnOff: (a: number) => [number, number]; -export const tracing_turnOn: (a: number) => [number, number]; -export const userdevices_devices: (a: number) => any; -export const userdevices_get: (a: number, b: number) => number; -export const userdevices_isAnyVerified: (a: number) => number; -export const userdevices_keys: (a: number) => any; -export const userid_clone: (a: number) => number; -export const userid_isHistorical: (a: number) => number; -export const userid_localpart: (a: number) => [number, number]; -export const userid_new: (a: number, b: number) => [number, number, number]; -export const userid_serverName: (a: number) => number; -export const utdtodeviceevent_type: (a: number) => number; -export const verificationrequest_accept: (a: number) => [number, number, number]; -export const verificationrequest_acceptWithMethods: (a: number, b: number, c: number) => [number, number, number]; -export const verificationrequest_cancel: (a: number) => [number, number, number]; -export const verificationrequest_cancelInfo: (a: number) => number; -export const verificationrequest_flowId: (a: number) => [number, number]; -export const verificationrequest_generateQrCode: (a: number) => any; -export const verificationrequest_getVerification: (a: number) => any; -export const verificationrequest_isCancelled: (a: number) => number; -export const verificationrequest_isDone: (a: number) => number; -export const verificationrequest_isPassive: (a: number) => number; -export const verificationrequest_isReady: (a: number) => number; -export const verificationrequest_isSelfVerification: (a: number) => number; -export const verificationrequest_otherDeviceId: (a: number) => number; -export const verificationrequest_otherUserId: (a: number) => number; -export const verificationrequest_ourSupportedMethods: (a: number) => [number, number, number, number]; -export const verificationrequest_ownUserId: (a: number) => number; -export const verificationrequest_phase: (a: number) => number; -export const verificationrequest_registerChangesCallback: (a: number, b: any) => void; -export const verificationrequest_request: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; -export const verificationrequest_roomId: (a: number) => number; -export const verificationrequest_scanQrCode: (a: number, b: number) => any; -export const verificationrequest_startSas: (a: number) => any; -export const verificationrequest_theirSupportedMethods: (a: number) => [number, number, number, number]; -export const verificationrequest_timeRemainingMillis: (a: number) => number; -export const verificationrequest_timedOut: (a: number) => number; -export const verificationrequest_weStarted: (a: number) => number; -export const ring_core_0_17_14__bn_mul_mont: (a: number, b: number, c: number, d: number, e: number, f: number) => void; -export const uploadsigningkeysrequest_new: (a: any) => number; -export const dehydrateddevicekey_createRandomKey: () => number; -export const __wbg_get_base64encodedpkmessage_ciphertext: (a: number) => [number, number]; -export const __wbg_get_base64encodedpkmessage_mac: (a: number) => [number, number]; -export const __wbg_get_basemigrationdata_pickledAccount: (a: number) => [number, number]; -export const __wbg_get_encryptioninfo_senderCurve25519Key: (a: number) => [number, number]; -export const __wbg_get_inboundcreationresult_message: (a: number) => [number, number]; -export const __wbg_get_msc4108intentdata_rendezvousUrl: (a: number) => [number, number]; -export const __wbg_get_msc4388intentdata_baseUrl: (a: number) => [number, number]; -export const __wbg_get_msc4388intentdata_rendezvousId: (a: number) => [number, number]; -export const __wbg_get_outboundcreationresult_initial_message: (a: number) => [number, number]; -export const __wbg_get_pickledinboundgroupsession_pickle: (a: number) => [number, number]; -export const __wbg_get_pickledinboundgroupsession_senderKey: (a: number) => [number, number]; -export const __wbg_get_pickledsession_pickle: (a: number) => [number, number]; -export const __wbg_get_pickledsession_senderKey: (a: number) => [number, number]; -export const __wbg_get_todeviceencryptioninfo_senderCurve25519Key: (a: number) => [number, number]; -export const __wbg_set_outboundcreationresult_channel: (a: number, b: number) => void; -export const __wbg_migration_free: (a: number, b: number) => void; -export const __wbg_get_uploadsigningkeysrequest_body: (a: number) => any; -export const __wbg_get_pickledinboundgroupsession_senderSigningKey: (a: number) => [number, number]; -export const __wbg_get_msc4108intentdata_serverName: (a: number) => [number, number]; -export const __wbg_get_encryptioninfo_senderClaimedEd25519Key: (a: number) => [number, number]; -export const __wbg_get_outboundcreationresult_channel: (a: number) => number; -export const keysuploadrequest_new: (a: any, b: any) => number; -export const keysqueryrequest_new: (a: any, b: any) => number; -export const __wbg_set_pickledsession_pickle: (a: number, b: number, c: number) => void; -export const __wbg_set_pickledinboundgroupsession_senderSigningKey: (a: number, b: number, c: number) => void; -export const __wbg_set_pickledsession_senderKey: (a: number, b: number, c: number) => void; -export const __wbg_set_pickledinboundgroupsession_pickle: (a: number, b: number, c: number) => void; -export const __wbg_set_basemigrationdata_pickledAccount: (a: number, b: number, c: number) => void; -export const __wbg_set_pickledinboundgroupsession_senderKey: (a: number, b: number, c: number) => void; -export const __wbg_set_msc4108intentdata_serverName: (a: number, b: number, c: number) => void; -export const __wbg_set_msc4108intentdata_rendezvousUrl: (a: number, b: number, c: number) => void; -export const __wbg_set_msc4388intentdata_rendezvousId: (a: number, b: number, c: number) => void; -export const __wbg_set_msc4388intentdata_baseUrl: (a: number, b: number, c: number) => void; -export const __wbg_set_encryptioninfo_senderCurve25519Key: (a: number, b: number, c: number) => void; -export const __wbg_set_encryptioninfo_senderClaimedEd25519Key: (a: number, b: number, c: number) => void; -export const __wbg_set_todeviceencryptioninfo_senderCurve25519Key: (a: number, b: number, c: number) => void; -export const __wbg_set_base64encodedpkmessage_mac: (a: number, b: number, c: number) => void; -export const __wbg_set_base64encodedpkmessage_ciphertext: (a: number, b: number, c: number) => void; -export const __wbg_set_inboundcreationresult_message: (a: number, b: number, c: number) => void; -export const __wbg_set_outboundcreationresult_initial_message: (a: number, b: number, c: number) => void; -export const __wbg_servername_free: (a: number, b: number) => void; -export const __wbg_eventid_free: (a: number, b: number) => void; -export const __wbg_get_versions_git_description: (a: number) => any; -export const __wbg_get_versions_vodozemac: (a: number) => any; -export const __wbg_get_utdtodeviceevent_rawEvent: (a: number) => any; -export const __wbg_get_plaintexttodeviceevent_rawEvent: (a: number) => any; -export const __wbg_get_versions_git_sha: (a: number) => any; -export const __wbg_get_todevicerequest_id: (a: number) => any; -export const __wbg_get_versions_matrix_sdk_crypto: (a: number) => any; -export const __wbg_get_todevicerequest_body: (a: number) => any; -export const __wbg_get_keysclaimrequest_id: (a: number) => any; -export const __wbg_get_todevicerequest_event_type: (a: number) => any; -export const __wbg_keysqueryrequest_free: (a: number, b: number) => void; -export const __wbg_get_keysqueryrequest_id: (a: number) => any; -export const __wbg_get_keysqueryrequest_body: (a: number) => any; -export const __wbg_get_todevicerequest_txn_id: (a: number) => any; -export const __wbg_get_keysbackuprequest_id: (a: number) => any; -export const __wbg_get_keysclaimrequest_body: (a: number) => any; -export const __wbg_keysuploadrequest_free: (a: number, b: number) => void; -export const __wbg_get_keysuploadrequest_id: (a: number) => any; -export const __wbg_get_keysuploadrequest_body: (a: number) => any; -export const __wbg_get_roommessagerequest_txn_id: (a: number) => any; -export const __wbg_get_roommessagerequest_room_id: (a: number) => any; -export const __wbg_get_roommessagerequest_id: (a: number) => any; -export const __wbg_get_roommessagerequest_event_type: (a: number) => any; -export const __wbg_get_signatureuploadrequest_body: (a: number) => any; -export const __wbg_uploadsigningkeysrequest_free: (a: number, b: number) => void; -export const __wbg_get_megolmdecryptionerror_description: (a: number) => any; -export const __wbg_crosssigningstatus_free: (a: number, b: number) => void; -export const __wbg_plaintexttodeviceevent_free: (a: number, b: number) => void; -export const userid_toString: (a: number) => [number, number]; -export const __wbg_userid_free: (a: number, b: number) => void; -export const roomid_toString: (a: number) => [number, number]; -export const eventid_toString: (a: number) => [number, number]; -export const __wbg_roomid_free: (a: number, b: number) => void; -export const __wbg_outboundcreationresult_free: (a: number, b: number) => void; -export const wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true_: (a: number, b: number, c: any) => [number, number]; -export const wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___wasm_bindgen_ff9af61e2d43a78a___JsValue__core_ed718c3d60ebd546___result__Result_____wasm_bindgen_ff9af61e2d43a78a___JsError___true__2: (a: number, b: number, c: any) => [number, number]; -export const wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined___js_sys_8badcad5ae9f3759___Function_fn_wasm_bindgen_ff9af61e2d43a78a___JsValue_____wasm_bindgen_ff9af61e2d43a78a___sys__Undefined_______true_: (a: number, b: number, c: any, d: any) => void; -export const wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke___web_sys_4ec35d1b8222c725___features__gen_Event__Event______true_: (a: number, b: number, c: any) => void; -export const wasm_bindgen_ff9af61e2d43a78a___convert__closures_____invoke_______true_: (a: number, b: number) => void; -export const __wbindgen_malloc: (a: number, b: number) => number; -export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; -export const __wbindgen_exn_store: (a: number) => void; -export const __externref_table_alloc: () => number; -export const __wbindgen_externrefs: WebAssembly.Table; -export const __wbindgen_free: (a: number, b: number, c: number) => void; -export const __wbindgen_destroy_closure: (a: number, b: number) => void; -export const __externref_drop_slice: (a: number, b: number) => void; -export const __externref_table_dealloc: (a: number) => void; -export const __wbindgen_start: () => void; +export function __wbg_backupdecryptionkey_free(a: number): void; +export function __wbg_megolmv1backupkey_free(a: number): void; +export function megolmv1backupkey_publicKeyBase64(a: number): number; +export function megolmv1backupkey_algorithm(a: number): number; +export function backupdecryptionkey_createRandomKey(): number; +export function backupdecryptionkey_fromBase64(a: number, b: number, c: number): void; +export function backupdecryptionkey_toBase64(a: number): number; +export function backupdecryptionkey_megolmV1PublicKey(a: number): number; +export function backupdecryptionkey_decryptV1(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number): void; +export function __wbg_roomkeycounts_free(a: number): void; +export function __wbg_get_roomkeycounts_total(a: number): number; +export function __wbg_set_roomkeycounts_total(a: number, b: number): void; +export function __wbg_get_roomkeycounts_backedUp(a: number): number; +export function __wbg_set_roomkeycounts_backedUp(a: number, b: number): void; +export function __wbg_backupkeys_free(a: number): void; +export function __wbg_get_backupkeys_decryptionKey(a: number): number; +export function __wbg_set_backupkeys_decryptionKey(a: number, b: number): void; +export function __wbg_get_backupkeys_backupVersion(a: number, b: number): void; +export function __wbg_set_backupkeys_backupVersion(a: number, b: number, c: number): void; +export function backupkeys_decryptionKeyBase64(a: number): number; +export function userid_new(a: number, b: number, c: number): void; +export function userid_localpart(a: number, b: number): void; +export function userid_serverName(a: number): number; +export function userid_isHistorical(a: number): number; +export function userid_toString(a: number, b: number): void; +export function __wbg_deviceid_free(a: number): void; +export function deviceid_new(a: number, b: number): number; +export function deviceid_toString(a: number, b: number): void; +export function __wbg_devicekeyid_free(a: number): void; +export function devicekeyid_new(a: number, b: number, c: number): void; +export function devicekeyid_algorithm(a: number): number; +export function devicekeyid_deviceId(a: number): number; +export function devicekeyid_toString(a: number, b: number): void; +export function __wbg_devicekeyalgorithm_free(a: number): void; +export function devicekeyalgorithm_name(a: number): number; +export function devicekeyalgorithm_toString(a: number, b: number): void; +export function roomid_new(a: number, b: number, c: number): void; +export function roomid_localpart(a: number, b: number): void; +export function roomid_serverName(a: number): number; +export function roomid_toString(a: number, b: number): void; +export function servername_new(a: number, b: number, c: number): void; +export function servername_host(a: number, b: number): void; +export function servername_port(a: number): number; +export function servername_isIpLiteral(a: number): number; +export function eventid_new(a: number, b: number, c: number): void; +export function eventid_localpart(a: number, b: number): void; +export function eventid_serverName(a: number): number; +export function eventid_toString(a: number, b: number): void; +export function __wbg_olmmachine_free(a: number): void; +export function olmmachine_new(a: number): void; +export function olmmachine_initialize(a: number, b: number, c: number, d: number, e: number, f: number): number; +export function olmmachine_userId(a: number): number; +export function olmmachine_deviceId(a: number): number; +export function olmmachine_identityKeys(a: number): number; +export function olmmachine_displayName(a: number): number; +export function olmmachine_trackedUsers(a: number, b: number): void; +export function olmmachine_updateTrackedUsers(a: number, b: number, c: number): void; +export function olmmachine_receiveSyncChanges(a: number, b: number, c: number, d: number, e: number, f: number, g: number): void; +export function olmmachine_outgoingRequests(a: number): number; +export function olmmachine_markRequestAsSent(a: number, b: number, c: number, d: number, e: number, f: number, g: number): void; +export function olmmachine_encryptRoomEvent(a: number, b: number, c: number, d: number, e: number, f: number, g: number): void; +export function olmmachine_decryptRoomEvent(a: number, b: number, c: number, d: number, e: number): void; +export function olmmachine_getRoomEventEncryptionInfo(a: number, b: number, c: number, d: number, e: number): void; +export function olmmachine_crossSigningStatus(a: number): number; +export function olmmachine_exportCrossSigningKeys(a: number): number; +export function olmmachine_importCrossSigningKeys(a: number, b: number, c: number, d: number, e: number, f: number, g: number): number; +export function olmmachine_bootstrapCrossSigning(a: number, b: number): number; +export function olmmachine_getIdentity(a: number, b: number): number; +export function olmmachine_sign(a: number, b: number, c: number): number; +export function olmmachine_invalidateGroupSession(a: number, b: number): number; +export function olmmachine_shareRoomKey(a: number, b: number, c: number, d: number, e: number): void; +export function olmmachine_queryKeysForUsers(a: number, b: number, c: number): void; +export function olmmachine_getMissingSessions(a: number, b: number, c: number): void; +export function olmmachine_getUserDevices(a: number, b: number): number; +export function olmmachine_getDevice(a: number, b: number, c: number): number; +export function olmmachine_getVerification(a: number, b: number, c: number, d: number, e: number): void; +export function olmmachine_getVerificationRequest(a: number, b: number, c: number, d: number): number; +export function olmmachine_getVerificationRequests(a: number, b: number): number; +export function olmmachine_receiveVerificationEvent(a: number, b: number, c: number, d: number, e: number): void; +export function olmmachine_exportRoomKeys(a: number, b: number): number; +export function olmmachine_importRoomKeys(a: number, b: number, c: number, d: number, e: number): void; +export function olmmachine_saveBackupDecryptionKey(a: number, b: number, c: number, d: number): number; +export function olmmachine_getBackupKeys(a: number): number; +export function olmmachine_verifyBackup(a: number, b: number, c: number): void; +export function olmmachine_enableBackupV1(a: number, b: number, c: number, d: number, e: number, f: number): void; +export function olmmachine_isBackupEnabled(a: number): number; +export function olmmachine_disableBackup(a: number): number; +export function olmmachine_backupRoomKeys(a: number): number; +export function olmmachine_roomKeyCounts(a: number): number; +export function olmmachine_encryptExportedRoomKeys(a: number, b: number, c: number, d: number, e: number, f: number): void; +export function olmmachine_decryptExportedRoomKeys(a: number, b: number, c: number, d: number, e: number): void; +export function olmmachine_registerRoomKeyUpdatedCallback(a: number, b: number): number; +export function olmmachine_registerUserIdentityUpdatedCallback(a: number, b: number): number; +export function olmmachine_close(a: number): void; +export function __wbg_crosssigningstatus_free(a: number): void; +export function crosssigningstatus_hasMaster(a: number): number; +export function crosssigningstatus_hasSelfSigning(a: number): number; +export function crosssigningstatus_hasUserSigning(a: number): number; +export function __wbg_inboundgroupsession_free(a: number): void; +export function inboundgroupsession_roomId(a: number): number; +export function inboundgroupsession_senderKey(a: number): number; +export function inboundgroupsession_sessionId(a: number, b: number): void; +export function inboundgroupsession_hasBeenImported(a: number): number; +export function __wbg_crosssigningkeyexport_free(a: number): void; +export function crosssigningkeyexport_masterKey(a: number, b: number): void; +export function crosssigningkeyexport_self_signing_key(a: number, b: number): void; +export function crosssigningkeyexport_userSigningKey(a: number, b: number): void; +export function __wbg_roomkeyinfo_free(a: number): void; +export function roomkeyinfo_algorithm(a: number): number; +export function roomkeyinfo_roomId(a: number): number; +export function roomkeyinfo_senderKey(a: number): number; +export function roomkeyinfo_sessionId(a: number, b: number): void; +export function __wbg_signatures_free(a: number): void; +export function signatures_new(): number; +export function signatures_addSignature(a: number, b: number, c: number, d: number): number; +export function signatures_getSignature(a: number, b: number, c: number): number; +export function signatures_get(a: number, b: number): number; +export function signatures_clear(a: number): void; +export function signatures_isEmpty(a: number): number; +export function signatures_count(a: number): number; +export function signatures_asJSON(a: number, b: number): void; +export function __wbg_signature_free(a: number): void; +export function signature_ed25519(a: number): number; +export function signature_toBase64(a: number, b: number): void; +export function __wbg_maybesignature_free(a: number): void; +export function maybesignature_isValid(a: number): number; +export function maybesignature_isInvalid(a: number): number; +export function maybesignature_signature(a: number): number; +export function maybesignature_invalidSignatureSource(a: number, b: number): void; +export function __wbg_signatureverification_free(a: number): void; +export function signatureverification_deviceState(a: number): number; +export function signatureverification_userState(a: number): number; +export function signatureverification_trusted(a: number): number; +export function __wbg_sas_free(a: number): void; +export function sas_userId(a: number): number; +export function sas_deviceId(a: number): number; +export function sas_otherUserId(a: number): number; +export function sas_otherDeviceId(a: number): number; +export function sas_flowId(a: number, b: number): void; +export function sas_roomId(a: number): number; +export function sas_supportsEmoji(a: number): number; +export function sas_startedFromRequest(a: number): number; +export function sas_isSelfVerification(a: number): number; +export function sas_haveWeConfirmed(a: number): number; +export function sas_hasBeenAccepted(a: number): number; +export function sas_cancelInfo(a: number): number; +export function sas_weStarted(a: number): number; +export function sas_accept(a: number, b: number): void; +export function sas_confirm(a: number): number; +export function sas_cancel(a: number, b: number): void; +export function sas_cancelWithCode(a: number, b: number, c: number): void; +export function sas_timedOut(a: number): number; +export function sas_canBePresented(a: number): number; +export function sas_isDone(a: number): number; +export function sas_isCancelled(a: number): number; +export function sas_emoji(a: number): number; +export function sas_emojiIndex(a: number): number; +export function sas_decimals(a: number): number; +export function sas_registerChangesCallback(a: number, b: number): void; +export function __wbg_qr_free(a: number): void; +export function qr_state(a: number): number; +export function qr_hasBeenScanned(a: number): number; +export function qr_hasBeenConfirmed(a: number): number; +export function qr_userId(a: number): number; +export function qr_otherUserId(a: number): number; +export function qr_otherDeviceId(a: number): number; +export function qr_weStarted(a: number): number; +export function qr_cancelInfo(a: number): number; +export function qr_isDone(a: number): number; +export function qr_isCancelled(a: number): number; +export function qr_isSelfVerification(a: number): number; +export function qr_reciprocated(a: number): number; +export function qr_flowId(a: number, b: number): void; +export function qr_roomId(a: number): number; +export function qr_toQrCode(a: number, b: number): void; +export function qr_toBytes(a: number, b: number): void; +export function qr_reciprocate(a: number, b: number): void; +export function qr_confirmScanning(a: number, b: number): void; +export function qr_cancel(a: number, b: number): void; +export function qr_cancelWithCode(a: number, b: number, c: number): void; +export function qr_registerChangesCallback(a: number, b: number): void; +export function __wbg_cancelinfo_free(a: number): void; +export function cancelinfo_reason(a: number): number; +export function cancelinfo_cancelCode(a: number): number; +export function cancelinfo_cancelledbyUs(a: number): number; +export function __wbg_emoji_free(a: number): void; +export function emoji_symbol(a: number): number; +export function emoji_description(a: number): number; +export function __wbg_qrcode_free(a: number): void; +export function qrcode_renderIntoBuffer(a: number, b: number): void; +export function __wbg_qrcodescan_free(a: number): void; +export function qrcodescan_fromBytes(a: number, b: number): void; +export function __wbg_verificationrequest_free(a: number): void; +export function verificationrequest_request(a: number, b: number, c: number, d: number, e: number): void; +export function verificationrequest_ownUserId(a: number): number; +export function verificationrequest_otherUserId(a: number): number; +export function verificationrequest_otherDeviceId(a: number): number; +export function verificationrequest_roomId(a: number): number; +export function verificationrequest_cancelInfo(a: number): number; +export function verificationrequest_isPassive(a: number): number; +export function verificationrequest_isReady(a: number): number; +export function verificationrequest_timedOut(a: number): number; +export function verificationrequest_timeRemainingMillis(a: number): number; +export function verificationrequest_theirSupportedMethods(a: number, b: number): void; +export function verificationrequest_ourSupportedMethods(a: number, b: number): void; +export function verificationrequest_flowId(a: number, b: number): void; +export function verificationrequest_isSelfVerification(a: number): number; +export function verificationrequest_weStarted(a: number): number; +export function verificationrequest_isDone(a: number): number; +export function verificationrequest_phase(a: number): number; +export function verificationrequest_getVerification(a: number): number; +export function verificationrequest_registerChangesCallback(a: number, b: number): void; +export function verificationrequest_isCancelled(a: number): number; +export function verificationrequest_acceptWithMethods(a: number, b: number, c: number): void; +export function verificationrequest_accept(a: number, b: number): void; +export function verificationrequest_cancel(a: number, b: number): void; +export function verificationrequest_startSas(a: number): number; +export function verificationrequest_generateQrCode(a: number): number; +export function verificationrequest_scanQrCode(a: number, b: number): number; +export function __wbg_userid_free(a: number): void; +export function __wbg_roomid_free(a: number): void; +export function __wbg_eventid_free(a: number): void; +export function __wbg_servername_free(a: number): void; +export function __wbg_megolmdecryptionerror_free(a: number): void; +export function __wbg_get_megolmdecryptionerror_code(a: number): number; +export function __wbg_get_megolmdecryptionerror_description(a: number): number; +export function __wbg_get_megolmdecryptionerror_maybe_withheld(a: number): number; +export function __wbg_decryptedroomevent_free(a: number): void; +export function __wbg_get_decryptedroomevent_event(a: number): number; +export function decryptedroomevent_sender(a: number): number; +export function decryptedroomevent_senderDevice(a: number): number; +export function decryptedroomevent_senderCurve25519Key(a: number): number; +export function decryptedroomevent_senderClaimedEd25519Key(a: number): number; +export function decryptedroomevent_forwardingCurve25519KeyChain(a: number): number; +export function decryptedroomevent_shieldState(a: number, b: number): number; +export function __wbg_encryptioninfo_free(a: number): void; +export function encryptioninfo_sender(a: number): number; +export function encryptioninfo_senderDevice(a: number): number; +export function encryptioninfo_senderCurve25519Key(a: number): number; +export function encryptioninfo_senderClaimedEd25519Key(a: number): number; +export function encryptioninfo_shieldState(a: number, b: number): number; +export function __wbg_devicelists_free(a: number): void; +export function devicelists_new(a: number, b: number, c: number): void; +export function devicelists_isEmpty(a: number): number; +export function devicelists_changed(a: number): number; +export function devicelists_left(a: number): number; +export function __wbg_tracing_free(a: number): void; +export function tracing_isAvailable(): number; +export function tracing_new(a: number, b: number): void; +export function tracing_set_minLevel(a: number, b: number): void; +export function tracing_turnOn(a: number): void; +export function tracing_turnOff(a: number): void; +export function __wbg_ed25519publickey_free(a: number): void; +export function ed25519publickey_length(a: number): number; +export function ed25519publickey_toBase64(a: number, b: number): void; +export function __wbg_ed25519signature_free(a: number): void; +export function ed25519signature_new(a: number, b: number, c: number): void; +export function ed25519signature_toBase64(a: number, b: number): void; +export function __wbg_curve25519publickey_free(a: number): void; +export function curve25519publickey_length(a: number): number; +export function curve25519publickey_toBase64(a: number, b: number): void; +export function __wbg_identitykeys_free(a: number): void; +export function __wbg_get_identitykeys_ed25519(a: number): number; +export function __wbg_set_identitykeys_ed25519(a: number, b: number): void; +export function __wbg_get_identitykeys_curve25519(a: number): number; +export function __wbg_set_identitykeys_curve25519(a: number, b: number): void; +export function __wbg_devicekey_free(a: number): void; +export function devicekey_name(a: number): number; +export function devicekey_curve25519(a: number): number; +export function devicekey_ed25519(a: number): number; +export function devicekey_unknown(a: number, b: number): void; +export function devicekey_toBase64(a: number, b: number): void; +export function __wbg_attachment_free(a: number): void; +export function attachment_encrypt(a: number, b: number, c: number): void; +export function attachment_decrypt(a: number, b: number): void; +export function __wbg_encryptedattachment_free(a: number): void; +export function encryptedattachment_new(a: number, b: number, c: number, d: number, e: number): void; +export function encryptedattachment_encryptedData(a: number, b: number): void; +export function encryptedattachment_mediaEncryptionInfo(a: number, b: number): void; +export function encryptedattachment_hasMediaEncryptionInfoBeenConsumed(a: number): number; +export function __wbg_device_free(a: number): void; +export function device_requestVerification(a: number, b: number, c: number): void; +export function device_isVerified(a: number): number; +export function device_isCrossSigningTrusted(a: number): number; +export function device_isCrossSignedByOwner(a: number): number; +export function device_setLocalTrust(a: number, b: number): number; +export function device_userId(a: number): number; +export function device_deviceId(a: number): number; +export function device_displayName(a: number, b: number): void; +export function device_getKey(a: number, b: number, c: number): void; +export function device_curve25519Key(a: number): number; +export function device_ed25519Key(a: number): number; +export function device_keys(a: number): number; +export function device_algorithms(a: number): number; +export function device_signatures(a: number): number; +export function device_localTrustState(a: number): number; +export function device_isLocallyTrusted(a: number): number; +export function device_isBlacklisted(a: number): number; +export function device_isDeleted(a: number): number; +export function device_firstTimeSeen(a: number): number; +export function device_verify(a: number): number; +export function __wbg_userdevices_free(a: number): void; +export function userdevices_get(a: number, b: number): number; +export function userdevices_isAnyVerified(a: number): number; +export function userdevices_keys(a: number): number; +export function userdevices_devices(a: number): number; +export function __wbg_ownuseridentity_free(a: number): void; +export function ownuseridentity_isVerified(a: number): number; +export function ownuseridentity_verify(a: number): number; +export function ownuseridentity_requestVerification(a: number, b: number, c: number): void; +export function ownuseridentity_trustsOurOwnDevice(a: number): number; +export function ownuseridentity_masterKey(a: number, b: number): void; +export function ownuseridentity_selfSigningKey(a: number, b: number): void; +export function ownuseridentity_userSigningKey(a: number, b: number): void; +export function __wbg_useridentity_free(a: number): void; +export function useridentity_isVerified(a: number): number; +export function useridentity_verify(a: number): number; +export function useridentity_requestVerification(a: number, b: number, c: number, d: number, e: number): void; +export function useridentity_verificationRequestContent(a: number, b: number, c: number): void; +export function useridentity_masterKey(a: number, b: number): void; +export function useridentity_selfSigningKey(a: number, b: number): void; +export function __wbg_keysuploadrequest_free(a: number): void; +export function __wbg_get_keysuploadrequest_id(a: number): number; +export function __wbg_get_keysuploadrequest_body(a: number): number; +export function keysuploadrequest_type(a: number): number; +export function __wbg_keysqueryrequest_free(a: number): void; +export function __wbg_get_keysqueryrequest_id(a: number): number; +export function __wbg_get_keysqueryrequest_body(a: number): number; +export function keysqueryrequest_type(a: number): number; +export function __wbg_keysclaimrequest_free(a: number): void; +export function __wbg_get_keysclaimrequest_id(a: number): number; +export function __wbg_get_keysclaimrequest_body(a: number): number; +export function keysclaimrequest_new(a: number, b: number): number; +export function keysclaimrequest_type(a: number): number; +export function __wbg_todevicerequest_free(a: number): void; +export function __wbg_get_todevicerequest_id(a: number): number; +export function __wbg_get_todevicerequest_event_type(a: number): number; +export function __wbg_get_todevicerequest_txn_id(a: number): number; +export function __wbg_get_todevicerequest_body(a: number): number; +export function todevicerequest_new(a: number, b: number, c: number, d: number): number; +export function todevicerequest_type(a: number): number; +export function __wbg_signatureuploadrequest_free(a: number): void; +export function __wbg_get_signatureuploadrequest_id(a: number): number; +export function __wbg_get_signatureuploadrequest_body(a: number): number; +export function signatureuploadrequest_type(a: number): number; +export function __wbg_roommessagerequest_free(a: number): void; +export function __wbg_get_roommessagerequest_id(a: number): number; +export function __wbg_get_roommessagerequest_room_id(a: number): number; +export function __wbg_get_roommessagerequest_txn_id(a: number): number; +export function __wbg_get_roommessagerequest_event_type(a: number): number; +export function __wbg_get_roommessagerequest_body(a: number): number; +export function roommessagerequest_new(a: number, b: number, c: number, d: number, e: number): number; +export function roommessagerequest_type(a: number): number; +export function __wbg_keysbackuprequest_free(a: number): void; +export function __wbg_get_keysbackuprequest_id(a: number): number; +export function __wbg_get_keysbackuprequest_body(a: number): number; +export function __wbg_get_keysbackuprequest_version(a: number): number; +export function keysbackuprequest_new(a: number, b: number, c: number): number; +export function keysbackuprequest_type(a: number): number; +export function __wbg_signingkeysuploadrequest_free(a: number): void; +export function __wbg_get_signingkeysuploadrequest_id(a: number): number; +export function __wbg_get_signingkeysuploadrequest_body(a: number): number; +export function signingkeysuploadrequest_type(a: number): number; +export function __wbg_versions_free(a: number): void; +export function __wbg_get_versions_vodozemac(a: number): number; +export function __wbg_get_versions_matrix_sdk_crypto(a: number): number; +export function getVersions(): number; +export function start(): void; +export function keysuploadrequest_new(a: number, b: number): number; +export function keysqueryrequest_new(a: number, b: number): number; +export function signatureuploadrequest_new(a: number, b: number): number; +export function signingkeysuploadrequest_new(a: number, b: number): number; +export function __wbg_encryptionsettings_free(a: number): void; +export function __wbg_get_encryptionsettings_algorithm(a: number): number; +export function __wbg_set_encryptionsettings_algorithm(a: number, b: number): void; +export function __wbg_get_encryptionsettings_rotationPeriod(a: number): number; +export function __wbg_set_encryptionsettings_rotationPeriod(a: number, b: number): void; +export function __wbg_get_encryptionsettings_rotationPeriodMessages(a: number): number; +export function __wbg_set_encryptionsettings_rotationPeriodMessages(a: number, b: number): void; +export function __wbg_get_encryptionsettings_historyVisibility(a: number): number; +export function __wbg_set_encryptionsettings_historyVisibility(a: number, b: number): void; +export function __wbg_get_encryptionsettings_onlyAllowTrustedDevices(a: number): number; +export function __wbg_set_encryptionsettings_onlyAllowTrustedDevices(a: number, b: number): void; +export function encryptionsettings_new(): number; +export function __wbg_shieldstate_free(a: number): void; +export function __wbg_get_shieldstate_color(a: number): number; +export function __wbg_set_shieldstate_color(a: number, b: number): void; +export function shieldstate_message(a: number, b: number): void; +export function __wbindgen_malloc(a: number): number; +export function __wbindgen_realloc(a: number, b: number, c: number): number; +export const __wbindgen_export_2: WebAssembly.Table; +export function __wbindgen_add_to_stack_pointer(a: number): number; +export function wasm_bindgen__convert__closures__invoke1_mut__h474cf18ac0185d15(a: number, b: number, c: number, d: number): void; +export function _dyn_core__ops__function__Fn__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h189b63f7e686b922(a: number, b: number, c: number): void; +export function _dyn_core__ops__function__Fn_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__he114b8a0bf164eec(a: number, b: number): void; +export function _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h12b54e1b31ffecd6(a: number, b: number, c: number): void; +export function _dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hfaf4f1753631bb25(a: number, b: number): void; +export function __wbindgen_free(a: number, b: number): void; +export function __wbindgen_exn_store(a: number): void; +export function wasm_bindgen__convert__closures__invoke2_mut__h55cae04c68820562(a: number, b: number, c: number, d: number): void; +export function __wbindgen_start(): void; diff --git a/node_modules/base-x/README.md b/node_modules/base-x/README.md index 537f1b9..10faf66 100644 --- a/node_modules/base-x/README.md +++ b/node_modules/base-x/README.md @@ -16,8 +16,7 @@ Base58 ``` javascript var BASE58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' -import basex from 'base-x' -var bs58 = basex(BASE58) +var bs58 = require('base-x')(BASE58) var decoded = bs58.decode('5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr') diff --git a/node_modules/base-x/package.json b/node_modules/base-x/package.json index 2eba6a4..6da5e65 100644 --- a/node_modules/base-x/package.json +++ b/node_modules/base-x/package.json @@ -1,8 +1,7 @@ { "name": "base-x", - "version": "5.0.1", + "version": "4.0.1", "description": "Fast base encoding / decoding of any given alphabet", - "type": "module", "keywords": [ "base-x", "base58", @@ -24,35 +23,24 @@ "files": [ "src" ], - "main": "src/cjs/index.cjs", - "module": "src/esm/index.js", - "types": "src/cjs/index.d.ts", - "exports": { - ".": { - "require": "./src/cjs/index.cjs", - "import": "./src/esm/index.js", - "types": "./src/cjs/index.d.ts" - } - }, + "main": "src/index.js", + "types": "src/index.d.ts", "repository": { "type": "git", "url": "https://github.com/cryptocoinjs/base-x.git" }, "scripts": { - "build": "npm run clean && tsc -p ./tsconfig.json && tsc -p ./tsconfig.cjs.json; npm run standard -- --fix", - "clean": "rimraf src", - "postbuild": "find src/cjs -type f -name \"*.js\" -exec bash -c 'mv \"$0\" \"${0%.js}.cjs\"' {} \\;", + "build": "tsc -p ./tsconfig.json ; standard --fix", "gitdiff": "npm run build && git diff --exit-code", "prepublish": "npm run gitdiff", - "standard": "standard --ignore test", + "standard": "standard", "test": "npm run unit && npm run standard", "unit": "tape test/*.js" }, "devDependencies": { "@types/node": "12.0.10", - "rimraf": "^3.0.2", - "standard": "^17.1.0", - "tape": "^5.3.0", - "typescript": "^5.4.5" + "standard": "^10.0.3", + "tape": "^4.5.1", + "typescript": "3.5.2" } } diff --git a/node_modules/base-x/src/cjs/index.cjs b/node_modules/base-x/src/cjs/index.cjs deleted file mode 100644 index 45c7330..0000000 --- a/node_modules/base-x/src/cjs/index.cjs +++ /dev/null @@ -1,126 +0,0 @@ -'use strict' -// base-x encoding / decoding -// Copyright (c) 2018 base-x contributors -// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp) -// Distributed under the MIT software license, see the accompanying -// file LICENSE or http://www.opensource.org/licenses/mit-license.php. -Object.defineProperty(exports, '__esModule', { value: true }) -function base (ALPHABET) { - if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') } - const BASE_MAP = new Uint8Array(256) - for (let j = 0; j < BASE_MAP.length; j++) { - BASE_MAP[j] = 255 - } - for (let i = 0; i < ALPHABET.length; i++) { - const x = ALPHABET.charAt(i) - const xc = x.charCodeAt(0) - if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') } - BASE_MAP[xc] = i - } - const BASE = ALPHABET.length - const LEADER = ALPHABET.charAt(0) - const FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up - const iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up - function encode (source) { - // eslint-disable-next-line no-empty - if (source instanceof Uint8Array) { } else if (ArrayBuffer.isView(source)) { - source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength) - } else if (Array.isArray(source)) { - source = Uint8Array.from(source) - } - if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') } - if (source.length === 0) { return '' } - // Skip & count leading zeroes. - let zeroes = 0 - let length = 0 - let pbegin = 0 - const pend = source.length - while (pbegin !== pend && source[pbegin] === 0) { - pbegin++ - zeroes++ - } - // Allocate enough space in big-endian base58 representation. - const size = ((pend - pbegin) * iFACTOR + 1) >>> 0 - const b58 = new Uint8Array(size) - // Process the bytes. - while (pbegin !== pend) { - let carry = source[pbegin] - // Apply "b58 = b58 * 256 + ch". - let i = 0 - for (let it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) { - carry += (256 * b58[it1]) >>> 0 - b58[it1] = (carry % BASE) >>> 0 - carry = (carry / BASE) >>> 0 - } - if (carry !== 0) { throw new Error('Non-zero carry') } - length = i - pbegin++ - } - // Skip leading zeroes in base58 result. - let it2 = size - length - while (it2 !== size && b58[it2] === 0) { - it2++ - } - // Translate the result into a string. - let str = LEADER.repeat(zeroes) - for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) } - return str - } - function decodeUnsafe (source) { - if (typeof source !== 'string') { throw new TypeError('Expected String') } - if (source.length === 0) { return new Uint8Array() } - let psz = 0 - // Skip and count leading '1's. - let zeroes = 0 - let length = 0 - while (source[psz] === LEADER) { - zeroes++ - psz++ - } - // Allocate enough space in big-endian base256 representation. - const size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up. - const b256 = new Uint8Array(size) - // Process the characters. - while (psz < source.length) { - // Find code of next character - const charCode = source.charCodeAt(psz) - // Base map can not be indexed using char code - if (charCode > 255) { return } - // Decode character - let carry = BASE_MAP[charCode] - // Invalid character - if (carry === 255) { return } - let i = 0 - for (let it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) { - carry += (BASE * b256[it3]) >>> 0 - b256[it3] = (carry % 256) >>> 0 - carry = (carry / 256) >>> 0 - } - if (carry !== 0) { throw new Error('Non-zero carry') } - length = i - psz++ - } - // Skip leading zeroes in b256. - let it4 = size - length - while (it4 !== size && b256[it4] === 0) { - it4++ - } - const vch = new Uint8Array(zeroes + (size - it4)) - let j = zeroes - while (it4 !== size) { - vch[j++] = b256[it4++] - } - return vch - } - function decode (string) { - const buffer = decodeUnsafe(string) - if (buffer) { return buffer } - throw new Error('Non-base' + BASE + ' character') - } - return { - encode, - decodeUnsafe, - decode - } -} -exports.default = base diff --git a/node_modules/base-x/src/cjs/index.d.ts b/node_modules/base-x/src/cjs/index.d.ts deleted file mode 100644 index 4fd9617..0000000 --- a/node_modules/base-x/src/cjs/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare function base(ALPHABET: string): base.BaseConverter; -export default base; -declare namespace base { - interface BaseConverter { - encode(buffer: Uint8Array | number[]): string; - decodeUnsafe(string: string): Uint8Array | undefined; - decode(string: string): Uint8Array; - } -} diff --git a/node_modules/base-x/src/esm/index.js b/node_modules/base-x/src/esm/index.js deleted file mode 100644 index 1593e17..0000000 --- a/node_modules/base-x/src/esm/index.js +++ /dev/null @@ -1,124 +0,0 @@ -// base-x encoding / decoding -// Copyright (c) 2018 base-x contributors -// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp) -// Distributed under the MIT software license, see the accompanying -// file LICENSE or http://www.opensource.org/licenses/mit-license.php. -function base (ALPHABET) { - if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') } - const BASE_MAP = new Uint8Array(256) - for (let j = 0; j < BASE_MAP.length; j++) { - BASE_MAP[j] = 255 - } - for (let i = 0; i < ALPHABET.length; i++) { - const x = ALPHABET.charAt(i) - const xc = x.charCodeAt(0) - if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') } - BASE_MAP[xc] = i - } - const BASE = ALPHABET.length - const LEADER = ALPHABET.charAt(0) - const FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up - const iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up - function encode (source) { - // eslint-disable-next-line no-empty - if (source instanceof Uint8Array) { } else if (ArrayBuffer.isView(source)) { - source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength) - } else if (Array.isArray(source)) { - source = Uint8Array.from(source) - } - if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') } - if (source.length === 0) { return '' } - // Skip & count leading zeroes. - let zeroes = 0 - let length = 0 - let pbegin = 0 - const pend = source.length - while (pbegin !== pend && source[pbegin] === 0) { - pbegin++ - zeroes++ - } - // Allocate enough space in big-endian base58 representation. - const size = ((pend - pbegin) * iFACTOR + 1) >>> 0 - const b58 = new Uint8Array(size) - // Process the bytes. - while (pbegin !== pend) { - let carry = source[pbegin] - // Apply "b58 = b58 * 256 + ch". - let i = 0 - for (let it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) { - carry += (256 * b58[it1]) >>> 0 - b58[it1] = (carry % BASE) >>> 0 - carry = (carry / BASE) >>> 0 - } - if (carry !== 0) { throw new Error('Non-zero carry') } - length = i - pbegin++ - } - // Skip leading zeroes in base58 result. - let it2 = size - length - while (it2 !== size && b58[it2] === 0) { - it2++ - } - // Translate the result into a string. - let str = LEADER.repeat(zeroes) - for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) } - return str - } - function decodeUnsafe (source) { - if (typeof source !== 'string') { throw new TypeError('Expected String') } - if (source.length === 0) { return new Uint8Array() } - let psz = 0 - // Skip and count leading '1's. - let zeroes = 0 - let length = 0 - while (source[psz] === LEADER) { - zeroes++ - psz++ - } - // Allocate enough space in big-endian base256 representation. - const size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up. - const b256 = new Uint8Array(size) - // Process the characters. - while (psz < source.length) { - // Find code of next character - const charCode = source.charCodeAt(psz) - // Base map can not be indexed using char code - if (charCode > 255) { return } - // Decode character - let carry = BASE_MAP[charCode] - // Invalid character - if (carry === 255) { return } - let i = 0 - for (let it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) { - carry += (BASE * b256[it3]) >>> 0 - b256[it3] = (carry % 256) >>> 0 - carry = (carry / 256) >>> 0 - } - if (carry !== 0) { throw new Error('Non-zero carry') } - length = i - psz++ - } - // Skip leading zeroes in b256. - let it4 = size - length - while (it4 !== size && b256[it4] === 0) { - it4++ - } - const vch = new Uint8Array(zeroes + (size - it4)) - let j = zeroes - while (it4 !== size) { - vch[j++] = b256[it4++] - } - return vch - } - function decode (string) { - const buffer = decodeUnsafe(string) - if (buffer) { return buffer } - throw new Error('Non-base' + BASE + ' character') - } - return { - encode, - decodeUnsafe, - decode - } -} -export default base diff --git a/node_modules/bs58/README.md b/node_modules/bs58/README.md index 76a4ff0..ca0aa19 100644 --- a/node_modules/bs58/README.md +++ b/node_modules/bs58/README.md @@ -24,7 +24,7 @@ API **example**: ```js -import bs58 from 'bs58' +const bs58 = require('bs58') const bytes = Uint8Array.from([ 0, 60, 23, 110, 101, 155, 234, @@ -45,7 +45,7 @@ console.log(address) **example**: ```js -import bs58 from 'bs58' +const bs58 = require('bs58') const address = '16UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS' const bytes = bs58.decode(address) @@ -65,7 +65,7 @@ npm install -g browserify then run: ```bash -browserify node_modules/bs58/cjs/index.cjs -o bs58.bundle.js --standalone bs58 +browserify node_modules/bs58/index.js -o bs58.bundle.js --standalone bs58 ``` Hack / Test diff --git a/node_modules/bs58/package.json b/node_modules/bs58/package.json index bdc7d2a..6e53086 100644 --- a/node_modules/bs58/package.json +++ b/node_modules/bs58/package.json @@ -1,7 +1,6 @@ { "name": "bs58", - "version": "6.0.0", - "type": "module", + "version": "5.0.0", "description": "Base 58 encoding / decoding", "keywords": [ "base58", @@ -16,39 +15,25 @@ ], "license": "MIT", "devDependencies": { - "@types/node": "^20.14.8", - "rimraf": "^5.0.7", - "tape": "^5.3.0", - "ts-standard": "^12.0.2", - "typescript": "^5.5.2" + "standard": "^16.0.4", + "tape": "^4.6.3" }, "repository": { "url": "https://github.com/cryptocoinjs/bs58", "type": "git" }, "files": [ - "src" + "index.js", + "index.d.ts" ], - "main": "src/cjs/index.cjs", - "module": "src/esm/index.js", - "types": "src/cjs/index.d.ts", - "exports": { - ".": { - "import": "./src/esm/index.js", - "require": "./src/cjs/index.cjs", - "types": "./src/cjs/index.d.ts" - } - }, + "main": "index.js", + "types": "index.d.ts", "scripts": { - "build": "npm run clean && tsc -p ./tsconfig.json && tsc -p ./tsconfig.cjs.json", - "clean": "rimraf src", - "gitdiff": "npm run build && git diff --exit-code", - "postbuild": "find src/cjs -type f -name \"*.js\" -exec bash -c 'mv \"$0\" \"${0%.js}.cjs\"' {} \\;", - "standard": "ts-standard --ignore src --ignore test", + "standard": "standard", "test": "npm run standard && npm run unit", "unit": "tape test/index.js" }, "dependencies": { - "base-x": "^5.0.0" + "base-x": "^4.0.0" } } diff --git a/node_modules/bs58/src/cjs/index.cjs b/node_modules/bs58/src/cjs/index.cjs deleted file mode 100644 index 0a5d975..0000000 --- a/node_modules/bs58/src/cjs/index.cjs +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var base_x_1 = __importDefault(require("base-x")); -var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; -exports.default = (0, base_x_1.default)(ALPHABET); diff --git a/node_modules/bs58/src/cjs/index.d.ts b/node_modules/bs58/src/cjs/index.d.ts deleted file mode 100644 index 6aeee88..0000000 --- a/node_modules/bs58/src/cjs/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import basex from 'base-x'; -declare const _default: basex.BaseConverter; -export default _default; diff --git a/node_modules/bs58/src/esm/index.js b/node_modules/bs58/src/esm/index.js deleted file mode 100644 index 84a71b1..0000000 --- a/node_modules/bs58/src/esm/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import basex from 'base-x'; -var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; -export default basex(ALPHABET); diff --git a/node_modules/content-type/README.md b/node_modules/content-type/README.md index ae275e0..c1a922a 100644 --- a/node_modules/content-type/README.md +++ b/node_modules/content-type/README.md @@ -1,57 +1,81 @@ # content-type -[![NPM version][npm-image]][npm-url] -[![NPM downloads][downloads-image]][downloads-url] -[![Build status][build-image]][build-url] -[![Build coverage][coverage-image]][coverage-url] -[![License][license-image]][license-url] +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] -Create and parse HTTP `Content-Type` header. +Create and parse HTTP Content-Type header according to RFC 7231 ## Installation ```sh -npm install content-type +$ npm install content-type ``` ## API ```js -const contentType = require("content-type"); +var contentType = require('content-type') ``` -### contentType.parse(string, options?) +### contentType.parse(string) ```js -const obj = contentType.parse("image/svg+xml; charset=utf-8"); +var obj = contentType.parse('image/svg+xml; charset=utf-8') ``` -Parse a `Content-Type` header. This will return an object with the following properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): +Parse a `Content-Type` header. This will return an object with the following +properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): -- `type`: The media type. Example: `'image/svg+xml'`. -- `parameters`: An object of the parameters in the media type (parameter name is always lower case). Example: `{charset: 'utf-8'}`. + - `type`: The media type (the type and subtype, always lower case). + Example: `'image/svg+xml'` -The parser is lenient and does not error. You should validate `type` and `parameters` before trusting them. + - `parameters`: An object of the parameters in the media type (name of parameter + always lower case). Example: `{charset: 'utf-8'}` -#### Options +Throws a `TypeError` if the string is missing or invalid. -- `parameters` (default: `true`): Set to `false` to skip parameters. -- `comma` (default: `false`): Set to `true` to stop on a comma. This can be used to parse the media range in an `Accept` header. -- `start` (default: `0`): Set index to start parsing from. +### contentType.parse(req) + +```js +var obj = contentType.parse(req) +``` + +Parse the `Content-Type` header from the given `req`. Short-cut for +`contentType.parse(req.headers['content-type'])`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. + +### contentType.parse(res) + +```js +var obj = contentType.parse(res) +``` + +Parse the `Content-Type` header set on the given `res`. Short-cut for +`contentType.parse(res.getHeader('content-type'))`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. ### contentType.format(obj) ```js -const str = contentType.format({ - type: "image/svg+xml", - parameters: { charset: "utf-8" }, -}); +var str = contentType.format({ + type: 'image/svg+xml', + parameters: { charset: 'utf-8' } +}) ``` -Format an object into a `Content-Type` header. This will return a string of the content type for the given object with the following properties (examples are shown that produce the string `'image/svg+xml; charset=utf-8'`): +Format an object into a `Content-Type` header. This will return a string of the +content type for the given object with the following properties (examples are +shown that produce the string `'image/svg+xml; charset=utf-8'`): -- `type`: The media type. Example: `'image/svg+xml'`. -- `parameters`: An optional object of the parameters in the media type. Example: `{charset: 'utf-8'}`. + - `type`: The media type (will be lower-cased). Example: `'image/svg+xml'` + + - `parameters`: An object of the parameters in the media type (name of the + parameter will be lower-cased). Example: `{charset: 'utf-8'}` Throws a `TypeError` if the object contains an invalid type or parameter names. @@ -59,13 +83,12 @@ Throws a `TypeError` if the object contains an invalid type or parameter names. [MIT](LICENSE) -[npm-image]: https://img.shields.io/npm/v/content-type +[ci-image]: https://badgen.net/github/checks/jshttp/content-type/master?label=ci +[ci-url]: https://github.com/jshttp/content-type/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/content-type/master +[coveralls-url]: https://coveralls.io/r/jshttp/content-type?branch=master +[node-image]: https://badgen.net/npm/node/content-type +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/content-type [npm-url]: https://npmjs.org/package/content-type -[downloads-image]: https://img.shields.io/npm/dm/content-type -[downloads-url]: https://npmjs.org/package/content-type -[build-image]: https://img.shields.io/github/actions/workflow/status/jshttp/content-type/ci.yml?branch=master -[build-url]: https://github.com/jshttp/content-type/actions/workflows/ci.yml?query=branch%3Amaster -[coverage-image]: https://img.shields.io/codecov/c/gh/jshttp/content-type -[coverage-url]: https://codecov.io/gh/jshttp/content-type -[license-image]: http://img.shields.io/npm/l/content-type.svg?style=flat -[license-url]: LICENSE +[npm-version-image]: https://badgen.net/npm/v/content-type diff --git a/node_modules/content-type/dist/index.d.ts b/node_modules/content-type/dist/index.d.ts deleted file mode 100644 index c153445..0000000 --- a/node_modules/content-type/dist/index.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -/*! - * content-type - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ -/** - * The content type object contains a type string and optional parameters. - */ -export interface ContentType { - type: string; - index: number; - parameters: Record; -} -/** - * Format an object into a `Content-Type` header. - */ -export declare function format(obj: Partial): string; -/** - * Options for parsing a `Content-Type` header. - */ -export interface ParseOptions { - /** - * Exit early on the first semicolon, returning only the type. - * This is useful for parsing the MIME from `Content-Type` headers. - * - * @default false - */ - parameters?: boolean; - /** - * Exits early on a comma, returning the first value and parameters. - * This is useful for parsing `Accept` headers. - * - * @default false - */ - comma?: boolean; - /** - * The index to start parsing from. - * - * @default 0 - */ - start?: number; -} -/** - * Parse a `Content-Type` header. - */ -export declare function parse(header: string, options?: ParseOptions): ContentType; diff --git a/node_modules/content-type/dist/index.js b/node_modules/content-type/dist/index.js deleted file mode 100644 index 6f3a3e7..0000000 --- a/node_modules/content-type/dist/index.js +++ /dev/null @@ -1,176 +0,0 @@ -"use strict"; -/*! - * content-type - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ -Object.defineProperty(exports, "__esModule", { value: true }); -exports.format = format; -exports.parse = parse; -const TEXT_REGEXP = /^[\u0009\u0020-\u007e\u0080-\u00ff]*$/; -const TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; -/** - * RegExp to match chars that must be quoted-pair in RFC 9110 sec 5.6.4 - */ -const QUOTE_REGEXP = /[\\"]/g; -/** - * RegExp to match type in RFC 9110 sec 8.3.1 - * - * media-type = type "/" subtype - * type = token - * subtype = token - */ -const TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/; -/** - * Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`. - */ -const NullObject = /* @__PURE__ */ (() => { - const C = function () { }; - C.prototype = Object.create(null); - return C; -})(); -/** - * Format an object into a `Content-Type` header. - */ -function format(obj) { - const { type, parameters } = obj; - if (!type || !TYPE_REGEXP.test(type)) { - throw new TypeError(`Invalid type: ${type}`); - } - let result = type; - if (parameters) { - for (const param of Object.keys(parameters)) { - if (!TOKEN_REGEXP.test(param)) { - throw new TypeError(`Invalid parameter name: ${param}`); - } - result += `; ${param}=${qstring(parameters[param])}`; - } - } - return result; -} -/** - * Parse a `Content-Type` header. - */ -function parse(header, options) { - const stopChar = options?.comma === true ? COMMA : 65536; // Sentinel for "no stop char". - const len = header.length; - let index = skipOWS(header, options?.start ?? 0, len); - const valueStart = index; - index = skipValue(header, index, len, stopChar); - const valueEnd = trailingOWS(header, valueStart, index); - const type = header.slice(valueStart, valueEnd).toLowerCase(); - if (options?.parameters === false) { - return { type, index, parameters: new NullObject() }; - } - return parseParameters(header, type, index, len, stopChar); -} -const SP = 32; // " " -const HTAB = 9; // "\t" -const SEMI = 59; // ";" -const EQ = 61; // "=" -const DQUOTE = 34; // '"' -const BSLASH = 92; // "\\" -const COMMA = 44; // "," -/** - * Parses the parameters of a `Content-Type` header starting at the given index. - */ -function parseParameters(header, type, index, len, stopChar) { - const parameters = new NullObject(); - parameter: while (index < len) { - if (header.charCodeAt(index) === stopChar) - break; - index = skipOWS(header, index + 1 /* Skip over ; */, len); - const keyStart = index; - while (index < len) { - const code = header.charCodeAt(index); - if (code === stopChar) - break parameter; - if (code === SEMI) - continue parameter; - if (code === EQ) { - const keyEnd = trailingOWS(header, keyStart, index); - const key = header.slice(keyStart, keyEnd).toLowerCase(); - index = skipOWS(header, index + 1, len); - if (index < len && header.charCodeAt(index) === DQUOTE) { - index++; - let value = ""; - while (index < len) { - const code = header.charCodeAt(index++); - if (code === DQUOTE) { - index = skipValue(header, index, len, stopChar); - if (parameters[key] === undefined) - parameters[key] = value; - break; - } - if (code === BSLASH && index < len) { - value += header[index++]; - continue; - } - value += String.fromCharCode(code); - } - continue parameter; - } - const valueStart = index; - index = skipValue(header, index, len, stopChar); - if (parameters[key] === undefined) { - const valueEnd = trailingOWS(header, valueStart, index); - parameters[key] = header.slice(valueStart, valueEnd); - } - continue parameter; - } - index++; - } - } - return { type, index, parameters }; -} -/** - * Skip over characters until a semicolon or other exit character. - */ -function skipValue(str, index, len, stopChar) { - while (index < len) { - const code = str.charCodeAt(index); - if (code === SEMI || code === stopChar) - break; - index++; - } - return index; -} -/** - * Skip optional whitespace (OWS) in an HTTP header value. - * - * OWS is defined in RFC 9110 sec 5.6.3 as SP (" ") or HTAB ("\t"). - */ -function skipOWS(header, index, len) { - while (index < len) { - const char = header.charCodeAt(index); - if (char !== SP && char !== HTAB) - break; - index++; - } - return index; -} -/** - * Trim optional whitespace (OWS) from the end of a substring. - * - * OWS is defined in RFC 9110 sec 5.6.3 as SP (" ") or HTAB ("\t"). - */ -function trailingOWS(header, start, end) { - while (end > start) { - const char = header.charCodeAt(end - 1); - if (char !== SP && char !== HTAB) - break; - end--; - } - return end; -} -/** - * Serialize a parameter value. - */ -function qstring(str) { - if (TOKEN_REGEXP.test(str)) - return str; - if (TEXT_REGEXP.test(str)) - return `"${str.replace(QUOTE_REGEXP, "\\$&")}"`; - throw new TypeError(`Invalid parameter value: ${str}`); -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/content-type/dist/index.js.map b/node_modules/content-type/dist/index.js.map deleted file mode 100644 index 2f89192..0000000 --- a/node_modules/content-type/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\nconst TEXT_REGEXP = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]*$/;\nconst TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 9110 sec 5.6.4\n */\nconst QUOTE_REGEXP = /[\\\\\"]/g;\n\n/**\n * RegExp to match type in RFC 9110 sec 8.3.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nconst TYPE_REGEXP =\n /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n\n/**\n * Null object perf optimization. Faster than `Object.create(null)` and `{ __proto__: null }`.\n */\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () {};\n C.prototype = Object.create(null);\n return C;\n})() as unknown as { new (): any };\n\n/**\n * The content type object contains a type string and optional parameters.\n */\nexport interface ContentType {\n type: string;\n index: number;\n parameters: Record;\n}\n\n/**\n * Format an object into a `Content-Type` header.\n */\nexport function format(obj: Partial): string {\n const { type, parameters } = obj;\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError(`Invalid type: ${type}`);\n }\n\n let result = type;\n\n if (parameters) {\n for (const param of Object.keys(parameters)) {\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError(`Invalid parameter name: ${param}`);\n }\n\n result += `; ${param}=${qstring(parameters[param])}`;\n }\n }\n\n return result;\n}\n\n/**\n * Options for parsing a `Content-Type` header.\n */\nexport interface ParseOptions {\n /**\n * Exit early on the first semicolon, returning only the type.\n * This is useful for parsing the MIME from `Content-Type` headers.\n *\n * @default false\n */\n parameters?: boolean;\n /**\n * Exits early on a comma, returning the first value and parameters.\n * This is useful for parsing `Accept` headers.\n *\n * @default false\n */\n comma?: boolean;\n /**\n * The index to start parsing from.\n *\n * @default 0\n */\n start?: number;\n}\n\n/**\n * Parse a `Content-Type` header.\n */\nexport function parse(header: string, options?: ParseOptions): ContentType {\n const stopChar = options?.comma === true ? COMMA : 65_536; // Sentinel for \"no stop char\".\n const len = header.length;\n let index = skipOWS(header, options?.start ?? 0, len);\n\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n const valueEnd = trailingOWS(header, valueStart, index);\n const type = header.slice(valueStart, valueEnd).toLowerCase();\n\n if (options?.parameters === false) {\n return { type, index, parameters: new NullObject() };\n }\n\n return parseParameters(header, type, index, len, stopChar);\n}\n\nconst SP = 32; // \" \"\nconst HTAB = 9; // \"\\t\"\nconst SEMI = 59; // \";\"\nconst EQ = 61; // \"=\"\nconst DQUOTE = 34; // '\"'\nconst BSLASH = 92; // \"\\\\\"\nconst COMMA = 44; // \",\"\n\n/**\n * Parses the parameters of a `Content-Type` header starting at the given index.\n */\nfunction parseParameters(\n header: string,\n type: string,\n index: number,\n len: number,\n stopChar: number,\n): ContentType {\n const parameters: Record = new NullObject();\n\n parameter: while (index < len) {\n if (header.charCodeAt(index) === stopChar) break;\n\n index = skipOWS(header, index + 1 /* Skip over ; */, len);\n\n const keyStart = index;\n\n while (index < len) {\n const code = header.charCodeAt(index);\n if (code === stopChar) break parameter;\n\n if (code === SEMI) continue parameter;\n\n if (code === EQ) {\n const keyEnd = trailingOWS(header, keyStart, index);\n const key = header.slice(keyStart, keyEnd).toLowerCase();\n\n index = skipOWS(header, index + 1, len);\n\n if (index < len && header.charCodeAt(index) === DQUOTE) {\n index++;\n\n let value = \"\";\n while (index < len) {\n const code = header.charCodeAt(index++);\n if (code === DQUOTE) {\n index = skipValue(header, index, len, stopChar);\n if (parameters[key] === undefined) parameters[key] = value;\n break;\n }\n\n if (code === BSLASH && index < len) {\n value += header[index++];\n continue;\n }\n\n value += String.fromCharCode(code);\n }\n\n continue parameter;\n }\n\n const valueStart = index;\n index = skipValue(header, index, len, stopChar);\n\n if (parameters[key] === undefined) {\n const valueEnd = trailingOWS(header, valueStart, index);\n parameters[key] = header.slice(valueStart, valueEnd);\n }\n\n continue parameter;\n }\n\n index++;\n }\n }\n\n return { type, index, parameters };\n}\n\n/**\n * Skip over characters until a semicolon or other exit character.\n */\nfunction skipValue(\n str: string,\n index: number,\n len: number,\n stopChar: number,\n): number {\n while (index < len) {\n const code = str.charCodeAt(index);\n if (code === SEMI || code === stopChar) break;\n index++;\n }\n return index;\n}\n\n/**\n * Skip optional whitespace (OWS) in an HTTP header value.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction skipOWS(header: string, index: number, len: number): number {\n while (index < len) {\n const char = header.charCodeAt(index);\n if (char !== SP && char !== HTAB) break;\n index++;\n }\n return index;\n}\n\n/**\n * Trim optional whitespace (OWS) from the end of a substring.\n *\n * OWS is defined in RFC 9110 sec 5.6.3 as SP (\" \") or HTAB (\"\\t\").\n */\nfunction trailingOWS(header: string, start: number, end: number): number {\n while (end > start) {\n const char = header.charCodeAt(end - 1);\n if (char !== SP && char !== HTAB) break;\n end--;\n }\n return end;\n}\n\n/**\n * Serialize a parameter value.\n */\nfunction qstring(str: string): string {\n if (TOKEN_REGEXP.test(str)) return str;\n if (TEXT_REGEXP.test(str)) return `\"${str.replace(QUOTE_REGEXP, \"\\\\$&\")}\"`;\n\n throw new TypeError(`Invalid parameter value: ${str}`);\n}\n"]} \ No newline at end of file diff --git a/node_modules/content-type/package.json b/node_modules/content-type/package.json index 4a403eb..9db19f6 100644 --- a/node_modules/content-type/package.json +++ b/node_modules/content-type/package.json @@ -1,52 +1,42 @@ { "name": "content-type", - "version": "2.1.0", "description": "Create and parse HTTP Content-Type header", + "version": "1.0.5", + "author": "Douglas Christopher Wilson ", + "license": "MIT", "keywords": [ "content-type", "http", "req", "res", - "rfc7231", - "rfc9110" + "rfc7231" ], "repository": "jshttp/content-type", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - }, - "license": "MIT", - "author": "Douglas Christopher Wilson ", - "type": "commonjs", - "exports": "./dist/index.js", - "main": "./dist/index.js", - "typings": "./dist/index.d.ts", - "files": [ - "dist/" - ], - "scripts": { - "bench": "vitest bench", - "build": "ts-scripts build", - "format": "ts-scripts format", - "prepare": "ts-scripts install && npm run build", - "specs": "ts-scripts specs", - "test": "ts-scripts test" - }, "devDependencies": { - "@borderless/ts-scripts": "^0.15.0", - "@vitest/coverage-v8": "^3.0.5", - "typescript": "^5.7.3", - "vitest": "^3.2.4" + "deep-equal": "1.0.1", + "eslint": "8.32.0", + "eslint-config-standard": "15.0.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "10.2.0", + "nyc": "15.1.0" }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], "engines": { - "node": ">=18" + "node": ">= 0.6" }, - "ts-scripts": { - "dist": [ - "dist" - ], - "project": [ - "tsconfig.build.json" - ] + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" } } diff --git a/node_modules/is-network-error/index.d.ts b/node_modules/is-network-error/index.d.ts deleted file mode 100644 index 1107c81..0000000 --- a/node_modules/is-network-error/index.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** -Check if an error is a [Fetch network error](https://developer.mozilla.org/en-US/docs/Web/API/fetch#exceptions) - -@return Returns `true` if the given value is a Fetch network error, otherwise `false`. - -@example -``` -import isNetworkError from 'is-network-error'; - -async function getUnicorns() { - try { - const response = await fetch('unicorns.json'); - return await response.json(); - } catch (error) { - if (isNetworkError(error)) { - return localStorage.getItem('…'); - } - - throw error; - } -} - -console.log(await getUnicorns()); -``` -*/ -export default function isNetworkError(value: unknown): value is TypeError; diff --git a/node_modules/is-network-error/index.js b/node_modules/is-network-error/index.js deleted file mode 100644 index 4ce2be3..0000000 --- a/node_modules/is-network-error/index.js +++ /dev/null @@ -1,47 +0,0 @@ -const objectToString = Object.prototype.toString; - -const isError = value => objectToString.call(value) === '[object Error]'; - -const errorMessages = new Set([ - 'network error', // Chrome - 'NetworkError when attempting to fetch resource.', // Firefox - 'The Internet connection appears to be offline.', // Safari 16 - 'Network request failed', // `cross-fetch` - 'fetch failed', // Undici (Node.js) - 'terminated', // Undici (Node.js) - ' A network error occurred.', // Bun (WebKit) - 'Network connection lost', // Cloudflare Workers (fetch) -]); - -export default function isNetworkError(error) { - const isValid = error - && isError(error) - && error.name === 'TypeError' - && typeof error.message === 'string'; - - if (!isValid) { - return false; - } - - const {message, stack} = error; - - // Safari 17+ has generic message but no stack for network errors - if (message === 'Load failed' || (message.startsWith('Load failed (') && message.endsWith(')'))) { - return stack === undefined - // Sentry adds its own stack trace to the fetch error, so also check for that - || '__sentry_captured__' in error; - } - - // Deno network errors start with specific text - if (message.startsWith('error sending request for url')) { - return true; - } - - // Chrome: exact "Failed to fetch" or with hostname: "Failed to fetch (example.com)" - if (message === 'Failed to fetch' || (message.startsWith('Failed to fetch (') && message.endsWith(')'))) { - return true; - } - - // Standard network error messages - return errorMessages.has(message); -} diff --git a/node_modules/is-network-error/license b/node_modules/is-network-error/license deleted file mode 100644 index fa7ceba..0000000 --- a/node_modules/is-network-error/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/is-network-error/package.json b/node_modules/is-network-error/package.json deleted file mode 100644 index 9de6fcf..0000000 --- a/node_modules/is-network-error/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "is-network-error", - "version": "1.3.2", - "description": "Check if a value is a Fetch network error", - "license": "MIT", - "repository": "sindresorhus/is-network-error", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "type": "module", - "exports": { - "types": "./index.d.ts", - "default": "./index.js" - }, - "sideEffects": false, - "engines": { - "node": ">=16" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "network", - "error", - "fetch", - "whatwg", - "detect", - "check", - "typeerror" - ], - "devDependencies": { - "ava": "^5.3.1", - "tsd": "^0.29.0", - "xo": "^0.56.0" - } -} diff --git a/node_modules/is-network-error/readme.md b/node_modules/is-network-error/readme.md deleted file mode 100644 index 1de57bc..0000000 --- a/node_modules/is-network-error/readme.md +++ /dev/null @@ -1,44 +0,0 @@ -# is-network-error - -> Check if a value is a [Fetch network error](https://developer.mozilla.org/en-US/docs/Web/API/fetch#exceptions) - -This can be useful when you want to do something specific when a network error happens without catching other Fetch-related errors. - -Unfortunately, Fetch network errors are [not standardized](https://github.com/whatwg/fetch/issues/526) and differ among implementations. This package handles the differences across Node.js, Bun, Deno, and browsers. - -For instance, [`p-retry`](https://github.com/sindresorhus/p-retry) uses this package to retry on network errors. - -## Install - -```sh -npm install is-network-error -``` - -## Usage - -```js -import isNetworkError from 'is-network-error'; - -async function getUnicorns() { - try { - const response = await fetch('unicorns.json'); - return await response.json(); - } catch (error) { - if (isNetworkError(error)) { - return localStorage.getItem('…'); - } - - throw error; - } -} - -console.log(await getUnicorns()); -``` - -## API - -### `isNetworkError(value: unknown): value is TypeError` - -Returns `true` if the given value is a Fetch network error, otherwise `false`. - -This function acts as a type guard, narrowing the type to `TypeError` when it returns `true`. diff --git a/node_modules/matrix-js-sdk/CHANGELOG.md b/node_modules/matrix-js-sdk/CHANGELOG.md index 1cbd2ea..aa94784 100644 --- a/node_modules/matrix-js-sdk/CHANGELOG.md +++ b/node_modules/matrix-js-sdk/CHANGELOG.md @@ -1,1283 +1,3 @@ -Changes in [42.3.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v42.3.0) (2026-09-01) -================================================================================================== -## ✨ Features - -* Don't treat Matrix-shaped errors as OAuth token refresh grant logouts ([#5473](https://github.com/matrix-org/matrix-js-sdk/pull/5473)). Contributed by @hughns. -* Update MatrixRTCSession to increase push notification arrival time on mobile clients for element-call ([#5398](https://github.com/matrix-org/matrix-js-sdk/pull/5398)). Contributed by @escix. -* Add sticky events support to sliding sync (MSC4480) ([#5458](https://github.com/matrix-org/matrix-js-sdk/pull/5458)). Contributed by @eleboucher. -* Validate that an error from OAuth token refresh looks like an OAuth error before treating as logout ([#5472](https://github.com/matrix-org/matrix-js-sdk/pull/5472)). Contributed by @hughns. - -## 🐛 Bug Fixes - -* Make setExtendedProfileProperty not throw if the requested property isn't set ([#5484](https://github.com/matrix-org/matrix-js-sdk/pull/5484)). Contributed by @dbkr. -* make sure `setDefaultKeyId` resolves even if no change is made ([#5485](https://github.com/matrix-org/matrix-js-sdk/pull/5485)). Contributed by @uhoreg. - - -Changes in [42.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v42.2.0) (2026-08-18) -================================================================================================== -## 🐛 Bug Fixes - -* Fix pre-initialization thread edits when target is known ([#5440](https://github.com/matrix-org/matrix-js-sdk/pull/5440)). Contributed by @basnijholt. -* Fix package failing to load in Node ESM due to directory import ([#5460](https://github.com/matrix-org/matrix-js-sdk/pull/5460)). Contributed by @syphernl. - - -Changes in [42.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v42.1.0) (2026-08-04) -================================================================================================== -## 🦖 Deprecations - -* Remove support for MSC3391 \& MSC3852 ([#5446](https://github.com/matrix-org/matrix-js-sdk/pull/5446)). Contributed by @t3chguy. - -## ✨ Features - -* Allow passing a CA cert PEM when setting up Rust crypto ([#5443](https://github.com/matrix-org/matrix-js-sdk/pull/5443)). Contributed by @andybalaam. -* Improve types for `/room_keys/version` requests ([#5419](https://github.com/matrix-org/matrix-js-sdk/pull/5419)). Contributed by @richvdh. - -## 🐛 Bug Fixes - -* Include existing data when updating user profile cache ([#5427](https://github.com/matrix-org/matrix-js-sdk/pull/5427)). Contributed by @dbkr. -* Fix key backup cached event ordering ([#5281](https://github.com/matrix-org/matrix-js-sdk/pull/5281)). Contributed by @gumadeiras. - - -Changes in [42.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v42.0.0) (2026-07-21) -================================================================================================== -## 🚨 BREAKING CHANGES - -* Properly support Matrix v1.18 OAuth2 APIs ([#5390](https://github.com/matrix-org/matrix-js-sdk/pull/5390)). Contributed by @t3chguy. -* Remove unused getContentUri ([#5400](https://github.com/matrix-org/matrix-js-sdk/pull/5400)). Contributed by @t3chguy. - - -Changes in [41.9.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.9.0) (2026-07-07) -================================================================================================== -## ✨ Features - -* Add method `CryptoApi.getUserCrossSigningKeys` ([#5389](https://github.com/matrix-org/matrix-js-sdk/pull/5389)). Contributed by @richvdh. - -## 🐛 Bug Fixes - -* Fix restarting delayed events via compatibility path in RoomWidgetClient ([#5380](https://github.com/matrix-org/matrix-js-sdk/pull/5380)). Contributed by @robintown. - - -Changes in [41.8.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.8.0) (2026-06-23) -================================================================================================== -## ✨ Features - -* MatrixRTC: Preserve original error as `cause` when wrapping in scheduler ([#5363](https://github.com/matrix-org/matrix-js-sdk/pull/5363)). Contributed by @fkwp. -* Add mechanism to locally enforce MSC1763 retention rules ([#5353](https://github.com/matrix-org/matrix-js-sdk/pull/5353)). Contributed by @Half-Shot. - -## 🐛 Bug Fixes - -* Fall back to local indexeddb backend when worker fails to start ([#5361](https://github.com/matrix-org/matrix-js-sdk/pull/5361)). Contributed by @t3chguy. - - -Changes in [41.7.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.7.0) (2026-06-09) -================================================================================================== -## ✨ Features - -* MSC4140: use auth for delayed event management ([#5340](https://github.com/matrix-org/matrix-js-sdk/pull/5340)). Contributed by @AndrewFerr. - -## 🐛 Bug Fixes - -* [Backport staging] SECURITY: Update matrix-sdk-crypto-wasm to v18.3.1 ([#5356](https://github.com/matrix-org/matrix-js-sdk/pull/5356)). Contributed by @RiotRobot. -* fix(MatrixRTCSession): replace no-arg .finally() with .then(fn, fn) to fix crash on React Native / Hermes ([#5307](https://github.com/matrix-org/matrix-js-sdk/pull/5307)). Contributed by @JeanLuX. - - -Changes in [41.6.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.6.0) (2026-05-26) -================================================================================================== -## 🐛 Bug Fixes - -* Throw sane error on completeLoginOnNewDevice IdP rejection ([#5321](https://github.com/matrix-org/matrix-js-sdk/pull/5321)). Contributed by @t3chguy. - - -Changes in [41.5.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.5.0) (2026-05-12) -================================================================================================== -## ✨ Features - -* MSC4108v2024 iteration and support for sign in on new device ([#5283](https://github.com/matrix-org/matrix-js-sdk/pull/5283)). Contributed by @t3chguy. -* Enable encrypted history sharing by default ([#5300](https://github.com/matrix-org/matrix-js-sdk/pull/5300)). Contributed by @richvdh. -* Restore functional `start` command ([#5298](https://github.com/matrix-org/matrix-js-sdk/pull/5298)). Contributed by @t3chguy. -* Support stable identifiers for MSC4268 and MSC4287 ([#5299](https://github.com/matrix-org/matrix-js-sdk/pull/5299)). Contributed by @andybalaam. -* Implement MSC4429: Profile Updates for Legacy Sync ([#5246](https://github.com/matrix-org/matrix-js-sdk/pull/5246)). Contributed by @Half-Shot. -* Support stable identifiers for MSC4268 ([#5290](https://github.com/matrix-org/matrix-js-sdk/pull/5290)). Contributed by @andybalaam. - - -Changes in [41.4.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.4.0) (2026-04-28) -================================================================================================== -## ✨ Features - -* Handle secret pushing for key backups ([#5189](https://github.com/matrix-org/matrix-js-sdk/pull/5189)). Contributed by @uhoreg. -* Add support for `m.recent_emoji` account data event ([#5280](https://github.com/matrix-org/matrix-js-sdk/pull/5280)). Contributed by @t3chguy. -* Adapt LiveKit Identity hash calculation to latest MSC4195 update ([#5268](https://github.com/matrix-org/matrix-js-sdk/pull/5268)). Contributed by @fkwp. -* Support the stable prefix for MSC4287 (key backup preference) ([#5258](https://github.com/matrix-org/matrix-js-sdk/pull/5258)). Contributed by @andybalaam. -* Handle response\_mode=fragment in completeAuthorizationCodeGrant ([#5266](https://github.com/matrix-org/matrix-js-sdk/pull/5266)). Contributed by @t3chguy. -* Allow generating OIDC URIs with response\_mode=fragment ([#5265](https://github.com/matrix-org/matrix-js-sdk/pull/5265)). Contributed by @t3chguy. -* Expose `UserVerificationStatus.known` flag ([#5255](https://github.com/matrix-org/matrix-js-sdk/pull/5255)). Contributed by @richvdh. - -## 🐛 Bug Fixes - -* Allow oidc jwks\_uri to be omitted ([#5271](https://github.com/matrix-org/matrix-js-sdk/pull/5271)). Contributed by @t3chguy. - - -Changes in [41.3.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.3.0) (2026-04-07) -================================================================================================== -## 🐛 Bug Fixes - -* Rotate the current room key when we see a member leave ([#5231](https://github.com/matrix-org/matrix-js-sdk/pull/5231)). Contributed by @kaylendog. - - -Changes in [41.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.2.0) (2026-03-24) -================================================================================================== -## ✨ Features - -* Only share history if room history visibility is shared ([#5216](https://github.com/matrix-org/matrix-js-sdk/pull/5216)). Contributed by @kaylendog. -* History sharing: resume key-bundle import on restart ([#5214](https://github.com/matrix-org/matrix-js-sdk/pull/5214)). Contributed by @richvdh. -* Move `CryptoApi.shareRoomHistoryWithUser` to `CryptoBackend` ([#5218](https://github.com/matrix-org/matrix-js-sdk/pull/5218)). Contributed by @richvdh. - - -Changes in [41.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.1.0) (2026-03-10) -================================================================================================== -## ✨ Features - -* Throw a specific error when the backup decryption key does not match the public backup ([#5202](https://github.com/matrix-org/matrix-js-sdk/pull/5202)). Contributed by @andybalaam. -* Update getUrlPreview to use /\_matrix/client/v1/media/preview\_url ([#5191](https://github.com/matrix-org/matrix-js-sdk/pull/5191)). Contributed by @Half-Shot. - - -Changes in [41.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.0.0) (2026-02-24) -================================================================================================== -## 🚨 BREAKING CHANGES - -* Add support for Matrix Spec v1.13 ([#5160](https://github.com/matrix-org/matrix-js-sdk/pull/5160)). Contributed by @t3chguy. - -## ✨ Features - -* Download room keys from backup prior to buliding historic room key bundles ([#5171](https://github.com/matrix-org/matrix-js-sdk/pull/5171)). Contributed by @kaylendog. -* Add support for Matrix Spec v1.13 ([#5160](https://github.com/matrix-org/matrix-js-sdk/pull/5160)). Contributed by @t3chguy. -* Add logging on MSC4108 DELETE request ([#5140](https://github.com/matrix-org/matrix-js-sdk/pull/5140)). Contributed by @reivilibre. -* Add `m.invite_permission_config` account data type ([#5183](https://github.com/matrix-org/matrix-js-sdk/pull/5183)). Contributed by @richvdh. - -## 🐛 Bug Fixes - -* fix(relations): prevent stale m.replace from overriding newer edits ([#5192](https://github.com/matrix-org/matrix-js-sdk/pull/5192)). Contributed by @basnijholt. -* Fix reactive display name disambiguation ([#5135](https://github.com/matrix-org/matrix-js-sdk/pull/5135)). Contributed by @aditya-cherukuru. -* Fix empty string to room compatibility trick to only apply to m.call ([#5172](https://github.com/matrix-org/matrix-js-sdk/pull/5172)). Contributed by @toger5. - - -Changes in [40.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v40.2.0) (2026-02-10) -================================================================================================== -## 🦖 Deprecations - -* [MatrixRTC] Remove sending of deprecated `notify` event (we now use `m.rtc.notification`) ([#5167](https://github.com/matrix-org/matrix-js-sdk/pull/5167)). Contributed by @toger5. - -## ✨ Features - -* Use stable /auth\_metadata endpoint where homeserver supports v1.15 ([#5174](https://github.com/matrix-org/matrix-js-sdk/pull/5174)). Contributed by @hughns. -* Support additional\_creators in upgradeRoom (MSC4289) ([#5173](https://github.com/matrix-org/matrix-js-sdk/pull/5173)). Contributed by @andybalaam. -* [MatrixRTC] Minimal change to transition from "" to "ROOM" as the callId/slotId ([#5166](https://github.com/matrix-org/matrix-js-sdk/pull/5166)). Contributed by @toger5. -* [MatrixRTC] Do not send the `livekit_alias` in sticky events ([#5165](https://github.com/matrix-org/matrix-js-sdk/pull/5165)). Contributed by @toger5. -* Improve startup performance by using `promise.all` when processing rooms from sync ([#5095](https://github.com/matrix-org/matrix-js-sdk/pull/5095)). Contributed by @MidhunSureshR. -* Add OAuthGrantType enum for OAuth 2.0 API grant types ([#5161](https://github.com/matrix-org/matrix-js-sdk/pull/5161)). Contributed by @hughns. -* Add support for stable OAuth2.0 aware feature from MSC3824 ([#5159](https://github.com/matrix-org/matrix-js-sdk/pull/5159)). Contributed by @hughns. -* Give RoomWidgetClient the ability to send and receive sticky events ([#5142](https://github.com/matrix-org/matrix-js-sdk/pull/5142)). Contributed by @robintown. - -## 🐛 Bug Fixes - -* [js sdk embedded/widget] Fix race where this.syncApi.injectRoomEvents was called before the syncApi is instantiated ([#5168](https://github.com/matrix-org/matrix-js-sdk/pull/5168)). Contributed by @toger5. -* [MatrixRTC] Fix delayId not resetting on leave ([#5156](https://github.com/matrix-org/matrix-js-sdk/pull/5156)). Contributed by @toger5. - - -Changes in [40.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v40.1.0) (2026-01-27) -================================================================================================== -## 🦖 Deprecations - -* Deprecate unused `EventShieldReason` reason codes ([#5127](https://github.com/matrix-org/matrix-js-sdk/pull/5127)). Contributed by @richvdh. - -## ✨ Features - -* Add stable m.oauth UIA stage enum ([#5138](https://github.com/matrix-org/matrix-js-sdk/pull/5138)). Contributed by @hughns. -* Add `MatrixEvent.getKeyForwardingUser` ([#5128](https://github.com/matrix-org/matrix-js-sdk/pull/5128)). Contributed by @richvdh. -* Add types for (unstable) policy servers ([#5116](https://github.com/matrix-org/matrix-js-sdk/pull/5116)). Contributed by @turt2live. - -## 🐛 Bug Fixes - -* [Backport staging] Recalculate room name on loading members ([#5164](https://github.com/matrix-org/matrix-js-sdk/pull/5164)). Contributed by @RiotRobot. -* Avoid rapidly retrying failed requests ([#5146](https://github.com/matrix-org/matrix-js-sdk/pull/5146)). Contributed by @andybalaam. -* [matrixRTC] MatrixRTCSessions, add missing event reemission. ([#5144](https://github.com/matrix-org/matrix-js-sdk/pull/5144)). Contributed by @toger5. -* Use normal base64 encoding for RTC backend identities ([#5129](https://github.com/matrix-org/matrix-js-sdk/pull/5129)). Contributed by @robintown. -* export parseCallNotificationContent and isMyMembership from RTC types ([#5132](https://github.com/matrix-org/matrix-js-sdk/pull/5132)). Contributed by @Half-Shot. - - -Changes in [40.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v40.0.0) (2026-01-13) -================================================================================================== -## 🚨 BREAKING CHANGES - -* MatrixRTC Pseudonymous livekit identities ([#5110](https://github.com/matrix-org/matrix-js-sdk/pull/5110)). Contributed by @toger5. - -## 🦖 Deprecations - -* Mark `forwardingCurve25519KeyChain` as deprecated ([#5111](https://github.com/matrix-org/matrix-js-sdk/pull/5111)). Contributed by @richvdh. -* Mark `IEventDecryptionResult` as deprecated ([#5112](https://github.com/matrix-org/matrix-js-sdk/pull/5112)). Contributed by @richvdh. - -## ✨ Features - -* Implement MSC4387: M\_SAFETY error ([#5107](https://github.com/matrix-org/matrix-js-sdk/pull/5107)). Contributed by @Half-Shot. -* Implement \_unstable\_getRTCTransports for MSC4143 ([#5104](https://github.com/matrix-org/matrix-js-sdk/pull/5104)). Contributed by @Half-Shot. -* Use `membershipID` for session events ([#5105](https://github.com/matrix-org/matrix-js-sdk/pull/5105)). Contributed by @toger5. - -## 🐛 Bug Fixes - -* Make MatrixRTC encryption key types narrower for TS 5.9 compatibility ([#5117](https://github.com/matrix-org/matrix-js-sdk/pull/5117)). Contributed by @robintown. -* Re-check outgoing requests after processing them ([#5109](https://github.com/matrix-org/matrix-js-sdk/pull/5109)). Contributed by @andybalaam. -* Make token refresher init itself lazily ([#5106](https://github.com/matrix-org/matrix-js-sdk/pull/5106)). Contributed by @dbkr. - - -Changes in [39.4.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v39.4.0) (2025-12-16) -================================================================================================== -## ✨ Features - -* Import room key bundles received after invite. ([#5080](https://github.com/matrix-org/matrix-js-sdk/pull/5080)). Contributed by @kaylendog. - -## 🐛 Bug Fixes - -* Allow msc4354\_sticky\_key to be optional on sticky events. ([#5073](https://github.com/matrix-org/matrix-js-sdk/pull/5073)). Contributed by @Half-Shot. -* Handle all response fields from /context API being optional ([#5089](https://github.com/matrix-org/matrix-js-sdk/pull/5089)). Contributed by @t3chguy. - - -Changes in [39.3.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v39.3.0) (2025-12-02) -================================================================================================== -## 🐛 Bug Fixes - -* Re-add truthy check on room name/avatar/alias events ([#5081](https://github.com/matrix-org/matrix-js-sdk/pull/5081)). Contributed by @t3chguy. -* Fix invalid state events corrupting room objects ([#5078](https://github.com/matrix-org/matrix-js-sdk/pull/5078)). Contributed by @t3chguy. - - -Changes in [39.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v39.2.0) (2025-11-18) -================================================================================================== -## ✨ Features - -* Delayed event management: split endpoints, no auth ([#5066](https://github.com/matrix-org/matrix-js-sdk/pull/5066)). Contributed by @AndrewFerr. -* do not set cache in authenticated fetch ([#5020](https://github.com/matrix-org/matrix-js-sdk/pull/5020)). Contributed by @pkuzco. - -## 🐛 Bug Fixes - -* Fix media switching during legacy calls ([#5069](https://github.com/matrix-org/matrix-js-sdk/pull/5069)). Contributed by @langleyd. - - -Changes in [39.1.2](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v39.1.2) (2025-11-04) -================================================================================================== -Re-release of v39.1.0 to fix npm publishing workflow - - - -Changes in [39.1.1](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v39.1.1) (2025-11-04) -================================================================================================== -Re-release of v39.1.0 to fix npm publishing workflow - -Changes in [39.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v39.1.0) (2025-11-04) -================================================================================================== -## ✨ Features - -* [MatrixRTC] Sticky Events support (MSC4354) ([#5017](https://github.com/matrix-org/matrix-js-sdk/pull/5017)). Contributed by @toger5. -* Add `CryptoApi.getSecretStorageStatus` ([#5054](https://github.com/matrix-org/matrix-js-sdk/pull/5054)). Contributed by @richvdh. -* Add parseCallNotificationContent ([#5015](https://github.com/matrix-org/matrix-js-sdk/pull/5015)). Contributed by @toger5. -* MSC4140: support filters on delayed event lookup ([#5038](https://github.com/matrix-org/matrix-js-sdk/pull/5038)). Contributed by @AndrewFerr. - - -Changes in [39.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v39.0.0) (2025-10-21) -================================================================================================== -## 🚨 BREAKING CHANGES - -* [MatrixRTC] Multi SFU support + m.rtc.member event type support ([#5022](https://github.com/matrix-org/matrix-js-sdk/pull/5022)). Contributed by @toger5. - -## ✨ Features - -* [MatrixRTC] Multi SFU support + m.rtc.member event type support ([#5022](https://github.com/matrix-org/matrix-js-sdk/pull/5022)). Contributed by @toger5. -* Implement Sticky Events MSC4354 ([#5028](https://github.com/matrix-org/matrix-js-sdk/pull/5028)). Contributed by @Half-Shot. -* feat(client): allow disabling VoIP support ([#5021](https://github.com/matrix-org/matrix-js-sdk/pull/5021)). Contributed by @pkuzco. - -## 🐛 Bug Fixes - -* Only use the first 3 viaServers specified ([#5034](https://github.com/matrix-org/matrix-js-sdk/pull/5034)). Contributed by @t3chguy. -* Fetch the user's device info before processing a verification request ([#5030](https://github.com/matrix-org/matrix-js-sdk/pull/5030)). Contributed by @andybalaam. - - -Changes in [38.4.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v38.4.0) (2025-10-07) -================================================================================================== -## ✨ Features - -* Add call intent to RTC call notifications ([#5010](https://github.com/matrix-org/matrix-js-sdk/pull/5010)). Contributed by @Half-Shot. -* Implement experimental encrypted state events. ([#4994](https://github.com/matrix-org/matrix-js-sdk/pull/4994)). Contributed by @kaylendog. - -## 🐛 Bug Fixes - -* Exclude cancelled requests from in-progress lists ([#5016](https://github.com/matrix-org/matrix-js-sdk/pull/5016)). Contributed by @andybalaam. - - -Changes in [38.3.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v38.3.0) (2025-09-23) -================================================================================================== -## 🐛 Bug Fixes - -* Remove knocked room when membership changes to join ([#4977](https://github.com/matrix-org/matrix-js-sdk/pull/4977)). Contributed by @svajunas-budrys. - - -Changes in [38.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v38.2.0) (2025-09-16) -================================================================================================== -Fix [CVE-2025-59160](https://www.cve.org/CVERecord?id=CVE-2025-59160) / [GHSA-mp7c-m3rh-r56v](https://github.com/matrix-org/matrix-js-sdk/security/advisories/GHSA-mp7c-m3rh-r56v) - - - -Changes in [38.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v38.1.0) (2025-09-09) -================================================================================================== -## ✨ Features - -* Remove custom `org.matrix.msc4075.rtc.notification.parent` relation type ([#4979](https://github.com/matrix-org/matrix-js-sdk/pull/4979)). Contributed by @toger5. -* MatrixRTC: Add RTC decline event ([#4978](https://github.com/matrix-org/matrix-js-sdk/pull/4978)). Contributed by @toger5. -* Make a MatrixRTCSession emit once the RTCNotification is sent ([#4976](https://github.com/matrix-org/matrix-js-sdk/pull/4976)). Contributed by @toger5. -* Use hydra semantics for unknown room versions ([#4957](https://github.com/matrix-org/matrix-js-sdk/pull/4957)). Contributed by @dbkr. -* Expose the StatusChanged event through the RTCSession ([#4974](https://github.com/matrix-org/matrix-js-sdk/pull/4974)). Contributed by @toger5. -* Add `probablyLeft` event to the MatrixRTCSession ([#4962](https://github.com/matrix-org/matrix-js-sdk/pull/4962)). Contributed by @toger5. - -## 🐛 Bug Fixes - -* Fix `m.topic` format ([#4984](https://github.com/matrix-org/matrix-js-sdk/pull/4984)). Contributed by @tulir. -* Fix stable-suffixed MSC4133 support ([#4983](https://github.com/matrix-org/matrix-js-sdk/pull/4983)). Contributed by @dbkr. -* Fix thread edit aggregation race condition ([#4980](https://github.com/matrix-org/matrix-js-sdk/pull/4980)). Contributed by @basnijholt. - - -Changes in [38.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v38.0.0) (2025-08-27) -================================================================================================== -## 🚨 BREAKING CHANGES - -* Release tranche of breaking changes ([#4975](https://github.com/matrix-org/matrix-js-sdk/pull/4975)). -* Remove support for FetchHttpApi `onlyData = false` -* Remove deprecated `IJoinRoomOpts.syncRoom` -* Remove deprecated methods which are unsupported in rust crypto -* Remove deprecated getAuthIssuer method -* Remove deprecated beginKeyVerification method -* Remove deprecated isEncryptedDisabledForUnverifiedDevices getter -* Remove deprecated UndecryptableToDeviceEvent MatrixClient emit -* Remove deprecated defer utility method -* Remove deprecated UIAResponse dummy type -* Remove deprecated MatrixRTCSession MembershipConfig fields -* Remove deprecated findVerificationRequestDMInProgress and storeSessionBackupPrivateKey methods in favour of overloads - -## ✨ Features - -* Allow multiple rtc sessions per room (with different sessionDescriptions) ([#4945](https://github.com/matrix-org/matrix-js-sdk/pull/4945)). Contributed by @toger5. -* Add support for login\_hint in authorization url generation ([#4943](https://github.com/matrix-org/matrix-js-sdk/pull/4943)). Contributed by @odelcroi. -* Only process MatrixRTC sessions associated with calls for `callMembershipsForRoom` ([#4960](https://github.com/matrix-org/matrix-js-sdk/pull/4960)). Contributed by @fkwp. - - -Changes in [37.13.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.13.0) (2025-08-11) -==================================================================================================== -This release supports new v12 Matrix rooms and consequently has a breaking change, removing powerLevelNorm from the RoomMember object as this can't be supported with infinite power levels. Apps should use the non-normalised `powerLevel` instead. - -## 🚨 BREAKING CHANGES - -* [Backport staging] Support for creator power level ([#4954](https://github.com/matrix-org/matrix-js-sdk/pull/4954)). Contributed by @RiotRobot. - -## ✨ Features - -* [Backport staging] Support v12 rooms in maySendEvent ([#4956](https://github.com/matrix-org/matrix-js-sdk/pull/4956)). Contributed by @RiotRobot. -* [Backport staging] Support for creator power level ([#4954](https://github.com/matrix-org/matrix-js-sdk/pull/4954)). Contributed by @RiotRobot. -* Experimental support for sharing encrypted history on invite ([#4920](https://github.com/matrix-org/matrix-js-sdk/pull/4920)). Contributed by @richvdh. -* Use the logger associated with MatrixClient in rust sdk ([#4918](https://github.com/matrix-org/matrix-js-sdk/pull/4918)). Contributed by @richvdh. -* Update to matrix-sdk-crypto-wasm 15.1.0, and add new `ShieldStateCode.MismatchedSender` ([#4916](https://github.com/matrix-org/matrix-js-sdk/pull/4916)). Contributed by @richvdh. - -## 🐛 Bug Fixes - -* Fix unknown/broken state in the RTC Membership Manager causing unnecassary error logging. ([#4944](https://github.com/matrix-org/matrix-js-sdk/pull/4944)). Contributed by @toger5. - - -Changes in [37.12.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.12.0) (2025-07-29) -==================================================================================================== -## 🦖 Deprecations - -* Deprecate non-functional `IJoinRoomOpts.syncRoom` ([#4913](https://github.com/matrix-org/matrix-js-sdk/pull/4913)). Contributed by @richvdh. - -## ✨ Features - -* Custom abort timeout logic for restarting delayed events that is compatible with the widget api ([#4927](https://github.com/matrix-org/matrix-js-sdk/pull/4927)). Contributed by @toger5. -* Allow sending notification events when starting a call ([#4826](https://github.com/matrix-org/matrix-js-sdk/pull/4826)). Contributed by @robintown. - -## 🐛 Bug Fixes - -* Fix deep import incompatibility (#4924) ([#4925](https://github.com/matrix-org/matrix-js-sdk/pull/4925)). Contributed by @toriningen. -* Fix more incorrect logger use ([#4904](https://github.com/matrix-org/matrix-js-sdk/pull/4904)). Contributed by @richvdh. - - -Changes in [37.11.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.11.0) (2025-07-15) -==================================================================================================== -## ✨ Features - -* Update README to make Element sponsorship explicit ([#4901](https://github.com/matrix-org/matrix-js-sdk/pull/4901)). Contributed by @neilisfragile. -* Use client logger in more places (crypto code) ([#4900](https://github.com/matrix-org/matrix-js-sdk/pull/4900)). Contributed by @richvdh. -* Use client logger in `MatrixRTCSessionManager` ([#4898](https://github.com/matrix-org/matrix-js-sdk/pull/4898)). Contributed by @richvdh. -* Use client logger in more places (core code) ([#4899](https://github.com/matrix-org/matrix-js-sdk/pull/4899)). Contributed by @richvdh. -* crypto: Add new `ClientEvent.ReceivedToDeviceMessage` with proper `OlmEncryptionInfo` support ([#4891](https://github.com/matrix-org/matrix-js-sdk/pull/4891)). Contributed by @BillCarsonFr. - - -Changes in [37.10.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.10.0) (2025-07-01) -==================================================================================================== -## ✨ Features - -* Update matrix-sdk-crypto-wasm to `15.0.0` ([#4882](https://github.com/matrix-org/matrix-js-sdk/pull/4882)). Contributed by @richvdh. -* Allow customizing the IndexedDB database prefix used by Rust crypto. ([#4878](https://github.com/matrix-org/matrix-js-sdk/pull/4878)). Contributed by @clokep. -* Remove `@matrix-org/olm` from dependency list ([#4876](https://github.com/matrix-org/matrix-js-sdk/pull/4876)). Contributed by @richvdh. -* Redact on ban: Client implementation ([#4867](https://github.com/matrix-org/matrix-js-sdk/pull/4867)). Contributed by @turt2live. - - -Changes in [37.9.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.9.0) (2025-06-17) -================================================================================================== -## 🐛 Bug Fixes - -* Ensure we send spec-compliant filter strings by stripping out null values ([#4865](https://github.com/matrix-org/matrix-js-sdk/pull/4865)). Contributed by @t3chguy. -* Fix MatrixRTC membership manager failing to rejoin in a race condition (sync vs not found response) ([#4861](https://github.com/matrix-org/matrix-js-sdk/pull/4861)). Contributed by @toger5. -* Include extraParams in all HTTP requests ([#4860](https://github.com/matrix-org/matrix-js-sdk/pull/4860)). Contributed by @rsb-tbg. - - -Changes in [37.8.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.8.0) (2025-06-10) -================================================================================================== -## 🐛 Bug Fixes - -* [Backport staging] Update dependency @matrix-org/matrix-sdk-crypto-wasm to v14.2.1 ([#4869](https://github.com/matrix-org/matrix-js-sdk/pull/4869)). Contributed by @RiotRobot. - - -Changes in [37.7.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.7.0) (2025-06-03) -================================================================================================== -## 🦖 Deprecations - -* MatrixRTC: Rename `MembershipConfig` parameters ([#4714](https://github.com/matrix-org/matrix-js-sdk/pull/4714)). Contributed by @toger5. - -## ✨ Features - -* Allow the embedded client to work without update\_state support ([#4849](https://github.com/matrix-org/matrix-js-sdk/pull/4849)). Contributed by @robintown. -* Check for `unknown variant` on to-device sending and fall back to room event encryption. ([#4847](https://github.com/matrix-org/matrix-js-sdk/pull/4847)). Contributed by @toger5. -* Reapply "Distinguish room state and timeline events in embedded clients" ([#4790](https://github.com/matrix-org/matrix-js-sdk/pull/4790)). Contributed by @robintown. - - -Changes in [37.6.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.6.0) (2025-05-20) -================================================================================================== -## 🦖 Deprecations - -* Deprecate utils function `defer` in favour of `Promise.withResolvers` ([#4829](https://github.com/matrix-org/matrix-js-sdk/pull/4829)). Contributed by @t3chguy. - -## ✨ Features - -* Update to Node 22 LTS ([#4832](https://github.com/matrix-org/matrix-js-sdk/pull/4832)). Contributed by @t3chguy. - -## 🐛 Bug Fixes - -* Fix autodiscovery handling of 2xx (non-200) codes ([#4833](https://github.com/matrix-org/matrix-js-sdk/pull/4833)). Contributed by @t3chguy. - - -Changes in [37.5.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.5.0) (2025-05-06) -================================================================================================== -## ✨ Features - -* Stabilise MSC3765 ([#4767](https://github.com/matrix-org/matrix-js-sdk/pull/4767)). Contributed by @Johennes. -* Inherit `methodFactory` extensions from the parent to the child loggers. ([#4809](https://github.com/matrix-org/matrix-js-sdk/pull/4809)). Contributed by @toger5. - -## 🐛 Bug Fixes - -* [Backport staging] Fix token refresh behaviour for non-expired tokens ([#4827](https://github.com/matrix-org/matrix-js-sdk/pull/4827)). Contributed by @RiotRobot. -* Refactor how token refreshing works to be more resilient ([#4819](https://github.com/matrix-org/matrix-js-sdk/pull/4819)). Contributed by @t3chguy. - - -Changes in [37.4.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.4.0) (2025-04-22) -================================================================================================== -## ✨ Features - -* MatrixRTC: Add combined `toDeviceAndRoomKeyTransport` ([#4792](https://github.com/matrix-org/matrix-js-sdk/pull/4792)). Contributed by @toger5. -* Make logging consistent for matrixRTC ([#4788](https://github.com/matrix-org/matrix-js-sdk/pull/4788)). Contributed by @toger5. -* MatrixRTC: ToDevice distribution for media stream keys ([#4785](https://github.com/matrix-org/matrix-js-sdk/pull/4785)). Contributed by @BillCarsonFr. - -## 🐛 Bug Fixes - -* Fix token refresh racing with other requests and not using new token ([#4798](https://github.com/matrix-org/matrix-js-sdk/pull/4798)). Contributed by @t3chguy. -* Fix fallback to MemoryCryptoStore when LocalStorage unavailable ([#4797](https://github.com/matrix-org/matrix-js-sdk/pull/4797)). Contributed by @t3chguy. -* Remove duplicate `deleteSecretStorage` in `RustCrypto.resetEncryption` ([#4789](https://github.com/matrix-org/matrix-js-sdk/pull/4789)). Contributed by @florianduros. -* Fix `RustCrypto.resetEncryption` failure ([#4772](https://github.com/matrix-org/matrix-js-sdk/pull/4772)). Contributed by @florianduros. - - -Changes in [37.3.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.3.0) (2025-04-08) -================================================================================================== -## ✨ Features - -* MatrixRTC MembershipManger: remove redundant sendDelayedEventAction and expose status ([#4747](https://github.com/matrix-org/matrix-js-sdk/pull/4747)). Contributed by @toger5. -* Abstract logout-causing error type from tokenRefreshFunction calls ([#4765](https://github.com/matrix-org/matrix-js-sdk/pull/4765)). Contributed by @t3chguy. -* Improve PushProcessor::getPushRuleGlobRegex ([#4764](https://github.com/matrix-org/matrix-js-sdk/pull/4764)). Contributed by @t3chguy. -* Export push processor \& method for converting matrix glob to regexp ([#4763](https://github.com/matrix-org/matrix-js-sdk/pull/4763)). Contributed by @t3chguy. -* Add authenticated media parameter to getMediaConfig ([#4762](https://github.com/matrix-org/matrix-js-sdk/pull/4762)). Contributed by @m004. -* Rust crypto: set a timeout on outgoing HTTP requests ([#4761](https://github.com/matrix-org/matrix-js-sdk/pull/4761)). Contributed by @richvdh. -* Switch sliding sync support to simplified sliding sync ([#4400](https://github.com/matrix-org/matrix-js-sdk/pull/4400)). Contributed by @dbkr. - - -Changes in [37.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.2.0) (2025-03-25) -================================================================================================== -## ✨ Features - -* Add reportRoom API ([#4753](https://github.com/matrix-org/matrix-js-sdk/pull/4753)). Contributed by @Half-Shot. -* MatrixRTC: New membership manager ([#4726](https://github.com/matrix-org/matrix-js-sdk/pull/4726)). Contributed by @toger5. -* Add disableKeyStorage() to crypto API ([#4742](https://github.com/matrix-org/matrix-js-sdk/pull/4742)). Contributed by @dbkr. - -## 🐛 Bug Fixes - -* Allow port differing in OIDC dynamic registration URIs ([#4749](https://github.com/matrix-org/matrix-js-sdk/pull/4749)). Contributed by @t3chguy. -* OIDC: only pass logo\_uri, policy\_uri, tos\_uri if they conform to "common base" ([#4748](https://github.com/matrix-org/matrix-js-sdk/pull/4748)). Contributed by @t3chguy. - - -Changes in [37.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.1.0) (2025-03-11) -================================================================================================== -## 🦖 Deprecations - -* MatrixRTC: MembershipManager test cases and deprecation of MatrixRTCSession.room ([#4713](https://github.com/matrix-org/matrix-js-sdk/pull/4713)). Contributed by @toger5. - -## ✨ Features - -* Add `EventType.SecretRequest` and `EventType.SecretSend` ([#4728](https://github.com/matrix-org/matrix-js-sdk/pull/4728)). Contributed by @richvdh. -* Attest npm package provenance ([#4724](https://github.com/matrix-org/matrix-js-sdk/pull/4724)). Contributed by @t3chguy. -* Report backup key import progress on start and improve types ([#4711](https://github.com/matrix-org/matrix-js-sdk/pull/4711)). Contributed by @ajbura. - -## 🐛 Bug Fixes - -* Handle unexpected token refresh failures gracefully ([#4731](https://github.com/matrix-org/matrix-js-sdk/pull/4731)). Contributed by @t3chguy. -* Fix idempotency issue around token refresh ([#4730](https://github.com/matrix-org/matrix-js-sdk/pull/4730)). Contributed by @t3chguy. -* Delete the dehydrated device when resetEncryption is called ([#4727](https://github.com/matrix-org/matrix-js-sdk/pull/4727)). Contributed by @uhoreg. - - -Changes in [37.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v37.0.0) (2025-02-25) -================================================================================================== -## 🚨 BREAKING CHANGES - -* Remove deprecated `PrefixedLogger` interface ([#4705](https://github.com/matrix-org/matrix-js-sdk/pull/4705)). Contributed by @richvdh. -* Remove legacy crypto ([#4653](https://github.com/matrix-org/matrix-js-sdk/pull/4653)). Contributed by @florianduros. - -## 🦖 Deprecations - -* Improve types around User Interactive Auth ([#4709](https://github.com/matrix-org/matrix-js-sdk/pull/4709)). Contributed by @t3chguy. - -## ✨ Features - -* Fix typos in client.ts ([#4715](https://github.com/matrix-org/matrix-js-sdk/pull/4715)). Contributed by @toger5. -* Enable key upload to backups where we have the decryption key ([#4677](https://github.com/matrix-org/matrix-js-sdk/pull/4677)). Contributed by @ajbura. -* Remove deprecated `PrefixedLogger` interface ([#4705](https://github.com/matrix-org/matrix-js-sdk/pull/4705)). Contributed by @richvdh. -* `MatrixClient.setAccountData`: await remote echo. ([#4695](https://github.com/matrix-org/matrix-js-sdk/pull/4695)). Contributed by @richvdh. - -## 🐛 Bug Fixes - -* Improve types around User Interactive Auth ([#4709](https://github.com/matrix-org/matrix-js-sdk/pull/4709)). Contributed by @t3chguy. -* Fix `resetEncryption` to remove secrets in 4S ([#4683](https://github.com/matrix-org/matrix-js-sdk/pull/4683)). Contributed by @florianduros. - - -Changes in [36.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v36.2.0) (2025-02-11) -================================================================================================== -## 🦖 Deprecations - -* [Backport staging] Deprecate parameter and functions using legacy crypto in `models/event.ts` ([#4700](https://github.com/matrix-org/matrix-js-sdk/pull/4700)). Contributed by @RiotRobot. - -## ✨ Features - -* Improve types around Terms ([#4674](https://github.com/matrix-org/matrix-js-sdk/pull/4674)). Contributed by @t3chguy. -* Provide more options for starting dehydration ([#4664](https://github.com/matrix-org/matrix-js-sdk/pull/4664)). Contributed by @uhoreg. -* Device Dehydration | js-sdk: store/load dehydration key ([#4599](https://github.com/matrix-org/matrix-js-sdk/pull/4599)). Contributed by @BillCarsonFr. -* Add unspecced backup disable flag ([#4661](https://github.com/matrix-org/matrix-js-sdk/pull/4661)). Contributed by @dbkr. -* Switch OIDC primarily to new `/auth_metadata` API ([#4626](https://github.com/matrix-org/matrix-js-sdk/pull/4626)). Contributed by @t3chguy. -* Add `CryptoApi.resetEncryption` ([#4614](https://github.com/matrix-org/matrix-js-sdk/pull/4614)). Contributed by @florianduros. - -## 🐛 Bug Fixes - -* Fix topic types ([#4678](https://github.com/matrix-org/matrix-js-sdk/pull/4678)). Contributed by @Half-Shot. -* Handle empty m.room.topic ([#4673](https://github.com/matrix-org/matrix-js-sdk/pull/4673)). Contributed by @Half-Shot. -* `CryptoApi.resetEncryption` should always create a new key backup ([#4648](https://github.com/matrix-org/matrix-js-sdk/pull/4648)). Contributed by @florianduros. - - -Changes in [36.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v36.1.0) (2025-01-28) -================================================================================================== -## ✨ Features - -* Deprecate `MatrixClient.login` and replace with `loginRequest` ([#4632](https://github.com/matrix-org/matrix-js-sdk/pull/4632)). Contributed by @richvdh. -* Use `SyncCryptoCallback` api instead of legacy crypto in sliding sync ([#4624](https://github.com/matrix-org/matrix-js-sdk/pull/4624)). Contributed by @florianduros. -* Distinguish room state and timeline events in embedded clients ([#4574](https://github.com/matrix-org/matrix-js-sdk/pull/4574)). Contributed by @robintown. -* Allow setting default secret storage key id to null ([#4615](https://github.com/matrix-org/matrix-js-sdk/pull/4615)). Contributed by @florianduros. -* Add authenticated media to getAvatarUrl in room and room-member models ([#4616](https://github.com/matrix-org/matrix-js-sdk/pull/4616)). Contributed by @m004. -* Send MSC3981 'recurse' param on `/relations` endpoint on Matrix 1.10 servers ([#4023](https://github.com/matrix-org/matrix-js-sdk/pull/4023)). Contributed by @dbkr. - -## 🐛 Bug Fixes - -* [Backport staging] Revert "Distinguish room state and timeline events in embedded clients (#4574)" ([#4657](https://github.com/matrix-org/matrix-js-sdk/pull/4657)). Contributed by @RiotRobot. -* Change randomString et al to be secure ([#4621](https://github.com/matrix-org/matrix-js-sdk/pull/4621)). Contributed by @dbkr. -* Fix issue with sentinels being incorrect on m.room.member events ([#4609](https://github.com/matrix-org/matrix-js-sdk/pull/4609)). Contributed by @t3chguy. - - -Changes in [36.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v36.0.0) (2025-01-14) -================================================================================================== -## 🚨 BREAKING CHANGES - -* Remove support for "legacy" MSC3898 group calling in MatrixRTCSession and CallMembership ([#4583](https://github.com/matrix-org/matrix-js-sdk/pull/4583)). Contributed by @toger5. - -## ✨ Features - -* MatrixRTC: Implement expiry logic for CallMembership and additional test coverage ([#4587](https://github.com/matrix-org/matrix-js-sdk/pull/4587)). Contributed by @toger5. - -## 🐛 Bug Fixes - -* Don't retry on 4xx responses ([#4601](https://github.com/matrix-org/matrix-js-sdk/pull/4601)). Contributed by @dbkr. -* Upgrade matrix-sdk-crypto-wasm to 12.1.0 ([#4596](https://github.com/matrix-org/matrix-js-sdk/pull/4596)). Contributed by @andybalaam. -* Avoid key prompts when resetting crypto ([#4586](https://github.com/matrix-org/matrix-js-sdk/pull/4586)). Contributed by @dbkr. -* Handle when aud OIDC claim is an Array ([#4584](https://github.com/matrix-org/matrix-js-sdk/pull/4584)). Contributed by @liamdiprose. -* Save the key backup key to 4S during `bootstrapSecretStorage ` ([#4542](https://github.com/matrix-org/matrix-js-sdk/pull/4542)). Contributed by @dbkr. -* Only re-prepare MatrixrRTC delayed disconnection event on 404 ([#4575](https://github.com/matrix-org/matrix-js-sdk/pull/4575)). Contributed by @toger5. - - -Changes in [35.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v35.1.0) (2024-12-18) -================================================================================================== -This release updates matrix-sdk-crypto-wasm to fix a bug which could prevent loading stored crypto state from storage. - -## 🐛 Bug Fixes - -* Upgrade matrix-sdk-crypto-wasm to 1.11.0 ([#4593](https://github.com/matrix-org/matrix-js-sdk/pull/4593)). - - -Changes in [35.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v35.0.0) (2024-12-17) -================================================================================================== -## 🚨 BREAKING CHANGES - -This release contains several breaking changes which will need code changes in your app. Most notably, `initCrypto()` -no longer exists and has been moved to `initLegacyCrypto()` in preparation for the eventual removal of Olm. You can -continue to use legacy Olm crypto for now by calling `initLegacyCrypto()` instead. - -You may also need to make further changes if you use more advanced APIs. See the individual PRs (listed in order of size of change) for specific APIs changed and how to migrate. - -* Rename `MatrixClient.initCrypto` into `MatrixClient.initLegacyCrypto` ([#4567](https://github.com/matrix-org/matrix-js-sdk/pull/4567)). Contributed by @florianduros. -* Support MSC4222 `state_after` ([#4487](https://github.com/matrix-org/matrix-js-sdk/pull/4487)). Contributed by @dbkr. -* Avoid use of Buffer as it does not exist in the Web natively ([#4569](https://github.com/matrix-org/matrix-js-sdk/pull/4569)). Contributed by @t3chguy. - -## 🦖 Deprecations - -* Deprecate remaining legacy functions and move `CryptoEvent.LegacyCryptoStoreMigrationProgress` handler ([#4560](https://github.com/matrix-org/matrix-js-sdk/pull/4560)). Contributed by @florianduros. - -## ✨ Features - -* Rename `MatrixClient.initCrypto` into `MatrixClient.initLegacyCrypto` ([#4567](https://github.com/matrix-org/matrix-js-sdk/pull/4567)). Contributed by @florianduros. -* Avoid use of Buffer as it does not exist in the Web natively ([#4569](https://github.com/matrix-org/matrix-js-sdk/pull/4569)). Contributed by @t3chguy. -* Re-send MatrixRTC media encryption keys for a new joiner even if a rotation is in progress ([#4561](https://github.com/matrix-org/matrix-js-sdk/pull/4561)). Contributed by @hughns. -* Support MSC4222 `state_after` ([#4487](https://github.com/matrix-org/matrix-js-sdk/pull/4487)). Contributed by @dbkr. -* Revert "Fix room state being updated with old (now overwritten) state and emitting for those updates. (#4242)" ([#4532](https://github.com/matrix-org/matrix-js-sdk/pull/4532)). Contributed by @toger5. - -## 🐛 Bug Fixes - -* Fix age field check in event echo processing ([#3635](https://github.com/matrix-org/matrix-js-sdk/pull/3635)). Contributed by @stas-demydiuk. - - -Changes in [34.13.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.13.0) (2024-12-03) -==================================================================================================== -## 🦖 Deprecations - -* Deprecate `MatrixClient.isEventSenderVerified` ([#4527](https://github.com/matrix-org/matrix-js-sdk/pull/4527)). Contributed by @florianduros. -* Add `restoreKeybackup` to `CryptoApi`. ([#4476](https://github.com/matrix-org/matrix-js-sdk/pull/4476)). Contributed by @florianduros. - -## ✨ Features - -* Ensure we disambiguate display names which look like MXIDs ([#4540](https://github.com/matrix-org/matrix-js-sdk/pull/4540)). Contributed by @t3chguy. -* Add `CryptoApi.getBackupInfo` ([#4512](https://github.com/matrix-org/matrix-js-sdk/pull/4512)). Contributed by @florianduros. -* Fix local echo in embedded mode ([#4498](https://github.com/matrix-org/matrix-js-sdk/pull/4498)). Contributed by @toger5. -* Add `restoreKeybackup` to `CryptoApi`. ([#4476](https://github.com/matrix-org/matrix-js-sdk/pull/4476)). Contributed by @florianduros. - -## 🐛 Bug Fixes - -* Fix `RustBackupManager` remaining values after current backup removal ([#4537](https://github.com/matrix-org/matrix-js-sdk/pull/4537)). Contributed by @florianduros. - - -Changes in [34.12.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.12.0) (2024-11-19) -==================================================================================================== -## 🦖 Deprecations - -* Deprecate `MatrixClient.getKeyBackupVersion` ([#4505](https://github.com/matrix-org/matrix-js-sdk/pull/4505)). Contributed by @florianduros. -* Deprecate unused callbacks in `CryptoCallbacks` ([#4501](https://github.com/matrix-org/matrix-js-sdk/pull/4501)). Contributed by @florianduros. - -## ✨ Features - -* Handle M\_MAX\_DELAY\_EXCEEDED errors ([#4511](https://github.com/matrix-org/matrix-js-sdk/pull/4511)). Contributed by @AndrewFerr. -* Allow configuration of MatrixRTC timers when calling joinRoomSession() ([#4510](https://github.com/matrix-org/matrix-js-sdk/pull/4510)). Contributed by @hughns. -* When state says you've left ongoing call, rejoin ([#4342](https://github.com/matrix-org/matrix-js-sdk/pull/4342)). Contributed by @AndrewFerr. -* Remove redundant type arguments in function call ([#4507](https://github.com/matrix-org/matrix-js-sdk/pull/4507)). Contributed by @AndrewFerr. -* MatrixRTCSession: handle rate limit errors ([#4494](https://github.com/matrix-org/matrix-js-sdk/pull/4494)). Contributed by @AndrewFerr. -* Send/receive error details with widgets ([#4492](https://github.com/matrix-org/matrix-js-sdk/pull/4492)). Contributed by @AndrewFerr. -* Capture HTTP error response headers \& handle Retry-After header (MSC4041) ([#4471](https://github.com/matrix-org/matrix-js-sdk/pull/4471)). Contributed by @AndrewFerr. -* Add RoomWidgetClient.sendToDeviceViaWidgetApi() ([#4475](https://github.com/matrix-org/matrix-js-sdk/pull/4475)). Contributed by @hughns. - - -Changes in [34.11.1](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.11.1) (2024-11-12) -==================================================================================================== -# Security -- Fixes for [CVE-2024-50336](https://nvd.nist.gov/vuln/detail/CVE-2024-50336) / [GHSA-xvg8-m4x3-w6xr](https://github.com/matrix-org/matrix-js-sdk/security/advisories/GHSA-xvg8-m4x3-w6xr). - -Changes in [34.11.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.11.0) (2024-11-12) -==================================================================================================== -# Security -- Fixes for [CVE-2024-50336](https://nvd.nist.gov/vuln/detail/CVE-2024-50336) / [GHSA-xvg8-m4x3-w6xr](https://github.com/matrix-org/matrix-js-sdk/security/advisories/GHSA-xvg8-m4x3-w6xr). - -Changes in [34.10.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.10.0) (2024-11-05) -==================================================================================================== -## 🦖 Deprecations - -* Deprecate `CreateSecretStorageOpts.keyBackupInfo` used in `CryptoApi.bootstrapSecretStorage.` ([#4474](https://github.com/matrix-org/matrix-js-sdk/pull/4474)). Contributed by @florianduros. -* Add CryptoApi.encryptToDeviceMessages() and deprecate Crypto.encryptAndSendToDevices() ([#4380](https://github.com/matrix-org/matrix-js-sdk/pull/4380)). Contributed by @hughns. -* Remove abandoned MSC3886, MSC3903, MSC3906 experimental implementations ([#4469](https://github.com/matrix-org/matrix-js-sdk/pull/4469)). Contributed by @t3chguy. -* Deprecate `MatrixClient.getDehydratedDevice` ([#4467](https://github.com/matrix-org/matrix-js-sdk/pull/4467)). Contributed by @florianduros. -* Deprecate top level crypto events re-export ([#4444](https://github.com/matrix-org/matrix-js-sdk/pull/4444)). Contributed by @florianduros. - -## ✨ Features - -* Add CryptoApi.encryptToDeviceMessages() and deprecate Crypto.encryptAndSendToDevices() ([#4380](https://github.com/matrix-org/matrix-js-sdk/pull/4380)). Contributed by @hughns. -* Do not rotate MatrixRTC media encryption key when a new member joins a session ([#4472](https://github.com/matrix-org/matrix-js-sdk/pull/4472)). Contributed by @hughns. -* Avoid `|` notation in log messages ([#4473](https://github.com/matrix-org/matrix-js-sdk/pull/4473)). Contributed by @richvdh. -* Refactor/simplify Promises in MatrixRTCSession ([#4466](https://github.com/matrix-org/matrix-js-sdk/pull/4466)). Contributed by @AndrewFerr. -* Prepare delayed call leave events more reliably ([#4447](https://github.com/matrix-org/matrix-js-sdk/pull/4447)). Contributed by @AndrewFerr. - -## 🐛 Bug Fixes - -* Fix DelayedEventInfo type ([#4446](https://github.com/matrix-org/matrix-js-sdk/pull/4446)). Contributed by @AndrewFerr. - - -Changes in [34.9.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.9.0) (2024-10-22) -================================================================================================== -## 🦖 Deprecations - -* Deprecate the crypto events which are not used by the rust-crypto ([#4442](https://github.com/matrix-org/matrix-js-sdk/pull/4442)). Contributed by @florianduros. - -## 🐛 Bug Fixes - -* Fix the rust crypto import in esm environments. ([#4445](https://github.com/matrix-org/matrix-js-sdk/pull/4445)). Contributed by @saul-jb. -* Fix MatrixRTC sender key wrapping ([#4441](https://github.com/matrix-org/matrix-js-sdk/pull/4441)). Contributed by @hughns. - - -Changes in [34.8.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.8.0) (2024-10-15) -================================================================================================== -This release removes insecure functionality, resolving CVE-2024-47080 / GHSA-4jf8-g8wp-cx7c. - -Changes in [34.7.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.7.0) (2024-10-08) -================================================================================================== -## 🦖 Deprecations - -* RTCSession cleanup: deprecate getKeysForParticipant() and getEncryption(); add emitEncryptionKeys() ([#4427](https://github.com/matrix-org/matrix-js-sdk/pull/4427)). Contributed by @hughns. - -## ✨ Features - -* Bump matrix-rust-sdk to 9.1.0 ([#4435](https://github.com/matrix-org/matrix-js-sdk/pull/4435)). Contributed by @richvdh. -* Rotate Matrix RTC media encryption key when a new member joins a call for Post Compromise Security ([#4422](https://github.com/matrix-org/matrix-js-sdk/pull/4422)). Contributed by @hughns. -* Update media event content types to include captions ([#4403](https://github.com/matrix-org/matrix-js-sdk/pull/4403)). Contributed by @tulir. -* Update OIDC registration types to match latest MSC2966 state ([#4432](https://github.com/matrix-org/matrix-js-sdk/pull/4432)). Contributed by @t3chguy. -* Add `CryptoApi.pinCurrentUserIdentity` and `UserIdentity.needsUserApproval` ([#4415](https://github.com/matrix-org/matrix-js-sdk/pull/4415)). Contributed by @richvdh. - - -Changes in [34.6.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.6.0) (2024-09-24) -================================================================================================== -## 🦖 Deprecations - -* Element-R: Mark unsupported MatrixClient methods as deprecated ([#4389](https://github.com/matrix-org/matrix-js-sdk/pull/4389)). Contributed by @richvdh. - -## ✨ Features - -* Add crypto mode setting for invisible crypto, and apply it to decrypting events ([#4407](https://github.com/matrix-org/matrix-js-sdk/pull/4407)). Contributed by @uhoreg. -* Don't share full key history for RTC per-participant encryption ([#4406](https://github.com/matrix-org/matrix-js-sdk/pull/4406)). Contributed by @hughns. -* Export membership types ([#4405](https://github.com/matrix-org/matrix-js-sdk/pull/4405)). Contributed by @Johennes. -* Fix sending redacts in embedded (widget) mode ([#4398](https://github.com/matrix-org/matrix-js-sdk/pull/4398)). Contributed by @toger5. -* Expose the event ID of a call membership ([#4395](https://github.com/matrix-org/matrix-js-sdk/pull/4395)). Contributed by @robintown. -* MSC4133 - Extended profiles ([#4391](https://github.com/matrix-org/matrix-js-sdk/pull/4391)). Contributed by @Half-Shot. - - -Changes in [34.5.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.5.0) (2024-09-10) -================================================================================================== -## 🦖 Deprecations - -* Deprecate unused callback hooks `CryptoCallbacks.onSecretRequested` and `CryptoCallbacks.getDehydrationKey` ([#4376](https://github.com/matrix-org/matrix-js-sdk/pull/4376)). Contributed by @richvdh. - - -Changes in [34.4.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.4.0) (2024-08-27) -================================================================================================== -## ✨ Features - -* Use non-legacy calls if any are found ([#4337](https://github.com/matrix-org/matrix-js-sdk/pull/4337)). Contributed by @AndrewFerr. - -## 🐛 Bug Fixes - -* Retry event decryption failures on first failure ([#4346](https://github.com/matrix-org/matrix-js-sdk/pull/4346)). Contributed by @hughns. -* Ensure "type" = "module" ES declaration in pre-release.sh ([#4350](https://github.com/matrix-org/matrix-js-sdk/pull/4350)). Contributed by @BLCK-B. -* Handle MatrixRTC encryption keys arriving out of order ([#4345](https://github.com/matrix-org/matrix-js-sdk/pull/4345)). Contributed by @hughns. -* Resend MatrixRTC encryption keys if a membership has changed ([#4343](https://github.com/matrix-org/matrix-js-sdk/pull/4343)). Contributed by @hughns. - - -Changes in [34.3.1](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.3.1) (2024-08-20) -================================================================================================== -# Security -- Fixes for [CVE-2024-42369](https://nvd.nist.gov/vuln/detail/CVE-2024-42369) / [GHSA-vhr5-g3pm-49fm](https://github.com/matrix-org/matrix-js-sdk/security/advisories/GHSA-vhr5-g3pm-49fm). - -Changes in [34.3.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.3.0) (2024-08-13) -================================================================================================== -## ✨ Features - -* Bump matrix-widget-api ([#4336](https://github.com/matrix-org/matrix-js-sdk/pull/4336)). Contributed by @AndrewFerr. -* Also check for MSC3757 for session state keys ([#4334](https://github.com/matrix-org/matrix-js-sdk/pull/4334)). Contributed by @AndrewFerr. -* Support Futures via widgets ([#4311](https://github.com/matrix-org/matrix-js-sdk/pull/4311)). Contributed by @AndrewFerr. -* Support MSC4140: Delayed events (Futures) ([#4294](https://github.com/matrix-org/matrix-js-sdk/pull/4294)). Contributed by @AndrewFerr. -* Handle late-arriving `m.room_key.withheld` messages ([#4310](https://github.com/matrix-org/matrix-js-sdk/pull/4310)). Contributed by @richvdh. -* Be specific about what is considered a MSC4143 call member event. ([#4328](https://github.com/matrix-org/matrix-js-sdk/pull/4328)). Contributed by @toger5. -* Add index.ts for matrixrtc module ([#4314](https://github.com/matrix-org/matrix-js-sdk/pull/4314)). Contributed by @toger5. - -## 🐛 Bug Fixes - -* Fix hashed ID server lookups with no Olm ([#4333](https://github.com/matrix-org/matrix-js-sdk/pull/4333)). Contributed by @dbkr. - - -Changes in [34.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.2.0) (2024-07-30) -================================================================================================== -## 🐛 Bug Fixes - -* Element-R: detect "withheld key" UTD errors, and mark them as such ([#4302](https://github.com/matrix-org/matrix-js-sdk/pull/4302)). Contributed by @richvdh. - - -Changes in [34.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.1.0) (2024-07-16) -================================================================================================== -## ✨ Features - -* Add ability to choose how many timeline events to sync when peeking ([#4300](https://github.com/matrix-org/matrix-js-sdk/pull/4300)). Contributed by @jgarplind. -* Remove redundant hack for using the old pickle key in rust crypto ([#4282](https://github.com/matrix-org/matrix-js-sdk/pull/4282)). Contributed by @richvdh. -* Add fetching the well known in embedded mode. ([#4259](https://github.com/matrix-org/matrix-js-sdk/pull/4259)). Contributed by @toger5. - -## 🐛 Bug Fixes - -* Fix room state being updated with old (now overwritten) state and emitting for those updates. ([#4242](https://github.com/matrix-org/matrix-js-sdk/pull/4242)). Contributed by @toger5. -* Fix incorrect "Olm is not available" errors ([#4301](https://github.com/matrix-org/matrix-js-sdk/pull/4301)). Contributed by @richvdh. -* Fix build for example script ([#4286](https://github.com/matrix-org/matrix-js-sdk/pull/4286)). Contributed by @richvdh. -* Declare matrix-js-sdk as an ES module ([#4285](https://github.com/matrix-org/matrix-js-sdk/pull/4285)). Contributed by @richvdh. - - -Changes in [34.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v34.0.0) (2024-07-08) -================================================================================================== -## 🚨 BREAKING CHANGES - -* Fetch capabilities in the background ([#4246](https://github.com/matrix-org/matrix-js-sdk/pull/4246)). Contributed by @dbkr. - -## ✨ Features - -* Prefix the user+device state key if needed ([#4262](https://github.com/matrix-org/matrix-js-sdk/pull/4262)). Contributed by @AndrewFerr. -* Use legacy call membership if anyone else is ([#4260](https://github.com/matrix-org/matrix-js-sdk/pull/4260)). Contributed by @AndrewFerr. -* Fetch capabilities in the background ([#4246](https://github.com/matrix-org/matrix-js-sdk/pull/4246)). Contributed by @dbkr. -* Use server name instead of homeserver url to allow well-known lookups during QR OIDC reciprocation ([#4233](https://github.com/matrix-org/matrix-js-sdk/pull/4233)). Contributed by @t3chguy. -* Add via parameter for MSC4156 ([#4247](https://github.com/matrix-org/matrix-js-sdk/pull/4247)). Contributed by @Johennes. -* Make the js-sdk compatible with MSC preferred foci and active focus. ([#4195](https://github.com/matrix-org/matrix-js-sdk/pull/4195)). Contributed by @toger5. -* Replace usages of setImmediate with setTimeout for wider compatibility ([#4240](https://github.com/matrix-org/matrix-js-sdk/pull/4240)). Contributed by @t3chguy. - -## 🐛 Bug Fixes - -* [Backport staging] Fix "Unable to restore session" error ([#4299](https://github.com/matrix-org/matrix-js-sdk/pull/4299)). Contributed by @RiotRobot. -* [Backport staging] Fix error when sending encrypted messages in large rooms ([#4297](https://github.com/matrix-org/matrix-js-sdk/pull/4297)). Contributed by @RiotRobot. -* Element-R: Fix resource leaks in verification logic ([#4263](https://github.com/matrix-org/matrix-js-sdk/pull/4263)). Contributed by @richvdh. -* Upgrade Rust Crypto SDK to 6.1.0 ([#4261](https://github.com/matrix-org/matrix-js-sdk/pull/4261)). Contributed by @richvdh. -* Correctly transform base64 with multiple instances of + or / ([#4252](https://github.com/matrix-org/matrix-js-sdk/pull/4252)). Contributed by @robintown. -* Work around spec bug for m.room.avatar state event content type ([#4245](https://github.com/matrix-org/matrix-js-sdk/pull/4245)). Contributed by @t3chguy. - - -Changes in [33.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v33.1.0) (2024-06-18) -================================================================================================== -## ✨ Features - -* MSC4108 support OIDC QR code login ([#4134](https://github.com/matrix-org/matrix-js-sdk/pull/4134)). Contributed by @t3chguy. -* Add crypto methods for export and import of secrets bundle ([#4227](https://github.com/matrix-org/matrix-js-sdk/pull/4227)). Contributed by @t3chguy. - -## 🐛 Bug Fixes - -* Fix screen sharing in recent Chrome ([#4243](https://github.com/matrix-org/matrix-js-sdk/pull/4243)). Contributed by @RiotRobot. -* Fix incorrect assumptions about required fields in /search response ([#4228](https://github.com/matrix-org/matrix-js-sdk/pull/4228)). Contributed by @t3chguy. -* Fix the queueToDevice tests for the new fakeindexeddb ([#4225](https://github.com/matrix-org/matrix-js-sdk/pull/4225)). Contributed by @dbkr. - - -Changes in [33.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v33.0.0) (2024-06-04) -================================================================================================== -## 🚨 BREAKING CHANGES - -* Remove more deprecated methods, fields, and exports ([#4217](https://github.com/matrix-org/matrix-js-sdk/pull/4217)). Contributed by @t3chguy. -* Remove deprecated methods and fields ([#4201](https://github.com/matrix-org/matrix-js-sdk/pull/4201)). Contributed by @t3chguy. - -## 🦖 Deprecations - -* Remove more deprecated methods, fields, and exports ([#4217](https://github.com/matrix-org/matrix-js-sdk/pull/4217)). Contributed by @t3chguy. -* Remove deprecated methods and fields ([#4201](https://github.com/matrix-org/matrix-js-sdk/pull/4201)). Contributed by @t3chguy. - -## ✨ Features - -* `initRustCrypto`: allow app to pass in the store key directly ([#4210](https://github.com/matrix-org/matrix-js-sdk/pull/4210)). Contributed by @richvdh. -* Preserve ESM for async imports to work correctly ([#4187](https://github.com/matrix-org/matrix-js-sdk/pull/4187)). Contributed by @ms-dosx86. - -## 🐛 Bug Fixes - -* Don't run migration for Rust crypto if the legacy store is empty ([#4218](https://github.com/matrix-org/matrix-js-sdk/pull/4218)). Contributed by @andybalaam. -* Bump matrix-sdk-crypto-wasm to 5.0.0 ([#4216](https://github.com/matrix-org/matrix-js-sdk/pull/4216)). Contributed by @richvdh. -* Wire up verification cancel \& mismatch for rust crypto ([#4202](https://github.com/matrix-org/matrix-js-sdk/pull/4202)). Contributed by @t3chguy. -* Only pass id\_server if we had one to begin with ([#4200](https://github.com/matrix-org/matrix-js-sdk/pull/4200)). Contributed by @t3chguy. - - -Changes in [32.4.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v32.4.0) (2024-05-22) -================================================================================================== -* No changes - - -Changes in [32.3.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v32.3.0) (2024-05-21) -================================================================================================== -## ✨ Features - -* Simplify OIDC types \& export `decodeIdToken` ([#4193](https://github.com/matrix-org/matrix-js-sdk/pull/4193)). Contributed by @t3chguy. -* Add helpers for authenticated media, and associated documentation ([#4185](https://github.com/matrix-org/matrix-js-sdk/pull/4185)). Contributed by @turt2live. - -## 🐛 Bug Fixes - -* Fix state\_events.ts types ([#4196](https://github.com/matrix-org/matrix-js-sdk/pull/4196)). Contributed by @t3chguy. -* Fix sendEventHttpRequest for `m.room.redaction` events without `redacts` ([#4192](https://github.com/matrix-org/matrix-js-sdk/pull/4192)). Contributed by @t3chguy. - - -Changes in [32.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v32.2.0) (2024-05-07) -================================================================================================== -## ✨ Features - -* Use a different error code for UTDs when user was not in the room ([#4172](https://github.com/matrix-org/matrix-js-sdk/pull/4172)). Contributed by @uhoreg. -* Modernize window.crypto access constants ([#4169](https://github.com/matrix-org/matrix-js-sdk/pull/4169)). Contributed by @turt2live. -* Improve compliance with MSC3266 ([#4155](https://github.com/matrix-org/matrix-js-sdk/pull/4155)). Contributed by @AndrewFerr. -* Add comment to make clear that RoomStateEvent.Events does not update related objects in the js-sdk ([#4152](https://github.com/matrix-org/matrix-js-sdk/pull/4152)). Contributed by @toger5. -* Crypto: use a new error code for UTDs from device-relative historical events ([#4139](https://github.com/matrix-org/matrix-js-sdk/pull/4139)). Contributed by @richvdh. - -## 🐛 Bug Fixes - -* Element-R: Fix rust migration when ssss secret are stored not encryted in cache (old legacy behavior) ([#4168](https://github.com/matrix-org/matrix-js-sdk/pull/4168)). Contributed by @BillCarsonFr. - - -Changes in [32.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v32.1.0) (2024-04-23) -================================================================================================== -## ✨ Features - -* Add support for device dehydration v2 (Element R) ([#4062](https://github.com/matrix-org/matrix-js-sdk/pull/4062)). Contributed by @uhoreg. -* OIDC improvements in prep of OIDC-QR reciprocation ([#4149](https://github.com/matrix-org/matrix-js-sdk/pull/4149)). Contributed by @t3chguy. - -## 🐛 Bug Fixes - -* Validate backup private key before migrating it ([#4114](https://github.com/matrix-org/matrix-js-sdk/pull/4114)). Contributed by @BillCarsonFr. -* ElementR| Retry query backup until it works during migration to avoid spurious correption error popup ([#4113](https://github.com/matrix-org/matrix-js-sdk/pull/4113)). Contributed by @BillCarsonFr. - - -Changes in [32.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v32.0.0) (2024-04-09) -================================================================================================== -## 🚨 BREAKING CHANGES - -* Remove various deprecated methods \& re-exports ([#4125](https://github.com/matrix-org/matrix-js-sdk/pull/4125)). Contributed by @t3chguy. -* Remove the logic that throws when the lazy loading options has changed. ([#4124](https://github.com/matrix-org/matrix-js-sdk/pull/4124)). Contributed by @langleyd. -* Fix highlights from threads disappearing on new messages ([#4106](https://github.com/matrix-org/matrix-js-sdk/pull/4106)). Contributed by @dbkr. - -## ✨ Features - -* Add new `decryptExistingEvent` test helper ([#4133](https://github.com/matrix-org/matrix-js-sdk/pull/4133)). Contributed by @richvdh. -* Improve types for `sendEvent` ([#4108](https://github.com/matrix-org/matrix-js-sdk/pull/4108)). Contributed by @t3chguy. -* Remove various deprecated methods \& re-exports ([#4125](https://github.com/matrix-org/matrix-js-sdk/pull/4125)). Contributed by @t3chguy. -* Add new enum for verification methods. ([#4129](https://github.com/matrix-org/matrix-js-sdk/pull/4129)). Contributed by @richvdh. -* Add some test utils in a new entrypoint ([#4127](https://github.com/matrix-org/matrix-js-sdk/pull/4127)). Contributed by @richvdh. -* Improve types for `sendStateEvent` ([#4105](https://github.com/matrix-org/matrix-js-sdk/pull/4105)). Contributed by @t3chguy. - -## 🐛 Bug Fixes - -* Improve types for `IPowerLevelsContent` and `hasSufficientPowerLevelFor` ([#4128](https://github.com/matrix-org/matrix-js-sdk/pull/4128)). Contributed by @galash13. -* Remove the logic that throws when the lazy loading options has changed. ([#4124](https://github.com/matrix-org/matrix-js-sdk/pull/4124)). Contributed by @langleyd. -* Fix highlights from threads disappearing on new messages ([#4106](https://github.com/matrix-org/matrix-js-sdk/pull/4106)). Contributed by @dbkr. -* Extend logic for local notification processing to threads ([#4111](https://github.com/matrix-org/matrix-js-sdk/pull/4111)). Contributed by @dbkr. -* Fix public rooms post request search params and body ([#4110](https://github.com/matrix-org/matrix-js-sdk/pull/4110)). Contributed by @ajbura. -* Fix bugs with the first reply to a thread ([#4104](https://github.com/matrix-org/matrix-js-sdk/pull/4104)). Contributed by @dbkr. - - -Changes in [31.6.1](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v31.6.1) (2024-03-28) -================================================================================================== -## 🐛 Bug Fixes - -* Fix merging of default push rules ([#4136](https://github.com/matrix-org/matrix-js-sdk/pull/4136)). - - -Changes in [31.6.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v31.6.0) (2024-03-26) -================================================================================================== -## ✨ Features - -* Introduce Membership TS type (take 2) ([#4107](https://github.com/matrix-org/matrix-js-sdk/pull/4107)). Contributed by @andybalaam. -* fix automatic DM avatar with functional members ([#4017](https://github.com/matrix-org/matrix-js-sdk/pull/4017)). Contributed by @HarHarLinks. -* Export types describing all specced media event formats ([#4092](https://github.com/matrix-org/matrix-js-sdk/pull/4092)). Contributed by @t3chguy. -* Add `.m.rule.is_room_mention` push rule to DEFAULT\_OVERRIDE\_RULES ([#4100](https://github.com/matrix-org/matrix-js-sdk/pull/4100)). Contributed by @t3chguy. -* Make sending ContentLoaded optional for a widgetClient ([#4086](https://github.com/matrix-org/matrix-js-sdk/pull/4086)). Contributed by @toger5. - -## 🐛 Bug Fixes - -* Migrate own identity local trust to rust crypto ([#4090](https://github.com/matrix-org/matrix-js-sdk/pull/4090)). Contributed by @BillCarsonFr. -* Fix race condition with sliding sync extensions ([#4089](https://github.com/matrix-org/matrix-js-sdk/pull/4089)). Contributed by @zzorba. - - -Changes in [31.5.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v31.5.0) (2024-03-12) -================================================================================================== -## ✨ Features - -* Update MSC2965 OIDC Discovery implementation ([#4064](https://github.com/matrix-org/matrix-js-sdk/pull/4064)). Contributed by @t3chguy. - -## 🐛 Bug Fixes - -* Add basic retry for rust crypto outgoing requests ([#4061](https://github.com/matrix-org/matrix-js-sdk/pull/4061)). Contributed by @BillCarsonFr. - - -Changes in [31.4.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v31.4.0) (2024-02-27) -================================================================================================== -## ✨ Features - -* Validate `account_management_uri` and `account_management_actions_supported` from OIDC Issuer well-known ([#4074](https://github.com/matrix-org/matrix-js-sdk/pull/4074)). Contributed by @t3chguy. -* Allow specifying OIDC url state parameter for passing data to callback ([#4068](https://github.com/matrix-org/matrix-js-sdk/pull/4068)). Contributed by @t3chguy. -* Add getAuthIssuer method for MSC2965 ([#4071](https://github.com/matrix-org/matrix-js-sdk/pull/4071)). Contributed by @t3chguy. -* Allow specifying more OIDC client metadata for dynamic registration ([#4070](https://github.com/matrix-org/matrix-js-sdk/pull/4070)). Contributed by @t3chguy. -* Add unread marker event type ([#4069](https://github.com/matrix-org/matrix-js-sdk/pull/4069)). Contributed by @dbkr. -* Add "AsJson" forms of the key import/export methods ([#4057](https://github.com/matrix-org/matrix-js-sdk/pull/4057)). Contributed by @andybalaam. - -## 🐛 Bug Fixes - -* Ignore memberships of users that are not in the call ([#4065](https://github.com/matrix-org/matrix-js-sdk/pull/4065)). Contributed by @toger5. -* Await encrypted messages ([#4063](https://github.com/matrix-org/matrix-js-sdk/pull/4063)). Contributed by @toger5. -* ElementR | Ensure own user and device trust are updated after migration before giving back control to the app. ([#4059](https://github.com/matrix-org/matrix-js-sdk/pull/4059)). Contributed by @BillCarsonFr. -* Bump matrix-sdk-crypto-wasm to 4.5.0 ([#4060](https://github.com/matrix-org/matrix-js-sdk/pull/4060)). Contributed by @andybalaam. - - -Changes in [31.3.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v31.3.0) (2024-02-13) -================================================================================================== -## ✨ Features - -* Add expire\_ts compatibility to matrixRTC ([#4032](https://github.com/matrix-org/matrix-js-sdk/pull/4032)). Contributed by @toger5. -* Element-R: support for migration of the room list from legacy crypto ([#4036](https://github.com/matrix-org/matrix-js-sdk/pull/4036)). Contributed by @richvdh. -* Element-R: check persistent room list for encryption config ([#4035](https://github.com/matrix-org/matrix-js-sdk/pull/4035)). Contributed by @richvdh. -* Support optional MSC3860 redirects ([#4007](https://github.com/matrix-org/matrix-js-sdk/pull/4007)). Contributed by @turt2live. - -## 🐛 Bug Fixes - -* WebR: migrate the megolm session imported flag ([#4037](https://github.com/matrix-org/matrix-js-sdk/pull/4037)). Contributed by @BillCarsonFr. -* ElementR: fix emoji verification stalling when both ends hit start at the same time ([#4004](https://github.com/matrix-org/matrix-js-sdk/pull/4004)). Contributed by @uhoreg. -* Dependencies: Bump wasm bindings version to 4.3.0 ([#4042](https://github.com/matrix-org/matrix-js-sdk/pull/4042)). Contributed by @BillCarsonFr. -* Element R: emit events when devices have changed ([#4019](https://github.com/matrix-org/matrix-js-sdk/pull/4019)). Contributed by @uhoreg. -* ElementR: report invalid keys rather than failing to restore from backup ([#4006](https://github.com/matrix-org/matrix-js-sdk/pull/4006)). Contributed by @uhoreg. -* Make `timeline` a getter ([#4022](https://github.com/matrix-org/matrix-js-sdk/pull/4022)). Contributed by @florianduros. -* Implement getting verification cancellation info in Rust crypto ([#3947](https://github.com/matrix-org/matrix-js-sdk/pull/3947)). Contributed by @uhoreg. -* Fix crypto migration for megolm sessions with no sender key ([#4024](https://github.com/matrix-org/matrix-js-sdk/pull/4024)). Contributed by @richvdh. - - -Changes in [31.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v31.2.0) (2024-01-31) -================================================================================================== -## ✨ Features - -* Emit events during migration from libolm ([#3982](https://github.com/matrix-org/matrix-js-sdk/pull/3982)). Contributed by @richvdh. -* Support for migration from from libolm ([#3978](https://github.com/matrix-org/matrix-js-sdk/pull/3978)). Contributed by @richvdh. - -## 🐛 Bug Fixes - -* ElementR | backup: call expensive `roomKeyCounts` less often ([#4015](https://github.com/matrix-org/matrix-js-sdk/pull/4015)). Contributed by @BillCarsonFr. -* Decrypt and Import full backups in chunk with progress ([#4005](https://github.com/matrix-org/matrix-js-sdk/pull/4005)). Contributed by @BillCarsonFr. -* Fix new threads not appearing. ([#4009](https://github.com/matrix-org/matrix-js-sdk/pull/4009)). Contributed by @dbkr. - - -Changes in [31.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v31.1.0) (2024-01-19) -================================================================================================== -## ✨ Features - -* Broaden spec version support ([#4016](https://github.com/matrix-org/matrix-js-sdk/pull/4016)). Contributed by @RiotRobot. - - -Changes in [31.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v31.0.0) (2024-01-16) -================================================================================================== -## 🚨 BREAKING CHANGES - -* Bump minimum spec version to v1.5 ([#3970](https://github.com/matrix-org/matrix-js-sdk/pull/3970)). Contributed by @richvdh. - -## ✨ Features - -* Bump minimum spec version to v1.5 ([#3970](https://github.com/matrix-org/matrix-js-sdk/pull/3970)). Contributed by @richvdh. -* Send authenticated /versions request ([#3968](https://github.com/matrix-org/matrix-js-sdk/pull/3968)). Contributed by @dbkr. - -## 🐛 Bug Fixes - -* Revert "Bump matrix-sdk-crypto-wasm to 3.6.0" ([#3991](https://github.com/matrix-org/matrix-js-sdk/pull/3991)). Contributed by @andybalaam. -* #22606 Fix "Remove" button to users without "m.room.redaction" ([#3981](https://github.com/matrix-org/matrix-js-sdk/pull/3981)). Contributed by @rashmitpankhania. -* ElementR: Ensure Encryption order per room ([#3973](https://github.com/matrix-org/matrix-js-sdk/pull/3973)). Contributed by @BillCarsonFr. -* Element-R: fix `bootstrapSecretStorage` not resetting key backup when requested ([#3976](https://github.com/matrix-org/matrix-js-sdk/pull/3976)). Contributed by @uhoreg. - - -Changes in [30.3.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v30.3.0) (2023-12-19) -================================================================================================== -## ✨ Features - -* Element-R: disable sending room key requests ([#3939](https://github.com/matrix-org/matrix-js-sdk/pull/3939)). Contributed by @richvdh. - -## 🐛 Bug Fixes - -* Fix notifications appearing for old events ([#3946](https://github.com/matrix-org/matrix-js-sdk/pull/3946)). Contributed by @dbkr. -* Don't back up keys that we got from backup ([#3934](https://github.com/matrix-org/matrix-js-sdk/pull/3934)). Contributed by @uhoreg. -* Fix upload with empty Content-Type ([#3918](https://github.com/matrix-org/matrix-js-sdk/pull/3918)). Contributed by @JakubOnderka. -* Prevent phantom notifications from events not in a room's timeline ([#3942](https://github.com/matrix-org/matrix-js-sdk/pull/3942)). Contributed by @dbkr. - - -Changes in [30.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v30.2.0) (2023-12-05) -================================================================================================== -## ✨ Features - -* Only await key query after lazy members resolved ([#3902](https://github.com/matrix-org/matrix-js-sdk/pull/3902)). Contributed by @BillCarsonFr. - -## 🐛 Bug Fixes - -* Rewrite receipt-handling code ([#3901](https://github.com/matrix-org/matrix-js-sdk/pull/3901)). Contributed by @andybalaam. -* Explicitly free some Rust-side objects ([#3911](https://github.com/matrix-org/matrix-js-sdk/pull/3911)). Contributed by @richvdh. -* Fix type for TimestampToEventResponse.origin\_server\_ts ([#3906](https://github.com/matrix-org/matrix-js-sdk/pull/3906)). Contributed by @Half-Shot. - - -Changes in [30.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v30.1.0) (2023-11-21) -================================================================================================== -## ✨ Features - -* Rotate per-participant keys when a member leaves ([#3833](https://github.com/matrix-org/matrix-js-sdk/pull/3833)). Contributed by @dbkr. -* Add E2EE for embedded mode of Element Call ([#3667](https://github.com/matrix-org/matrix-js-sdk/pull/3667)). Contributed by @SimonBrandner. - -## 🐛 Bug Fixes - -* Shorten TimelineWindow when an event is removed ([#3862](https://github.com/matrix-org/matrix-js-sdk/pull/3862)). Contributed by @andybalaam. -* Ignore receipts pointing at missing or invalid events ([#3817](https://github.com/matrix-org/matrix-js-sdk/pull/3817)). Contributed by @andybalaam. -* Fix members being loaded from server on initial sync (defeating lazy loading) ([#3830](https://github.com/matrix-org/matrix-js-sdk/pull/3830)). Contributed by @BillCarsonFr. - - -Changes in [30.0.1](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v30.0.1) (2023-11-13) -================================================================================================== - -## 🐛 Bug Fixes - * Ensure `setUserCreator` is called when a store is assigned ([\#3867](https://github.com/matrix-org/matrix-js-sdk/pull/3867)). Fixes vector-im/element-web#26520. Contributed by @MidhunSureshR. - -Changes in [30.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v30.0.0) (2023-11-07) -================================================================================================== - -## 🚨 BREAKING CHANGES - * Refactor & make base64 functions browser-safe ([\#3818](https://github.com/matrix-org/matrix-js-sdk/pull/3818)). - * `IndexedDBStore.startup()` must be called after using it on `sdk.createClient` now. - -## 🦖 Deprecations - * Deprecate `MatrixEvent.toJSON` ([\#3801](https://github.com/matrix-org/matrix-js-sdk/pull/3801)). - -## ✨ Features - * Element-R: Add the git sha of the binding crate to `CryptoApi#getVersion` ([\#3838](https://github.com/matrix-org/matrix-js-sdk/pull/3838)). Contributed by @florianduros. - * Element-R: Wire up `globalBlacklistUnverifiedDevices` field to rust crypto encryption settings ([\#3790](https://github.com/matrix-org/matrix-js-sdk/pull/3790)). Fixes vector-im/element-web#26315. Contributed by @florianduros. - * Element-R: Wire up room rotation ([\#3807](https://github.com/matrix-org/matrix-js-sdk/pull/3807)). Fixes vector-im/element-web#26318. Contributed by @florianduros. - * Element-R: Add current version of the rust-sdk and vodozemac ([\#3825](https://github.com/matrix-org/matrix-js-sdk/pull/3825)). Contributed by @florianduros. - * Element-R: Wire up room history visibility ([\#3805](https://github.com/matrix-org/matrix-js-sdk/pull/3805)). Fixes vector-im/element-web#26319. Contributed by @florianduros. - * Element-R: log when we send to-device messages ([\#3810](https://github.com/matrix-org/matrix-js-sdk/pull/3810)). - -## 🐛 Bug Fixes - * Fix reemitter not being correctly wired on user objects created in storage classes ([\#3796](https://github.com/matrix-org/matrix-js-sdk/pull/3796)). Contributed by @MidhunSureshR. - * Element-R: silence log errors when viewing a pending event ([\#3824](https://github.com/matrix-org/matrix-js-sdk/pull/3824)). - * Don't emit a closed event if the indexeddb is closed by Element ([\#3832](https://github.com/matrix-org/matrix-js-sdk/pull/3832)). Fixes vector-im/element-web#25941. Contributed by @dhenneke. - * Element-R: silence log errors when viewing a decryption failure ([\#3821](https://github.com/matrix-org/matrix-js-sdk/pull/3821)). - -Changes in [29.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v29.1.0) (2023-10-24) -================================================================================================== - -## ✨ Features - * OIDC: refresh tokens ([\#3764](https://github.com/matrix-org/matrix-js-sdk/pull/3764)). Contributed by @kerryarchibald. - * OIDC: add `prompt` param to auth url creation ([\#3794](https://github.com/matrix-org/matrix-js-sdk/pull/3794)). Contributed by @kerryarchibald. - * Allow applications to specify their own logger instance ([\#3792](https://github.com/matrix-org/matrix-js-sdk/pull/3792)). Fixes #1899. - * Export AutoDiscoveryError and fix type of ALL_ERRORS ([\#3768](https://github.com/matrix-org/matrix-js-sdk/pull/3768)). - -## 🐛 Bug Fixes - * Fix sending call member events on leave ([\#3799](https://github.com/matrix-org/matrix-js-sdk/pull/3799)). Fixes vector-im/element-call#1763. - * Don't use event.sender in CallMembership ([\#3793](https://github.com/matrix-org/matrix-js-sdk/pull/3793)). - * Element-R: Don't mark QR code verification as done until it's done ([\#3791](https://github.com/matrix-org/matrix-js-sdk/pull/3791)). Fixes vector-im/element-web#26293. - * Element-R: Connect device to key backup when crypto is created ([\#3784](https://github.com/matrix-org/matrix-js-sdk/pull/3784)). Fixes vector-im/element-web#26316. Contributed by @florianduros. - * Element-R: Avoid errors in `VerificationRequest.generateQRCode` when QR code is unavailable ([\#3779](https://github.com/matrix-org/matrix-js-sdk/pull/3779)). Fixes vector-im/element-web#26300. Contributed by @florianduros. - * ElementR: Check key backup when user identity changes ([\#3760](https://github.com/matrix-org/matrix-js-sdk/pull/3760)). Fixes vector-im/element-web#26244. Contributed by @florianduros. - * Element-R: emit `VerificationRequestReceived` on incoming request ([\#3762](https://github.com/matrix-org/matrix-js-sdk/pull/3762)). Fixes vector-im/element-web#26245. - -Changes in [29.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v29.0.0) (2023-10-10) -================================================================================================== - -## 🚨 BREAKING CHANGES - * Remove browserify builds ([\#3759](https://github.com/matrix-org/matrix-js-sdk/pull/3759)). - -## ✨ Features - * Export AutoDiscoveryError and fix type of ALL_ERRORS ([\#3768](https://github.com/matrix-org/matrix-js-sdk/pull/3768)). - * Support for stable MSC3882 get_login_token ([\#3416](https://github.com/matrix-org/matrix-js-sdk/pull/3416)). Contributed by @hughns. - * Remove IsUserMention and IsRoomMention from DEFAULT_OVERRIDE_RULES ([\#3752](https://github.com/matrix-org/matrix-js-sdk/pull/3752)). Contributed by @kerryarchibald. - -## 🐛 Bug Fixes - * Fix a case where joinRoom creates a duplicate Room object ([\#3747](https://github.com/matrix-org/matrix-js-sdk/pull/3747)). - * Add membershipID to call memberships ([\#3745](https://github.com/matrix-org/matrix-js-sdk/pull/3745)). - * Fix the warning for messages from unsigned devices ([\#3743](https://github.com/matrix-org/matrix-js-sdk/pull/3743)). - * Stop keep alive, when sync was stoped ([\#3720](https://github.com/matrix-org/matrix-js-sdk/pull/3720)). Contributed by @finsterwalder. - -Changes in [28.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v28.2.0) (2023-09-26) -================================================================================================== - -## 🦖 Deprecations - * Implement `getEncryptionInfoForEvent` and deprecate `getEventEncryptionInfo` ([\#3693](https://github.com/matrix-org/matrix-js-sdk/pull/3693)). - * **The Browserify artifact is being deprecated, scheduled for removal in the October 10th release cycle. (#3189)** - -## ✨ Features - * Delete knocked room when knock membership changes ([\#3729](https://github.com/matrix-org/matrix-js-sdk/pull/3729)). Contributed by @maheichyk. - * Introduce MatrixRTCSession lower level group call primitive ([\#3663](https://github.com/matrix-org/matrix-js-sdk/pull/3663)). - * Sync knock rooms ([\#3703](https://github.com/matrix-org/matrix-js-sdk/pull/3703)). Contributed by @maheichyk. - -## 🐛 Bug Fixes - * Dont access indexed db when undefined ([\#3707](https://github.com/matrix-org/matrix-js-sdk/pull/3707)). Contributed by @finsterwalder. - * Don't reset unread count when adding a synthetic receipt ([\#3706](https://github.com/matrix-org/matrix-js-sdk/pull/3706)). Fixes #3684. Contributed by @andybalaam. - -Changes in [28.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v28.1.0) (2023-09-12) -============================================================================================================ - -## 🦖 Deprecations - * Deprecate `MatrixClient.checkUserTrust` ([\#3691](https://github.com/matrix-org/matrix-js-sdk/pull/3691)). - * Deprecate `MatrixClient.{prepare,create}KeyBackupVersion` in favour of new `CryptoApi.resetKeyBackup` API ([\#3689](https://github.com/matrix-org/matrix-js-sdk/pull/3689)). - * **The Browserify artifact is being deprecated, scheduled for removal in the October 10th release cycle. (#3189)** - -## ✨ Features - * Allow calls without ICE/TURN/STUN servers ([\#3695](https://github.com/matrix-org/matrix-js-sdk/pull/3695)). - * Emit summary update event ([\#3687](https://github.com/matrix-org/matrix-js-sdk/pull/3687)). Fixes vector-im/element-web#26033. - * ElementR: Update `CryptoApi.userHasCrossSigningKeys` ([\#3646](https://github.com/matrix-org/matrix-js-sdk/pull/3646)). Contributed by @florianduros. - * Add `join_rule` field to /publicRooms response ([\#3673](https://github.com/matrix-org/matrix-js-sdk/pull/3673)). Contributed by @charlynguyen. - * Use sender instead of content.creator field on m.room.create events ([\#3675](https://github.com/matrix-org/matrix-js-sdk/pull/3675)). - -## 🐛 Bug Fixes - * Provide better error for ICE Server SyntaxError ([\#3694](https://github.com/matrix-org/matrix-js-sdk/pull/3694)). Fixes vector-im/element-web#21804. - * Legacy crypto: re-check key backup after `bootstrapSecretStorage` ([\#3692](https://github.com/matrix-org/matrix-js-sdk/pull/3692)). Fixes vector-im/element-web#26115. - -Changes in [28.0.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v28.0.0) (2023-08-29) -================================================================================================== - -## 🚨 BREAKING CHANGES - * Set minimum supported Matrix 1.1 version (drop legacy r0 versions) ([\#3007](https://github.com/matrix-org/matrix-js-sdk/pull/3007)). Fixes vector-im/element-web#16876. - -## 🦖 Deprecations - * **The Browserify artifact is being deprecated, scheduled for removal in the October 10th release cycle. (#3189)** - -## ✨ Features - * ElementR: Add `CryptoApi.requestVerificationDM` ([\#3643](https://github.com/matrix-org/matrix-js-sdk/pull/3643)). Contributed by @florianduros. - * Implement `CryptoApi.checkKeyBackupAndEnable` ([\#3633](https://github.com/matrix-org/matrix-js-sdk/pull/3633)). Fixes vector-im/crypto-internal#111 and vector-im/crypto-internal#112. - -## 🐛 Bug Fixes - * ElementR: Process all verification events, not just requests ([\#3650](https://github.com/matrix-org/matrix-js-sdk/pull/3650)). Contributed by @florianduros. - -Changes in [27.2.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v27.2.0) (2023-08-15) -================================================================================================== - -## 🦖 Deprecations - * **The Browserify artifact is being deprecated, scheduled for removal in the October 10th release cycle. (#3189)** - -## ✨ Features - * Allow knocking rooms ([\#3647](https://github.com/matrix-org/matrix-js-sdk/pull/3647)). Contributed by @charlynguyen. - * Bump pagination limit to account for threaded events ([\#3638](https://github.com/matrix-org/matrix-js-sdk/pull/3638)). - * ElementR: Add `CryptoApi.findVerificationRequestDMInProgress` ([\#3601](https://github.com/matrix-org/matrix-js-sdk/pull/3601)). Contributed by @florianduros. - * Export more into the public interface ([\#3614](https://github.com/matrix-org/matrix-js-sdk/pull/3614)). - -## 🐛 Bug Fixes - * Fix wrong handling of encrypted rooms when loading them from sync accumulator ([\#3640](https://github.com/matrix-org/matrix-js-sdk/pull/3640)). Fixes vector-im/element-web#25803. - * Skip processing thread roots and fetching threads list when support is disabled ([\#3642](https://github.com/matrix-org/matrix-js-sdk/pull/3642)). - * Ensure we don't overinflate the total notification count ([\#3634](https://github.com/matrix-org/matrix-js-sdk/pull/3634)). Fixes vector-im/element-web#25803. - Changes in [27.1.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v27.1.0) (2023-08-01) ================================================================================================== diff --git a/node_modules/matrix-js-sdk/README.md b/node_modules/matrix-js-sdk/README.md index 314f153..ee41f49 100644 --- a/node_modules/matrix-js-sdk/README.md +++ b/node_modules/matrix-js-sdk/README.md @@ -11,24 +11,6 @@ This is the [Matrix](https://matrix.org) Client-Server SDK for JavaScript and TypeScript. This SDK can be run in a browser or in Node.js. ---- - - - - - Element logo - - -
- -Development and maintenance is proudly sponsored by [Element](https://element.io). Element uses the SDK in their flagship [web](https://github.com/element-hq/element-web) and [desktop](https://github.com/element-hq/element-desktop) clients. - -The SDK is also the basis for multiple Matrix projects and we welcome contributions from all. - ---- - -#### Minimum Matrix server version: v1.1 - The Matrix specification is constantly evolving - while this SDK aims for maximum backwards compatibility, it only guarantees that a feature will be supported for at least 4 spec releases. For example, if a feature the js-sdk supports is removed in v1.4 then the feature is _eligible_ for removal from the SDK when v1.8 is released. This SDK has no @@ -37,14 +19,32 @@ endpoints from before Matrix 1.1, for example. # Quickstart -> [!IMPORTANT] -> Servers may require or use authenticated endpoints for media (images, files, avatars, etc). See the -> [Authenticated Media](#authenticated-media) section for information on how to enable support for this. +## In a browser -Using `pnpm` instead of `npm` is recommended. Please see the pnpm [install -guide](https://pnpm.io/installation#using-corepack) if you do not have it already. +### Note, the browserify build has been deprecated. Please use a bundler like webpack or vite instead. -`pnpm add matrix-js-sdk` +Download the browser version from +https://github.com/matrix-org/matrix-js-sdk/releases/latest and add that as a +`