Commit 7ff8adafe9e4
tarball994 files changed+454591-0
@@ -0,0 +1,16 @@
1
+[alias]2
+xtask = "run --package xtask --"3
+uniffi-bindgen = "run --package uniffi-bindgen --"4
+5
+[doc.extern-map.registries]6
+crates-io = "https://docs.rs/"7
+8
+[unstable]9
+rustdoc-map = true10
+11
+[target.aarch64-linux-android]12
+# These rust flags improve the performance on Android on arm6413
+rustflags = ["-C", "target-feature=+neon,+aes,+sha2,+sha3,+pmuv3"]14
+15
+[env]16
+IPHONEOS_DEPLOYMENT_TARGET = "16.0"@@ -0,0 +1,13 @@
1
+[profile.default]2
+retries = { backoff = "exponential", count = 3, delay = "1s", jitter = true }3
+# kill the slow tests if they still aren't up after 180s4
+slow-timeout = { period = "60s", terminate-after = 3 }5
+6
+[profile.ci]7
+retries = { backoff = "exponential", count = 4, delay = "1s", jitter = true }8
+# kill the slow tests if they still aren't up after 180s9
+slow-timeout = { period = "60s", terminate-after = 3 }10
+11
+[profile.ci.junit]12
+path = "junit.xml"13
+store-success-output = true@@ -0,0 +1,53 @@
1
+# https://embarkstudios.github.io/cargo-deny/checks/cfg.html2
+[graph]3
+all-features = true4
+exclude = [5
+ # dev only dependency6
+ "criterion"7
+]8
+9
+[advisories]10
+version = 211
+ignore = [12
+ { id = "RUSTSEC-2024-0388", reason = "Unmaintained derivative crate, not a direct dependency" },13
+]14
+15
+[licenses]16
+version = 217
+allow = [18
+ "Apache-2.0",19
+ "Apache-2.0 WITH LLVM-exception",20
+ "CDLA-Permissive-2.0",21
+ "BSD-2-Clause",22
+ "BSD-3-Clause",23
+ "BSL-1.0",24
+ "ISC",25
+ "MIT",26
+ "MPL-2.0",27
+ "Unicode-3.0",28
+ "Zlib",29
+]30
+31
+[bans]32
+# We should disallow this, but it's currently a PITA.33
+multiple-versions = "allow"34
+wildcards = "allow"35
+36
+[sources]37
+unknown-registry = "deny"38
+unknown-git = "deny"39
+40
+allow-git = [41
+ # A patch override for the bindings fixing a bug for Android before upstream42
+ # releases a new version.43
+ "https://github.com/tokio-rs/tracing.git",44
+ # Well, it's Ruma.45
+ "https://github.com/ruma/ruma",46
+ # A patch override for the bindings: https://github.com/rodrimati1992/const_panic/pull/1047
+ "https://github.com/jplatte/const_panic",48
+ # A patch override for the bindings: https://github.com/smol-rs/async-compat/pull/2249
+ "https://github.com/element-hq/async-compat",50
+ # We can release vodozemac whenever we need but let's not block development51
+ # on releases.52
+ "https://github.com/matrix-org/vodozemac",53
+]@@ -0,0 +1,6 @@
1
+root = true2
+3
+# Unix-style newlines with a newline ending every file4
+[*]5
+end_of_line = lf6
+insert_final_newline = true@@ -0,0 +1,3 @@
1
+* @matrix-org/rust2
+/crates/matrix-sdk-crypto @matrix-org/rust @matrix-org/rust-crypto-reviewers3
+/crates/matrix-sdk-indexeddb/src/crypto_store @matrix-org/rust @matrix-org/rust-crypto-reviewers@@ -0,0 +1,9 @@
1
+version: 22
+updates:3
+ - package-ecosystem: "github-actions"4
+ directory: "/"5
+ schedule:6
+ # Check for updates to GitHub Actions every week7
+ interval: "weekly"8
+ cooldown:9
+ default-days: 7@@ -0,0 +1,11 @@
1
+<!-- description of the changes in this PR -->2
+3
+- [ ] I've documented the public API changes in the appropriate changelog files4
+ (see [Writing changelog entries][pull-request-template-changelog]).5
+- [ ] This PR was made with the help of AI.6
+7
+<!-- Sign-off, if not part of the commits -->8
+<!-- See CONTRIBUTING.md if you don't know what this is -->9
+Signed-off-by:10
+11
+[pull-request-template-changelog]: https://github.com/matrix-org/matrix-rust-sdk/blob/main/CONTRIBUTING.md#writing-changelog-entries@@ -0,0 +1,103 @@
1
+name: Benchmarks2
+3
+on:4
+ push:5
+ branches:6
+ - "main"7
+ pull_request:8
+ workflow_dispatch:9
+10
+jobs:11
+ benchmarks:12
+ name: Run Benchmarks13
+ runs-on: ubuntu-latest14
+ permissions:15
+ contents: read16
+ id-token: write17
+ strategy:18
+ matrix:19
+ benchmark:20
+ - crypto_bench21
+ - event_cache22
+ - linked_chunk23
+ - store_bench24
+ - timeline25
+ - room_list26
+27
+ steps:28
+ # This CI workflow can run into space issue, so we're cleaning up some29
+ # space here.30
+ - name: Create some more space31
+ run: |32
+ echo "Disk space before cleanup"33
+ df -h34
+35
+ cd /opt36
+ find . -maxdepth 1 -mindepth 1 '!' -path ./containerd '!' -path ./actionarchivecache '!' -path ./runner '!' -path ./runner-cache -exec rm -rf '{}' ';'37
+ rm -rf /opt/hostedtoolcache38
+39
+ # Get rid of binaries and libs we're not interested in.40
+ sudo rm -rf \41
+ /usr/local/julia* \42
+ /usr/local/aws*43
+44
+ sudo rm -rf \45
+ /usr/local/bin/minikube \46
+ /usr/local/bin/node \47
+ /usr/local/bin/stack \48
+ /usr/local/bin/bicep \49
+ /usr/local/bin/pulumi* \50
+ /usr/local/bin/helm \51
+ /usr/local/bin/azcopy \52
+ /usr/local/bin/packer \53
+ /usr/local/bin/cmake-gui \54
+ /usr/local/bin/cpack55
+56
+ sudo rm -rf \57
+ /usr/local/share/powershell \58
+ /usr/local/share/chromium59
+60
+ sudo rm -rf /usr/local/lib/android61
+62
+ echo "::group::/usr/local/bin/*"63
+ du -hsc /usr/local/bin/* | sort -h64
+ echo "::endgroup::"65
+66
+ echo "::group::/usr/local/share/*"67
+ du -hsc /usr/local/share/* | sort -h68
+ echo "::endgroup::"69
+70
+ echo "::group::/usr/local/*"71
+ du -hsc /usr/local/* | sort -h72
+ echo "::endgroup::"73
+74
+ echo "::group::/usr/local/lib/*"75
+ du -hsc /usr/local/lib/* | sort -h76
+ echo "::endgroup::"77
+78
+ echo "::group::/opt/*"79
+ du -hsc /opt/* | sort -h80
+ echo "::endgroup::"81
+82
+ echo "Disk space after cleanup"83
+ df -h84
+85
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd86
+ with:87
+ persist-credentials: false88
+89
+ - name: Setup rust toolchain, cache and cargo-codspeed binary90
+ uses: moonrepo/setup-rust@abb2d32350334249b178c401e5ec5836e0cd88d391
+ with:92
+ channel: stable93
+ cache-target: release94
+ bins: cargo-codspeed95
+96
+ - name: Build the benchmark target(s)97
+ run: cargo codspeed build -p benchmarks --bench ${{ matrix.benchmark }} --features codspeed98
+99
+ - name: Run the benchmarks100
+ uses: CodSpeedHQ/action@3194d9a39c4d46684cb44bf7207fc56626aad8fd101
+ with:102
+ run: cargo codspeed run103
+ mode: simulation@@ -0,0 +1,243 @@
1
+name: Bindings tests2
+3
+on:4
+ workflow_dispatch:5
+ push:6
+ branches: ["main", "features/**", "release-**"]7
+ pull_request:8
+ branches: ["main", "features/**", "release-**"]9
+ types:10
+ - opened11
+ - reopened12
+ - synchronize13
+ - ready_for_review14
+15
+permissions: {}16
+17
+concurrency:18
+ group: ${{ github.workflow }}-${{ github.ref }}19
+ cancel-in-progress: true20
+21
+env:22
+ CARGO_TERM_COLOR: always23
+24
+jobs:25
+ xtask:26
+ uses: ./.github/workflows/xtask.yml27
+28
+ test-uniffi-codegen:29
+ name: Test UniFFI bindings generation30
+ needs: xtask31
+ if: github.event_name == 'push' || !github.event.pull_request.draft32
+ runs-on: ubuntu-latest33
+34
+ steps:35
+ - name: Checkout36
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v637
+ with:38
+ persist-credentials: false39
+40
+ - name: Install protoc41
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.142
+ with:43
+ tool: protoc@3.20.344
+45
+ - name: Install Rust46
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v147
+ with:48
+ toolchain: stable49
+50
+ # Cargo config can screw with caching and is only used for alias config51
+ # and extra lints, which we don't care about here52
+ - name: Delete cargo config53
+ run: rm .cargo/config.toml54
+55
+ - name: Load cache56
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.157
+ with:58
+ save-if: ${{ github.ref == 'refs/heads/main' }}59
+60
+ - name: Get xtask61
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.562
+ with:63
+ path: target/debug/xtask64
+ key: "${{ needs.xtask.outputs.cachekey-linux }}"65
+ fail-on-cache-miss: true66
+67
+ - name: Build library & generate bindings68
+ run: target/debug/xtask ci bindings69
+70
+ test-android:71
+ name: matrix-rust-components-kotlin72
+ needs: xtask73
+ runs-on: ubuntu-latest74
+ if: github.event_name == 'push' || !github.event.pull_request.draft75
+76
+ steps:77
+ - name: Checkout Rust SDK78
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v679
+ with:80
+ persist-credentials: false81
+82
+ - name: Checkout Kotlin Rust Components project83
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v684
+ with:85
+ repository: matrix-org/matrix-rust-components-kotlin86
+ path: rust-components-kotlin87
+ ref: main88
+ persist-credentials: false89
+90
+ - name: Use JDK 1791
+ uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v592
+ with:93
+ distribution: 'temurin' # See 'Supported distributions' for available options94
+ java-version: '17'95
+96
+ - name: Install android sdk97
+ uses: malinskiy/action-android/install-sdk@fa103ef30331e95f266418a6a97e98f61f626887 # release/0.1.798
+99
+ - name: Install android ndk100
+ uses: nttld/setup-ndk@ed92fe6cadad69be94a966a7ee3271275e62f779 # v1101
+ id: install-ndk102
+ with:103
+ ndk-version: r27104
+105
+ - name: Install Rust106
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1107
+ with:108
+ toolchain: stable109
+110
+ # Cargo config can screw with caching and is only used for alias config111
+ # and extra lints, which we don't care about here112
+ - name: Delete cargo config113
+ run: rm .cargo/config.toml114
+115
+ - name: Load cache116
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1117
+ with:118
+ save-if: ${{ github.ref == 'refs/heads/main' }}119
+120
+ - name: Get xtask121
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5122
+ with:123
+ path: target/debug/xtask124
+ key: "${{ needs.xtask.outputs.cachekey-linux }}"125
+ fail-on-cache-miss: true126
+127
+ - name: Install Rust dependencies128
+ run: |129
+ rustup target add x86_64-linux-android130
+ cargo install cargo-ndk131
+132
+ - name: Build SDK bindings for Android133
+ # Building for x86_64-linux-android as it's the most prone to breaking and building for every arch is too much134
+ run: |135
+ echo "Building SDK for x86_64-linux-android and creating bindings"136
+ target/debug/xtask kotlin build-android-library --package full-sdk --only-target x86_64-linux-android --src-dir rust-components-kotlin/sdk/sdk-android/src/main137
+ echo "Copying the result binary to the Android project"138
+ cd rust-components-kotlin139
+ echo "Building the Kotlin bindings"140
+ ./gradlew :sdk:sdk-android:assembleDebug141
+142
+ test-apple:143
+ name: matrix-rust-components-swift144
+ needs: xtask145
+ runs-on: macos-15146
+ if: github.event_name == 'push' || !github.event.pull_request.draft147
+148
+ steps:149
+ - name: Checkout150
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6151
+ with:152
+ persist-credentials: false153
+154
+ # install protoc in case we end up rebuilding opentelemetry-proto155
+ - name: Install protoc156
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1157
+ with:158
+ tool: protoc@3.20.3159
+160
+ - name: Install Rust161
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1162
+ with:163
+ toolchain: stable164
+165
+ - name: Install aarch64-apple-ios target166
+ run: rustup target install aarch64-apple-ios167
+168
+ # Cargo config can screw with caching and is only used for alias config169
+ # and extra lints, which we don't care about here170
+ - name: Delete cargo config171
+ run: rm .cargo/config.toml172
+173
+ - name: Load cache174
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1175
+ with:176
+ save-if: ${{ github.ref == 'refs/heads/main' }}177
+178
+ - name: Get xtask179
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5180
+ with:181
+ path: target/debug/xtask182
+ key: "${{ needs.xtask.outputs.cachekey-macos }}"183
+ fail-on-cache-miss: true184
+185
+ - name: Build library & bindings186
+ run: target/debug/xtask swift build-library187
+188
+ - name: Run XCTests189
+ working-directory: bindings/apple190
+ run: swift test191
+192
+ - name: Build Framework193
+ run: target/debug/xtask swift build-framework --target=aarch64-apple-ios --profile=dev --ios-deployment-target=18.0194
+195
+ complement-crypto:196
+ name: "Run Complement Crypto tests"197
+ uses: matrix-org/complement-crypto/.github/workflows/single_sdk_tests.yml@399a1deeab0d7e4fa9604cbe83b1df6058c40193 # main198
+ with:199
+ use_rust_sdk: "." # use local checkout200
+ use_complement_crypto: "MATCHING_BRANCH"201
+202
+ test-crypto-apple-framework-generation:203
+ name: Generate Crypto FFI Apple XCFramework204
+ runs-on: macos-15205
+ if: github.event_name == 'push' || !github.event.pull_request.draft206
+207
+ steps:208
+ - name: Checkout209
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6210
+ with:211
+ persist-credentials: false212
+213
+ # install protoc in case we end up rebuilding opentelemetry-proto214
+ - name: Install protoc215
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1216
+ with:217
+ tool: protoc@3.20.3218
+219
+ - name: Install Rust220
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1221
+ with:222
+ toolchain: stable223
+224
+ - name: Add rust targets225
+ run: |226
+ rustup target add aarch64-apple-ios227
+228
+ # Cargo config can screw with caching and is only used for alias config229
+ # and extra lints, which we don't care about here230
+ - name: Delete cargo config231
+ run: rm .cargo/config.toml232
+233
+ - name: Load cache234
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1235
+ with:236
+ save-if: ${{ github.ref == 'refs/heads/main' }}237
+238
+ - name: Run the Build Framework script239
+ run: ./bindings/apple/build_crypto_xcframework.sh -i240
+241
+ - name: Is XCFramework generated?242
+ if: ${{ hashFiles('generated/MatrixSDKCryptoFFI.zip') != '' }}243
+ run: echo "XCFramework exists"@@ -0,0 +1,433 @@
1
+name: Rust tests2
+3
+on:4
+ workflow_dispatch:5
+ push:6
+ branches: ["main", "features/**", "release-**"]7
+ pull_request:8
+ branches: ["main", "features/**", "release-**"]9
+10
+permissions: {}11
+12
+concurrency:13
+ group: ${{ github.workflow }}-${{ github.ref }}14
+ cancel-in-progress: true15
+16
+env:17
+ CARGO_TERM_COLOR: always18
+ # Insta.rs is run directly via cargo test. We don't want insta.rs to create new snapshots files.19
+ # Just want it to run the tests (option `no` instead of `auto`).20
+ INSTA_UPDATE: no21
+22
+jobs:23
+ xtask:24
+ uses: ./.github/workflows/xtask.yml25
+26
+ test-matrix-sdk-features:27
+ name: 🐧 [m], ${{ matrix.name }}28
+ needs: xtask29
+30
+ runs-on: ubuntu-latest31
+ strategy:32
+ fail-fast: true33
+ matrix:34
+ name:35
+ - no-encryption36
+ - no-sqlite37
+ - no-encryption-and-sqlite38
+ - sqlite-cryptostore39
+ - experimental-encrypted-state-events40
+ - markdown41
+ - socks42
+ - sso-login43
+ - search44
+45
+ steps:46
+ - name: Checkout47
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v648
+ with:49
+ persist-credentials: false50
+51
+ - name: Install Rust52
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v153
+ with:54
+ toolchain: stable55
+56
+ - name: Install libsqlite57
+ run: |58
+ sudo apt-get update59
+ sudo apt-get install libsqlite3-dev60
+61
+ - name: Load cache62
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.163
+ with:64
+ # use a separate cache for each job to work around65
+ # https://github.com/Swatinem/rust-cache/issues/12466
+ key: "${{ matrix.name }}"67
+68
+ # ... but only save the cache on the main branch69
+ # cf https://github.com/Swatinem/rust-cache/issues/9570
+ save-if: ${{ github.ref == 'refs/heads/main' }}71
+72
+ - name: Install nextest73
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.174
+ with:75
+ tool: nextest76
+77
+ - name: Get xtask78
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.579
+ with:80
+ path: target/debug/xtask81
+ key: "${{ needs.xtask.outputs.cachekey-linux }}"82
+ fail-on-cache-miss: true83
+84
+ - name: Test85
+ run: |86
+ target/debug/xtask ci test-features ${{ matrix.name }}87
+88
+ test-matrix-sdk-examples:89
+ name: 🐧 [m]-examples90
+ needs: xtask91
+ runs-on: ubuntu-latest92
+93
+ steps:94
+ - name: Checkout the repo95
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v696
+ with:97
+ persist-credentials: false98
+99
+ - name: Install Rust100
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1101
+ with:102
+ toolchain: stable103
+104
+ - name: Load cache105
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1106
+ with:107
+ save-if: ${{ github.ref == 'refs/heads/main' }}108
+109
+ - name: Install nextest110
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1111
+ with:112
+ tool: nextest113
+114
+ - name: Get xtask115
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5116
+ with:117
+ path: target/debug/xtask118
+ key: "${{ needs.xtask.outputs.cachekey-linux }}"119
+ fail-on-cache-miss: true120
+121
+ - name: Test122
+ run: |123
+ target/debug/xtask ci examples124
+125
+ test-matrix-sdk-crypto:126
+ name: 🐧 [m]-crypto127
+ needs: xtask128
+ runs-on: ubuntu-latest129
+130
+ steps:131
+ - name: Checkout the repo132
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6133
+ with:134
+ persist-credentials: false135
+136
+ - name: Install libsqlite137
+ run: |138
+ sudo apt-get update139
+ sudo apt-get install libsqlite3-dev140
+141
+ - name: Install Rust142
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1143
+ with:144
+ toolchain: stable145
+ components: clippy146
+147
+ - name: Load cache148
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1149
+ with:150
+ save-if: ${{ github.ref == 'refs/heads/main' }}151
+152
+ - name: Install nextest153
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1154
+ with:155
+ tool: nextest156
+157
+ - name: Get xtask158
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5159
+ with:160
+ path: target/debug/xtask161
+ key: "${{ needs.xtask.outputs.cachekey-linux }}"162
+ fail-on-cache-miss: true163
+164
+ - name: Test165
+ run: |166
+ target/debug/xtask ci test-crypto167
+168
+ test-all-crates:169
+ name: ${{ matrix.name }}170
+171
+ runs-on: ${{ matrix.os }}172
+ strategy:173
+ fail-fast: true174
+ matrix:175
+ include:176
+ - name: 🐧 all crates, 🦀 stable177
+ rust: stable178
+ os: ubuntu-latest179
+180
+ - name: 🐧 all crates, 🦀 beta181
+ rust: beta182
+ os: ubuntu-latest183
+184
+ - name: 🍏 all crates, 🦀 stable185
+ rust: stable186
+ os: macos-latest187
+188
+ steps:189
+ - name: Checkout190
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6191
+ with:192
+ persist-credentials: false193
+194
+ - name: Install protoc195
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1196
+ with:197
+ tool: protoc@3.20.3198
+199
+ - name: Install libsqlite200
+ if: runner.os == 'Linux'201
+ run: |202
+ sudo apt-get update203
+ sudo apt-get install libsqlite3-dev204
+205
+ - name: Install Rust toolchain206
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1207
+ with:208
+ toolchain: ${{ matrix.rust }}209
+210
+ - name: Load cache211
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1212
+ with:213
+ save-if: ${{ github.ref == 'refs/heads/main' }}214
+215
+ - name: Install nextest216
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1217
+ with:218
+ tool: nextest219
+220
+ - name: Test221
+ run: |222
+ cargo nextest run --workspace \223
+ --exclude matrix-sdk-integration-testing --features testing224
+225
+ - name: Test documentation226
+ run: |227
+ cargo test --doc --features docsrs228
+229
+ test-wasm:230
+ name: 🕸️ ${{ matrix.name }}231
+ needs: xtask232
+233
+ runs-on: ubuntu-latest234
+235
+ strategy:236
+ fail-fast: true237
+ matrix:238
+ include:239
+ - name: '[m]-qrcode'240
+ cmd: matrix-sdk-qrcode241
+242
+ - name: '[m]-base'243
+ cmd: matrix-sdk-base244
+245
+ - name: '[m]-common'246
+ cmd: matrix-sdk-common247
+248
+ - name: '[m], no-default'249
+ cmd: matrix-sdk-no-default250
+251
+ - name: '[m]-ui'252
+ cmd: matrix-sdk-ui253
+ check_only: true254
+255
+ - name: '[m]-indexeddb'256
+ cmd: indexeddb257
+258
+ - name: '[m], indexeddb stores'259
+ cmd: matrix-sdk-indexeddb-stores260
+261
+ - name: '[m], indexeddb stores, no crypto'262
+ cmd: matrix-sdk-indexeddb-stores-no-crypto263
+264
+ steps:265
+ - name: Checkout the repo266
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6267
+ with:268
+ persist-credentials: false269
+270
+ - name: Install Rust271
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1272
+ with:273
+ toolchain: stable274
+ targets: wasm32-unknown-unknown275
+ components: clippy276
+277
+ - name: Install wasm-pack278
+ uses: qmaru/wasm-pack-action@785fe709cd17eb6a97607eda9b6f5dbebed2b89c # v0.5.3279
+ if: '!matrix.check_only'280
+ with:281
+ version: v0.13.1282
+283
+ - name: Load cache284
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1285
+ with:286
+ # use a separate cache for each job to work around287
+ # https://github.com/Swatinem/rust-cache/issues/124288
+ key: "${{ matrix.cmd }}"289
+290
+ # ... but only save the cache on the main branch291
+ # cf https://github.com/Swatinem/rust-cache/issues/95292
+ save-if: ${{ github.ref == 'refs/heads/main' }}293
+294
+ - name: Install nextest295
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1296
+ with:297
+ tool: nextest298
+299
+ - name: Get xtask300
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5301
+ with:302
+ path: target/debug/xtask303
+ key: "${{ needs.xtask.outputs.cachekey-linux }}"304
+ fail-on-cache-miss: true305
+306
+ - name: Rust Check307
+ run: |308
+ target/debug/xtask ci wasm ${{ matrix.cmd }}309
+310
+ - name: Wasm-Pack test311
+ if: '!matrix.check_only'312
+ run: |313
+ target/debug/xtask ci wasm-pack ${{ matrix.cmd }}314
+315
+ typos:316
+ name: Spell Check with Typos317
+ runs-on: ubuntu-latest318
+319
+ steps:320
+ - name: Checkout Actions Repository321
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6322
+ with:323
+ persist-credentials: false324
+325
+ - name: Check the spelling of the files in our repo326
+ uses: crate-ci/typos@aca895bf05aec0cb7dffa6f94495e923224d9f17 # v1.46.2327
+328
+ lint:329
+ name: Lint330
+ needs: xtask331
+ runs-on: ubuntu-latest332
+333
+ steps:334
+ - name: Checkout the repo335
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6336
+ with:337
+ persist-credentials: false338
+339
+ - name: Install protoc340
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.1341
+ with:342
+ tool: protoc@3.20.3343
+344
+ - name: Install Rust345
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1346
+ with:347
+ toolchain: nightly-2026-02-26348
+ components: clippy, rustfmt349
+350
+ - name: Load cache351
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1352
+ with:353
+ save-if: ${{ github.ref == 'refs/heads/main' }}354
+355
+ - name: Get xtask356
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5357
+ with:358
+ path: target/debug/xtask359
+ key: "${{ needs.xtask.outputs.cachekey-linux }}"360
+ fail-on-cache-miss: true361
+362
+ - name: Check Formatting363
+ run: |364
+ target/debug/xtask ci style365
+366
+ - name: Clippy367
+ run: |368
+ target/debug/xtask ci clippy369
+370
+ integration-tests:371
+ name: 'Integration test (features: ${{ matrix.feature }})'372
+ runs-on: ubuntu-latest373
+374
+ # run several docker containers with the same networking stack so the hostname 'synapse'375
+ # maps to the synapse container, etc.376
+ services:377
+ # tests need a synapse: this is a service and not michaelkaye/setup-matrix-synapse@main as the378
+ # latter does not provide networking for services to communicate with it.379
+ synapse:380
+ image: ghcr.io/matrix-org/synapse-service:v1.117.0 # keep in sync with ./coverage.yml381
+ env:382
+ SYNAPSE_COMPLEMENT_DATABASE: sqlite383
+ SERVER_NAME: synapse384
+ ports:385
+ - 8008:8008386
+387
+ strategy:388
+ fail-fast: true389
+ matrix:390
+ feature:391
+ - "default"392
+ - "experimental-encrypted-state-events"393
+394
+ steps:395
+ - name: Checkout the repo396
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6397
+ with:398
+ persist-credentials: false399
+400
+ - name: Install libsqlite401
+ run: |402
+ sudo apt-get update403
+ sudo apt-get install libsqlite3-dev404
+405
+ - name: Install Rust406
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1407
+ with:408
+ toolchain: stable409
+410
+ - name: Load cache411
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1412
+ with:413
+ save-if: ${{ github.ref == 'refs/heads/main' }}414
+415
+ - name: Install nextest416
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1417
+ with:418
+ tool: nextest419
+420
+ - name: Test421
+ env:422
+ RUST_LOG: "info,matrix_sdk=trace"423
+ HOMESERVER_URL: "http://localhost:8008"424
+ HOMESERVER_DOMAIN: "synapse"425
+ run: |426
+ cargo nextest run --profile ci -p matrix-sdk-integration-testing --features "${{ matrix.feature }}"427
+428
+ - name: Upload test results to Codecov429
+ if: ${{ !cancelled() }}430
+ uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3431
+ with:432
+ files: ./target/nextest/ci/junit.xml433
+ token: ${{ secrets.CODECOV_TOKEN }}@@ -0,0 +1,168 @@
1
+name: Code Coverage2
+3
+on:4
+ push:5
+ branches: ["main", "features/**"]6
+ pull_request:7
+ branches: ["main", "features/**"]8
+9
+permissions: {}10
+11
+concurrency:12
+ group: ${{ github.workflow }}-${{ github.ref }}13
+ cancel-in-progress: true14
+15
+env:16
+ CARGO_TERM_COLOR: always17
+ # without matrix_sdk=trace, expressions in `trace!` fields are not evaluated18
+ # when the `trace!` statement is hit, and thus not covered19
+ RUST_LOG: info,matrix_sdk=trace20
+21
+jobs:22
+ xtask:23
+ uses: ./.github/workflows/xtask.yml24
+25
+ code_coverage:26
+ name: Code Coverage27
+ needs: xtask28
+ runs-on: "ubuntu-latest"29
+ permissions:30
+ contents: read31
+ id-token: write32
+33
+ # run several docker containers with the same networking stack so the hostname 'synapse'34
+ # maps to the synapse container, etc.35
+ services:36
+ # tests need a synapse: this is a service and not michaelkaye/setup-matrix-synapse@main as the37
+ # latter does not provide networking for services to communicate with it.38
+ synapse:39
+ image: ghcr.io/matrix-org/synapse-service:v1.117.0 # keep in sync with ./ci.yml40
+ env:41
+ SYNAPSE_COMPLEMENT_DATABASE: sqlite42
+ SERVER_NAME: synapse43
+ ports:44
+ - 8008:800845
+46
+ steps:47
+ # This CI workflow can run into space issue, so we're cleaning up some48
+ # space here.49
+ - name: Create some more space50
+ run: |51
+ echo "Disk space before cleanup"52
+ df -h53
+54
+ cd /opt55
+ find . -maxdepth 1 -mindepth 1 '!' -path ./containerd '!' -path ./actionarchivecache '!' -path ./runner '!' -path ./runner-cache -exec rm -rf '{}' ';'56
+ rm -rf /opt/hostedtoolcache57
+58
+ # Get rid of binaries and libs we're not interested in.59
+ sudo rm -rf \60
+ /usr/local/julia* \61
+ /usr/local/aws*62
+63
+ sudo rm -rf \64
+ /usr/local/bin/minikube \65
+ /usr/local/bin/node \66
+ /usr/local/bin/stack \67
+ /usr/local/bin/bicep \68
+ /usr/local/bin/pulumi* \69
+ /usr/local/bin/helm \70
+ /usr/local/bin/azcopy \71
+ /usr/local/bin/packer \72
+ /usr/local/bin/cmake-gui \73
+ /usr/local/bin/cpack74
+75
+ sudo rm -rf \76
+ /usr/local/share/powershell \77
+ /usr/local/share/chromium78
+79
+ sudo rm -rf /usr/local/lib/android80
+81
+ echo "::group::/usr/local/bin/*"82
+ du -hsc /usr/local/bin/* | sort -h83
+ echo "::endgroup::"84
+85
+ echo "::group::/usr/local/share/*"86
+ du -hsc /usr/local/share/* | sort -h87
+ echo "::endgroup::"88
+89
+ echo "::group::/usr/local/*"90
+ du -hsc /usr/local/* | sort -h91
+ echo "::endgroup::"92
+93
+ echo "::group::/usr/local/lib/*"94
+ du -hsc /usr/local/lib/* | sort -h95
+ echo "::endgroup::"96
+97
+ echo "::group::/opt/*"98
+ du -hsc /opt/* | sort -h99
+ echo "::endgroup::"100
+101
+ echo "Disk space after cleanup"102
+ df -h103
+104
+ - name: Checkout repository105
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6106
+ with:107
+ ref: ${{ github.event.pull_request.head.sha }}108
+ persist-credentials: false109
+110
+ - name: Install libsqlite111
+ run: |112
+ sudo apt-get update113
+ sudo apt-get install libsqlite3-dev114
+ sudo apt-get clean115
+ sudo rm -rf /var/lib/apt/lists/*116
+117
+ - name: Install Rust118
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1119
+ with:120
+ toolchain: stable121
+122
+ # Cargo config can screw with caching and is only used for alias config123
+ # and extra lints, which we don't care about here124
+ - name: Delete cargo config125
+ run: rm .cargo/config.toml126
+127
+ - name: Load cache128
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1129
+ with:130
+ prefix-key: "coverage"131
+ save-if: ${{ github.ref == 'refs/heads/main' }}132
+133
+ - name: Install nextest and llvm-cov134
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v 2.79.1135
+ with:136
+ tool: nextest,cargo-llvm-cov137
+138
+ - name: Get xtask139
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5140
+ with:141
+ path: target/debug/xtask142
+ key: "${{ needs.xtask.outputs.cachekey-linux }}"143
+ fail-on-cache-miss: true144
+145
+ - name: Check total disk space before running146
+ run: |147
+ df -h148
+149
+ - name: Create the coverage report150
+ run: |151
+ target/debug/xtask ci coverage -o codecov 152
+ env:153
+ CARGO_PROFILE_COV_INHERITS: 'dev'154
+ CARGO_PROFILE_COV_DEBUG: 1155
+ HOMESERVER_URL: "http://localhost:8008"156
+ HOMESERVER_DOMAIN: "synapse"157
+158
+ - name: Upload coverage to Codecov159
+ uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2160
+ with:161
+ use_oidc: true162
+163
+ - name: Upload test results to Codecov164
+ if: ${{ !cancelled() }}165
+ uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2166
+ with:167
+ use_oidc: true168
+ report_type: "test_results"@@ -0,0 +1,19 @@
1
+name: Lint dependencies (for licences, allowed sources, banned dependencies, vulnerabilities)2
+on:3
+ pull_request:4
+ paths:5
+ - '**/Cargo.toml'6
+ workflow_dispatch:7
+ schedule:8
+ - cron: '0 0 * * *'9
+10
+permissions: {}11
+12
+jobs:13
+ cargo-deny:14
+ runs-on: ubuntu-latest15
+ steps:16
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v617
+ with:18
+ persist-credentials: false19
+ - uses: EmbarkStudios/cargo-deny-action@6c8f9facfa5047ec02d8485b6bf52b587b7777d1 # v2.0.18@@ -0,0 +1,39 @@
1
+# Check if the path of changed file is longer than 260 characters2
+# that windows filesystem allows3
+4
+name: Detect long path among changed files5
+6
+on:7
+ workflow_dispatch:8
+ pull_request: # focus on the changed files in current PR9
+ branches: ["main", "features/**", "release-**"]10
+11
+permissions: {}12
+13
+concurrency:14
+ group: ${{ github.workflow }}-${{ github.ref }}15
+ cancel-in-progress: true16
+17
+jobs:18
+ long-path:19
+ runs-on: ubuntu-latest20
+21
+ steps:22
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v623
+ with:24
+ persist-credentials: false25
+ - name: Check for changed files26
+ id: changed-files27
+ uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v47.0.628
+ - name: Detect long path29
+ env:30
+ ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} # ignore the deleted files31
+ MAX_LENGTH: 120 # set max length to 120, considering the base path of app project that uses matrix-sdk32
+ run: |33
+ for file in ${ALL_CHANGED_FILES}; do34
+ if [ ${#file} -gt $MAX_LENGTH ]; then35
+ echo "File path is too long. Length: ${#file}, Path: $file"36
+ exit 137
+ fi38
+ done39
+ exit 0@@ -0,0 +1,16 @@
1
+name: Detects unused dependencies2
+on:3
+ pull_request: { branches: "*" }4
+5
+permissions: {}6
+7
+jobs:8
+ build:9
+ runs-on: ubuntu-latest10
+ steps:11
+ - name: Checkout12
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v613
+ with:14
+ persist-credentials: false15
+ - name: Machete16
+ uses: bnjbvr/cargo-machete@ac30a525c0a8d163a92d727b3ff079ee3f6ecb08@@ -0,0 +1,64 @@
1
+name: Documentation2
+3
+on:4
+ push:5
+ branches: [main]6
+ pull_request:7
+8
+concurrency:9
+ group: ${{ github.workflow }}-${{ github.ref }}10
+ cancel-in-progress: true11
+12
+permissions:13
+ contents: read14
+ pages: write15
+ id-token: write16
+17
+jobs:18
+ docs:19
+ name: All crates20
+ runs-on: ubuntu-latest21
+22
+ steps:23
+ - name: Checkout repository24
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v625
+ with:26
+ persist-credentials: false27
+28
+ - name: Install protoc29
+ uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # v2.79.130
+ with:31
+ tool: protoc@3.20.332
+33
+ - name: Install Rust34
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v135
+ with:36
+ toolchain: nightly-2026-02-2637
+38
+ - name: Install Node.js39
+ uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v640
+ with:41
+ node-version: 2042
+43
+ - name: Load cache44
+ uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.145
+ with:46
+ save-if: ${{ github.ref == 'refs/heads/main' }}47
+48
+ # Keep in sync with xtask docs49
+ - name: Build documentation50
+ env:51
+ RUSTDOCFLAGS: "--enable-index-page -Zunstable-options --cfg docsrs -Dwarnings"52
+ run:53
+ cargo doc --no-deps --workspace --features docsrs --exclude=xtask54
+55
+ - name: Upload artifact56
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'57
+ uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.058
+ with:59
+ path: './target/doc/'60
+61
+ - name: Deploy to GitHub Pages62
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'63
+ id: deployment64
+ uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0@@ -0,0 +1,16 @@
1
+name: Git Checks2
+3
+on: [pull_request]4
+5
+permissions: {}6
+7
+jobs:8
+ block-fixup:9
+ runs-on: ubuntu-latest10
+11
+ steps:12
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v613
+ with:14
+ persist-credentials: false15
+ - name: Block Fixup Commit Merge16
+ uses: 13rac1/block-fixup-merge-action@bd5504fb9ca0253e109d98eb86b7debc01970cdc # v2.0.0@@ -0,0 +1,22 @@
1
+name: Rust version2
+3
+on:4
+ workflow_dispatch:5
+ push:6
+ branches: ["main", "features/**", "release-**"]7
+ pull_request:8
+ branches: ["main", "features/**", "release-**"]9
+10
+permissions: {}11
+12
+jobs:13
+ msrv:14
+ runs-on: ubuntu-latest15
+ steps:16
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v617
+ with:18
+ persist-credentials: false19
+ - uses: taiki-e/install-action@b550161ef8a7bc4f2a671c0b03a18ac9ccedea1e # cargo-hack20
+ with:21
+ tool: cargo-hack22
+ - run: cargo hack check --rust-version --workspace --all-targets@@ -0,0 +1,82 @@
1
+# A reusable github actions workflow that will build xtask, if it is not2
+# already cached.3
+#4
+# It will create a pair of GHA cache entries, if they do not already exist.5
+# The cache keys take the form `xtask-{os}-{hash}`, where "{os}" is "linux"6
+# or "macos", and "{hash}" is the hash of the xtask# directory.7
+#8
+# The cache keys are written to output variables named "cachekey-{os}".9
+#10
+11
+name: Build xtask if necessary12
+13
+on:14
+ workflow_call:15
+ outputs:16
+ cachekey-linux:17
+ description: "The cache key for the linux build artifact"18
+ value: "${{ jobs.xtask.outputs.cachekey-linux }}"19
+ cachekey-macos:20
+ description: "The cache key for the macos build artifact"21
+ value: "${{ jobs.xtask.outputs.cachekey-macos }}"22
+23
+permissions: {}24
+25
+env:26
+ CARGO_TERM_COLOR: always27
+28
+jobs:29
+ xtask:30
+ name: "xtask-${{ matrix.os-name }}"31
+32
+ strategy:33
+ fail-fast: true34
+ matrix:35
+ include:36
+ - os: ubuntu-latest37
+ os-name: 🐧38
+ cachekey-id: linux39
+40
+ - os: macos-1541
+ os-name: 🍏42
+ cachekey-id: macos43
+44
+ runs-on: "${{ matrix.os }}"45
+46
+ steps:47
+ - name: Checkout repo48
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v649
+ with:50
+ persist-credentials: false51
+52
+ - name: Calculate cache key53
+ id: cachekey54
+ # set a step output variable "cachekey-{os}" that can be referenced in55
+ # the job outputs below.56
+ run: |57
+ echo "cachekey-${{ matrix.cachekey-id }}=xtask-${{ matrix.cachekey-id }}-${{ hashFiles('Cargo.toml', 'xtask/**') }}" >> $GITHUB_OUTPUT58
+59
+ - name: Check xtask cache60
+ uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.561
+ id: xtask-cache62
+ with:63
+ path: target/debug/xtask64
+ # use the cache key calculated in the step above. Bit of an awkward65
+ # syntax66
+ key: |67
+ ${{ steps.cachekey.outputs[format('cachekey-{0}', matrix.cachekey-id)] }}68
+69
+ - name: Install Rust stable toolchain70
+ if: steps.xtask-cache.outputs.cache-hit != 'true'71
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v172
+ with:73
+ toolchain: stable74
+75
+ - name: Build76
+ if: steps.xtask-cache.outputs.cache-hit != 'true'77
+ run: |78
+ cargo build -p xtask79
+80
+ outputs:81
+ "cachekey-linux": "${{ steps.cachekey.outputs.cachekey-linux }}"82
+ "cachekey-macos": "${{ steps.cachekey.outputs.cachekey-macos }}"@@ -0,0 +1,24 @@
1
+name: Lint GHA workflows with zizmor2
+3
+on:4
+ push:5
+ branches: ["main"]6
+ pull_request:7
+ branches: ["**"]8
+9
+permissions: {}10
+11
+jobs:12
+ zizmor:13
+ name: Run zizmor14
+ runs-on: ubuntu-latest15
+ permissions:16
+ security-events: write # Required for upload-sarif (used by zizmor-action) to upload SARIF files.17
+ steps:18
+ - name: Checkout repository19
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.220
+ with:21
+ persist-credentials: false22
+23
+ - name: Run zizmor24
+ uses: zizmorcore/zizmor-action@5f14fd08f7cf1cb1609c1e344975f152c7ee938d # v0.5.6@@ -0,0 +1,24 @@
1
+target2
+generated3
+master.zip4
+emsdk-*5
+.idea/6
+.env7
+.envrc8
+.build9
+.swiftpm10
+/Package.swift11
+# code coverage report12
+cobertura.xml13
+14
+## User settings15
+xcuserdata/16
+.vscode/17
+18
+## OS garbage19
+.DS_Store20
+21
+## Kotlin bindings generated files22
+bindings/kotlin/.gradle/23
+bindings/kotlin/buildSrc/build/24
+bindings/kotlin/buildSrc/.gradle/@@ -0,0 +1,91 @@
1
+[global]2
+# Use the GitHub Markdown flavour, https://github.com/rvben/rumdl/blob/main/docs/flavors/gfm.md.3
+flavor = "gfm"4
+disable = [5
+ # `commands-show-output`, https://github.com/rvben/rumdl/blob/main/docs/md014.md.6
+ # Not necessary to show the shell commands output every time.7
+ "MD014",8
+9
+ # `first-line-heading`, https://github.com/rvben/rumdl/blob/main/docs/md041.md.10
+ # Some documents are fragments, the first heading is defined somewhere else.11
+ "MD041",12
+]13
+14
+# `heading-style`, https://github.com/rvben/rumdl/blob/main/docs/md003.md.15
+[MD003]16
+style = "atx"17
+18
+# `ul-style`, https://github.com/rvben/rumdl/blob/main/docs/md004.md.19
+[MD004]20
+style = "dash"21
+22
+# `line-length`, https://github.com/rvben/rumdl/blob/main/docs/md013.md.23
+[MD013]24
+line-length = 8025
+code-blocks = false26
+reflow = true27
+28
+# `no-trailing-punctuation`, https://github.com/rvben/rumdl/blob/main/docs/md026.md.29
+[MD026]30
+punctuation = ".,;:"31
+32
+# `ol-prefix`, https://github.com/rvben/rumdl/blob/main/docs/md029.md.33
+[MD029]34
+style = "ordered"35
+36
+# `no-inline-html`, https://github.com/rvben/rumdl/blob/main/docs/md033.md.37
+[MD033]38
+allowed-elements = [39
+ "i",40
+ "q",41
+ "cite",42
+ "a",43
+ "time",44
+ "sub",45
+ "sup",46
+ "figure", "figcaption",47
+ "table",48
+ "summary", "details",49
+ "math", "mo", "mn", "mi", "semantics", "annotation",50
+]51
+disallowed-elements = ["gfm"]52
+fix = true53
+fix-mode = "relaxed"54
+55
+# `code-block-style`, https://github.com/rvben/rumdl/blob/main/docs/md046.md.56
+[MD046]57
+style = "fenced"58
+59
+# `code-fence-style`, https://github.com/rvben/rumdl/blob/main/docs/md048.md.60
+[MD048]61
+style = "backtick"62
+63
+# `emphasis-style`, https://github.com/rvben/rumdl/blob/main/docs/md049.md.64
+[MD049]65
+style = "underscore"66
+67
+# `strong-style`, https://github.com/rvben/rumdl/blob/main/docs/md050.md.68
+[MD050]69
+style = "asterisk"70
+71
+# `link-image-style`, https://github.com/rvben/rumdl/blob/main/docs/md054.md.72
+[MD054]73
+autolink = false74
+collapsed = false75
+preferred-style = "full"76
+77
+# `table-format`, https://github.com/rvben/rumdl/blob/main/docs/md060.md.78
+[MD060]79
+enabled = true80
+81
+# `heading-capitalization`, https://github.com/rvben/rumdl/blob/main/docs/md063.md.82
+[MD063]83
+enabled = true84
+style = "sentence-case"85
+max-level = 386
+ignore-words = ["Matrix", "Rust", "Swift", "Android", "Java"]87
+88
+# `list-item-spacing`, https://github.com/rvben/rumdl/blob/main/docs/md076.md.89
+[MD076]90
+style = "tight"91
+allow-loose-continuation = true@@ -0,0 +1,10 @@
1
+max_width = 1002
+comment_width = 803
+wrap_comments = true4
+imports_granularity = "Crate"5
+use_small_heuristics = "Max"6
+group_imports = "StdExternalCrate"7
+format_code_in_doc_comments = true8
+doc_comment_code_block_width = 809
+# Workaround for https://github.com/rust-lang/rust.vim/issues/46410
+edition = "2024"@@ -0,0 +1,44 @@
1
+[default]2
+extend-ignore-re = [3
+ # base 58 strings with spaces every four chars.4
+ # this would also match regular sentence parts with eight or more words of5
+ # exactly four characters in row, but that doesn't really happen.6
+ "[1-9A-Za-z]{4}( [1-9A-Za-z]{4}){7,}",7
+ # some heuristics for base64 strings with no false matches found at the8
+ # time of writing.9
+ "[A-Za-z0-9+=]{72,}",10
+ "([A-Za-z0-9+=]|\\\\\\s\\*){72,}",11
+ "[0-9+][A-Za-z0-9+]{30,}[a-z0-9+]",12
+ "\\$[A-Z0-9+][A-Za-z0-9+]{6,}[a-z0-9+]",13
+ "\\b[a-z0-9+/=][A-Za-z0-9+/=]{7,}[a-z0-9+/=][A-Z]\\b",14
+]15
+16
+[default.extend-identifiers]17
+WeeChat = "WeeChat"18
+19
+[default.extend-words]20
+# all of these are valid words, but should never appear in this repo21
+bellow = "below"22
+stat = "state"23
+sing = "sign"24
+singed = "signed"25
+singing = "signing"26
+# crate name27
+ratatui = "ratatui"28
+# path name29
+consts = "consts"30
+# base64 false positives31
+Nd = "Nd"32
+Abl = "Abl"33
+Som = "Som"34
+Ba = "Ba"35
+Yur = "Yur" # as found in crates/matrix-sdk-indexeddb/src/crypto_store/migrations/mod.rs36
+TYE = "TYE" # as found in testing/matrix-sdk-test/src/test_json/keys_query_sets.rs37
+38
+[files]39
+extend-exclude = [40
+ # Our json files contain a bunch of base64 encoded ed25519 keys.41
+ "*.json",42
+ # Fuzzy match patterns that can be understood as typos confusingly.43
+ "crates/matrix-sdk-ui/tests/integration/room_list_service.rs",44
+]@@ -0,0 +1,3 @@
1
+rules:2
+ unpinned-uses:3
+ severity: high@@ -0,0 +1,128 @@
1
+# Architecture2
+3
+The SDK is split into multiple layers:4
+5
+```text6
+ WASM (external crate matrix-rust-sdk-crypto-wasm)7
+ /8
+ / uniffi9
+ / /10
+ / bindings (matrix-sdk-ffi)11
+ crypto |12
+bindings |13
+ | |14
+ | UI (matrix-sdk-ui)15
+ | \16
+ | \17
+ | main (matrix-sdk)18
+ | / /19
+crypto /20
+ \ /21
+ store (matrix-sdk-base, + all the store impls)22
+ |23
+ common (matrix-sdk-common)24
+```25
+26
+Where the store implementations are `matrix-sdk-sqlite` and27
+`matrix-sdk-indexeddb` as well as `MemoryStore` which is defined in28
+`matrix-sdk-base`.29
+30
+## `crates/matrix-sdk`31
+32
+This is the main crate, and one that is expected to be used by most consumers.33
+Notable data types include:34
+35
+- the `Client`, which can run room-independent requests: logging in/out,36
+ creating rooms, running sync, etc.37
+- the `Room`, which represents a room and its state (notably via the observable38
+ `RoomInfo`), and allows running queries that are room-specific, notably39
+ sending events.40
+41
+## `crates/matrix-sdk-base`42
+43
+A _sans I/O_ crate to represent the base data types persisted in the SDK. No44
+network or storage I/O happens in this crate, although it defines traits45
+(`StateStore` and `EventCacheStore`) representing storage backends, as well as46
+dummy in-memory implementations of these traits.47
+48
+## `crates/matrix-sdk-common`49
+50
+Common helpers used by most of the other crates; almost a leaf in the dependency51
+tree of our own crates (the only crate it's using is test helpers).52
+53
+## `crates/matrix-sdk-crypto`54
+55
+A _sans I/O_ implementation of a state machine that handles end-to-end56
+encryption for Matrix clients. It defines a `CryptoStore` trait representing57
+storage backends that will perform the actual storage I/O later, as well as a58
+dummy in-memory implementation of this trait.59
+60
+## `crates/matrix-sdk-indexeddb`61
+62
+Implementations of `EventCacheStore`, `StateStore` and `CryptoStore` for a63
+indexeddb backend (for use in Web browsers, via WebAssembly).64
+65
+## `crates/matrix-sdk-qrcode`66
+67
+Implementation of QR codes for interactive verifications, used in the crypto68
+crate.69
+70
+## `crates/matrix-sdk-sqlite`71
+72
+Implementations of `EventCacheStore`, `StateStore` and `CryptoStore` for a73
+SQLite backend.74
+75
+## `crates/matrix-sdk-store-encryption`76
+77
+Low-level primitives for encrypting/decrypting/hashing values. Store78
+implementations that implement encryption at rest can use those primitives.79
+80
+## `crates/matrix-sdk-ui`81
+82
+Very high-level primitives implementing the best practices and cutting-edge83
+Matrix tech:84
+85
+- `EncryptionSyncService`: a specialized service running simplified sliding sync86
+ (MSC4186) for everything related to crypto and E2EE for the current `Client`.87
+- `RoomListService`: a specialized service running simplified sliding sync88
+ (MSC4186) for retrieving the list of current rooms, and exposing its entries.89
+- `SyncService`: a wrapper for the two previous services, coordinating their90
+ running and shutting down.91
+- `Timeline`: a high-level view for a `Room`'s timeline of events, grouping92
+ related events (aggregations) into single timeline items.93
+94
+## `bindings/matrix-sdk-crypto-ffi/`95
+96
+FFI bindings for the crypto crate, used in a Web browser context via97
+WebAssembly. These use `wasm-bindgen` to generate the bindings. These bindings98
+are used in Element Web and the legacy Element apps, as of 2024-11-07.99
+100
+## `bindings/matrix-sdk-ffi/`101
+102
+FFI bindings for important concepts in `matrix-sdk-ui` and `matrix-sdk`,103
+generated with [UniFFI](https://github.com/mozilla/uniffi-rs) and to be used104
+from other languages like Swift/Go/Kotlin. These bindings are used in the105
+ElementX apps, as of 2024-11-07.106
+107
+## `bindings/matrix-sdk-ffi-macros/`108
+109
+Macros used in `bindings/matrix-sdk-ffi`.110
+111
+## `testing/matrix-sdk-test/`112
+113
+Common test helpers, used by all the other crates.114
+115
+## `testing/matrix-sdk-test-macros/`116
+117
+Implementation of the `#[async_test]` test macro.118
+119
+## `testing/matrix-sdk-integration-testing/`120
+121
+Fully-fledged integration tests that require spawning a Synapse instance to run.122
+A docker-compose setup is provided to ease running the tests, and it is123
+compatible for running with Podman too.124
+125
+## Inspiration126
+127
+This document has been inspired by the reading of this128
+[blog post](https://matklad.github.io/2021/02/06/ARCHITECTURE.md.html).@@ -0,0 +1,412 @@
1
+# Contributing to `matrix-rust-sdk`2
+3
+## Chat rooms4
+5
+In addition to our [main Matrix room], we have a development room at6
+[#matrix-rust-sdk-dev:flipdot.org]. Please use it to discuss potential changes,7
+the overall direction of development and related topics.8
+9
+[main Matrix room]: https://matrix.to/#/#matrix-rust-sdk:matrix.org10
+[#matrix-rust-sdk-dev:flipdot.org]: https://matrix.to/#/#matrix-rust-sdk-dev:flipdot.org11
+12
+## Testing13
+14
+You can run most of the tests that also happen in CI also using15
+`cargo xtask ci`. This needs a few dependencies to be installed, as it also runs16
+automatic WASM tests:17
+18
+```bash19
+rustup component add clippy20
+cargo install cargo-nextest typos-cli wasm-pack21
+```22
+23
+If you want to execute only one part of CI, there are a few sub-commands (see24
+`cargo xtask ci --help`).25
+26
+Some tests are not automatically run in `cargo xtask ci`, for example the27
+integration tests that need a running synapse instance. These tests reside in28
+`./testing/matrix-sdk-integration-testing`. See its29
+[README](./testing/matrix-sdk-integration-testing/README.md) to easily set up a30
+synapse for testing purposes.31
+32
+### Snapshot testing33
+34
+You can add/review snapshot tests using [insta.rs](https://insta.rs)35
+36
+Every new struct/enum that derives `Serialize` `Deserialise` should have a37
+snapshot test for it. Any code change that breaks serialisation will then break38
+a test, the author will then have to decide how to handle migration and test it39
+if needed.40
+41
+And for an improved review experience it's recommended (but not necessary) to42
+install the `cargo-insta` tool:43
+44
+Unix:45
+46
+```shell47
+curl -LsSf https://insta.rs/install.sh | sh48
+```49
+50
+Windows:51
+52
+```shell53
+powershell -c "irm https://insta.rs/install.ps1 | iex"54
+```55
+56
+Usual flow is to first run the test, then review them.57
+58
+```shell59
+cargo insta test60
+cargo insta review61
+```62
+63
+### Intermittent failure policy64
+65
+While we strive to add test coverage for as many features as we can, it66
+sometimes happens that the tests will be intermittently failing in CI (such67
+tests are sometimes called "flaky"). This can be caused by race conditions68
+of all sorts, either in the test code itself, but sometimes in the underlying69
+feature being tested too, and as such, it requires some investigation, usually70
+from the original author of the test.71
+72
+Whenever such an intermittent failure happens, we try to open an issue to track73
+the failures, adding the74
+[`intermittent-failure`](https://github.com/matrix-org/matrix-rust-sdk/issues?q=is%3Aissue%20state%3Aopen%20label%3Aintermittent-failure)75
+label to it, and commenting with links to CI runs where the failure happened.76
+77
+If a test has been intermittently failing for **two weeks** or more, and no one78
+is actively working on fixing it, then we might decide to mark the test as79
+`ignored` until it is fixed, to not cause unrelated failures in other80
+contributors' pull requests and pushes.81
+82
+## Pull requests83
+84
+Ideally, a PR should have a _proper title_, with _atomic logical commits_, and85
+each commit should have a _good commit message_.86
+87
+A _proper PR title_ would be a one-liner summary of the changes in the PR,88
+following the same guidelines of a good commit message, including the89
+area/feature prefix. Something like `FFI: Allow logs files to be pruned.` would90
+be a good PR title.91
+92
+(An additional bad example of a bad PR title would be `mynickname/branch name`,93
+that is, just the branch name.)94
+95
+## Writing changelog entries96
+97
+We use towncrier to generate changelogs from individual fragment files. Each98
+change must be documented as a changelog fragment in the appropriate crate:99
+100
+```text101
+/crates/<crate-name>/changelog.d/102
+```103
+104
+Each changelog fragment must include **both the pull request number and the105
+fragment type** in its filename:106
+107
+```text108
+<PR number>.<fragment type>.md109
+```110
+111
+For example:112
+113
+```text114
+4357.added.md115
+4357.fixed.md116
+4357.changed.md117
+```118
+119
+The pull request link is automatically added during changelog generation, so it120
+must not be included manually.121
+122
+We use standard towncrier fragment types to categorize changes. Common types123
+include:124
+125
+- `added` – new features or functionality126
+- `changed` – changes in existing behavior127
+- `fixed` – bug fixes128
+- `removed` – removed features or APIs129
+- `security` – security-related fixes130
+- `internal` – changes that do not affect users (refactoring, CI, tooling)131
+132
+Choose the type that best matches the nature of the change.133
+134
+A well-written changelog entry should be understandable even to those who may135
+not be deeply familiar with the project. Provide enough context to ensure136
+clarity and ease of understanding.137
+138
+A couple of examples of bad changelog entry would look like:139
+140
+```markdown141
+- Fixed a panic.142
+```143
+144
+```markdown145
+Added the Bar function to Foo.146
+```147
+148
+A good example of a changelog entry could look like the following:149
+150
+```markdown151
+Use the inviter's server name and the server name from the room alias as152
+fallback values for the via parameter when requesting the room summary from the153
+homeserver. This ensures requests succeed even when the room being previewed is154
+hosted on a federated server.155
+```156
+157
+For security-related changelog entries, please include the following additional158
+details alongside the pull request number:159
+160
+- Impact: Clearly describe the issue's potential impact on users or systems.161
+- CVE Number: If available, include the CVE (Common Vulnerabilities and162
+ Exposures) identifier.163
+- GitHub Advisory Link: Provide a link to the corresponding GitHub security164
+ advisory for further context.165
+166
+```markdown167
+Use a constant-time Base64 encoder for secret key material to mitigate168
+side-channel attacks leaking secret key material169
+[CVE-2024-40640](https://www.cve.org/CVERecord?id=CVE-2024-40640),170
+[GHSA-j8cm-g7r6-hfpq](https://github.com/matrix-org/vodozemac/security/advisories/GHSA-j8cm-g7r6-hfpq)).171
+```172
+173
+## Commit message format174
+175
+Commit messages should be formatted as Conventional Commits. In addition, some176
+git trailers are supported and have special meaning (see below).177
+178
+### Conventional commits179
+180
+Conventional Commits are structured as follows:181
+182
+```text183
+<type>(<scope>): <short summary>184
+```185
+186
+The type of changes which will be included in changelogs is one of the187
+following:188
+189
+- `feat`: A new feature190
+- `fix`: A bugfix191
+- `doc`: Documentation changes192
+- `refactor`: Code refactoring193
+- `perf`: Performance improvements194
+- `ci`: Changes to CI configuration files and scripts195
+196
+The scope is optional and can specify the area of the codebase affected (e.g.,197
+olm, cipher).198
+199
+### Security fixes200
+201
+Commits addressing security vulnerabilities must include specific trailers for202
+vulnerability metadata, which should also be reflected in the corresponding203
+changelog entry.204
+205
+The metadata must be included in the following git-trailers:206
+207
+- `Security-Impact`: The magnitude of harm that can be expected, i.e.208
+ low/moderate/high/critical.209
+- `CVE`: The CVE that was assigned to this issue.210
+- `GitHub-Advisory`: The GitHub advisory identifier.211
+212
+Please include all the fields that are available.213
+214
+Example:215
+216
+```text217
+fix(crypto): Use a constant-time Base64 encoder for secret key material218
+219
+This patch fixes a security issue around a side-channel vulnerability[1]220
+when decoding secret key material using Base64.221
+222
+In some circumstances an attacker can obtain information about secret223
+secret key material via a controlled-channel and side-channel attack.224
+225
+This patch avoids the side-channel by switching to the base64ct crate226
+for the encoding, and more importantly, the decoding of secret key227
+material.228
+229
+Security-Impact: Low230
+CVE: CVE-2024-40640231
+GitHub-Advisory: GHSA-j8cm-g7r6-hfpq232
+```233
+234
+## Review process235
+236
+To streamline the review process and make it easier for maintainers to review237
+your contributions, follow these basic rules:238
+239
+1. Do not force push after a review has started. This helps maintainers track240
+ incremental changes without confusion and makes it easier to follow the241
+ evolution of the code.242
+243
+2. Do not mix moves and refactoring with functional changes. Keep these in244
+ separate commits for clarity. This ensures that the purpose of each commit is245
+ clear and easy to review.246
+247
+3. Each commit must compile. If commits don’t compile, git bisect becomes248
+ unusable, which hampers the debugging process and makes it harder to identify249
+ the source of issues.250
+251
+4. Commits should only introduce test failures if they are proving that a bug252
+ exists. New features should never introduce test failures. Test failures253
+ should only be used to demonstrate existing bugs, not as part of adding new254
+ functionality.255
+256
+5. Keep PRs on topic and small. Large PRs are harder to review and more prone to257
+ delays. Create small, focused commits that address a single topic. Use a258
+ combination of [git add] -p or [git checkout] -p to split changes into259
+ logical units. This makes your work easier to review and reduces the chance260
+ of introducing unrelated changes.261
+262
+[git add]: https://git-scm.com/docs/git-add#Documentation/git-add.txt---patch263
+[git checkout]: https://git-scm.com/docs/git-checkout#Documentation/git-checkout.txt---patch264
+265
+### Addressing review comments using fixup commits266
+267
+So you posted a PR and the maintainers aren't quite happy with it. Here are some268
+guidelines to make the maintainers life easier and increase the chances that269
+your PR will be reviewed swiftly.270
+271
+1. Use [fixup] commits. When addressing reviewer feedback, you can create fixup272
+ commits. These commits mark your changes as corrections of specific previous273
+ commits in the PR.274
+275
+Example:276
+277
+```shell278
+git commit --fixup=<commit-hash>279
+```280
+281
+This command creates a new commit that refers to an existing one, making it282
+easier to rebase and squash later while showing reviewers the history of fixes.283
+For extra points, link to the fixup commit in the thread where the change was284
+requested.285
+286
+2. After all requested changes were addressed, feel free to re-request a review.287
+ People might not notice that all changes were addressed.288
+289
+3. Once the PR has been approved, rebase your PR to squash all the fixup290
+ commits, the [autosquash] option can help with this.291
+292
+```shell293
+git rebase main --interactive --autosquash294
+```295
+296
+[fixup]: https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt297
+[autosquash]: https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---autosquash298
+299
+## Sign off300
+301
+In order to have a concrete record that your contribution is intentional302
+and you agree to license it under the same terms as the project's303
+license, we've adopted the same lightweight approach that the [Linux304
+Kernel](https://www.kernel.org/doc/Documentation/SubmittingPatches),305
+[Docker](https://github.com/docker/docker/blob/master/CONTRIBUTING.md),306
+and many other projects use: the DCO ([Developer Certificate of307
+Origin](http://developercertificate.org/)). This is a simple declaration that308
+you wrote the contribution or otherwise have the right to contribute it to309
+Matrix:310
+311
+```text312
+Developer Certificate of Origin313
+Version 1.1314
+315
+Copyright (C) 2004, 2006 The Linux Foundation and its contributors.316
+660 York Street, Suite 102,317
+San Francisco, CA 94110 USA318
+319
+Everyone is permitted to copy and distribute verbatim copies of this320
+license document, but changing it is not allowed.321
+322
+Developer's Certificate of Origin 1.1323
+324
+By making a contribution to this project, I certify that:325
+326
+(a) The contribution was created in whole or in part by me and I327
+ have the right to submit it under the open source license328
+ indicated in the file; or329
+330
+(b) The contribution is based upon previous work that, to the best331
+ of my knowledge, is covered under an appropriate open source332
+ license and I have the right under that license to submit that333
+ work with modifications, whether created in whole or in part334
+ by me, under the same open source license (unless I am335
+ permitted to submit under a different license), as indicated336
+ in the file; or337
+338
+(c) The contribution was provided directly to me by some other339
+ person who certified (a), (b) or (c) and I have not modified340
+ it.341
+342
+(d) I understand and agree that this project and the contribution343
+ are public and that a record of the contribution (including all344
+ personal information I submit with it, including my sign-off) is345
+ maintained indefinitely and may be redistributed consistent with346
+ this project or the open source license(s) involved.347
+```348
+349
+If you agree to this for your contribution, then all that's needed is to350
+include the line in your commit or pull request comment:351
+352
+```text353
+Signed-off-by: Your Name <your@email.example.org>354
+```355
+356
+Git allows you to add this signoff automatically when using the `-s` flag to357
+`git commit`, which uses the name and email set in your `user.name` and358
+`user.email` git configs.359
+360
+If you forgot to sign off your commits before making your pull request and are361
+on Git 2.17+ you can mass signoff using rebase:362
+363
+```text364
+git rebase --signoff origin/main365
+```366
+367
+## AI policy368
+369
+This policy is a copy of the [Forgejo's AI agreement][Forgejo].370
+371
+### Terminology372
+373
+This does not necessarily reflect the official or commonly used terminology.374
+375
+Software and services that heavily rely on large language model technology to376
+generate their outcomes are referred to as _Artificial Intelligence_ (AI).377
+Examples of products that fit this definition: GitHub Copilot, ChatGPT, Claude378
+Sonnet, DeepSeek, Llama and Gemini.379
+380
+There is a distinction between _general_ and _narrow_ AI, all the aforementioned381
+examples fall under general AI as they were not trained to execute a specific382
+well-defined task. Narrow AI is trained to be used for specific well-defined383
+tasks where the problem space is known in advance.384
+385
+_Vibe coding_ is the practice where AI creates a code change (feature, bugfix,386
+tests, refactor) with a human that describes what needs to be implemented.387
+388
+_AI agents_ are AIs that are configured to perform interactions or make changes389
+with little to no human supervision.390
+391
+### Agreement392
+393
+1. If content was made with the help of AI, you **must** convey that this is394
+ the case. This includes content that you authored but was motivated by a395
+ suggestion of AI.396
+2. If at any point you used AI's work in your contribution you should make397
+ an effort to **verify** that you can submit this under the license of the398
+ repository.399
+3. The **accountability** of using AI in a contribution lies with the person400
+ that makes that contribution.401
+4. All communication, that includes: commit messages, pull request messages,402
+ documentation, code comments and issues (and comments on issues/pull403
+ requests), that is intended to be read by people to understand your thoughts404
+ and work **must not** have been generated with AI. We exclude machine405
+ translation and tooling that helps with grammar and spelling check.406
+5. Using general AI for review is **forbidden**. If the change contains changes407
+ to the user experience it has to be approved by a human reviewer.408
+6. It is **not allowed** to use AI in an autonomous-looking way to contribute to409
+ the Matrix Rust SDK. This also applies when someone engages in _vibe coding_410
+ or uses so-called _agent mode_.411
+412
+[Forgejo]: https://codeberg.org/forgejo/governance/src/branch/main/AIAgreement.md@@ -0,0 +1,8266 @@
1
+# This file is automatically @generated by Cargo.2
+# It is not intended for manual editing.3
+version = 44
+5
+[[package]]6
+name = "accessory"7
+version = "2.1.0"8
+source = "registry+https://github.com/rust-lang/crates.io-index"9
+checksum = "28e416a3ab45838bac2ab2d81b1088d738d7b2d2c5272a54d39366565a29bd80"10
+dependencies = [11
+ "macroific",12
+ "proc-macro2",13
+ "quote",14
+ "syn 2.0.101",15
+]16
+17
+[[package]]18
+name = "addr2line"19
+version = "0.25.1"20
+source = "registry+https://github.com/rust-lang/crates.io-index"21
+checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b"22
+dependencies = [23
+ "gimli",24
+]25
+26
+[[package]]27
+name = "adler2"28
+version = "2.0.1"29
+source = "registry+https://github.com/rust-lang/crates.io-index"30
+checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"31
+32
+[[package]]33
+name = "aead"34
+version = "0.5.2"35
+source = "registry+https://github.com/rust-lang/crates.io-index"36
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"37
+dependencies = [38
+ "crypto-common",39
+ "generic-array",40
+]41
+42
+[[package]]43
+name = "aes"44
+version = "0.8.4"45
+source = "registry+https://github.com/rust-lang/crates.io-index"46
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"47
+dependencies = [48
+ "cfg-if",49
+ "cipher",50
+ "cpufeatures 0.2.12",51
+]52
+53
+[[package]]54
+name = "aho-corasick"55
+version = "1.1.3"56
+source = "registry+https://github.com/rust-lang/crates.io-index"57
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"58
+dependencies = [59
+ "memchr",60
+]61
+62
+[[package]]63
+name = "allocator-api2"64
+version = "0.2.18"65
+source = "registry+https://github.com/rust-lang/crates.io-index"66
+checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"67
+68
+[[package]]69
+name = "android_system_properties"70
+version = "0.1.5"71
+source = "registry+https://github.com/rust-lang/crates.io-index"72
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"73
+dependencies = [74
+ "libc",75
+]76
+77
+[[package]]78
+name = "anes"79
+version = "0.1.6"80
+source = "registry+https://github.com/rust-lang/crates.io-index"81
+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"82
+83
+[[package]]84
+name = "anstyle"85
+version = "1.0.11"86
+source = "registry+https://github.com/rust-lang/crates.io-index"87
+checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd"88
+89
+[[package]]90
+name = "anyhow"91
+version = "1.0.100"92
+source = "registry+https://github.com/rust-lang/crates.io-index"93
+checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"94
+95
+[[package]]96
+name = "anymap2"97
+version = "0.13.0"98
+source = "registry+https://github.com/rust-lang/crates.io-index"99
+checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c"100
+101
+[[package]]102
+name = "approx"103
+version = "0.5.1"104
+source = "registry+https://github.com/rust-lang/crates.io-index"105
+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"106
+dependencies = [107
+ "num-traits",108
+]109
+110
+[[package]]111
+name = "aquamarine"112
+version = "0.6.0"113
+source = "registry+https://github.com/rust-lang/crates.io-index"114
+checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2"115
+dependencies = [116
+ "include_dir",117
+ "itertools 0.10.5",118
+ "proc-macro-error2",119
+ "proc-macro2",120
+ "quote",121
+ "syn 2.0.101",122
+]123
+124
+[[package]]125
+name = "arc-swap"126
+version = "1.7.1"127
+source = "registry+https://github.com/rust-lang/crates.io-index"128
+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"129
+130
+[[package]]131
+name = "archery"132
+version = "1.2.1"133
+source = "registry+https://github.com/rust-lang/crates.io-index"134
+checksum = "eae2ed21cd55021f05707a807a5fc85695dafb98832921f6cfa06db67ca5b869"135
+136
+[[package]]137
+name = "arrayref"138
+version = "0.3.8"139
+source = "registry+https://github.com/rust-lang/crates.io-index"140
+checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a"141
+142
+[[package]]143
+name = "arrayvec"144
+version = "0.7.6"145
+source = "registry+https://github.com/rust-lang/crates.io-index"146
+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"147
+dependencies = [148
+ "serde",149
+]150
+151
+[[package]]152
+name = "as_variant"153
+version = "1.3.0"154
+source = "registry+https://github.com/rust-lang/crates.io-index"155
+checksum = "9dbc3a507a82b17ba0d98f6ce8fd6954ea0c8152e98009d36a40d8dcc8ce078a"156
+157
+[[package]]158
+name = "askama"159
+version = "0.14.0"160
+source = "registry+https://github.com/rust-lang/crates.io-index"161
+checksum = "f75363874b771be265f4ffe307ca705ef6f3baa19011c149da8674a87f1b75c4"162
+dependencies = [163
+ "askama_derive",164
+ "itoa",165
+ "percent-encoding",166
+ "serde",167
+ "serde_json",168
+]169
+170
+[[package]]171
+name = "askama_derive"172
+version = "0.14.0"173
+source = "registry+https://github.com/rust-lang/crates.io-index"174
+checksum = "129397200fe83088e8a68407a8e2b1f826cf0086b21ccdb866a722c8bcd3a94f"175
+dependencies = [176
+ "askama_parser",177
+ "basic-toml",178
+ "memchr",179
+ "proc-macro2",180
+ "quote",181
+ "rustc-hash",182
+ "serde",183
+ "serde_derive",184
+ "syn 2.0.101",185
+]186
+187
+[[package]]188
+name = "askama_parser"189
+version = "0.14.0"190
+source = "registry+https://github.com/rust-lang/crates.io-index"191
+checksum = "d6ab5630b3d5eaf232620167977f95eb51f3432fc76852328774afbd242d4358"192
+dependencies = [193
+ "memchr",194
+ "serde",195
+ "serde_derive",196
+ "winnow 0.7.13",197
+]198
+199
+[[package]]200
+name = "assert-json-diff"201
+version = "2.0.2"202
+source = "registry+https://github.com/rust-lang/crates.io-index"203
+checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"204
+dependencies = [205
+ "serde",206
+ "serde_json",207
+]208
+209
+[[package]]210
+name = "assert_matches"211
+version = "1.5.0"212
+source = "registry+https://github.com/rust-lang/crates.io-index"213
+checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"214
+215
+[[package]]216
+name = "assert_matches2"217
+version = "0.1.2"218
+source = "registry+https://github.com/rust-lang/crates.io-index"219
+checksum = "15832d94c458da98cac0ffa6eca52cc19c2a3c6c951058500a5ae8f01f0fdf56"220
+221
+[[package]]222
+name = "assign"223
+version = "1.1.1"224
+source = "registry+https://github.com/rust-lang/crates.io-index"225
+checksum = "5f093eed78becd229346bf859eec0aa4dd7ddde0757287b2b4107a1f09c80002"226
+227
+[[package]]228
+name = "async-channel"229
+version = "2.5.0"230
+source = "registry+https://github.com/rust-lang/crates.io-index"231
+checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"232
+dependencies = [233
+ "concurrent-queue",234
+ "event-listener-strategy",235
+ "futures-core",236
+ "pin-project-lite",237
+]238
+239
+[[package]]240
+name = "async-compat"241
+version = "0.2.5"242
+source = "git+https://github.com/element-hq/async-compat?rev=5a27c8b290f1f1dcfc0c4ec22c464e38528aa591#5a27c8b290f1f1dcfc0c4ec22c464e38528aa591"243
+dependencies = [244
+ "futures-core",245
+ "futures-io",246
+ "once_cell",247
+ "pin-project-lite",248
+ "tokio",249
+]250
+251
+[[package]]252
+name = "async-compression"253
+version = "0.4.12"254
+source = "registry+https://github.com/rust-lang/crates.io-index"255
+checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa"256
+dependencies = [257
+ "flate2",258
+ "futures-core",259
+ "memchr",260
+ "pin-project-lite",261
+ "tokio",262
+]263
+264
+[[package]]265
+name = "async-once-cell"266
+version = "0.5.4"267
+source = "registry+https://github.com/rust-lang/crates.io-index"268
+checksum = "4288f83726785267c6f2ef073a3d83dc3f9b81464e9f99898240cced85fce35a"269
+270
+[[package]]271
+name = "async-rx"272
+version = "0.2.0"273
+source = "registry+https://github.com/rust-lang/crates.io-index"274
+checksum = "9053bf9b3852b83be29d9a29dd7dcf68273f81b10d55ae8beceedb4d23f41448"275
+dependencies = [276
+ "futures-core",277
+ "pin-project-lite",278
+]279
+280
+[[package]]281
+name = "async-stream"282
+version = "0.3.6"283
+source = "registry+https://github.com/rust-lang/crates.io-index"284
+checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476"285
+dependencies = [286
+ "async-stream-impl",287
+ "futures-core",288
+ "pin-project-lite",289
+]290
+291
+[[package]]292
+name = "async-stream-impl"293
+version = "0.3.6"294
+source = "registry+https://github.com/rust-lang/crates.io-index"295
+checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"296
+dependencies = [297
+ "proc-macro2",298
+ "quote",299
+ "syn 2.0.101",300
+]301
+302
+[[package]]303
+name = "async-trait"304
+version = "0.1.89"305
+source = "registry+https://github.com/rust-lang/crates.io-index"306
+checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"307
+dependencies = [308
+ "proc-macro2",309
+ "quote",310
+ "syn 2.0.101",311
+]312
+313
+[[package]]314
+name = "async_cell"315
+version = "0.2.3"316
+source = "registry+https://github.com/rust-lang/crates.io-index"317
+checksum = "447ab28afbb345f5408b120702a44e5529ebf90b1796ec76e9528df8e288e6c2"318
+dependencies = [319
+ "loom",320
+]321
+322
+[[package]]323
+name = "atomic"324
+version = "0.6.1"325
+source = "registry+https://github.com/rust-lang/crates.io-index"326
+checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340"327
+dependencies = [328
+ "bytemuck",329
+]330
+331
+[[package]]332
+name = "atomic-waker"333
+version = "1.1.2"334
+source = "registry+https://github.com/rust-lang/crates.io-index"335
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"336
+337
+[[package]]338
+name = "autocfg"339
+version = "1.3.0"340
+source = "registry+https://github.com/rust-lang/crates.io-index"341
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"342
+343
+[[package]]344
+name = "aws-lc-rs"345
+version = "1.16.2"346
+source = "registry+https://github.com/rust-lang/crates.io-index"347
+checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc"348
+dependencies = [349
+ "aws-lc-sys",350
+ "zeroize",351
+]352
+353
+[[package]]354
+name = "aws-lc-sys"355
+version = "0.39.0"356
+source = "registry+https://github.com/rust-lang/crates.io-index"357
+checksum = "1fa7e52a4c5c547c741610a2c6f123f3881e409b714cd27e6798ef020c514f0a"358
+dependencies = [359
+ "cc",360
+ "cmake",361
+ "dunce",362
+ "fs_extra",363
+]364
+365
+[[package]]366
+name = "axum"367
+version = "0.8.4"368
+source = "registry+https://github.com/rust-lang/crates.io-index"369
+checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5"370
+dependencies = [371
+ "axum-core",372
+ "bytes",373
+ "form_urlencoded",374
+ "futures-util",375
+ "http",376
+ "http-body",377
+ "http-body-util",378
+ "hyper",379
+ "hyper-util",380
+ "itoa",381
+ "matchit",382
+ "memchr",383
+ "mime",384
+ "percent-encoding",385
+ "pin-project-lite",386
+ "rustversion",387
+ "serde",388
+ "serde_json",389
+ "serde_path_to_error",390
+ "serde_urlencoded",391
+ "sync_wrapper",392
+ "tokio",393
+ "tower",394
+ "tower-layer",395
+ "tower-service",396
+ "tracing",397
+]398
+399
+[[package]]400
+name = "axum-core"401
+version = "0.5.2"402
+source = "registry+https://github.com/rust-lang/crates.io-index"403
+checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6"404
+dependencies = [405
+ "bytes",406
+ "futures-core",407
+ "http",408
+ "http-body",409
+ "http-body-util",410
+ "mime",411
+ "pin-project-lite",412
+ "rustversion",413
+ "sync_wrapper",414
+ "tower-layer",415
+ "tower-service",416
+ "tracing",417
+]418
+419
+[[package]]420
+name = "backon"421
+version = "1.6.0"422
+source = "registry+https://github.com/rust-lang/crates.io-index"423
+checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef"424
+dependencies = [425
+ "fastrand",426
+ "gloo-timers",427
+ "tokio",428
+]429
+430
+[[package]]431
+name = "backtrace"432
+version = "0.3.76"433
+source = "registry+https://github.com/rust-lang/crates.io-index"434
+checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6"435
+dependencies = [436
+ "addr2line",437
+ "cfg-if",438
+ "libc",439
+ "miniz_oxide",440
+ "object",441
+ "rustc-demangle",442
+ "windows-link 0.2.1",443
+]444
+445
+[[package]]446
+name = "base64"447
+version = "0.22.1"448
+source = "registry+https://github.com/rust-lang/crates.io-index"449
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"450
+451
+[[package]]452
+name = "base64ct"453
+version = "1.8.3"454
+source = "registry+https://github.com/rust-lang/crates.io-index"455
+checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"456
+457
+[[package]]458
+name = "basic-toml"459
+version = "0.1.9"460
+source = "registry+https://github.com/rust-lang/crates.io-index"461
+checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8"462
+dependencies = [463
+ "serde",464
+]465
+466
+[[package]]467
+name = "benchmarks"468
+version = "1.0.0"469
+dependencies = [470
+ "assert_matches",471
+ "codspeed-criterion-compat",472
+ "futures-util",473
+ "matrix-sdk",474
+ "matrix-sdk-base",475
+ "matrix-sdk-crypto",476
+ "matrix-sdk-sqlite",477
+ "matrix-sdk-test",478
+ "matrix-sdk-ui",479
+ "rand 0.10.1",480
+ "ruma",481
+ "serde",482
+ "serde_json",483
+ "tempfile",484
+ "tokio",485
+ "wiremock",486
+]487
+488
+[[package]]489
+name = "bit-set"490
+version = "0.5.3"491
+source = "registry+https://github.com/rust-lang/crates.io-index"492
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"493
+dependencies = [494
+ "bit-vec",495
+]496
+497
+[[package]]498
+name = "bit-vec"499
+version = "0.6.3"500
+source = "registry+https://github.com/rust-lang/crates.io-index"501
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"502
+503
+[[package]]504
+name = "bitflags"505
+version = "1.3.2"506
+source = "registry+https://github.com/rust-lang/crates.io-index"507
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"508
+509
+[[package]]510
+name = "bitflags"511
+version = "2.10.0"512
+source = "registry+https://github.com/rust-lang/crates.io-index"513
+checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"514
+dependencies = [515
+ "serde_core",516
+]517
+518
+[[package]]519
+name = "bitmaps"520
+version = "3.2.1"521
+source = "registry+https://github.com/rust-lang/crates.io-index"522
+checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6"523
+524
+[[package]]525
+name = "bitpacking"526
+version = "0.9.3"527
+source = "registry+https://github.com/rust-lang/crates.io-index"528
+checksum = "96a7139abd3d9cebf8cd6f920a389cf3dc9576172e32f4563f188cae3c3eb019"529
+dependencies = [530
+ "crunchy",531
+]532
+533
+[[package]]534
+name = "blake3"535
+version = "1.8.2"536
+source = "registry+https://github.com/rust-lang/crates.io-index"537
+checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0"538
+dependencies = [539
+ "arrayref",540
+ "arrayvec",541
+ "cc",542
+ "cfg-if",543
+ "constant_time_eq",544
+]545
+546
+[[package]]547
+name = "block-buffer"548
+version = "0.10.4"549
+source = "registry+https://github.com/rust-lang/crates.io-index"550
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"551
+dependencies = [552
+ "generic-array",553
+]554
+555
+[[package]]556
+name = "block-padding"557
+version = "0.3.3"558
+source = "registry+https://github.com/rust-lang/crates.io-index"559
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"560
+dependencies = [561
+ "generic-array",562
+]563
+564
+[[package]]565
+name = "bon"566
+version = "3.6.5"567
+source = "registry+https://github.com/rust-lang/crates.io-index"568
+checksum = "33d9ef19ae5263a138da9a86871eca537478ab0332a7770bac7e3f08b801f89f"569
+dependencies = [570
+ "bon-macros",571
+ "rustversion",572
+]573
+574
+[[package]]575
+name = "bon-macros"576
+version = "3.6.5"577
+source = "registry+https://github.com/rust-lang/crates.io-index"578
+checksum = "577ae008f2ca11ca7641bd44601002ee5ab49ef0af64846ce1ab6057218a5cc1"579
+dependencies = [580
+ "darling 0.21.1",581
+ "ident_case",582
+ "prettyplease",583
+ "proc-macro2",584
+ "quote",585
+ "rustversion",586
+ "syn 2.0.101",587
+]588
+589
+[[package]]590
+name = "bs58"591
+version = "0.5.1"592
+source = "registry+https://github.com/rust-lang/crates.io-index"593
+checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"594
+dependencies = [595
+ "tinyvec",596
+]597
+598
+[[package]]599
+name = "bumpalo"600
+version = "3.16.0"601
+source = "registry+https://github.com/rust-lang/crates.io-index"602
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"603
+604
+[[package]]605
+name = "bytemuck"606
+version = "1.16.3"607
+source = "registry+https://github.com/rust-lang/crates.io-index"608
+checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83"609
+610
+[[package]]611
+name = "byteorder"612
+version = "1.5.0"613
+source = "registry+https://github.com/rust-lang/crates.io-index"614
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"615
+616
+[[package]]617
+name = "byteorder-lite"618
+version = "0.1.0"619
+source = "registry+https://github.com/rust-lang/crates.io-index"620
+checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"621
+622
+[[package]]623
+name = "bytes"624
+version = "1.11.1"625
+source = "registry+https://github.com/rust-lang/crates.io-index"626
+checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"627
+628
+[[package]]629
+name = "bytesize"630
+version = "2.3.0"631
+source = "registry+https://github.com/rust-lang/crates.io-index"632
+checksum = "00f4369ba008f82b968b1acbe31715ec37bd45236fa0726605a36cc3060ea256"633
+634
+[[package]]635
+name = "camino"636
+version = "1.2.2"637
+source = "registry+https://github.com/rust-lang/crates.io-index"638
+checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48"639
+dependencies = [640
+ "serde_core",641
+]642
+643
+[[package]]644
+name = "cargo-platform"645
+version = "0.1.9"646
+source = "registry+https://github.com/rust-lang/crates.io-index"647
+checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"648
+dependencies = [649
+ "serde",650
+]651
+652
+[[package]]653
+name = "cargo_metadata"654
+version = "0.19.2"655
+source = "registry+https://github.com/rust-lang/crates.io-index"656
+checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba"657
+dependencies = [658
+ "camino",659
+ "cargo-platform",660
+ "semver",661
+ "serde",662
+ "serde_json",663
+ "thiserror 2.0.18",664
+]665
+666
+[[package]]667
+name = "cast"668
+version = "0.3.0"669
+source = "registry+https://github.com/rust-lang/crates.io-index"670
+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"671
+672
+[[package]]673
+name = "castaway"674
+version = "0.2.3"675
+source = "registry+https://github.com/rust-lang/crates.io-index"676
+checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5"677
+dependencies = [678
+ "rustversion",679
+]680
+681
+[[package]]682
+name = "cbc"683
+version = "0.1.2"684
+source = "registry+https://github.com/rust-lang/crates.io-index"685
+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"686
+dependencies = [687
+ "cipher",688
+]689
+690
+[[package]]691
+name = "cc"692
+version = "1.2.52"693
+source = "registry+https://github.com/rust-lang/crates.io-index"694
+checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3"695
+dependencies = [696
+ "find-msvc-tools",697
+ "jobserver",698
+ "libc",699
+ "shlex",700
+]701
+702
+[[package]]703
+name = "census"704
+version = "0.4.2"705
+source = "registry+https://github.com/rust-lang/crates.io-index"706
+checksum = "4f4c707c6a209cbe82d10abd08e1ea8995e9ea937d2550646e02798948992be0"707
+708
+[[package]]709
+name = "cesu8"710
+version = "1.1.0"711
+source = "registry+https://github.com/rust-lang/crates.io-index"712
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"713
+714
+[[package]]715
+name = "cfg-if"716
+version = "1.0.4"717
+source = "registry+https://github.com/rust-lang/crates.io-index"718
+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"719
+720
+[[package]]721
+name = "cfg_aliases"722
+version = "0.2.1"723
+source = "registry+https://github.com/rust-lang/crates.io-index"724
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"725
+726
+[[package]]727
+name = "chacha20"728
+version = "0.9.1"729
+source = "registry+https://github.com/rust-lang/crates.io-index"730
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"731
+dependencies = [732
+ "cfg-if",733
+ "cipher",734
+ "cpufeatures 0.2.12",735
+]736
+737
+[[package]]738
+name = "chacha20"739
+version = "0.10.0"740
+source = "registry+https://github.com/rust-lang/crates.io-index"741
+checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"742
+dependencies = [743
+ "cfg-if",744
+ "cpufeatures 0.3.0",745
+ "rand_core 0.10.0",746
+]747
+748
+[[package]]749
+name = "chacha20poly1305"750
+version = "0.10.1"751
+source = "registry+https://github.com/rust-lang/crates.io-index"752
+checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"753
+dependencies = [754
+ "aead",755
+ "chacha20 0.9.1",756
+ "cipher",757
+ "poly1305",758
+ "zeroize",759
+]760
+761
+[[package]]762
+name = "chrono"763
+version = "0.4.42"764
+source = "registry+https://github.com/rust-lang/crates.io-index"765
+checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"766
+dependencies = [767
+ "iana-time-zone",768
+ "js-sys",769
+ "num-traits",770
+ "serde",771
+ "wasm-bindgen",772
+ "windows-link 0.2.1",773
+]774
+775
+[[package]]776
+name = "ciborium"777
+version = "0.2.2"778
+source = "registry+https://github.com/rust-lang/crates.io-index"779
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"780
+dependencies = [781
+ "ciborium-io",782
+ "ciborium-ll",783
+ "serde",784
+]785
+786
+[[package]]787
+name = "ciborium-io"788
+version = "0.2.2"789
+source = "registry+https://github.com/rust-lang/crates.io-index"790
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"791
+792
+[[package]]793
+name = "ciborium-ll"794
+version = "0.2.2"795
+source = "registry+https://github.com/rust-lang/crates.io-index"796
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"797
+dependencies = [798
+ "ciborium-io",799
+ "half",800
+]801
+802
+[[package]]803
+name = "cipher"804
+version = "0.4.4"805
+source = "registry+https://github.com/rust-lang/crates.io-index"806
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"807
+dependencies = [808
+ "crypto-common",809
+ "inout",810
+ "zeroize",811
+]812
+813
+[[package]]814
+name = "clap"815
+version = "4.5.53"816
+source = "registry+https://github.com/rust-lang/crates.io-index"817
+checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8"818
+dependencies = [819
+ "clap_builder",820
+ "clap_derive",821
+]822
+823
+[[package]]824
+name = "clap_builder"825
+version = "4.5.53"826
+source = "registry+https://github.com/rust-lang/crates.io-index"827
+checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00"828
+dependencies = [829
+ "anstyle",830
+ "clap_lex",831
+ "strsim",832
+]833
+834
+[[package]]835
+name = "clap_derive"836
+version = "4.5.49"837
+source = "registry+https://github.com/rust-lang/crates.io-index"838
+checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"839
+dependencies = [840
+ "heck",841
+ "proc-macro2",842
+ "quote",843
+ "syn 2.0.101",844
+]845
+846
+[[package]]847
+name = "clap_lex"848
+version = "0.7.5"849
+source = "registry+https://github.com/rust-lang/crates.io-index"850
+checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675"851
+852
+[[package]]853
+name = "cmake"854
+version = "0.1.57"855
+source = "registry+https://github.com/rust-lang/crates.io-index"856
+checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d"857
+dependencies = [858
+ "cc",859
+]860
+861
+[[package]]862
+name = "codspeed"863
+version = "4.2.1"864
+source = "registry+https://github.com/rust-lang/crates.io-index"865
+checksum = "5f0d98d97fd75ca4489a1a0997820a6521531085e7c8a98941bd0e1264d567dd"866
+dependencies = [867
+ "anyhow",868
+ "cc",869
+ "colored",870
+ "getrandom 0.2.15",871
+ "glob",872
+ "libc",873
+ "nix 0.30.1",874
+ "serde",875
+ "serde_json",876
+ "statrs",877
+]878
+879
+[[package]]880
+name = "codspeed-criterion-compat"881
+version = "4.2.1"882
+source = "registry+https://github.com/rust-lang/crates.io-index"883
+checksum = "d16fe2db207123f7b3a3b5cfff0c22f99469f7534145f3573f57f4c8a5653c2c"884
+dependencies = [885
+ "clap",886
+ "codspeed",887
+ "codspeed-criterion-compat-walltime",888
+ "colored",889
+ "futures",890
+ "regex",891
+ "tokio",892
+]893
+894
+[[package]]895
+name = "codspeed-criterion-compat-walltime"896
+version = "4.2.1"897
+source = "registry+https://github.com/rust-lang/crates.io-index"898
+checksum = "b035c7f9846b143aeabb3833f5b584023eb97b43ecbff3d997db74c4372df2bd"899
+dependencies = [900
+ "anes",901
+ "cast",902
+ "ciborium",903
+ "clap",904
+ "codspeed",905
+ "criterion-plot",906
+ "futures",907
+ "is-terminal",908
+ "itertools 0.10.5",909
+ "num-traits",910
+ "once_cell",911
+ "oorandom",912
+ "plotters",913
+ "rayon",914
+ "regex",915
+ "serde",916
+ "serde_derive",917
+ "serde_json",918
+ "tinytemplate",919
+ "tokio",920
+ "walkdir",921
+]922
+923
+[[package]]924
+name = "color-eyre"925
+version = "0.6.5"926
+source = "registry+https://github.com/rust-lang/crates.io-index"927
+checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d"928
+dependencies = [929
+ "backtrace",930
+ "color-spantrace",931
+ "eyre",932
+ "indenter",933
+ "once_cell",934
+ "owo-colors",935
+ "tracing-error",936
+]937
+938
+[[package]]939
+name = "color-spantrace"940
+version = "0.3.0"941
+source = "registry+https://github.com/rust-lang/crates.io-index"942
+checksum = "b8b88ea9df13354b55bc7234ebcce36e6ef896aca2e42a15de9e10edce01b427"943
+dependencies = [944
+ "once_cell",945
+ "owo-colors",946
+ "tracing-core",947
+ "tracing-error",948
+]949
+950
+[[package]]951
+name = "colored"952
+version = "2.2.0"953
+source = "registry+https://github.com/rust-lang/crates.io-index"954
+checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"955
+dependencies = [956
+ "lazy_static",957
+ "windows-sys 0.59.0",958
+]959
+960
+[[package]]961
+name = "combine"962
+version = "4.6.7"963
+source = "registry+https://github.com/rust-lang/crates.io-index"964
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"965
+dependencies = [966
+ "bytes",967
+ "memchr",968
+]969
+970
+[[package]]971
+name = "compact_str"972
+version = "0.9.0"973
+source = "registry+https://github.com/rust-lang/crates.io-index"974
+checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a"975
+dependencies = [976
+ "castaway",977
+ "cfg-if",978
+ "itoa",979
+ "rustversion",980
+ "ryu",981
+ "static_assertions",982
+]983
+984
+[[package]]985
+name = "concurrent-queue"986
+version = "2.5.0"987
+source = "registry+https://github.com/rust-lang/crates.io-index"988
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"989
+dependencies = [990
+ "crossbeam-utils",991
+]992
+993
+[[package]]994
+name = "console"995
+version = "0.15.8"996
+source = "registry+https://github.com/rust-lang/crates.io-index"997
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"998
+dependencies = [999
+ "encode_unicode",1000
+ "lazy_static",1001
+ "libc",1002
+ "windows-sys 0.52.0",1003
+]1004
+1005
+[[package]]1006
+name = "console_error_panic_hook"1007
+version = "0.1.7"1008
+source = "registry+https://github.com/rust-lang/crates.io-index"1009
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"1010
+dependencies = [1011
+ "cfg-if",1012
+ "wasm-bindgen",1013
+]1014
+1015
+[[package]]1016
+name = "const-oid"1017
+version = "0.9.6"1018
+source = "registry+https://github.com/rust-lang/crates.io-index"1019
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"1020
+1021
+[[package]]1022
+name = "const_panic"1023
+version = "0.2.15"1024
+source = "git+https://github.com/jplatte/const_panic?rev=e0b317a9a7bde2d48a7d15b6a60d70e4a41d3b5f#e0b317a9a7bde2d48a7d15b6a60d70e4a41d3b5f"1025
+dependencies = [1026
+ "typewit",1027
+]1028
+1029
+[[package]]1030
+name = "constant_time_eq"1031
+version = "0.3.1"1032
+source = "registry+https://github.com/rust-lang/crates.io-index"1033
+checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"1034
+1035
+[[package]]1036
+name = "convert_case"1037
+version = "0.7.1"1038
+source = "registry+https://github.com/rust-lang/crates.io-index"1039
+checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7"1040
+dependencies = [1041
+ "unicode-segmentation",1042
+]1043
+1044
+[[package]]1045
+name = "core-foundation"1046
+version = "0.10.1"1047
+source = "registry+https://github.com/rust-lang/crates.io-index"1048
+checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"1049
+dependencies = [1050
+ "core-foundation-sys",1051
+ "libc",1052
+]1053
+1054
+[[package]]1055
+name = "core-foundation-sys"1056
+version = "0.8.6"1057
+source = "registry+https://github.com/rust-lang/crates.io-index"1058
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"1059
+1060
+[[package]]1061
+name = "cpufeatures"1062
+version = "0.2.12"1063
+source = "registry+https://github.com/rust-lang/crates.io-index"1064
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"1065
+dependencies = [1066
+ "libc",1067
+]1068
+1069
+[[package]]1070
+name = "cpufeatures"1071
+version = "0.3.0"1072
+source = "registry+https://github.com/rust-lang/crates.io-index"1073
+checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"1074
+dependencies = [1075
+ "libc",1076
+]1077
+1078
+[[package]]1079
+name = "crc32fast"1080
+version = "1.4.2"1081
+source = "registry+https://github.com/rust-lang/crates.io-index"1082
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"1083
+dependencies = [1084
+ "cfg-if",1085
+]1086
+1087
+[[package]]1088
+name = "criterion-plot"1089
+version = "0.5.0"1090
+source = "registry+https://github.com/rust-lang/crates.io-index"1091
+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"1092
+dependencies = [1093
+ "cast",1094
+ "itertools 0.10.5",1095
+]1096
+1097
+[[package]]1098
+name = "crossbeam-channel"1099
+version = "0.5.15"1100
+source = "registry+https://github.com/rust-lang/crates.io-index"1101
+checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"1102
+dependencies = [1103
+ "crossbeam-utils",1104
+]1105
+1106
+[[package]]1107
+name = "crossbeam-deque"1108
+version = "0.8.5"1109
+source = "registry+https://github.com/rust-lang/crates.io-index"1110
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"1111
+dependencies = [1112
+ "crossbeam-epoch",1113
+ "crossbeam-utils",1114
+]1115
+1116
+[[package]]1117
+name = "crossbeam-epoch"1118
+version = "0.9.18"1119
+source = "registry+https://github.com/rust-lang/crates.io-index"1120
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"1121
+dependencies = [1122
+ "crossbeam-utils",1123
+]1124
+1125
+[[package]]1126
+name = "crossbeam-utils"1127
+version = "0.8.20"1128
+source = "registry+https://github.com/rust-lang/crates.io-index"1129
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"1130
+1131
+[[package]]1132
+name = "crossterm"1133
+version = "0.29.0"1134
+source = "registry+https://github.com/rust-lang/crates.io-index"1135
+checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"1136
+dependencies = [1137
+ "bitflags 2.10.0",1138
+ "crossterm_winapi",1139
+ "derive_more 2.0.1",1140
+ "document-features",1141
+ "mio",1142
+ "parking_lot",1143
+ "rustix",1144
+ "signal-hook",1145
+ "signal-hook-mio",1146
+ "winapi",1147
+]1148
+1149
+[[package]]1150
+name = "crossterm_winapi"1151
+version = "0.9.1"1152
+source = "registry+https://github.com/rust-lang/crates.io-index"1153
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"1154
+dependencies = [1155
+ "winapi",1156
+]1157
+1158
+[[package]]1159
+name = "crunchy"1160
+version = "0.2.2"1161
+source = "registry+https://github.com/rust-lang/crates.io-index"1162
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"1163
+1164
+[[package]]1165
+name = "crypto-common"1166
+version = "0.1.6"1167
+source = "registry+https://github.com/rust-lang/crates.io-index"1168
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"1169
+dependencies = [1170
+ "generic-array",1171
+ "rand_core 0.6.4",1172
+ "typenum",1173
+]1174
+1175
+[[package]]1176
+name = "csscolorparser"1177
+version = "0.6.2"1178
+source = "registry+https://github.com/rust-lang/crates.io-index"1179
+checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf"1180
+dependencies = [1181
+ "lab",1182
+ "phf 0.11.3",1183
+]1184
+1185
+[[package]]1186
+name = "ctor"1187
+version = "0.2.9"1188
+source = "registry+https://github.com/rust-lang/crates.io-index"1189
+checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"1190
+dependencies = [1191
+ "quote",1192
+ "syn 2.0.101",1193
+]1194
+1195
+[[package]]1196
+name = "ctr"1197
+version = "0.9.2"1198
+source = "registry+https://github.com/rust-lang/crates.io-index"1199
+checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"1200
+dependencies = [1201
+ "cipher",1202
+]1203
+1204
+[[package]]1205
+name = "curve25519-dalek"1206
+version = "4.1.3"1207
+source = "registry+https://github.com/rust-lang/crates.io-index"1208
+checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"1209
+dependencies = [1210
+ "cfg-if",1211
+ "cpufeatures 0.2.12",1212
+ "curve25519-dalek-derive",1213
+ "digest",1214
+ "fiat-crypto",1215
+ "rustc_version",1216
+ "serde",1217
+ "subtle",1218
+ "zeroize",1219
+]1220
+1221
+[[package]]1222
+name = "curve25519-dalek-derive"1223
+version = "0.1.1"1224
+source = "registry+https://github.com/rust-lang/crates.io-index"1225
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"1226
+dependencies = [1227
+ "proc-macro2",1228
+ "quote",1229
+ "syn 2.0.101",1230
+]1231
+1232
+[[package]]1233
+name = "darling"1234
+version = "0.20.10"1235
+source = "registry+https://github.com/rust-lang/crates.io-index"1236
+checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"1237
+dependencies = [1238
+ "darling_core 0.20.10",1239
+ "darling_macro 0.20.10",1240
+]1241
+1242
+[[package]]1243
+name = "darling"1244
+version = "0.21.1"1245
+source = "registry+https://github.com/rust-lang/crates.io-index"1246
+checksum = "d6b136475da5ef7b6ac596c0e956e37bad51b85b987ff3d5e230e964936736b2"1247
+dependencies = [1248
+ "darling_core 0.21.1",1249
+ "darling_macro 0.21.1",1250
+]1251
+1252
+[[package]]1253
+name = "darling_core"1254
+version = "0.20.10"1255
+source = "registry+https://github.com/rust-lang/crates.io-index"1256
+checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"1257
+dependencies = [1258
+ "fnv",1259
+ "ident_case",1260
+ "proc-macro2",1261
+ "quote",1262
+ "strsim",1263
+ "syn 2.0.101",1264
+]1265
+1266
+[[package]]1267
+name = "darling_core"1268
+version = "0.21.1"1269
+source = "registry+https://github.com/rust-lang/crates.io-index"1270
+checksum = "b44ad32f92b75fb438b04b68547e521a548be8acc339a6dacc4a7121488f53e6"1271
+dependencies = [1272
+ "fnv",1273
+ "ident_case",1274
+ "proc-macro2",1275
+ "quote",1276
+ "strsim",1277
+ "syn 2.0.101",1278
+]1279
+1280
+[[package]]1281
+name = "darling_macro"1282
+version = "0.20.10"1283
+source = "registry+https://github.com/rust-lang/crates.io-index"1284
+checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"1285
+dependencies = [1286
+ "darling_core 0.20.10",1287
+ "quote",1288
+ "syn 2.0.101",1289
+]1290
+1291
+[[package]]1292
+name = "darling_macro"1293
+version = "0.21.1"1294
+source = "registry+https://github.com/rust-lang/crates.io-index"1295
+checksum = "2b5be8a7a562d315a5b92a630c30cec6bcf663e6673f00fbb69cca66a6f521b9"1296
+dependencies = [1297
+ "darling_core 0.21.1",1298
+ "quote",1299
+ "syn 2.0.101",1300
+]1301
+1302
+[[package]]1303
+name = "datasketches"1304
+version = "0.2.0"1305
+source = "registry+https://github.com/rust-lang/crates.io-index"1306
+checksum = "c286de4e81ea2590afc24d754e0f83810c566f50a1388fa75ebd57928c0d9745"1307
+1308
+[[package]]1309
+name = "date_header"1310
+version = "1.0.5"1311
+source = "registry+https://github.com/rust-lang/crates.io-index"1312
+checksum = "0c03c416ed1a30fbb027ef484ba6ab6f80e1eada675e1a2b92fd673c045a1f1d"1313
+1314
+[[package]]1315
+name = "deadpool"1316
+version = "0.12.3"1317
+source = "registry+https://github.com/rust-lang/crates.io-index"1318
+checksum = "0be2b1d1d6ec8d846f05e137292d0b89133caf95ef33695424c09568bdd39b1b"1319
+dependencies = [1320
+ "deadpool-runtime 0.1.4",1321
+ "lazy_static",1322
+ "num_cpus",1323
+ "tokio",1324
+]1325
+1326
+[[package]]1327
+name = "deadpool"1328
+version = "0.13.0"1329
+source = "registry+https://github.com/rust-lang/crates.io-index"1330
+checksum = "883466cb8db62725aee5f4a6011e8a5d42912b42632df32aad57fc91127c6e04"1331
+dependencies = [1332
+ "deadpool-runtime 0.3.1",1333
+ "num_cpus",1334
+ "tokio",1335
+]1336
+1337
+[[package]]1338
+name = "deadpool-runtime"1339
+version = "0.1.4"1340
+source = "registry+https://github.com/rust-lang/crates.io-index"1341
+checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b"1342
+1343
+[[package]]1344
+name = "deadpool-runtime"1345
+version = "0.3.1"1346
+source = "registry+https://github.com/rust-lang/crates.io-index"1347
+checksum = "2657f61fb1dd8bf37a8d51093cc7cee4e77125b22f7753f49b289f831bec2bae"1348
+dependencies = [1349
+ "tokio",1350
+]1351
+1352
+[[package]]1353
+name = "deadpool-sync"1354
+version = "0.2.0"1355
+source = "registry+https://github.com/rust-lang/crates.io-index"1356
+checksum = "e385cc95d3d582c328b36d1ff90feac061102b001894b555e6b465a2e0eaabbf"1357
+dependencies = [1358
+ "deadpool-runtime 0.3.1",1359
+]1360
+1361
+[[package]]1362
+name = "debugid"1363
+version = "0.8.0"1364
+source = "registry+https://github.com/rust-lang/crates.io-index"1365
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"1366
+dependencies = [1367
+ "serde",1368
+ "uuid",1369
+]1370
+1371
+[[package]]1372
+name = "decancer"1373
+version = "3.3.3"1374
+source = "registry+https://github.com/rust-lang/crates.io-index"1375
+checksum = "a9244323129647178bf41ac861a2cdb9d9c81b9b09d3d0d1de9cd302b33b8a1d"1376
+1377
+[[package]]1378
+name = "delegate-display"1379
+version = "3.0.0"1380
+source = "registry+https://github.com/rust-lang/crates.io-index"1381
+checksum = "9926686c832494164c33a36bf65118f4bd6e704000b58c94681bf62e9ad67a74"1382
+dependencies = [1383
+ "impartial-ord",1384
+ "itoa",1385
+ "macroific",1386
+ "proc-macro2",1387
+ "quote",1388
+ "syn 2.0.101",1389
+]1390
+1391
+[[package]]1392
+name = "deltae"1393
+version = "0.3.2"1394
+source = "registry+https://github.com/rust-lang/crates.io-index"1395
+checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4"1396
+1397
+[[package]]1398
+name = "der"1399
+version = "0.7.9"1400
+source = "registry+https://github.com/rust-lang/crates.io-index"1401
+checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"1402
+dependencies = [1403
+ "const-oid",1404
+ "zeroize",1405
+]1406
+1407
+[[package]]1408
+name = "deranged"1409
+version = "0.5.3"1410
+source = "registry+https://github.com/rust-lang/crates.io-index"1411
+checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc"1412
+dependencies = [1413
+ "powerfmt",1414
+ "serde",1415
+]1416
+1417
+[[package]]1418
+name = "derivative"1419
+version = "2.2.0"1420
+source = "registry+https://github.com/rust-lang/crates.io-index"1421
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"1422
+dependencies = [1423
+ "proc-macro2",1424
+ "quote",1425
+ "syn 1.0.109",1426
+]1427
+1428
+[[package]]1429
+name = "derive_builder"1430
+version = "0.20.2"1431
+source = "registry+https://github.com/rust-lang/crates.io-index"1432
+checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947"1433
+dependencies = [1434
+ "derive_builder_macro",1435
+]1436
+1437
+[[package]]1438
+name = "derive_builder_core"1439
+version = "0.20.2"1440
+source = "registry+https://github.com/rust-lang/crates.io-index"1441
+checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8"1442
+dependencies = [1443
+ "darling 0.20.10",1444
+ "proc-macro2",1445
+ "quote",1446
+ "syn 2.0.101",1447
+]1448
+1449
+[[package]]1450
+name = "derive_builder_macro"1451
+version = "0.20.2"1452
+source = "registry+https://github.com/rust-lang/crates.io-index"1453
+checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c"1454
+dependencies = [1455
+ "derive_builder_core",1456
+ "syn 2.0.101",1457
+]1458
+1459
+[[package]]1460
+name = "derive_more"1461
+version = "1.0.0"1462
+source = "registry+https://github.com/rust-lang/crates.io-index"1463
+checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"1464
+dependencies = [1465
+ "derive_more-impl 1.0.0",1466
+]1467
+1468
+[[package]]1469
+name = "derive_more"1470
+version = "2.0.1"1471
+source = "registry+https://github.com/rust-lang/crates.io-index"1472
+checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678"1473
+dependencies = [1474
+ "derive_more-impl 2.0.1",1475
+]1476
+1477
+[[package]]1478
+name = "derive_more-impl"1479
+version = "1.0.0"1480
+source = "registry+https://github.com/rust-lang/crates.io-index"1481
+checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"1482
+dependencies = [1483
+ "proc-macro2",1484
+ "quote",1485
+ "syn 2.0.101",1486
+]1487
+1488
+[[package]]1489
+name = "derive_more-impl"1490
+version = "2.0.1"1491
+source = "registry+https://github.com/rust-lang/crates.io-index"1492
+checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"1493
+dependencies = [1494
+ "convert_case",1495
+ "proc-macro2",1496
+ "quote",1497
+ "syn 2.0.101",1498
+ "unicode-xid",1499
+]1500
+1501
+[[package]]1502
+name = "difflib"1503
+version = "0.4.0"1504
+source = "registry+https://github.com/rust-lang/crates.io-index"1505
+checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"1506
+1507
+[[package]]1508
+name = "digest"1509
+version = "0.10.7"1510
+source = "registry+https://github.com/rust-lang/crates.io-index"1511
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"1512
+dependencies = [1513
+ "block-buffer",1514
+ "crypto-common",1515
+ "subtle",1516
+]1517
+1518
+[[package]]1519
+name = "dirs"1520
+version = "6.0.0"1521
+source = "registry+https://github.com/rust-lang/crates.io-index"1522
+checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"1523
+dependencies = [1524
+ "dirs-sys",1525
+]1526
+1527
+[[package]]1528
+name = "dirs-sys"1529
+version = "0.5.0"1530
+source = "registry+https://github.com/rust-lang/crates.io-index"1531
+checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"1532
+dependencies = [1533
+ "libc",1534
+ "option-ext",1535
+ "redox_users",1536
+ "windows-sys 0.61.2",1537
+]1538
+1539
+[[package]]1540
+name = "displaydoc"1541
+version = "0.2.5"1542
+source = "registry+https://github.com/rust-lang/crates.io-index"1543
+checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"1544
+dependencies = [1545
+ "proc-macro2",1546
+ "quote",1547
+ "syn 2.0.101",1548
+]1549
+1550
+[[package]]1551
+name = "document-features"1552
+version = "0.2.12"1553
+source = "registry+https://github.com/rust-lang/crates.io-index"1554
+checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"1555
+dependencies = [1556
+ "litrs",1557
+]1558
+1559
+[[package]]1560
+name = "downcast-rs"1561
+version = "2.0.1"1562
+source = "registry+https://github.com/rust-lang/crates.io-index"1563
+checksum = "ea8a8b81cacc08888170eef4d13b775126db426d0b348bee9d18c2c1eaf123cf"1564
+1565
+[[package]]1566
+name = "dunce"1567
+version = "1.0.5"1568
+source = "registry+https://github.com/rust-lang/crates.io-index"1569
+checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"1570
+1571
+[[package]]1572
+name = "ed25519"1573
+version = "2.2.3"1574
+source = "registry+https://github.com/rust-lang/crates.io-index"1575
+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"1576
+dependencies = [1577
+ "pkcs8",1578
+ "serde",1579
+ "signature",1580
+]1581
+1582
+[[package]]1583
+name = "ed25519-dalek"1584
+version = "2.1.1"1585
+source = "registry+https://github.com/rust-lang/crates.io-index"1586
+checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"1587
+dependencies = [1588
+ "curve25519-dalek",1589
+ "ed25519",1590
+ "rand_core 0.6.4",1591
+ "serde",1592
+ "sha2",1593
+ "subtle",1594
+ "zeroize",1595
+]1596
+1597
+[[package]]1598
+name = "either"1599
+version = "1.13.0"1600
+source = "registry+https://github.com/rust-lang/crates.io-index"1601
+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"1602
+1603
+[[package]]1604
+name = "emojis"1605
+version = "0.8.0"1606
+source = "registry+https://github.com/rust-lang/crates.io-index"1607
+checksum = "50c1c1870b766fc398e5f0526498d09c94b6de15be5fd769a28bbc804fb1b05d"1608
+dependencies = [1609
+ "phf 0.13.1",1610
+]1611
+1612
+[[package]]1613
+name = "encode_unicode"1614
+version = "0.3.6"1615
+source = "registry+https://github.com/rust-lang/crates.io-index"1616
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"1617
+1618
+[[package]]1619
+name = "equivalent"1620
+version = "1.0.1"1621
+source = "registry+https://github.com/rust-lang/crates.io-index"1622
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"1623
+1624
+[[package]]1625
+name = "erased-serde"1626
+version = "0.4.10"1627
+source = "registry+https://github.com/rust-lang/crates.io-index"1628
+checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec"1629
+dependencies = [1630
+ "serde",1631
+ "serde_core",1632
+ "typeid",1633
+]1634
+1635
+[[package]]1636
+name = "errno"1637
+version = "0.3.13"1638
+source = "registry+https://github.com/rust-lang/crates.io-index"1639
+checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"1640
+dependencies = [1641
+ "libc",1642
+ "windows-sys 0.60.2",1643
+]1644
+1645
+[[package]]1646
+name = "euclid"1647
+version = "0.22.14"1648
+source = "registry+https://github.com/rust-lang/crates.io-index"1649
+checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06"1650
+dependencies = [1651
+ "num-traits",1652
+]1653
+1654
+[[package]]1655
+name = "event-listener"1656
+version = "5.4.1"1657
+source = "registry+https://github.com/rust-lang/crates.io-index"1658
+checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"1659
+dependencies = [1660
+ "concurrent-queue",1661
+ "parking",1662
+ "pin-project-lite",1663
+]1664
+1665
+[[package]]1666
+name = "event-listener-strategy"1667
+version = "0.5.4"1668
+source = "registry+https://github.com/rust-lang/crates.io-index"1669
+checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"1670
+dependencies = [1671
+ "event-listener",1672
+ "pin-project-lite",1673
+]1674
+1675
+[[package]]1676
+name = "example-autojoin"1677
+version = "0.1.0"1678
+dependencies = [1679
+ "anyhow",1680
+ "matrix-sdk",1681
+ "tokio",1682
+ "tracing-subscriber",1683
+]1684
+1685
+[[package]]1686
+name = "example-backups"1687
+version = "0.1.0"1688
+dependencies = [1689
+ "anyhow",1690
+ "clap",1691
+ "futures-util",1692
+ "matrix-sdk",1693
+ "tokio",1694
+ "tracing-subscriber",1695
+ "url",1696
+]1697
+1698
+[[package]]1699
+name = "example-command-bot"1700
+version = "0.1.0"1701
+dependencies = [1702
+ "anyhow",1703
+ "matrix-sdk",1704
+ "tokio",1705
+ "tracing-subscriber",1706
+]1707
+1708
+[[package]]1709
+name = "example-cross-signing-bootstrap"1710
+version = "0.1.0"1711
+dependencies = [1712
+ "anyhow",1713
+ "matrix-sdk",1714
+ "tokio",1715
+ "tracing-subscriber",1716
+ "url",1717
+]1718
+1719
+[[package]]1720
+name = "example-custom-events"1721
+version = "0.1.0"1722
+dependencies = [1723
+ "anyhow",1724
+ "matrix-sdk",1725
+ "serde",1726
+ "tokio",1727
+ "tracing-subscriber",1728
+]1729
+1730
+[[package]]1731
+name = "example-emoji-verification"1732
+version = "0.1.0"1733
+dependencies = [1734
+ "anyhow",1735
+ "clap",1736
+ "futures-util",1737
+ "matrix-sdk",1738
+ "tokio",1739
+ "tracing-subscriber",1740
+ "url",1741
+]1742
+1743
+[[package]]1744
+name = "example-get-profiles"1745
+version = "0.1.0"1746
+dependencies = [1747
+ "anyhow",1748
+ "matrix-sdk",1749
+ "tokio",1750
+ "tracing-subscriber",1751
+ "url",1752
+]1753
+1754
+[[package]]1755
+name = "example-getting-started"1756
+version = "0.1.0"1757
+dependencies = [1758
+ "anyhow",1759
+ "matrix-sdk",1760
+ "tokio",1761
+ "tracing-subscriber",1762
+]1763
+1764
+[[package]]1765
+name = "example-image-bot"1766
+version = "0.1.0"1767
+dependencies = [1768
+ "anyhow",1769
+ "matrix-sdk",1770
+ "mime",1771
+ "tokio",1772
+ "tracing-subscriber",1773
+ "url",1774
+]1775
+1776
+[[package]]1777
+name = "example-login"1778
+version = "0.1.0"1779
+dependencies = [1780
+ "anyhow",1781
+ "matrix-sdk",1782
+ "tokio",1783
+ "tracing-subscriber",1784
+ "url",1785
+]1786
+1787
+[[package]]1788
+name = "example-oauth-cli"1789
+version = "0.1.0"1790
+dependencies = [1791
+ "anyhow",1792
+ "dirs",1793
+ "futures-util",1794
+ "matrix-sdk",1795
+ "matrix-sdk-ui",1796
+ "rand 0.10.1",1797
+ "serde",1798
+ "serde_json",1799
+ "tokio",1800
+ "tracing-subscriber",1801
+ "url",1802
+]1803
+1804
+[[package]]1805
+name = "example-persist-session"1806
+version = "0.1.0"1807
+dependencies = [1808
+ "anyhow",1809
+ "dirs",1810
+ "matrix-sdk",1811
+ "rand 0.10.1",1812
+ "serde",1813
+ "serde_json",1814
+ "tokio",1815
+ "tracing-subscriber",1816
+]1817
+1818
+[[package]]1819
+name = "example-qr-login"1820
+version = "0.1.0"1821
+dependencies = [1822
+ "anyhow",1823
+ "clap",1824
+ "futures-util",1825
+ "matrix-sdk",1826
+ "tokio",1827
+ "tracing-subscriber",1828
+ "url",1829
+]1830
+1831
+[[package]]1832
+name = "example-secret-storage"1833
+version = "0.1.0"1834
+dependencies = [1835
+ "anyhow",1836
+ "clap",1837
+ "matrix-sdk",1838
+ "tokio",1839
+ "tracing-subscriber",1840
+ "url",1841
+]1842
+1843
+[[package]]1844
+name = "example-timeline"1845
+version = "0.1.0"1846
+dependencies = [1847
+ "anyhow",1848
+ "clap",1849
+ "futures-util",1850
+ "matrix-sdk",1851
+ "matrix-sdk-ui",1852
+ "tokio",1853
+ "tracing-subscriber",1854
+ "url",1855
+]1856
+1857
+[[package]]1858
+name = "extension-trait"1859
+version = "1.0.2"1860
+source = "registry+https://github.com/rust-lang/crates.io-index"1861
+checksum = "dd65f1b59dd22d680c7a626cc4a000c1e03d241c51c3e034d2bc9f1e90734f9b"1862
+dependencies = [1863
+ "proc-macro2",1864
+ "quote",1865
+ "syn 2.0.101",1866
+]1867
+1868
+[[package]]1869
+name = "eyeball"1870
+version = "0.8.8"1871
+source = "registry+https://github.com/rust-lang/crates.io-index"1872
+checksum = "d93bd0ebf93d61d6332d3c09a96e97975968a44e19a64c947bde06e6baff383f"1873
+dependencies = [1874
+ "futures-core",1875
+ "readlock",1876
+ "readlock-tokio",1877
+ "tokio",1878
+ "tokio-util",1879
+ "tracing",1880
+]1881
+1882
+[[package]]1883
+name = "eyeball-im"1884
+version = "0.8.0"1885
+source = "registry+https://github.com/rust-lang/crates.io-index"1886
+checksum = "4790c03df183c2b46665c1a58118c04fd3e3976ec2fe16a0aa00e00c9eea7754"1887
+dependencies = [1888
+ "futures-core",1889
+ "imbl",1890
+ "tokio",1891
+ "tracing",1892
+]1893
+1894
+[[package]]1895
+name = "eyeball-im-util"1896
+version = "0.10.0"1897
+source = "registry+https://github.com/rust-lang/crates.io-index"1898
+checksum = "809fa2e8e59c25a41f5b2440aa937f1e84df6ae48b707e65f69ce259b1c44bda"1899
+dependencies = [1900
+ "arrayvec",1901
+ "eyeball-im",1902
+ "futures-core",1903
+ "imbl",1904
+ "pin-project-lite",1905
+ "smallvec",1906
+]1907
+1908
+[[package]]1909
+name = "eyre"1910
+version = "0.6.12"1911
+source = "registry+https://github.com/rust-lang/crates.io-index"1912
+checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"1913
+dependencies = [1914
+ "indenter",1915
+ "once_cell",1916
+]1917
+1918
+[[package]]1919
+name = "fallible-iterator"1920
+version = "0.3.0"1921
+source = "registry+https://github.com/rust-lang/crates.io-index"1922
+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"1923
+1924
+[[package]]1925
+name = "fallible-streaming-iterator"1926
+version = "0.1.9"1927
+source = "registry+https://github.com/rust-lang/crates.io-index"1928
+checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"1929
+1930
+[[package]]1931
+name = "fancy-regex"1932
+version = "0.11.0"1933
+source = "registry+https://github.com/rust-lang/crates.io-index"1934
+checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"1935
+dependencies = [1936
+ "bit-set",1937
+ "regex",1938
+]1939
+1940
+[[package]]1941
+name = "fancy_constructor"1942
+version = "2.1.0"1943
+source = "registry+https://github.com/rust-lang/crates.io-index"1944
+checksum = "28a27643a5d05f3a22f5afd6e0d0e6e354f92d37907006f97b84b9cb79082198"1945
+dependencies = [1946
+ "macroific",1947
+ "proc-macro2",1948
+ "quote",1949
+ "syn 2.0.101",1950
+]1951
+1952
+[[package]]1953
+name = "fastdivide"1954
+version = "0.4.2"1955
+source = "registry+https://github.com/rust-lang/crates.io-index"1956
+checksum = "9afc2bd4d5a73106dd53d10d73d3401c2f32730ba2c0b93ddb888a8983680471"1957
+1958
+[[package]]1959
+name = "fastrand"1960
+version = "2.2.0"1961
+source = "registry+https://github.com/rust-lang/crates.io-index"1962
+checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4"1963
+1964
+[[package]]1965
+name = "fiat-crypto"1966
+version = "0.2.9"1967
+source = "registry+https://github.com/rust-lang/crates.io-index"1968
+checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"1969
+1970
+[[package]]1971
+name = "filedescriptor"1972
+version = "0.8.3"1973
+source = "registry+https://github.com/rust-lang/crates.io-index"1974
+checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d"1975
+dependencies = [1976
+ "libc",1977
+ "thiserror 1.0.63",1978
+ "winapi",1979
+]1980
+1981
+[[package]]1982
+name = "find-msvc-tools"1983
+version = "0.1.7"1984
+source = "registry+https://github.com/rust-lang/crates.io-index"1985
+checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41"1986
+1987
+[[package]]1988
+name = "findshlibs"1989
+version = "0.10.2"1990
+source = "registry+https://github.com/rust-lang/crates.io-index"1991
+checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64"1992
+dependencies = [1993
+ "cc",1994
+ "lazy_static",1995
+ "libc",1996
+ "winapi",1997
+]1998
+1999
+[[package]]2000
+name = "finl_unicode"2001
+version = "1.4.0"2002
+source = "registry+https://github.com/rust-lang/crates.io-index"2003
+checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5"2004
+2005
+[[package]]2006
+name = "fixedbitset"2007
+version = "0.4.2"2008
+source = "registry+https://github.com/rust-lang/crates.io-index"2009
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"2010
+2011
+[[package]]2012
+name = "flate2"2013
+version = "1.1.5"2014
+source = "registry+https://github.com/rust-lang/crates.io-index"2015
+checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"2016
+dependencies = [2017
+ "crc32fast",2018
+ "miniz_oxide",2019
+]2020
+2021
+[[package]]2022
+name = "fnv"2023
+version = "1.0.7"2024
+source = "registry+https://github.com/rust-lang/crates.io-index"2025
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"2026
+2027
+[[package]]2028
+name = "foldhash"2029
+version = "0.1.5"2030
+source = "registry+https://github.com/rust-lang/crates.io-index"2031
+checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"2032
+2033
+[[package]]2034
+name = "foldhash"2035
+version = "0.2.0"2036
+source = "registry+https://github.com/rust-lang/crates.io-index"2037
+checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"2038
+2039
+[[package]]2040
+name = "form_urlencoded"2041
+version = "1.2.2"2042
+source = "registry+https://github.com/rust-lang/crates.io-index"2043
+checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"2044
+dependencies = [2045
+ "percent-encoding",2046
+]2047
+2048
+[[package]]2049
+name = "fs-err"2050
+version = "2.11.0"2051
+source = "registry+https://github.com/rust-lang/crates.io-index"2052
+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"2053
+dependencies = [2054
+ "autocfg",2055
+]2056
+2057
+[[package]]2058
+name = "fs4"2059
+version = "0.13.1"2060
+source = "registry+https://github.com/rust-lang/crates.io-index"2061
+checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4"2062
+dependencies = [2063
+ "rustix",2064
+ "windows-sys 0.59.0",2065
+]2066
+2067
+[[package]]2068
+name = "fs_extra"2069
+version = "1.3.0"2070
+source = "registry+https://github.com/rust-lang/crates.io-index"2071
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"2072
+2073
+[[package]]2074
+name = "futures"2075
+version = "0.3.31"2076
+source = "registry+https://github.com/rust-lang/crates.io-index"2077
+checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"2078
+dependencies = [2079
+ "futures-channel",2080
+ "futures-core",2081
+ "futures-executor",2082
+ "futures-io",2083
+ "futures-sink",2084
+ "futures-task",2085
+ "futures-util",2086
+]2087
+2088
+[[package]]2089
+name = "futures-channel"2090
+version = "0.3.31"2091
+source = "registry+https://github.com/rust-lang/crates.io-index"2092
+checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"2093
+dependencies = [2094
+ "futures-core",2095
+ "futures-sink",2096
+]2097
+2098
+[[package]]2099
+name = "futures-core"2100
+version = "0.3.31"2101
+source = "registry+https://github.com/rust-lang/crates.io-index"2102
+checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"2103
+2104
+[[package]]2105
+name = "futures-executor"2106
+version = "0.3.31"2107
+source = "registry+https://github.com/rust-lang/crates.io-index"2108
+checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"2109
+dependencies = [2110
+ "futures-core",2111
+ "futures-task",2112
+ "futures-util",2113
+]2114
+2115
+[[package]]2116
+name = "futures-io"2117
+version = "0.3.31"2118
+source = "registry+https://github.com/rust-lang/crates.io-index"2119
+checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"2120
+2121
+[[package]]2122
+name = "futures-macro"2123
+version = "0.3.31"2124
+source = "registry+https://github.com/rust-lang/crates.io-index"2125
+checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"2126
+dependencies = [2127
+ "proc-macro2",2128
+ "quote",2129
+ "syn 2.0.101",2130
+]2131
+2132
+[[package]]2133
+name = "futures-sink"2134
+version = "0.3.31"2135
+source = "registry+https://github.com/rust-lang/crates.io-index"2136
+checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"2137
+2138
+[[package]]2139
+name = "futures-task"2140
+version = "0.3.31"2141
+source = "registry+https://github.com/rust-lang/crates.io-index"2142
+checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"2143
+2144
+[[package]]2145
+name = "futures-util"2146
+version = "0.3.31"2147
+source = "registry+https://github.com/rust-lang/crates.io-index"2148
+checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"2149
+dependencies = [2150
+ "futures-channel",2151
+ "futures-core",2152
+ "futures-io",2153
+ "futures-macro",2154
+ "futures-sink",2155
+ "futures-task",2156
+ "memchr",2157
+ "pin-project-lite",2158
+ "pin-utils",2159
+ "slab",2160
+]2161
+2162
+[[package]]2163
+name = "fuzzy-matcher"2164
+version = "0.3.7"2165
+source = "registry+https://github.com/rust-lang/crates.io-index"2166
+checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"2167
+dependencies = [2168
+ "thread_local",2169
+]2170
+2171
+[[package]]2172
+name = "generator"2173
+version = "0.8.7"2174
+source = "registry+https://github.com/rust-lang/crates.io-index"2175
+checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2"2176
+dependencies = [2177
+ "cc",2178
+ "cfg-if",2179
+ "libc",2180
+ "log",2181
+ "rustversion",2182
+ "windows",2183
+]2184
+2185
+[[package]]2186
+name = "generic-array"2187
+version = "0.14.7"2188
+source = "registry+https://github.com/rust-lang/crates.io-index"2189
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"2190
+dependencies = [2191
+ "typenum",2192
+ "version_check",2193
+]2194
+2195
+[[package]]2196
+name = "getrandom"2197
+version = "0.2.15"2198
+source = "registry+https://github.com/rust-lang/crates.io-index"2199
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"2200
+dependencies = [2201
+ "cfg-if",2202
+ "js-sys",2203
+ "libc",2204
+ "wasi",2205
+ "wasm-bindgen",2206
+]2207
+2208
+[[package]]2209
+name = "getrandom"2210
+version = "0.3.4"2211
+source = "registry+https://github.com/rust-lang/crates.io-index"2212
+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"2213
+dependencies = [2214
+ "cfg-if",2215
+ "js-sys",2216
+ "libc",2217
+ "r-efi 5.3.0",2218
+ "wasip2",2219
+ "wasm-bindgen",2220
+]2221
+2222
+[[package]]2223
+name = "getrandom"2224
+version = "0.4.2"2225
+source = "registry+https://github.com/rust-lang/crates.io-index"2226
+checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"2227
+dependencies = [2228
+ "cfg-if",2229
+ "js-sys",2230
+ "libc",2231
+ "r-efi 6.0.0",2232
+ "rand_core 0.10.0",2233
+ "wasip2",2234
+ "wasip3",2235
+ "wasm-bindgen",2236
+]2237
+2238
+[[package]]2239
+name = "gimli"2240
+version = "0.32.3"2241
+source = "registry+https://github.com/rust-lang/crates.io-index"2242
+checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"2243
+2244
+[[package]]2245
+name = "glob"2246
+version = "0.3.3"2247
+source = "registry+https://github.com/rust-lang/crates.io-index"2248
+checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"2249
+2250
+[[package]]2251
+name = "gloo-timers"2252
+version = "0.3.0"2253
+source = "registry+https://github.com/rust-lang/crates.io-index"2254
+checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"2255
+dependencies = [2256
+ "futures-channel",2257
+ "futures-core",2258
+ "js-sys",2259
+ "wasm-bindgen",2260
+]2261
+2262
+[[package]]2263
+name = "gloo-utils"2264
+version = "0.2.0"2265
+source = "registry+https://github.com/rust-lang/crates.io-index"2266
+checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa"2267
+dependencies = [2268
+ "js-sys",2269
+ "serde",2270
+ "serde_json",2271
+ "wasm-bindgen",2272
+ "web-sys",2273
+]2274
+2275
+[[package]]2276
+name = "goblin"2277
+version = "0.8.2"2278
+source = "registry+https://github.com/rust-lang/crates.io-index"2279
+checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47"2280
+dependencies = [2281
+ "log",2282
+ "plain",2283
+ "scroll",2284
+]2285
+2286
+[[package]]2287
+name = "goblin"2288
+version = "0.9.3"2289
+source = "registry+https://github.com/rust-lang/crates.io-index"2290
+checksum = "daa0a64d21a7eb230583b4c5f4e23b7e4e57974f96620f42a7e75e08ae66d745"2291
+dependencies = [2292
+ "log",2293
+ "plain",2294
+ "scroll",2295
+]2296
+2297
+[[package]]2298
+name = "growable-bloom-filter"2299
+version = "2.1.1"2300
+source = "registry+https://github.com/rust-lang/crates.io-index"2301
+checksum = "d174ccb4ba660d431329e7f0797870d0a4281e36353ec4b4a3c5eab6c2cfb6f1"2302
+dependencies = [2303
+ "serde",2304
+ "serde_bytes",2305
+ "serde_derive",2306
+ "xxhash-rust",2307
+]2308
+2309
+[[package]]2310
+name = "h2"2311
+version = "0.4.5"2312
+source = "registry+https://github.com/rust-lang/crates.io-index"2313
+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"2314
+dependencies = [2315
+ "atomic-waker",2316
+ "bytes",2317
+ "fnv",2318
+ "futures-core",2319
+ "futures-sink",2320
+ "http",2321
+ "indexmap",2322
+ "slab",2323
+ "tokio",2324
+ "tokio-util",2325
+ "tracing",2326
+]2327
+2328
+[[package]]2329
+name = "half"2330
+version = "2.4.1"2331
+source = "registry+https://github.com/rust-lang/crates.io-index"2332
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"2333
+dependencies = [2334
+ "cfg-if",2335
+ "crunchy",2336
+]2337
+2338
+[[package]]2339
+name = "hashbrown"2340
+version = "0.15.2"2341
+source = "registry+https://github.com/rust-lang/crates.io-index"2342
+checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"2343
+dependencies = [2344
+ "foldhash 0.1.5",2345
+]2346
+2347
+[[package]]2348
+name = "hashbrown"2349
+version = "0.16.1"2350
+source = "registry+https://github.com/rust-lang/crates.io-index"2351
+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"2352
+dependencies = [2353
+ "allocator-api2",2354
+ "equivalent",2355
+ "foldhash 0.2.0",2356
+]2357
+2358
+[[package]]2359
+name = "hashlink"2360
+version = "0.10.0"2361
+source = "registry+https://github.com/rust-lang/crates.io-index"2362
+checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"2363
+dependencies = [2364
+ "hashbrown 0.15.2",2365
+]2366
+2367
+[[package]]2368
+name = "headers"2369
+version = "0.4.1"2370
+source = "registry+https://github.com/rust-lang/crates.io-index"2371
+checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb"2372
+dependencies = [2373
+ "base64",2374
+ "bytes",2375
+ "headers-core",2376
+ "http",2377
+ "httpdate",2378
+ "mime",2379
+ "sha1",2380
+]2381
+2382
+[[package]]2383
+name = "headers-core"2384
+version = "0.3.0"2385
+source = "registry+https://github.com/rust-lang/crates.io-index"2386
+checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4"2387
+dependencies = [2388
+ "http",2389
+]2390
+2391
+[[package]]2392
+name = "heck"2393
+version = "0.5.0"2394
+source = "registry+https://github.com/rust-lang/crates.io-index"2395
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"2396
+2397
+[[package]]2398
+name = "hermit-abi"2399
+version = "0.3.9"2400
+source = "registry+https://github.com/rust-lang/crates.io-index"2401
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"2402
+2403
+[[package]]2404
+name = "hermit-abi"2405
+version = "0.5.2"2406
+source = "registry+https://github.com/rust-lang/crates.io-index"2407
+checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"2408
+2409
+[[package]]2410
+name = "hex"2411
+version = "0.4.3"2412
+source = "registry+https://github.com/rust-lang/crates.io-index"2413
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"2414
+2415
+[[package]]2416
+name = "hkdf"2417
+version = "0.12.4"2418
+source = "registry+https://github.com/rust-lang/crates.io-index"2419
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"2420
+dependencies = [2421
+ "hmac",2422
+]2423
+2424
+[[package]]2425
+name = "hmac"2426
+version = "0.12.1"2427
+source = "registry+https://github.com/rust-lang/crates.io-index"2428
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"2429
+dependencies = [2430
+ "digest",2431
+]2432
+2433
+[[package]]2434
+name = "hostname"2435
+version = "0.4.1"2436
+source = "registry+https://github.com/rust-lang/crates.io-index"2437
+checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65"2438
+dependencies = [2439
+ "cfg-if",2440
+ "libc",2441
+ "windows-link 0.1.1",2442
+]2443
+2444
+[[package]]2445
+name = "html5ever"2446
+version = "0.39.0"2447
+source = "registry+https://github.com/rust-lang/crates.io-index"2448
+checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8"2449
+dependencies = [2450
+ "log",2451
+ "markup5ever",2452
+]2453
+2454
+[[package]]2455
+name = "htmlescape"2456
+version = "0.3.1"2457
+source = "registry+https://github.com/rust-lang/crates.io-index"2458
+checksum = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163"2459
+2460
+[[package]]2461
+name = "http"2462
+version = "1.3.1"2463
+source = "registry+https://github.com/rust-lang/crates.io-index"2464
+checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565"2465
+dependencies = [2466
+ "bytes",2467
+ "fnv",2468
+ "itoa",2469
+]2470
+2471
+[[package]]2472
+name = "http-auth"2473
+version = "0.1.10"2474
+source = "registry+https://github.com/rust-lang/crates.io-index"2475
+checksum = "150fa4a9462ef926824cf4519c84ed652ca8f4fbae34cb8af045b5cbcaf98822"2476
+dependencies = [2477
+ "memchr",2478
+]2479
+2480
+[[package]]2481
+name = "http-body"2482
+version = "1.0.1"2483
+source = "registry+https://github.com/rust-lang/crates.io-index"2484
+checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"2485
+dependencies = [2486
+ "bytes",2487
+ "http",2488
+]2489
+2490
+[[package]]2491
+name = "http-body-util"2492
+version = "0.1.2"2493
+source = "registry+https://github.com/rust-lang/crates.io-index"2494
+checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"2495
+dependencies = [2496
+ "bytes",2497
+ "futures-util",2498
+ "http",2499
+ "http-body",2500
+ "pin-project-lite",2501
+]2502
+2503
+[[package]]2504
+name = "httparse"2505
+version = "1.9.4"2506
+source = "registry+https://github.com/rust-lang/crates.io-index"2507
+checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"2508
+2509
+[[package]]2510
+name = "httpdate"2511
+version = "1.0.3"2512
+source = "registry+https://github.com/rust-lang/crates.io-index"2513
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"2514
+2515
+[[package]]2516
+name = "hyper"2517
+version = "1.7.0"2518
+source = "registry+https://github.com/rust-lang/crates.io-index"2519
+checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e"2520
+dependencies = [2521
+ "atomic-waker",2522
+ "bytes",2523
+ "futures-channel",2524
+ "futures-core",2525
+ "h2",2526
+ "http",2527
+ "http-body",2528
+ "httparse",2529
+ "httpdate",2530
+ "itoa",2531
+ "pin-project-lite",2532
+ "pin-utils",2533
+ "smallvec",2534
+ "tokio",2535
+ "want",2536
+]2537
+2538
+[[package]]2539
+name = "hyper-rustls"2540
+version = "0.27.2"2541
+source = "registry+https://github.com/rust-lang/crates.io-index"2542
+checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"2543
+dependencies = [2544
+ "futures-util",2545
+ "http",2546
+ "hyper",2547
+ "hyper-util",2548
+ "rustls",2549
+ "rustls-pki-types",2550
+ "tokio",2551
+ "tokio-rustls",2552
+ "tower-service",2553
+]2554
+2555
+[[package]]2556
+name = "hyper-util"2557
+version = "0.1.16"2558
+source = "registry+https://github.com/rust-lang/crates.io-index"2559
+checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e"2560
+dependencies = [2561
+ "base64",2562
+ "bytes",2563
+ "futures-channel",2564
+ "futures-core",2565
+ "futures-util",2566
+ "http",2567
+ "http-body",2568
+ "hyper",2569
+ "ipnet",2570
+ "libc",2571
+ "percent-encoding",2572
+ "pin-project-lite",2573
+ "socket2 0.6.0",2574
+ "tokio",2575
+ "tower-service",2576
+ "tracing",2577
+]2578
+2579
+[[package]]2580
+name = "iana-time-zone"2581
+version = "0.1.60"2582
+source = "registry+https://github.com/rust-lang/crates.io-index"2583
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"2584
+dependencies = [2585
+ "android_system_properties",2586
+ "core-foundation-sys",2587
+ "iana-time-zone-haiku",2588
+ "js-sys",2589
+ "wasm-bindgen",2590
+ "windows-core 0.52.0",2591
+]2592
+2593
+[[package]]2594
+name = "iana-time-zone-haiku"2595
+version = "0.1.2"2596
+source = "registry+https://github.com/rust-lang/crates.io-index"2597
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"2598
+dependencies = [2599
+ "cc",2600
+]2601
+2602
+[[package]]2603
+name = "icu_collections"2604
+version = "1.5.0"2605
+source = "registry+https://github.com/rust-lang/crates.io-index"2606
+checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"2607
+dependencies = [2608
+ "displaydoc",2609
+ "yoke",2610
+ "zerofrom",2611
+ "zerovec",2612
+]2613
+2614
+[[package]]2615
+name = "icu_locid"2616
+version = "1.5.0"2617
+source = "registry+https://github.com/rust-lang/crates.io-index"2618
+checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"2619
+dependencies = [2620
+ "displaydoc",2621
+ "litemap",2622
+ "tinystr",2623
+ "writeable",2624
+ "zerovec",2625
+]2626
+2627
+[[package]]2628
+name = "icu_locid_transform"2629
+version = "1.5.0"2630
+source = "registry+https://github.com/rust-lang/crates.io-index"2631
+checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"2632
+dependencies = [2633
+ "displaydoc",2634
+ "icu_locid",2635
+ "icu_locid_transform_data",2636
+ "icu_provider",2637
+ "tinystr",2638
+ "zerovec",2639
+]2640
+2641
+[[package]]2642
+name = "icu_locid_transform_data"2643
+version = "1.5.0"2644
+source = "registry+https://github.com/rust-lang/crates.io-index"2645
+checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"2646
+2647
+[[package]]2648
+name = "icu_normalizer"2649
+version = "1.5.0"2650
+source = "registry+https://github.com/rust-lang/crates.io-index"2651
+checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"2652
+dependencies = [2653
+ "displaydoc",2654
+ "icu_collections",2655
+ "icu_normalizer_data",2656
+ "icu_properties",2657
+ "icu_provider",2658
+ "smallvec",2659
+ "utf16_iter",2660
+ "utf8_iter",2661
+ "write16",2662
+ "zerovec",2663
+]2664
+2665
+[[package]]2666
+name = "icu_normalizer_data"2667
+version = "1.5.0"2668
+source = "registry+https://github.com/rust-lang/crates.io-index"2669
+checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"2670
+2671
+[[package]]2672
+name = "icu_properties"2673
+version = "1.5.1"2674
+source = "registry+https://github.com/rust-lang/crates.io-index"2675
+checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"2676
+dependencies = [2677
+ "displaydoc",2678
+ "icu_collections",2679
+ "icu_locid_transform",2680
+ "icu_properties_data",2681
+ "icu_provider",2682
+ "tinystr",2683
+ "zerovec",2684
+]2685
+2686
+[[package]]2687
+name = "icu_properties_data"2688
+version = "1.5.0"2689
+source = "registry+https://github.com/rust-lang/crates.io-index"2690
+checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"2691
+2692
+[[package]]2693
+name = "icu_provider"2694
+version = "1.5.0"2695
+source = "registry+https://github.com/rust-lang/crates.io-index"2696
+checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"2697
+dependencies = [2698
+ "displaydoc",2699
+ "icu_locid",2700
+ "icu_provider_macros",2701
+ "stable_deref_trait",2702
+ "tinystr",2703
+ "writeable",2704
+ "yoke",2705
+ "zerofrom",2706
+ "zerovec",2707
+]2708
+2709
+[[package]]2710
+name = "icu_provider_macros"2711
+version = "1.5.0"2712
+source = "registry+https://github.com/rust-lang/crates.io-index"2713
+checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"2714
+dependencies = [2715
+ "proc-macro2",2716
+ "quote",2717
+ "syn 2.0.101",2718
+]2719
+2720
+[[package]]2721
+name = "id-arena"2722
+version = "2.3.0"2723
+source = "registry+https://github.com/rust-lang/crates.io-index"2724
+checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"2725
+2726
+[[package]]2727
+name = "ident_case"2728
+version = "1.0.1"2729
+source = "registry+https://github.com/rust-lang/crates.io-index"2730
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"2731
+2732
+[[package]]2733
+name = "idna"2734
+version = "1.1.0"2735
+source = "registry+https://github.com/rust-lang/crates.io-index"2736
+checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"2737
+dependencies = [2738
+ "idna_adapter",2739
+ "smallvec",2740
+ "utf8_iter",2741
+]2742
+2743
+[[package]]2744
+name = "idna_adapter"2745
+version = "1.2.0"2746
+source = "registry+https://github.com/rust-lang/crates.io-index"2747
+checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71"2748
+dependencies = [2749
+ "icu_normalizer",2750
+ "icu_properties",2751
+]2752
+2753
+[[package]]2754
+name = "image"2755
+version = "0.25.9"2756
+source = "registry+https://github.com/rust-lang/crates.io-index"2757
+checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a"2758
+dependencies = [2759
+ "bytemuck",2760
+ "byteorder-lite",2761
+ "moxcms",2762
+ "num-traits",2763
+]2764
+2765
+[[package]]2766
+name = "imbl"2767
+version = "6.1.0"2768
+source = "registry+https://github.com/rust-lang/crates.io-index"2769
+checksum = "0fade8ae6828627ad1fa094a891eccfb25150b383047190a3648d66d06186501"2770
+dependencies = [2771
+ "archery",2772
+ "bitmaps",2773
+ "imbl-sized-chunks",2774
+ "rand_core 0.9.3",2775
+ "rand_xoshiro",2776
+ "serde",2777
+ "version_check",2778
+]2779
+2780
+[[package]]2781
+name = "imbl-sized-chunks"2782
+version = "0.1.3"2783
+source = "registry+https://github.com/rust-lang/crates.io-index"2784
+checksum = "8f4241005618a62f8d57b2febd02510fb96e0137304728543dfc5fd6f052c22d"2785
+dependencies = [2786
+ "bitmaps",2787
+]2788
+2789
+[[package]]2790
+name = "impartial-ord"2791
+version = "1.0.6"2792
+source = "registry+https://github.com/rust-lang/crates.io-index"2793
+checksum = "0ab604ee7085efba6efc65e4ebca0e9533e3aff6cb501d7d77b211e3a781c6d5"2794
+dependencies = [2795
+ "proc-macro2",2796
+ "quote",2797
+ "syn 2.0.101",2798
+]2799
+2800
+[[package]]2801
+name = "include_dir"2802
+version = "0.7.4"2803
+source = "registry+https://github.com/rust-lang/crates.io-index"2804
+checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd"2805
+dependencies = [2806
+ "include_dir_macros",2807
+]2808
+2809
+[[package]]2810
+name = "include_dir_macros"2811
+version = "0.7.4"2812
+source = "registry+https://github.com/rust-lang/crates.io-index"2813
+checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75"2814
+dependencies = [2815
+ "proc-macro2",2816
+ "quote",2817
+]2818
+2819
+[[package]]2820
+name = "indenter"2821
+version = "0.3.3"2822
+source = "registry+https://github.com/rust-lang/crates.io-index"2823
+checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"2824
+2825
+[[package]]2826
+name = "indexmap"2827
+version = "2.12.1"2828
+source = "registry+https://github.com/rust-lang/crates.io-index"2829
+checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2"2830
+dependencies = [2831
+ "equivalent",2832
+ "hashbrown 0.16.1",2833
+ "serde",2834
+ "serde_core",2835
+]2836
+2837
+[[package]]2838
+name = "indoc"2839
+version = "2.0.7"2840
+source = "registry+https://github.com/rust-lang/crates.io-index"2841
+checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"2842
+dependencies = [2843
+ "rustversion",2844
+]2845
+2846
+[[package]]2847
+name = "inout"2848
+version = "0.1.3"2849
+source = "registry+https://github.com/rust-lang/crates.io-index"2850
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"2851
+dependencies = [2852
+ "block-padding",2853
+ "generic-array",2854
+]2855
+2856
+[[package]]2857
+name = "insta"2858
+version = "1.44.1"2859
+source = "registry+https://github.com/rust-lang/crates.io-index"2860
+checksum = "e8732d3774162a0851e3f2b150eb98f31a9885dd75985099421d393385a01dfd"2861
+dependencies = [2862
+ "console",2863
+ "once_cell",2864
+ "pest",2865
+ "pest_derive",2866
+ "serde",2867
+ "similar",2868
+]2869
+2870
+[[package]]2871
+name = "instability"2872
+version = "0.3.7"2873
+source = "registry+https://github.com/rust-lang/crates.io-index"2874
+checksum = "0bf9fed6d91cfb734e7476a06bde8300a1b94e217e1b523b6f0cd1a01998c71d"2875
+dependencies = [2876
+ "darling 0.20.10",2877
+ "indoc",2878
+ "proc-macro2",2879
+ "quote",2880
+ "syn 2.0.101",2881
+]2882
+2883
+[[package]]2884
+name = "inventory"2885
+version = "0.3.24"2886
+source = "registry+https://github.com/rust-lang/crates.io-index"2887
+checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b"2888
+dependencies = [2889
+ "rustversion",2890
+]2891
+2892
+[[package]]2893
+name = "ipnet"2894
+version = "2.9.0"2895
+source = "registry+https://github.com/rust-lang/crates.io-index"2896
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"2897
+2898
+[[package]]2899
+name = "iri-string"2900
+version = "0.7.8"2901
+source = "registry+https://github.com/rust-lang/crates.io-index"2902
+checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2"2903
+dependencies = [2904
+ "memchr",2905
+ "serde",2906
+]2907
+2908
+[[package]]2909
+name = "is-terminal"2910
+version = "0.4.16"2911
+source = "registry+https://github.com/rust-lang/crates.io-index"2912
+checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9"2913
+dependencies = [2914
+ "hermit-abi 0.5.2",2915
+ "libc",2916
+ "windows-sys 0.59.0",2917
+]2918
+2919
+[[package]]2920
+name = "itertools"2921
+version = "0.10.5"2922
+source = "registry+https://github.com/rust-lang/crates.io-index"2923
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"2924
+dependencies = [2925
+ "either",2926
+]2927
+2928
+[[package]]2929
+name = "itertools"2930
+version = "0.14.0"2931
+source = "registry+https://github.com/rust-lang/crates.io-index"2932
+checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"2933
+dependencies = [2934
+ "either",2935
+]2936
+2937
+[[package]]2938
+name = "itoa"2939
+version = "1.0.11"2940
+source = "registry+https://github.com/rust-lang/crates.io-index"2941
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"2942
+2943
+[[package]]2944
+name = "jni"2945
+version = "0.21.1"2946
+source = "registry+https://github.com/rust-lang/crates.io-index"2947
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"2948
+dependencies = [2949
+ "cesu8",2950
+ "cfg-if",2951
+ "combine",2952
+ "jni-sys",2953
+ "log",2954
+ "thiserror 1.0.63",2955
+ "walkdir",2956
+ "windows-sys 0.45.0",2957
+]2958
+2959
+[[package]]2960
+name = "jni-sys"2961
+version = "0.3.0"2962
+source = "registry+https://github.com/rust-lang/crates.io-index"2963
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"2964
+2965
+[[package]]2966
+name = "jobserver"2967
+version = "0.1.32"2968
+source = "registry+https://github.com/rust-lang/crates.io-index"2969
+checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"2970
+dependencies = [2971
+ "libc",2972
+]2973
+2974
+[[package]]2975
+name = "js-sys"2976
+version = "0.3.91"2977
+source = "registry+https://github.com/rust-lang/crates.io-index"2978
+checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c"2979
+dependencies = [2980
+ "once_cell",2981
+ "wasm-bindgen",2982
+]2983
+2984
+[[package]]2985
+name = "js_int"2986
+version = "0.2.2"2987
+source = "registry+https://github.com/rust-lang/crates.io-index"2988
+checksum = "d937f95470b270ce8b8950207715d71aa8e153c0d44c6684d59397ed4949160a"2989
+dependencies = [2990
+ "serde",2991
+]2992
+2993
+[[package]]2994
+name = "js_option"2995
+version = "0.2.0"2996
+source = "registry+https://github.com/rust-lang/crates.io-index"2997
+checksum = "c7dd3e281add16813cf673bf74a32249b0aa0d1c8117519a17b3ada5e8552b3c"2998
+dependencies = [2999
+ "serde_core",3000
+]3001
+3002
+[[package]]3003
+name = "json-structural-diff"3004
+version = "0.2.0"3005
+source = "registry+https://github.com/rust-lang/crates.io-index"3006
+checksum = "e878e36a8a44c158505c2c818abdc1350413ad83dcb774a0459f6a7ef2b65cbf"3007
+dependencies = [3008
+ "difflib",3009
+ "regex",3010
+ "serde_json",3011
+]3012
+3013
+[[package]]3014
+name = "jvm-getter"3015
+version = "0.1.0"3016
+source = "registry+https://github.com/rust-lang/crates.io-index"3017
+checksum = "6a9353d43a802ba22de0de749f4aa51f3414a6a9b5037559eaac65584db65218"3018
+dependencies = [3019
+ "goblin 0.9.3",3020
+ "jni-sys",3021
+ "libc",3022
+ "windows-sys 0.60.2",3023
+]3024
+3025
+[[package]]3026
+name = "kasuari"3027
+version = "0.4.12"3028
+source = "registry+https://github.com/rust-lang/crates.io-index"3029
+checksum = "bde5057d6143cc94e861d90f591b9303d6716c6b9602309150bd068853c10899"3030
+dependencies = [3031
+ "hashbrown 0.16.1",3032
+ "portable-atomic",3033
+ "thiserror 2.0.18",3034
+]3035
+3036
+[[package]]3037
+name = "konst"3038
+version = "0.4.3"3039
+source = "registry+https://github.com/rust-lang/crates.io-index"3040
+checksum = "f660d5f887e3562f9ab6f4a14988795b694099d66b4f5dedc02d197ba9becb1d"3041
+dependencies = [3042
+ "const_panic",3043
+ "typewit",3044
+]3045
+3046
+[[package]]3047
+name = "lab"3048
+version = "0.11.0"3049
+source = "registry+https://github.com/rust-lang/crates.io-index"3050
+checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f"3051
+3052
+[[package]]3053
+name = "language-tags"3054
+version = "0.3.2"3055
+source = "registry+https://github.com/rust-lang/crates.io-index"3056
+checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"3057
+dependencies = [3058
+ "serde",3059
+]3060
+3061
+[[package]]3062
+name = "lazy_static"3063
+version = "1.5.0"3064
+source = "registry+https://github.com/rust-lang/crates.io-index"3065
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"3066
+3067
+[[package]]3068
+name = "leb128fmt"3069
+version = "0.1.0"3070
+source = "registry+https://github.com/rust-lang/crates.io-index"3071
+checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"3072
+3073
+[[package]]3074
+name = "levenshtein_automata"3075
+version = "0.2.1"3076
+source = "registry+https://github.com/rust-lang/crates.io-index"3077
+checksum = "0c2cdeb66e45e9f36bfad5bbdb4d2384e70936afbee843c6f6543f0c551ebb25"3078
+3079
+[[package]]3080
+name = "libc"3081
+version = "0.2.175"3082
+source = "registry+https://github.com/rust-lang/crates.io-index"3083
+checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"3084
+3085
+[[package]]3086
+name = "libm"3087
+version = "0.2.15"3088
+source = "registry+https://github.com/rust-lang/crates.io-index"3089
+checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"3090
+3091
+[[package]]3092
+name = "libredox"3093
+version = "0.1.3"3094
+source = "registry+https://github.com/rust-lang/crates.io-index"3095
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"3096
+dependencies = [3097
+ "bitflags 2.10.0",3098
+ "libc",3099
+]3100
+3101
+[[package]]3102
+name = "libsqlite3-sys"3103
+version = "0.35.0"3104
+source = "registry+https://github.com/rust-lang/crates.io-index"3105
+checksum = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f"3106
+dependencies = [3107
+ "cc",3108
+ "pkg-config",3109
+ "vcpkg",3110
+]3111
+3112
+[[package]]3113
+name = "line-clipping"3114
+version = "0.3.5"3115
+source = "registry+https://github.com/rust-lang/crates.io-index"3116
+checksum = "5f4de44e98ddbf09375cbf4d17714d18f39195f4f4894e8524501726fd9a8a4a"3117
+dependencies = [3118
+ "bitflags 2.10.0",3119
+]3120
+3121
+[[package]]3122
+name = "linux-raw-sys"3123
+version = "0.9.4"3124
+source = "registry+https://github.com/rust-lang/crates.io-index"3125
+checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"3126
+3127
+[[package]]3128
+name = "litemap"3129
+version = "0.7.4"3130
+source = "registry+https://github.com/rust-lang/crates.io-index"3131
+checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"3132
+3133
+[[package]]3134
+name = "litrs"3135
+version = "1.0.0"3136
+source = "registry+https://github.com/rust-lang/crates.io-index"3137
+checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"3138
+3139
+[[package]]3140
+name = "lock_api"3141
+version = "0.4.12"3142
+source = "registry+https://github.com/rust-lang/crates.io-index"3143
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"3144
+dependencies = [3145
+ "autocfg",3146
+ "scopeguard",3147
+]3148
+3149
+[[package]]3150
+name = "log"3151
+version = "0.4.27"3152
+source = "registry+https://github.com/rust-lang/crates.io-index"3153
+checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"3154
+3155
+[[package]]3156
+name = "log-panics"3157
+version = "2.1.0"3158
+source = "registry+https://github.com/rust-lang/crates.io-index"3159
+checksum = "68f9dd8546191c1850ecf67d22f5ff00a935b890d0e84713159a55495cc2ac5f"3160
+dependencies = [3161
+ "backtrace",3162
+ "log",3163
+]3164
+3165
+[[package]]3166
+name = "loom"3167
+version = "0.7.2"3168
+source = "registry+https://github.com/rust-lang/crates.io-index"3169
+checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca"3170
+dependencies = [3171
+ "cfg-if",3172
+ "generator",3173
+ "scoped-tls",3174
+ "tracing",3175
+ "tracing-subscriber",3176
+]3177
+3178
+[[package]]3179
+name = "lru"3180
+version = "0.16.4"3181
+source = "registry+https://github.com/rust-lang/crates.io-index"3182
+checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39"3183
+dependencies = [3184
+ "hashbrown 0.16.1",3185
+]3186
+3187
+[[package]]3188
+name = "lru-slab"3189
+version = "0.1.2"3190
+source = "registry+https://github.com/rust-lang/crates.io-index"3191
+checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"3192
+3193
+[[package]]3194
+name = "lz4_flex"3195
+version = "0.13.1"3196
+source = "registry+https://github.com/rust-lang/crates.io-index"3197
+checksum = "7ef0d4ed8669f8f8826eb00dc878084aa8f253506c4fd5e8f58f5bce72ddb97e"3198
+3199
+[[package]]3200
+name = "mac_address"3201
+version = "1.1.8"3202
+source = "registry+https://github.com/rust-lang/crates.io-index"3203
+checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303"3204
+dependencies = [3205
+ "nix 0.29.0",3206
+ "winapi",3207
+]3208
+3209
+[[package]]3210
+name = "macroific"3211
+version = "2.0.0"3212
+source = "registry+https://github.com/rust-lang/crates.io-index"3213
+checksum = "89f276537b4b8f981bf1c13d79470980f71134b7bdcc5e6e911e910e556b0285"3214
+dependencies = [3215
+ "macroific_attr_parse",3216
+ "macroific_core",3217
+ "macroific_macro",3218
+]3219
+3220
+[[package]]3221
+name = "macroific_attr_parse"3222
+version = "2.0.0"3223
+source = "registry+https://github.com/rust-lang/crates.io-index"3224
+checksum = "ad4023761b45fcd36abed8fb7ae6a80456b0a38102d55e89a57d9a594a236be9"3225
+dependencies = [3226
+ "proc-macro2",3227
+ "quote",3228
+ "sealed",3229
+ "syn 2.0.101",3230
+]3231
+3232
+[[package]]3233
+name = "macroific_core"3234
+version = "2.0.0"3235
+source = "registry+https://github.com/rust-lang/crates.io-index"3236
+checksum = "d0a7594d3c14916fa55bef7e9d18c5daa9ed410dd37504251e4b75bbdeec33e3"3237
+dependencies = [3238
+ "proc-macro2",3239
+ "quote",3240
+ "sealed",3241
+ "syn 2.0.101",3242
+]3243
+3244
+[[package]]3245
+name = "macroific_macro"3246
+version = "2.0.0"3247
+source = "registry+https://github.com/rust-lang/crates.io-index"3248
+checksum = "4da6f2ed796261b0a74e2b52b42c693bb6dee1effba3a482c49592659f824b3b"3249
+dependencies = [3250
+ "macroific_attr_parse",3251
+ "macroific_core",3252
+ "proc-macro2",3253
+ "quote",3254
+ "syn 2.0.101",3255
+]3256
+3257
+[[package]]3258
+name = "maplit"3259
+version = "1.0.2"3260
+source = "registry+https://github.com/rust-lang/crates.io-index"3261
+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"3262
+3263
+[[package]]3264
+name = "markup5ever"3265
+version = "0.39.0"3266
+source = "registry+https://github.com/rust-lang/crates.io-index"3267
+checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de"3268
+dependencies = [3269
+ "log",3270
+ "tendril",3271
+ "web_atoms",3272
+]3273
+3274
+[[package]]3275
+name = "matchers"3276
+version = "0.2.0"3277
+source = "registry+https://github.com/rust-lang/crates.io-index"3278
+checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"3279
+dependencies = [3280
+ "regex-automata",3281
+]3282
+3283
+[[package]]3284
+name = "matchit"3285
+version = "0.8.4"3286
+source = "registry+https://github.com/rust-lang/crates.io-index"3287
+checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3"3288
+3289
+[[package]]3290
+name = "matrix-pickle"3291
+version = "0.2.1"3292
+source = "registry+https://github.com/rust-lang/crates.io-index"3293
+checksum = "4e2551de3bba2cc65b52dc6b268df6114011fe118ac24870fbcf1b35537bd721"3294
+dependencies = [3295
+ "matrix-pickle-derive",3296
+ "thiserror 1.0.63",3297
+]3298
+3299
+[[package]]3300
+name = "matrix-pickle-derive"3301
+version = "0.2.1"3302
+source = "registry+https://github.com/rust-lang/crates.io-index"3303
+checksum = "f75de44c3120d78e978adbcf6d453b20ba011f3c46363e52d1dbbc72f545e9fb"3304
+dependencies = [3305
+ "proc-macro-crate",3306
+ "proc-macro-error2",3307
+ "proc-macro2",3308
+ "quote",3309
+ "syn 2.0.101",3310
+]3311
+3312
+[[package]]3313
+name = "matrix-sdk"3314
+version = "0.18.0"3315
+dependencies = [3316
+ "anyhow",3317
+ "anymap2",3318
+ "aquamarine",3319
+ "as_variant",3320
+ "assert-json-diff",3321
+ "assert_matches",3322
+ "assert_matches2",3323
+ "async-channel",3324
+ "async-once-cell",3325
+ "async-stream",3326
+ "async-trait",3327
+ "axum",3328
+ "backon",3329
+ "bytes",3330
+ "bytesize",3331
+ "cfg-if",3332
+ "ctor",3333
+ "dirs",3334
+ "event-listener",3335
+ "eyeball",3336
+ "eyeball-im",3337
+ "eyre",3338
+ "futures-core",3339
+ "futures-executor",3340
+ "futures-util",3341
+ "gloo-timers",3342
+ "http",3343
+ "imbl",3344
+ "indexmap",3345
+ "insta",3346
+ "itertools 0.14.0",3347
+ "js_int",3348
+ "language-tags",3349
+ "matrix-sdk-base",3350
+ "matrix-sdk-common",3351
+ "matrix-sdk-ffi-macros",3352
+ "matrix-sdk-indexeddb",3353
+ "matrix-sdk-search",3354
+ "matrix-sdk-sqlite",3355
+ "matrix-sdk-test",3356
+ "matrix-sdk-test-utils",3357
+ "mime",3358
+ "mime2ext",3359
+ "oauth2",3360
+ "oauth2-reqwest",3361
+ "percent-encoding",3362
+ "pin-project-lite",3363
+ "proptest",3364
+ "rand 0.10.1",3365
+ "reqwest",3366
+ "ruma",3367
+ "rustls",3368
+ "rustls-native-certs",3369
+ "rustls-pki-types",3370
+ "serde",3371
+ "serde_html_form",3372
+ "serde_json",3373
+ "serde_urlencoded",3374
+ "sha2",3375
+ "similar-asserts",3376
+ "stream_assert",3377
+ "tempfile",3378
+ "thiserror 2.0.18",3379
+ "tokio",3380
+ "tokio-stream",3381
+ "tokio-test",3382
+ "tokio-util",3383
+ "tower",3384
+ "tracing",3385
+ "tracing-subscriber",3386
+ "uniffi",3387
+ "url",3388
+ "urlencoding",3389
+ "uuid",3390
+ "vodozemac",3391
+ "wasm-bindgen-test",3392
+ "webpki-roots",3393
+ "wiremock",3394
+ "zeroize",3395
+]3396
+3397
+[[package]]3398
+name = "matrix-sdk-base"3399
+version = "0.18.0"3400
+dependencies = [3401
+ "anyhow",3402
+ "as_variant",3403
+ "assert_matches",3404
+ "assert_matches2",3405
+ "assign",3406
+ "async-trait",3407
+ "bitflags 2.10.0",3408
+ "decancer",3409
+ "eyeball",3410
+ "eyeball-im",3411
+ "futures-executor",3412
+ "futures-util",3413
+ "getrandom 0.3.4",3414
+ "gloo-timers",3415
+ "growable-bloom-filter",3416
+ "http",3417
+ "matrix-sdk-common",3418
+ "matrix-sdk-crypto",3419
+ "matrix-sdk-store-encryption",3420
+ "matrix-sdk-test",3421
+ "matrix-sdk-test-utils",3422
+ "proptest",3423
+ "regex",3424
+ "ruma",3425
+ "serde",3426
+ "serde_json",3427
+ "similar-asserts",3428
+ "stream_assert",3429
+ "thiserror 2.0.18",3430
+ "tokio",3431
+ "tracing",3432
+ "unicode-normalization",3433
+ "uniffi",3434
+ "wasm-bindgen-test",3435
+]3436
+3437
+[[package]]3438
+name = "matrix-sdk-common"3439
+version = "0.18.0"3440
+dependencies = [3441
+ "assert_matches",3442
+ "assert_matches2",3443
+ "eyeball-im",3444
+ "futures-core",3445
+ "futures-executor",3446
+ "futures-util",3447
+ "getrandom 0.3.4",3448
+ "getrandom 0.4.2",3449
+ "gloo-timers",3450
+ "imbl",3451
+ "insta",3452
+ "js-sys",3453
+ "matrix-sdk-test-macros",3454
+ "matrix-sdk-test-utils",3455
+ "proptest",3456
+ "ruma",3457
+ "serde",3458
+ "serde_json",3459
+ "thiserror 2.0.18",3460
+ "tokio",3461
+ "tracing",3462
+ "tracing-subscriber",3463
+ "uniffi",3464
+ "wasm-bindgen",3465
+ "wasm-bindgen-futures",3466
+ "wasm-bindgen-test",3467
+ "web-sys",3468
+]3469
+3470
+[[package]]3471
+name = "matrix-sdk-crypto"3472
+version = "0.18.0"3473
+dependencies = [3474
+ "aes",3475
+ "anyhow",3476
+ "aquamarine",3477
+ "as_variant",3478
+ "assert_matches",3479
+ "assert_matches2",3480
+ "async-trait",3481
+ "bs58",3482
+ "byteorder",3483
+ "cfg-if",3484
+ "ctr",3485
+ "eyeball",3486
+ "futures-core",3487
+ "futures-executor",3488
+ "futures-util",3489
+ "hkdf",3490
+ "hmac",3491
+ "http",3492
+ "insta",3493
+ "itertools 0.14.0",3494
+ "js_option",3495
+ "matrix-sdk-common",3496
+ "matrix-sdk-qrcode",3497
+ "matrix-sdk-test",3498
+ "matrix-sdk-test-utils",3499
+ "pbkdf2",3500
+ "proptest",3501
+ "rand 0.10.1",3502
+ "rmp-serde",3503
+ "ruma",3504
+ "serde",3505
+ "serde_json",3506
+ "sha2",3507
+ "similar-asserts",3508
+ "stream_assert",3509
+ "subtle",3510
+ "thiserror 2.0.18",3511
+ "time",3512
+ "tokio",3513
+ "tokio-stream",3514
+ "tracing",3515
+ "ulid",3516
+ "uniffi",3517
+ "url",3518
+ "vodozemac",3519
+ "zeroize",3520
+]3521
+3522
+[[package]]3523
+name = "matrix-sdk-crypto-ffi"3524
+version = "0.1.0"3525
+dependencies = [3526
+ "anyhow",3527
+ "assert_matches2",3528
+ "futures-util",3529
+ "hmac",3530
+ "http",3531
+ "js_int",3532
+ "matrix-sdk-common",3533
+ "matrix-sdk-crypto",3534
+ "matrix-sdk-ffi-macros",3535
+ "matrix-sdk-sqlite",3536
+ "pbkdf2",3537
+ "rand 0.10.1",3538
+ "ruma",3539
+ "serde",3540
+ "serde_json",3541
+ "sha2",3542
+ "tempfile",3543
+ "thiserror 2.0.18",3544
+ "tokio",3545
+ "tracing-subscriber",3546
+ "uniffi",3547
+ "vergen-gitcl",3548
+ "vodozemac",3549
+ "zeroize",3550
+]3551
+3552
+[[package]]3553
+name = "matrix-sdk-ffi"3554
+version = "0.18.0"3555
+dependencies = [3556
+ "anyhow",3557
+ "async-compat",3558
+ "chrono",3559
+ "console_error_panic_hook",3560
+ "extension-trait",3561
+ "eyeball-im",3562
+ "futures-executor",3563
+ "futures-util",3564
+ "jni",3565
+ "jvm-getter",3566
+ "language-tags",3567
+ "log-panics",3568
+ "matrix-sdk",3569
+ "matrix-sdk-base",3570
+ "matrix-sdk-common",3571
+ "matrix-sdk-ffi-macros",3572
+ "matrix-sdk-ui",3573
+ "mime",3574
+ "oauth2",3575
+ "once_cell",3576
+ "paranoid-android",3577
+ "ruma",3578
+ "rustls-platform-verifier",3579
+ "sentry",3580
+ "sentry-tracing",3581
+ "serde",3582
+ "serde_json",3583
+ "similar-asserts",3584
+ "tempfile",3585
+ "thiserror 2.0.18",3586
+ "tokio",3587
+ "tracing",3588
+ "tracing-appender",3589
+ "tracing-core",3590
+ "tracing-subscriber",3591
+ "uniffi",3592
+ "url",3593
+ "uuid",3594
+ "vergen-gitcl",3595
+ "zeroize",3596
+]3597
+3598
+[[package]]3599
+name = "matrix-sdk-ffi-macros"3600
+version = "0.7.0"3601
+dependencies = [3602
+ "proc-macro2",3603
+ "quote",3604
+ "syn 2.0.101",3605
+]3606
+3607
+[[package]]3608
+name = "matrix-sdk-indexeddb"3609
+version = "0.18.0"3610
+dependencies = [3611
+ "assert_matches",3612
+ "assert_matches2",3613
+ "async-trait",3614
+ "base64",3615
+ "futures-util",3616
+ "getrandom 0.4.2",3617
+ "gloo-timers",3618
+ "gloo-utils",3619
+ "growable-bloom-filter",3620
+ "hkdf",3621
+ "js-sys",3622
+ "matrix-sdk-base",3623
+ "matrix-sdk-common",3624
+ "matrix-sdk-crypto",3625
+ "matrix-sdk-store-encryption",3626
+ "matrix-sdk-test",3627
+ "matrix_indexed_db_futures",3628
+ "rand 0.10.1",3629
+ "rmp-serde",3630
+ "ruma",3631
+ "serde",3632
+ "serde-wasm-bindgen",3633
+ "serde_json",3634
+ "sha2",3635
+ "thiserror 2.0.18",3636
+ "tokio",3637
+ "tracing",3638
+ "tracing-subscriber",3639
+ "uuid",3640
+ "wasm-bindgen",3641
+ "wasm-bindgen-test",3642
+ "web-sys",3643
+ "zeroize",3644
+]3645
+3646
+[[package]]3647
+name = "matrix-sdk-integration-testing"3648
+version = "0.1.0"3649
+dependencies = [3650
+ "anyhow",3651
+ "assert_matches",3652
+ "assert_matches2",3653
+ "assign",3654
+ "eyeball",3655
+ "eyeball-im",3656
+ "futures",3657
+ "futures-core",3658
+ "futures-util",3659
+ "http",3660
+ "json-structural-diff",3661
+ "matrix-sdk",3662
+ "matrix-sdk-base",3663
+ "matrix-sdk-common",3664
+ "matrix-sdk-test",3665
+ "matrix-sdk-test-utils",3666
+ "matrix-sdk-ui",3667
+ "rand 0.10.1",3668
+ "reqwest",3669
+ "serde_json",3670
+ "similar-asserts",3671
+ "stream_assert",3672
+ "tempfile",3673
+ "tokio",3674
+ "tracing",3675
+ "wiremock",3676
+]3677
+3678
+[[package]]3679
+name = "matrix-sdk-qrcode"3680
+version = "0.18.0"3681
+dependencies = [3682
+ "byteorder",3683
+ "image",3684
+ "qrcode",3685
+ "ruma",3686
+ "thiserror 2.0.18",3687
+ "vodozemac",3688
+]3689
+3690
+[[package]]3691
+name = "matrix-sdk-search"3692
+version = "0.18.0"3693
+dependencies = [3694
+ "aes",3695
+ "byteorder",3696
+ "ctr",3697
+ "hkdf",3698
+ "hmac",3699
+ "matrix-sdk-test",3700
+ "pbkdf2",3701
+ "rand 0.10.1",3702
+ "ruma",3703
+ "sha2",3704
+ "tantivy",3705
+ "tempfile",3706
+ "thiserror 2.0.18",3707
+ "tracing",3708
+ "zeroize",3709
+]3710
+3711
+[[package]]3712
+name = "matrix-sdk-sqlite"3713
+version = "0.18.0"3714
+dependencies = [3715
+ "as_variant",3716
+ "assert_matches",3717
+ "async-trait",3718
+ "deadpool 0.13.0",3719
+ "deadpool-sync",3720
+ "glob",3721
+ "itertools 0.14.0",3722
+ "matrix-sdk-base",3723
+ "matrix-sdk-common",3724
+ "matrix-sdk-crypto",3725
+ "matrix-sdk-store-encryption",3726
+ "matrix-sdk-test",3727
+ "matrix-sdk-test-utils",3728
+ "num_cpus",3729
+ "rmp-serde",3730
+ "ruma",3731
+ "rusqlite",3732
+ "serde",3733
+ "serde_json",3734
+ "serde_path_to_error",3735
+ "similar-asserts",3736
+ "tempfile",3737
+ "thiserror 2.0.18",3738
+ "tokio",3739
+ "tracing",3740
+ "vodozemac",3741
+ "zeroize",3742
+]3743
+3744
+[[package]]3745
+name = "matrix-sdk-store-encryption"3746
+version = "0.18.0"3747
+dependencies = [3748
+ "anyhow",3749
+ "base64",3750
+ "blake3",3751
+ "chacha20poly1305",3752
+ "getrandom 0.2.15",3753
+ "getrandom 0.4.2",3754
+ "hmac",3755
+ "pbkdf2",3756
+ "rand 0.10.1",3757
+ "rmp-serde",3758
+ "serde",3759
+ "serde_json",3760
+ "sha2",3761
+ "thiserror 2.0.18",3762
+ "zeroize",3763
+]3764
+3765
+[[package]]3766
+name = "matrix-sdk-test"3767
+version = "0.18.0"3768
+dependencies = [3769
+ "as_variant",3770
+ "ctor",3771
+ "getrandom 0.4.2",3772
+ "http",3773
+ "insta",3774
+ "matrix-sdk-common",3775
+ "matrix-sdk-test-macros",3776
+ "ruma",3777
+ "serde",3778
+ "serde_json",3779
+ "sha2",3780
+ "tokio",3781
+ "tracing-subscriber",3782
+ "vodozemac",3783
+ "wasm-bindgen-test",3784
+ "wiremock",3785
+]3786
+3787
+[[package]]3788
+name = "matrix-sdk-test-macros"3789
+version = "0.18.0"3790
+dependencies = [3791
+ "quote",3792
+ "syn 2.0.101",3793
+]3794
+3795
+[[package]]3796
+name = "matrix-sdk-test-utils"3797
+version = "0.18.0"3798
+dependencies = [3799
+ "ctor",3800
+ "tracing-subscriber",3801
+]3802
+3803
+[[package]]3804
+name = "matrix-sdk-ui"3805
+version = "0.18.0"3806
+dependencies = [3807
+ "anyhow",3808
+ "as_variant",3809
+ "assert-json-diff",3810
+ "assert_matches",3811
+ "assert_matches2",3812
+ "async-rx",3813
+ "async-stream",3814
+ "async_cell",3815
+ "bitflags 2.10.0",3816
+ "chrono",3817
+ "emojis",3818
+ "eyeball",3819
+ "eyeball-im",3820
+ "eyeball-im-util",3821
+ "futures-core",3822
+ "futures-util",3823
+ "fuzzy-matcher",3824
+ "growable-bloom-filter",3825
+ "imbl",3826
+ "indexmap",3827
+ "itertools 0.14.0",3828
+ "matrix-sdk",3829
+ "matrix-sdk-base",3830
+ "matrix-sdk-common",3831
+ "matrix-sdk-test",3832
+ "matrix-sdk-test-utils",3833
+ "mime",3834
+ "pin-project-lite",3835
+ "proptest",3836
+ "ruma",3837
+ "serde",3838
+ "serde_json",3839
+ "stream_assert",3840
+ "tempfile",3841
+ "thiserror 2.0.18",3842
+ "tokio",3843
+ "tokio-stream",3844
+ "tracing",3845
+ "unicode-normalization",3846
+ "unicode-segmentation",3847
+ "uniffi",3848
+ "url",3849
+ "wiremock",3850
+]3851
+3852
+[[package]]3853
+name = "matrix_indexed_db_futures"3854
+version = "0.7.0"3855
+source = "registry+https://github.com/rust-lang/crates.io-index"3856
+checksum = "245ff6a224b4df7b0c90dda2dd5a6eb46112708d49e8bdd8b007fccb09fea8e4"3857
+dependencies = [3858
+ "accessory",3859
+ "cfg-if",3860
+ "delegate-display",3861
+ "derive_more 2.0.1",3862
+ "fancy_constructor",3863
+ "futures-core",3864
+ "js-sys",3865
+ "matrix_indexed_db_futures_macros_internal",3866
+ "sealed",3867
+ "serde",3868
+ "serde-wasm-bindgen",3869
+ "smallvec",3870
+ "thiserror 2.0.18",3871
+ "tokio",3872
+ "wasm-bindgen",3873
+ "wasm-bindgen-futures",3874
+ "wasm_evt_listener",3875
+ "web-sys",3876
+ "web-time",3877
+]3878
+3879
+[[package]]3880
+name = "matrix_indexed_db_futures_macros_internal"3881
+version = "1.0.0"3882
+source = "registry+https://github.com/rust-lang/crates.io-index"3883
+checksum = "b428aee5c0fe9e5babd29e99d289b7f64718c444989aac0442d1fd6d3e3f66d1"3884
+dependencies = [3885
+ "macroific",3886
+ "proc-macro2",3887
+ "quote",3888
+ "syn 2.0.101",3889
+]3890
+3891
+[[package]]3892
+name = "measure_time"3893
+version = "0.9.0"3894
+source = "registry+https://github.com/rust-lang/crates.io-index"3895
+checksum = "51c55d61e72fc3ab704396c5fa16f4c184db37978ae4e94ca8959693a235fc0e"3896
+dependencies = [3897
+ "log",3898
+]3899
+3900
+[[package]]3901
+name = "memchr"3902
+version = "2.7.4"3903
+source = "registry+https://github.com/rust-lang/crates.io-index"3904
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"3905
+3906
+[[package]]3907
+name = "memmap2"3908
+version = "0.9.7"3909
+source = "registry+https://github.com/rust-lang/crates.io-index"3910
+checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28"3911
+dependencies = [3912
+ "libc",3913
+]3914
+3915
+[[package]]3916
+name = "memmem"3917
+version = "0.1.1"3918
+source = "registry+https://github.com/rust-lang/crates.io-index"3919
+checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15"3920
+3921
+[[package]]3922
+name = "memoffset"3923
+version = "0.9.1"3924
+source = "registry+https://github.com/rust-lang/crates.io-index"3925
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"3926
+dependencies = [3927
+ "autocfg",3928
+]3929
+3930
+[[package]]3931
+name = "mime"3932
+version = "0.3.17"3933
+source = "registry+https://github.com/rust-lang/crates.io-index"3934
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"3935
+3936
+[[package]]3937
+name = "mime2ext"3938
+version = "0.1.54"3939
+source = "registry+https://github.com/rust-lang/crates.io-index"3940
+checksum = "cbf6f36070878c42c5233846cd3de24cf9016828fd47bc22957a687298bb21fc"3941
+3942
+[[package]]3943
+name = "minicov"3944
+version = "0.3.8"3945
+source = "registry+https://github.com/rust-lang/crates.io-index"3946
+checksum = "4869b6a491569605d66d3952bcdf03df789e5b536e5f0cf7758a7f08a55ae24d"3947
+dependencies = [3948
+ "cc",3949
+ "walkdir",3950
+]3951
+3952
+[[package]]3953
+name = "minimal-lexical"3954
+version = "0.2.1"3955
+source = "registry+https://github.com/rust-lang/crates.io-index"3956
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"3957
+3958
+[[package]]3959
+name = "miniz_oxide"3960
+version = "0.8.9"3961
+source = "registry+https://github.com/rust-lang/crates.io-index"3962
+checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"3963
+dependencies = [3964
+ "adler2",3965
+ "simd-adler32",3966
+]3967
+3968
+[[package]]3969
+name = "mio"3970
+version = "1.0.2"3971
+source = "registry+https://github.com/rust-lang/crates.io-index"3972
+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"3973
+dependencies = [3974
+ "hermit-abi 0.3.9",3975
+ "libc",3976
+ "log",3977
+ "wasi",3978
+ "windows-sys 0.52.0",3979
+]3980
+3981
+[[package]]3982
+name = "moxcms"3983
+version = "0.7.5"3984
+source = "registry+https://github.com/rust-lang/crates.io-index"3985
+checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08"3986
+dependencies = [3987
+ "num-traits",3988
+ "pxfm",3989
+]3990
+3991
+[[package]]3992
+name = "multiverse"3993
+version = "0.1.0"3994
+dependencies = [3995
+ "clap",3996
+ "color-eyre",3997
+ "crossterm",3998
+ "futures-util",3999
+ "imbl",4000
+ "indexmap",4001
+ "itertools 0.14.0",4002
+ "matrix-sdk",4003
+ "matrix-sdk-base",4004
+ "matrix-sdk-common",4005
+ "matrix-sdk-ui",4006
+ "ratatui",4007
+ "ratatui-textarea",4008
+ "rpassword",4009
+ "serde_json",4010
+ "strum",4011
+ "textwrap",4012
+ "throbber-widgets-tui",4013
+ "tokio",4014
+ "tracing",4015
+ "tracing-appender",4016
+ "tracing-subscriber",4017
+ "tui-widget-list",4018
+]4019
+4020
+[[package]]4021
+name = "murmurhash32"4022
+version = "0.3.1"4023
+source = "registry+https://github.com/rust-lang/crates.io-index"4024
+checksum = "2195bf6aa996a481483b29d62a7663eed3fe39600c460e323f8ff41e90bdd89b"4025
+4026
+[[package]]4027
+name = "ndk-sys"4028
+version = "0.5.0+25.2.9519653"4029
+source = "registry+https://github.com/rust-lang/crates.io-index"4030
+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"4031
+dependencies = [4032
+ "jni-sys",4033
+]4034
+4035
+[[package]]4036
+name = "new_debug_unreachable"4037
+version = "1.0.6"4038
+source = "registry+https://github.com/rust-lang/crates.io-index"4039
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"4040
+4041
+[[package]]4042
+name = "nix"4043
+version = "0.29.0"4044
+source = "registry+https://github.com/rust-lang/crates.io-index"4045
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"4046
+dependencies = [4047
+ "bitflags 2.10.0",4048
+ "cfg-if",4049
+ "cfg_aliases",4050
+ "libc",4051
+ "memoffset",4052
+]4053
+4054
+[[package]]4055
+name = "nix"4056
+version = "0.30.1"4057
+source = "registry+https://github.com/rust-lang/crates.io-index"4058
+checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"4059
+dependencies = [4060
+ "bitflags 2.10.0",4061
+ "cfg-if",4062
+ "cfg_aliases",4063
+ "libc",4064
+]4065
+4066
+[[package]]4067
+name = "nom"4068
+version = "7.1.3"4069
+source = "registry+https://github.com/rust-lang/crates.io-index"4070
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"4071
+dependencies = [4072
+ "memchr",4073
+ "minimal-lexical",4074
+]4075
+4076
+[[package]]4077
+name = "nu-ansi-term"4078
+version = "0.50.1"4079
+source = "registry+https://github.com/rust-lang/crates.io-index"4080
+checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399"4081
+dependencies = [4082
+ "windows-sys 0.52.0",4083
+]4084
+4085
+[[package]]4086
+name = "num-conv"4087
+version = "0.2.0"4088
+source = "registry+https://github.com/rust-lang/crates.io-index"4089
+checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"4090
+4091
+[[package]]4092
+name = "num-derive"4093
+version = "0.4.2"4094
+source = "registry+https://github.com/rust-lang/crates.io-index"4095
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"4096
+dependencies = [4097
+ "proc-macro2",4098
+ "quote",4099
+ "syn 2.0.101",4100
+]4101
+4102
+[[package]]4103
+name = "num-traits"4104
+version = "0.2.19"4105
+source = "registry+https://github.com/rust-lang/crates.io-index"4106
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"4107
+dependencies = [4108
+ "autocfg",4109
+ "libm",4110
+]4111
+4112
+[[package]]4113
+name = "num_cpus"4114
+version = "1.17.0"4115
+source = "registry+https://github.com/rust-lang/crates.io-index"4116
+checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"4117
+dependencies = [4118
+ "hermit-abi 0.5.2",4119
+ "libc",4120
+]4121
+4122
+[[package]]4123
+name = "num_threads"4124
+version = "0.1.7"4125
+source = "registry+https://github.com/rust-lang/crates.io-index"4126
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"4127
+dependencies = [4128
+ "libc",4129
+]4130
+4131
+[[package]]4132
+name = "oauth2"4133
+version = "5.0.0"4134
+source = "registry+https://github.com/rust-lang/crates.io-index"4135
+checksum = "51e219e79014df21a225b1860a479e2dcd7cbd9130f4defd4bd0e191ea31d67d"4136
+dependencies = [4137
+ "base64",4138
+ "chrono",4139
+ "getrandom 0.2.15",4140
+ "http",4141
+ "rand 0.8.6",4142
+ "serde",4143
+ "serde_json",4144
+ "serde_path_to_error",4145
+ "sha2",4146
+ "thiserror 1.0.63",4147
+ "url",4148
+]4149
+4150
+[[package]]4151
+name = "oauth2-reqwest"4152
+version = "0.1.0-alpha.3"4153
+source = "registry+https://github.com/rust-lang/crates.io-index"4154
+checksum = "234fb5c965bbce983ee5de636a7a51d6a3223da8067ea02f9ab2d2d78ac08be2"4155
+dependencies = [4156
+ "oauth2",4157
+ "reqwest",4158
+]4159
+4160
+[[package]]4161
+name = "object"4162
+version = "0.37.3"4163
+source = "registry+https://github.com/rust-lang/crates.io-index"4164
+checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe"4165
+dependencies = [4166
+ "memchr",4167
+]4168
+4169
+[[package]]4170
+name = "once_cell"4171
+version = "1.21.4"4172
+source = "registry+https://github.com/rust-lang/crates.io-index"4173
+checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"4174
+4175
+[[package]]4176
+name = "oneshot"4177
+version = "0.1.13"4178
+source = "registry+https://github.com/rust-lang/crates.io-index"4179
+checksum = "269bca4c2591a28585d6bf10d9ed0332b7d76900a1b02bec41bdc3a2cdcda107"4180
+4181
+[[package]]4182
+name = "oorandom"4183
+version = "11.1.5"4184
+source = "registry+https://github.com/rust-lang/crates.io-index"4185
+checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"4186
+4187
+[[package]]4188
+name = "opaque-debug"4189
+version = "0.3.1"4190
+source = "registry+https://github.com/rust-lang/crates.io-index"4191
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"4192
+4193
+[[package]]4194
+name = "openssl-probe"4195
+version = "0.2.0"4196
+source = "registry+https://github.com/rust-lang/crates.io-index"4197
+checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391"4198
+4199
+[[package]]4200
+name = "option-ext"4201
+version = "0.2.0"4202
+source = "registry+https://github.com/rust-lang/crates.io-index"4203
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"4204
+4205
+[[package]]4206
+name = "ordered-float"4207
+version = "4.6.0"4208
+source = "registry+https://github.com/rust-lang/crates.io-index"4209
+checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"4210
+dependencies = [4211
+ "num-traits",4212
+]4213
+4214
+[[package]]4215
+name = "ordered-float"4216
+version = "5.3.0"4217
+source = "registry+https://github.com/rust-lang/crates.io-index"4218
+checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e"4219
+dependencies = [4220
+ "num-traits",4221
+]4222
+4223
+[[package]]4224
+name = "os_info"4225
+version = "3.11.0"4226
+source = "registry+https://github.com/rust-lang/crates.io-index"4227
+checksum = "41fc863e2ca13dc2d5c34fb22ea4a588248ac14db929616ba65c45f21744b1e9"4228
+dependencies = [4229
+ "log",4230
+ "serde",4231
+ "windows-sys 0.52.0",4232
+]4233
+4234
+[[package]]4235
+name = "ownedbytes"4236
+version = "0.9.0"4237
+source = "registry+https://github.com/rust-lang/crates.io-index"4238
+checksum = "2fbd56f7631767e61784dc43f8580f403f4475bd4aaa4da003e6295e1bab4a7e"4239
+dependencies = [4240
+ "stable_deref_trait",4241
+]4242
+4243
+[[package]]4244
+name = "owo-colors"4245
+version = "4.2.2"4246
+source = "registry+https://github.com/rust-lang/crates.io-index"4247
+checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e"4248
+4249
+[[package]]4250
+name = "paranoid-android"4251
+version = "0.2.2"4252
+source = "registry+https://github.com/rust-lang/crates.io-index"4253
+checksum = "101795d63d371b43e38d6e7254677657be82f17022f7f7893c268f33ac0caadc"4254
+dependencies = [4255
+ "lazy_static",4256
+ "ndk-sys",4257
+ "sharded-slab",4258
+ "smallvec",4259
+ "tracing-core",4260
+ "tracing-subscriber",4261
+]4262
+4263
+[[package]]4264
+name = "parking"4265
+version = "2.2.0"4266
+source = "registry+https://github.com/rust-lang/crates.io-index"4267
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"4268
+4269
+[[package]]4270
+name = "parking_lot"4271
+version = "0.12.3"4272
+source = "registry+https://github.com/rust-lang/crates.io-index"4273
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"4274
+dependencies = [4275
+ "lock_api",4276
+ "parking_lot_core",4277
+]4278
+4279
+[[package]]4280
+name = "parking_lot_core"4281
+version = "0.9.10"4282
+source = "registry+https://github.com/rust-lang/crates.io-index"4283
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"4284
+dependencies = [4285
+ "cfg-if",4286
+ "libc",4287
+ "redox_syscall",4288
+ "smallvec",4289
+ "windows-targets 0.52.6",4290
+]4291
+4292
+[[package]]4293
+name = "pbkdf2"4294
+version = "0.12.2"4295
+source = "registry+https://github.com/rust-lang/crates.io-index"4296
+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"4297
+dependencies = [4298
+ "digest",4299
+]4300
+4301
+[[package]]4302
+name = "percent-encoding"4303
+version = "2.3.2"4304
+source = "registry+https://github.com/rust-lang/crates.io-index"4305
+checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"4306
+4307
+[[package]]4308
+name = "pest"4309
+version = "2.8.0"4310
+source = "registry+https://github.com/rust-lang/crates.io-index"4311
+checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6"4312
+dependencies = [4313
+ "memchr",4314
+ "thiserror 2.0.18",4315
+ "ucd-trie",4316
+]4317
+4318
+[[package]]4319
+name = "pest_derive"4320
+version = "2.8.0"4321
+source = "registry+https://github.com/rust-lang/crates.io-index"4322
+checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5"4323
+dependencies = [4324
+ "pest",4325
+ "pest_generator",4326
+]4327
+4328
+[[package]]4329
+name = "pest_generator"4330
+version = "2.8.0"4331
+source = "registry+https://github.com/rust-lang/crates.io-index"4332
+checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841"4333
+dependencies = [4334
+ "pest",4335
+ "pest_meta",4336
+ "proc-macro2",4337
+ "quote",4338
+ "syn 2.0.101",4339
+]4340
+4341
+[[package]]4342
+name = "pest_meta"4343
+version = "2.8.0"4344
+source = "registry+https://github.com/rust-lang/crates.io-index"4345
+checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0"4346
+dependencies = [4347
+ "once_cell",4348
+ "pest",4349
+ "sha2",4350
+]4351
+4352
+[[package]]4353
+name = "phf"4354
+version = "0.11.3"4355
+source = "registry+https://github.com/rust-lang/crates.io-index"4356
+checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"4357
+dependencies = [4358
+ "phf_macros",4359
+ "phf_shared 0.11.3",4360
+]4361
+4362
+[[package]]4363
+name = "phf"4364
+version = "0.13.1"4365
+source = "registry+https://github.com/rust-lang/crates.io-index"4366
+checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"4367
+dependencies = [4368
+ "phf_shared 0.13.1",4369
+ "serde",4370
+]4371
+4372
+[[package]]4373
+name = "phf_codegen"4374
+version = "0.11.3"4375
+source = "registry+https://github.com/rust-lang/crates.io-index"4376
+checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"4377
+dependencies = [4378
+ "phf_generator 0.11.3",4379
+ "phf_shared 0.11.3",4380
+]4381
+4382
+[[package]]4383
+name = "phf_codegen"4384
+version = "0.13.1"4385
+source = "registry+https://github.com/rust-lang/crates.io-index"4386
+checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1"4387
+dependencies = [4388
+ "phf_generator 0.13.1",4389
+ "phf_shared 0.13.1",4390
+]4391
+4392
+[[package]]4393
+name = "phf_generator"4394
+version = "0.11.3"4395
+source = "registry+https://github.com/rust-lang/crates.io-index"4396
+checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"4397
+dependencies = [4398
+ "phf_shared 0.11.3",4399
+ "rand 0.8.6",4400
+]4401
+4402
+[[package]]4403
+name = "phf_generator"4404
+version = "0.13.1"4405
+source = "registry+https://github.com/rust-lang/crates.io-index"4406
+checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"4407
+dependencies = [4408
+ "fastrand",4409
+ "phf_shared 0.13.1",4410
+]4411
+4412
+[[package]]4413
+name = "phf_macros"4414
+version = "0.11.3"4415
+source = "registry+https://github.com/rust-lang/crates.io-index"4416
+checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"4417
+dependencies = [4418
+ "phf_generator 0.11.3",4419
+ "phf_shared 0.11.3",4420
+ "proc-macro2",4421
+ "quote",4422
+ "syn 2.0.101",4423
+]4424
+4425
+[[package]]4426
+name = "phf_shared"4427
+version = "0.11.3"4428
+source = "registry+https://github.com/rust-lang/crates.io-index"4429
+checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"4430
+dependencies = [4431
+ "siphasher",4432
+]4433
+4434
+[[package]]4435
+name = "phf_shared"4436
+version = "0.13.1"4437
+source = "registry+https://github.com/rust-lang/crates.io-index"4438
+checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"4439
+dependencies = [4440
+ "siphasher",4441
+]4442
+4443
+[[package]]4444
+name = "pin-project-lite"4445
+version = "0.2.16"4446
+source = "registry+https://github.com/rust-lang/crates.io-index"4447
+checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"4448
+4449
+[[package]]4450
+name = "pin-utils"4451
+version = "0.1.0"4452
+source = "registry+https://github.com/rust-lang/crates.io-index"4453
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"4454
+4455
+[[package]]4456
+name = "pkcs8"4457
+version = "0.10.2"4458
+source = "registry+https://github.com/rust-lang/crates.io-index"4459
+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"4460
+dependencies = [4461
+ "der",4462
+ "spki",4463
+]4464
+4465
+[[package]]4466
+name = "pkg-config"4467
+version = "0.3.30"4468
+source = "registry+https://github.com/rust-lang/crates.io-index"4469
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"4470
+4471
+[[package]]4472
+name = "plain"4473
+version = "0.2.3"4474
+source = "registry+https://github.com/rust-lang/crates.io-index"4475
+checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"4476
+4477
+[[package]]4478
+name = "plotters"4479
+version = "0.3.6"4480
+source = "registry+https://github.com/rust-lang/crates.io-index"4481
+checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3"4482
+dependencies = [4483
+ "num-traits",4484
+ "plotters-backend",4485
+ "plotters-svg",4486
+ "wasm-bindgen",4487
+ "web-sys",4488
+]4489
+4490
+[[package]]4491
+name = "plotters-backend"4492
+version = "0.3.6"4493
+source = "registry+https://github.com/rust-lang/crates.io-index"4494
+checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7"4495
+4496
+[[package]]4497
+name = "plotters-svg"4498
+version = "0.3.6"4499
+source = "registry+https://github.com/rust-lang/crates.io-index"4500
+checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705"4501
+dependencies = [4502
+ "plotters-backend",4503
+]4504
+4505
+[[package]]4506
+name = "poly1305"4507
+version = "0.8.0"4508
+source = "registry+https://github.com/rust-lang/crates.io-index"4509
+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"4510
+dependencies = [4511
+ "cpufeatures 0.2.12",4512
+ "opaque-debug",4513
+ "universal-hash",4514
+]4515
+4516
+[[package]]4517
+name = "portable-atomic"4518
+version = "1.13.1"4519
+source = "registry+https://github.com/rust-lang/crates.io-index"4520
+checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"4521
+4522
+[[package]]4523
+name = "powerfmt"4524
+version = "0.2.0"4525
+source = "registry+https://github.com/rust-lang/crates.io-index"4526
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"4527
+4528
+[[package]]4529
+name = "ppv-lite86"4530
+version = "0.2.17"4531
+source = "registry+https://github.com/rust-lang/crates.io-index"4532
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"4533
+4534
+[[package]]4535
+name = "precomputed-hash"4536
+version = "0.1.1"4537
+source = "registry+https://github.com/rust-lang/crates.io-index"4538
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"4539
+4540
+[[package]]4541
+name = "prettyplease"4542
+version = "0.2.34"4543
+source = "registry+https://github.com/rust-lang/crates.io-index"4544
+checksum = "6837b9e10d61f45f987d50808f83d1ee3d206c66acf650c3e4ae2e1f6ddedf55"4545
+dependencies = [4546
+ "proc-macro2",4547
+ "syn 2.0.101",4548
+]4549
+4550
+[[package]]4551
+name = "proc-macro-crate"4552
+version = "3.2.0"4553
+source = "registry+https://github.com/rust-lang/crates.io-index"4554
+checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b"4555
+dependencies = [4556
+ "toml_edit",4557
+]4558
+4559
+[[package]]4560
+name = "proc-macro-error-attr2"4561
+version = "2.0.0"4562
+source = "registry+https://github.com/rust-lang/crates.io-index"4563
+checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"4564
+dependencies = [4565
+ "proc-macro2",4566
+ "quote",4567
+]4568
+4569
+[[package]]4570
+name = "proc-macro-error2"4571
+version = "2.0.1"4572
+source = "registry+https://github.com/rust-lang/crates.io-index"4573
+checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"4574
+dependencies = [4575
+ "proc-macro-error-attr2",4576
+ "proc-macro2",4577
+ "quote",4578
+]4579
+4580
+[[package]]4581
+name = "proc-macro2"4582
+version = "1.0.106"4583
+source = "registry+https://github.com/rust-lang/crates.io-index"4584
+checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"4585
+dependencies = [4586
+ "unicode-ident",4587
+]4588
+4589
+[[package]]4590
+name = "proptest"4591
+version = "1.9.0"4592
+source = "registry+https://github.com/rust-lang/crates.io-index"4593
+checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40"4594
+dependencies = [4595
+ "bitflags 2.10.0",4596
+ "num-traits",4597
+ "rand 0.9.4",4598
+ "rand_chacha 0.9.0",4599
+ "rand_xorshift",4600
+ "regex-syntax",4601
+ "unarray",4602
+]4603
+4604
+[[package]]4605
+name = "prost"4606
+version = "0.14.3"4607
+source = "registry+https://github.com/rust-lang/crates.io-index"4608
+checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568"4609
+dependencies = [4610
+ "bytes",4611
+ "prost-derive",4612
+]4613
+4614
+[[package]]4615
+name = "prost-derive"4616
+version = "0.14.3"4617
+source = "registry+https://github.com/rust-lang/crates.io-index"4618
+checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b"4619
+dependencies = [4620
+ "anyhow",4621
+ "itertools 0.14.0",4622
+ "proc-macro2",4623
+ "quote",4624
+ "syn 2.0.101",4625
+]4626
+4627
+[[package]]4628
+name = "pulldown-cmark"4629
+version = "0.13.0"4630
+source = "registry+https://github.com/rust-lang/crates.io-index"4631
+checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0"4632
+dependencies = [4633
+ "bitflags 2.10.0",4634
+ "memchr",4635
+ "pulldown-cmark-escape",4636
+ "unicase",4637
+]4638
+4639
+[[package]]4640
+name = "pulldown-cmark-escape"4641
+version = "0.11.0"4642
+source = "registry+https://github.com/rust-lang/crates.io-index"4643
+checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae"4644
+4645
+[[package]]4646
+name = "pxfm"4647
+version = "0.1.20"4648
+source = "registry+https://github.com/rust-lang/crates.io-index"4649
+checksum = "6e790881194f6f6e86945f0a42a6981977323669aeb6c40e9c7ec253133b96f8"4650
+dependencies = [4651
+ "num-traits",4652
+]4653
+4654
+[[package]]4655
+name = "qrcode"4656
+version = "0.14.1"4657
+source = "registry+https://github.com/rust-lang/crates.io-index"4658
+checksum = "d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec"4659
+dependencies = [4660
+ "image",4661
+]4662
+4663
+[[package]]4664
+name = "quinn"4665
+version = "0.11.9"4666
+source = "registry+https://github.com/rust-lang/crates.io-index"4667
+checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20"4668
+dependencies = [4669
+ "bytes",4670
+ "cfg_aliases",4671
+ "pin-project-lite",4672
+ "quinn-proto",4673
+ "quinn-udp",4674
+ "rustc-hash",4675
+ "rustls",4676
+ "socket2 0.6.0",4677
+ "thiserror 2.0.18",4678
+ "tokio",4679
+ "tracing",4680
+ "web-time",4681
+]4682
+4683
+[[package]]4684
+name = "quinn-proto"4685
+version = "0.11.14"4686
+source = "registry+https://github.com/rust-lang/crates.io-index"4687
+checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098"4688
+dependencies = [4689
+ "aws-lc-rs",4690
+ "bytes",4691
+ "getrandom 0.3.4",4692
+ "lru-slab",4693
+ "rand 0.9.4",4694
+ "ring",4695
+ "rustc-hash",4696
+ "rustls",4697
+ "rustls-pki-types",4698
+ "slab",4699
+ "thiserror 2.0.18",4700
+ "tinyvec",4701
+ "tracing",4702
+ "web-time",4703
+]4704
+4705
+[[package]]4706
+name = "quinn-udp"4707
+version = "0.5.3"4708
+source = "registry+https://github.com/rust-lang/crates.io-index"4709
+checksum = "25a78e6f726d84fcf960409f509ae354a32648f090c8d32a2ea8b1a1bc3bab14"4710
+dependencies = [4711
+ "libc",4712
+ "once_cell",4713
+ "socket2 0.5.7",4714
+ "tracing",4715
+ "windows-sys 0.52.0",4716
+]4717
+4718
+[[package]]4719
+name = "quote"4720
+version = "1.0.37"4721
+source = "registry+https://github.com/rust-lang/crates.io-index"4722
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"4723
+dependencies = [4724
+ "proc-macro2",4725
+]4726
+4727
+[[package]]4728
+name = "r-efi"4729
+version = "5.3.0"4730
+source = "registry+https://github.com/rust-lang/crates.io-index"4731
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"4732
+4733
+[[package]]4734
+name = "r-efi"4735
+version = "6.0.0"4736
+source = "registry+https://github.com/rust-lang/crates.io-index"4737
+checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"4738
+4739
+[[package]]4740
+name = "rand"4741
+version = "0.8.6"4742
+source = "registry+https://github.com/rust-lang/crates.io-index"4743
+checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a"4744
+dependencies = [4745
+ "libc",4746
+ "rand_chacha 0.3.1",4747
+ "rand_core 0.6.4",4748
+]4749
+4750
+[[package]]4751
+name = "rand"4752
+version = "0.9.4"4753
+source = "registry+https://github.com/rust-lang/crates.io-index"4754
+checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea"4755
+dependencies = [4756
+ "rand_chacha 0.9.0",4757
+ "rand_core 0.9.3",4758
+]4759
+4760
+[[package]]4761
+name = "rand"4762
+version = "0.10.1"4763
+source = "registry+https://github.com/rust-lang/crates.io-index"4764
+checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207"4765
+dependencies = [4766
+ "chacha20 0.10.0",4767
+ "getrandom 0.4.2",4768
+ "rand_core 0.10.0",4769
+]4770
+4771
+[[package]]4772
+name = "rand_chacha"4773
+version = "0.3.1"4774
+source = "registry+https://github.com/rust-lang/crates.io-index"4775
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"4776
+dependencies = [4777
+ "ppv-lite86",4778
+ "rand_core 0.6.4",4779
+]4780
+4781
+[[package]]4782
+name = "rand_chacha"4783
+version = "0.9.0"4784
+source = "registry+https://github.com/rust-lang/crates.io-index"4785
+checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"4786
+dependencies = [4787
+ "ppv-lite86",4788
+ "rand_core 0.9.3",4789
+]4790
+4791
+[[package]]4792
+name = "rand_core"4793
+version = "0.6.4"4794
+source = "registry+https://github.com/rust-lang/crates.io-index"4795
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"4796
+dependencies = [4797
+ "getrandom 0.2.15",4798
+]4799
+4800
+[[package]]4801
+name = "rand_core"4802
+version = "0.9.3"4803
+source = "registry+https://github.com/rust-lang/crates.io-index"4804
+checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"4805
+dependencies = [4806
+ "getrandom 0.3.4",4807
+]4808
+4809
+[[package]]4810
+name = "rand_core"4811
+version = "0.10.0"4812
+source = "registry+https://github.com/rust-lang/crates.io-index"4813
+checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba"4814
+4815
+[[package]]4816
+name = "rand_xorshift"4817
+version = "0.4.0"4818
+source = "registry+https://github.com/rust-lang/crates.io-index"4819
+checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a"4820
+dependencies = [4821
+ "rand_core 0.9.3",4822
+]4823
+4824
+[[package]]4825
+name = "rand_xoshiro"4826
+version = "0.7.0"4827
+source = "registry+https://github.com/rust-lang/crates.io-index"4828
+checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41"4829
+dependencies = [4830
+ "rand_core 0.9.3",4831
+]4832
+4833
+[[package]]4834
+name = "ratatui"4835
+version = "0.30.0"4836
+source = "registry+https://github.com/rust-lang/crates.io-index"4837
+checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc"4838
+dependencies = [4839
+ "instability",4840
+ "ratatui-core",4841
+ "ratatui-crossterm",4842
+ "ratatui-macros",4843
+ "ratatui-termwiz",4844
+ "ratatui-widgets",4845
+]4846
+4847
+[[package]]4848
+name = "ratatui-core"4849
+version = "0.1.0"4850
+source = "registry+https://github.com/rust-lang/crates.io-index"4851
+checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293"4852
+dependencies = [4853
+ "bitflags 2.10.0",4854
+ "compact_str",4855
+ "hashbrown 0.16.1",4856
+ "indoc",4857
+ "itertools 0.14.0",4858
+ "kasuari",4859
+ "lru",4860
+ "strum",4861
+ "thiserror 2.0.18",4862
+ "unicode-segmentation",4863
+ "unicode-truncate",4864
+ "unicode-width",4865
+]4866
+4867
+[[package]]4868
+name = "ratatui-crossterm"4869
+version = "0.1.0"4870
+source = "registry+https://github.com/rust-lang/crates.io-index"4871
+checksum = "577c9b9f652b4c121fb25c6a391dd06406d3b092ba68827e6d2f09550edc54b3"4872
+dependencies = [4873
+ "cfg-if",4874
+ "crossterm",4875
+ "instability",4876
+ "ratatui-core",4877
+]4878
+4879
+[[package]]4880
+name = "ratatui-macros"4881
+version = "0.7.0"4882
+source = "registry+https://github.com/rust-lang/crates.io-index"4883
+checksum = "a7f1342a13e83e4bb9d0b793d0ea762be633f9582048c892ae9041ef39c936f4"4884
+dependencies = [4885
+ "ratatui-core",4886
+ "ratatui-widgets",4887
+]4888
+4889
+[[package]]4890
+name = "ratatui-termwiz"4891
+version = "0.1.0"4892
+source = "registry+https://github.com/rust-lang/crates.io-index"4893
+checksum = "0f76fe0bd0ed4295f0321b1676732e2454024c15a35d01904ddb315afd3d545c"4894
+dependencies = [4895
+ "ratatui-core",4896
+ "termwiz",4897
+]4898
+4899
+[[package]]4900
+name = "ratatui-textarea"4901
+version = "0.9.1"4902
+source = "registry+https://github.com/rust-lang/crates.io-index"4903
+checksum = "2950274c0e155944158cf766848dd87bd6db6dad27da1c23ee4a7c8de71dbf1f"4904
+dependencies = [4905
+ "ratatui-core",4906
+ "ratatui-crossterm",4907
+ "ratatui-widgets",4908
+ "unicode-segmentation",4909
+ "unicode-width",4910
+]4911
+4912
+[[package]]4913
+name = "ratatui-widgets"4914
+version = "0.3.0"4915
+source = "registry+https://github.com/rust-lang/crates.io-index"4916
+checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db"4917
+dependencies = [4918
+ "bitflags 2.10.0",4919
+ "hashbrown 0.16.1",4920
+ "indoc",4921
+ "instability",4922
+ "itertools 0.14.0",4923
+ "line-clipping",4924
+ "ratatui-core",4925
+ "strum",4926
+ "time",4927
+ "unicode-segmentation",4928
+ "unicode-width",4929
+]4930
+4931
+[[package]]4932
+name = "rayon"4933
+version = "1.10.0"4934
+source = "registry+https://github.com/rust-lang/crates.io-index"4935
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"4936
+dependencies = [4937
+ "either",4938
+ "rayon-core",4939
+]4940
+4941
+[[package]]4942
+name = "rayon-core"4943
+version = "1.12.1"4944
+source = "registry+https://github.com/rust-lang/crates.io-index"4945
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"4946
+dependencies = [4947
+ "crossbeam-deque",4948
+ "crossbeam-utils",4949
+]4950
+4951
+[[package]]4952
+name = "readlock"4953
+version = "0.1.8"4954
+source = "registry+https://github.com/rust-lang/crates.io-index"4955
+checksum = "072cfe5b1d2dcd38d20e18f85e9c9978b6cc08f0b373e9f1fff1541335622974"4956
+4957
+[[package]]4958
+name = "readlock-tokio"4959
+version = "0.1.3"4960
+source = "registry+https://github.com/rust-lang/crates.io-index"4961
+checksum = "867fac64d07214a87e5cf4e88b4ce855844a1cea243534392377d1ac2c911653"4962
+dependencies = [4963
+ "tokio",4964
+]4965
+4966
+[[package]]4967
+name = "redox_syscall"4968
+version = "0.5.3"4969
+source = "registry+https://github.com/rust-lang/crates.io-index"4970
+checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"4971
+dependencies = [4972
+ "bitflags 2.10.0",4973
+]4974
+4975
+[[package]]4976
+name = "redox_users"4977
+version = "0.5.0"4978
+source = "registry+https://github.com/rust-lang/crates.io-index"4979
+checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"4980
+dependencies = [4981
+ "getrandom 0.2.15",4982
+ "libredox",4983
+ "thiserror 2.0.18",4984
+]4985
+4986
+[[package]]4987
+name = "regex"4988
+version = "1.12.2"4989
+source = "registry+https://github.com/rust-lang/crates.io-index"4990
+checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"4991
+dependencies = [4992
+ "aho-corasick",4993
+ "memchr",4994
+ "regex-automata",4995
+ "regex-syntax",4996
+]4997
+4998
+[[package]]4999
+name = "regex-automata"5000
+version = "0.4.13"5001
+source = "registry+https://github.com/rust-lang/crates.io-index"5002
+checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"5003
+dependencies = [5004
+ "aho-corasick",5005
+ "memchr",5006
+ "regex-syntax",5007
+]5008
+5009
+[[package]]5010
+name = "regex-syntax"5011
+version = "0.8.5"5012
+source = "registry+https://github.com/rust-lang/crates.io-index"5013
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"5014
+5015
+[[package]]5016
+name = "reqwest"5017
+version = "0.13.2"5018
+source = "registry+https://github.com/rust-lang/crates.io-index"5019
+checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801"5020
+dependencies = [5021
+ "base64",5022
+ "bytes",5023
+ "futures-channel",5024
+ "futures-core",5025
+ "futures-util",5026
+ "h2",5027
+ "http",5028
+ "http-body",5029
+ "http-body-util",5030
+ "hyper",5031
+ "hyper-rustls",5032
+ "hyper-util",5033
+ "js-sys",5034
+ "log",5035
+ "percent-encoding",5036
+ "pin-project-lite",5037
+ "quinn",5038
+ "rustls",5039
+ "rustls-pki-types",5040
+ "rustls-platform-verifier",5041
+ "serde",5042
+ "serde_json",5043
+ "sync_wrapper",5044
+ "tokio",5045
+ "tokio-rustls",5046
+ "tokio-util",5047
+ "tower",5048
+ "tower-http",5049
+ "tower-service",5050
+ "url",5051
+ "wasm-bindgen",5052
+ "wasm-bindgen-futures",5053
+ "wasm-streams",5054
+ "web-sys",5055
+]5056
+5057
+[[package]]5058
+name = "ring"5059
+version = "0.17.14"5060
+source = "registry+https://github.com/rust-lang/crates.io-index"5061
+checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"5062
+dependencies = [5063
+ "cc",5064
+ "cfg-if",5065
+ "getrandom 0.2.15",5066
+ "libc",5067
+ "untrusted",5068
+ "windows-sys 0.52.0",5069
+]5070
+5071
+[[package]]5072
+name = "rmp"5073
+version = "0.8.15"5074
+source = "registry+https://github.com/rust-lang/crates.io-index"5075
+checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c"5076
+dependencies = [5077
+ "num-traits",5078
+]5079
+5080
+[[package]]5081
+name = "rmp-serde"5082
+version = "1.3.0"5083
+source = "registry+https://github.com/rust-lang/crates.io-index"5084
+checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"5085
+dependencies = [5086
+ "byteorder",5087
+ "rmp",5088
+ "serde",5089
+]5090
+5091
+[[package]]5092
+name = "rpassword"5093
+version = "7.5.3"5094
+source = "registry+https://github.com/rust-lang/crates.io-index"5095
+checksum = "835a57a69104632d64deb0df2e09a69945cd7a6eab4070fc9b1d7e50cf6c3edc"5096
+dependencies = [5097
+ "libc",5098
+ "rtoolbox",5099
+ "windows-sys 0.61.2",5100
+]5101
+5102
+[[package]]5103
+name = "rtoolbox"5104
+version = "0.0.2"5105
+source = "registry+https://github.com/rust-lang/crates.io-index"5106
+checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e"5107
+dependencies = [5108
+ "libc",5109
+ "windows-sys 0.48.0",5110
+]5111
+5112
+[[package]]5113
+name = "ruma"5114
+version = "0.16.0"5115
+source = "registry+https://github.com/rust-lang/crates.io-index"5116
+checksum = "ee4fe5bfacdb0e95e733da3b6c37d98edf46447a4a8e8dea824e0da266d8ad59"5117
+dependencies = [5118
+ "assign",5119
+ "js_int",5120
+ "js_option",5121
+ "language-tags",5122
+ "ruma-client-api",5123
+ "ruma-common",5124
+ "ruma-events",5125
+ "ruma-federation-api",5126
+ "ruma-html",5127
+ "ruma-signatures",5128
+ "web-time",5129
+]5130
+5131
+[[package]]5132
+name = "ruma-client-api"5133
+version = "0.24.0"5134
+source = "registry+https://github.com/rust-lang/crates.io-index"5135
+checksum = "bf7ca43a888ca569168d7e3901f4dd14a777b860bb19f4c08e35414162eb261c"5136
+dependencies = [5137
+ "as_variant",5138
+ "assign",5139
+ "bytes",5140
+ "http",5141
+ "js_int",5142
+ "js_option",5143
+ "maplit",5144
+ "ruma-common",5145
+ "ruma-events",5146
+ "serde",5147
+ "serde_html_form",5148
+ "serde_json",5149
+ "thiserror 2.0.18",5150
+ "url",5151
+ "web-time",5152
+]5153
+5154
+[[package]]5155
+name = "ruma-common"5156
+version = "0.19.0"5157
+source = "registry+https://github.com/rust-lang/crates.io-index"5158
+checksum = "2c3b4f00112791b490acce57df1ce3eb3f88899b045bebcff8a29f75369640cc"5159
+dependencies = [5160
+ "as_variant",5161
+ "base64",5162
+ "bytes",5163
+ "date_header",5164
+ "form_urlencoded",5165
+ "getrandom 0.4.2",5166
+ "http",5167
+ "indexmap",5168
+ "js_int",5169
+ "konst",5170
+ "percent-encoding",5171
+ "rand 0.10.1",5172
+ "regex",5173
+ "ruma-identifiers-validation",5174
+ "ruma-macros",5175
+ "serde",5176
+ "serde_html_form",5177
+ "serde_json",5178
+ "thiserror 2.0.18",5179
+ "time",5180
+ "tracing",5181
+ "url",5182
+ "uuid",5183
+ "web-time",5184
+ "wildmatch",5185
+ "zeroize",5186
+]5187
+5188
+[[package]]5189
+name = "ruma-events"5190
+version = "0.34.0"5191
+source = "registry+https://github.com/rust-lang/crates.io-index"5192
+checksum = "85d2f90830fc131691349b96a69ff53444eb6c3e8dc7869c77961b43cfaf3344"5193
+dependencies = [5194
+ "as_variant",5195
+ "indexmap",5196
+ "js_int",5197
+ "js_option",5198
+ "language-tags",5199
+ "pulldown-cmark",5200
+ "ruma-common",5201
+ "ruma-html",5202
+ "ruma-macros",5203
+ "serde",5204
+ "serde_json",5205
+ "thiserror 2.0.18",5206
+ "tracing",5207
+ "web-time",5208
+ "wildmatch",5209
+ "zeroize",5210
+]5211
+5212
+[[package]]5213
+name = "ruma-federation-api"5214
+version = "0.15.0"5215
+source = "registry+https://github.com/rust-lang/crates.io-index"5216
+checksum = "d4c9638f18d8da3183ebdf034a552ba6d7e86d217e6e680eebaa97c4e8d13d1a"5217
+dependencies = [5218
+ "headers",5219
+ "http",5220
+ "http-auth",5221
+ "httparse",5222
+ "js_int",5223
+ "memchr",5224
+ "mime",5225
+ "ruma-common",5226
+ "ruma-events",5227
+ "ruma-signatures",5228
+ "serde",5229
+ "serde_json",5230
+ "thiserror 2.0.18",5231
+ "tracing",5232
+]5233
+5234
+[[package]]5235
+name = "ruma-html"5236
+version = "0.8.0"5237
+source = "registry+https://github.com/rust-lang/crates.io-index"5238
+checksum = "48d33a944650f4bbd2188dd204d39dd87a9a1498f14b3a13252910c90ed7cd43"5239
+dependencies = [5240
+ "as_variant",5241
+ "html5ever",5242
+ "tracing",5243
+ "wildmatch",5244
+]5245
+5246
+[[package]]5247
+name = "ruma-identifiers-validation"5248
+version = "0.12.1"5249
+source = "registry+https://github.com/rust-lang/crates.io-index"5250
+checksum = "9d6cff00317675f487c4e7ccfb18875a14c5a14867b51d13f2a826053f03c432"5251
+dependencies = [5252
+ "js_int",5253
+ "thiserror 2.0.18",5254
+]5255
+5256
+[[package]]5257
+name = "ruma-macros"5258
+version = "0.19.0"5259
+source = "registry+https://github.com/rust-lang/crates.io-index"5260
+checksum = "c8cfb39eaa9b9fd389126ff941e060b496add5cbbfef559d80c46e571dda459c"5261
+dependencies = [5262
+ "as_variant",5263
+ "cfg-if",5264
+ "proc-macro-crate",5265
+ "proc-macro2",5266
+ "quote",5267
+ "ruma-identifiers-validation",5268
+ "serde",5269
+ "syn 2.0.101",5270
+ "toml 1.1.2+spec-1.1.0",5271
+]5272
+5273
+[[package]]5274
+name = "ruma-signatures"5275
+version = "0.21.0"5276
+source = "registry+https://github.com/rust-lang/crates.io-index"5277
+checksum = "3d374cdc542bcb881da80fcb3e58403e5fd17cfe5e0ab03939fdf12f99ef9ba2"5278
+dependencies = [5279
+ "base64",5280
+ "ed25519-dalek",5281
+ "pkcs8",5282
+ "rand 0.10.1",5283
+ "ruma-common",5284
+ "serde_json",5285
+ "sha2",5286
+ "thiserror 2.0.18",5287
+]5288
+5289
+[[package]]5290
+name = "rusqlite"5291
+version = "0.37.0"5292
+source = "registry+https://github.com/rust-lang/crates.io-index"5293
+checksum = "165ca6e57b20e1351573e3729b958bc62f0e48025386970b6e4d29e7a7e71f3f"5294
+dependencies = [5295
+ "bitflags 2.10.0",5296
+ "fallible-iterator",5297
+ "fallible-streaming-iterator",5298
+ "hashlink",5299
+ "libsqlite3-sys",5300
+ "smallvec",5301
+]5302
+5303
+[[package]]5304
+name = "rust-stemmers"5305
+version = "1.2.0"5306
+source = "registry+https://github.com/rust-lang/crates.io-index"5307
+checksum = "e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54"5308
+dependencies = [5309
+ "serde",5310
+ "serde_derive",5311
+]5312
+5313
+[[package]]5314
+name = "rustc-demangle"5315
+version = "0.1.24"5316
+source = "registry+https://github.com/rust-lang/crates.io-index"5317
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"5318
+5319
+[[package]]5320
+name = "rustc-hash"5321
+version = "2.0.0"5322
+source = "registry+https://github.com/rust-lang/crates.io-index"5323
+checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"5324
+5325
+[[package]]5326
+name = "rustc_version"5327
+version = "0.4.0"5328
+source = "registry+https://github.com/rust-lang/crates.io-index"5329
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"5330
+dependencies = [5331
+ "semver",5332
+]5333
+5334
+[[package]]5335
+name = "rustix"5336
+version = "1.0.8"5337
+source = "registry+https://github.com/rust-lang/crates.io-index"5338
+checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"5339
+dependencies = [5340
+ "bitflags 2.10.0",5341
+ "errno",5342
+ "libc",5343
+ "linux-raw-sys",5344
+ "windows-sys 0.60.2",5345
+]5346
+5347
+[[package]]5348
+name = "rustls"5349
+version = "0.23.38"5350
+source = "registry+https://github.com/rust-lang/crates.io-index"5351
+checksum = "69f9466fb2c14ea04357e91413efb882e2a6d4a406e625449bc0a5d360d53a21"5352
+dependencies = [5353
+ "aws-lc-rs",5354
+ "log",5355
+ "once_cell",5356
+ "rustls-pki-types",5357
+ "rustls-webpki",5358
+ "subtle",5359
+ "zeroize",5360
+]5361
+5362
+[[package]]5363
+name = "rustls-native-certs"5364
+version = "0.8.3"5365
+source = "registry+https://github.com/rust-lang/crates.io-index"5366
+checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63"5367
+dependencies = [5368
+ "openssl-probe",5369
+ "rustls-pki-types",5370
+ "schannel",5371
+ "security-framework",5372
+]5373
+5374
+[[package]]5375
+name = "rustls-pki-types"5376
+version = "1.14.0"5377
+source = "registry+https://github.com/rust-lang/crates.io-index"5378
+checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd"5379
+dependencies = [5380
+ "web-time",5381
+ "zeroize",5382
+]5383
+5384
+[[package]]5385
+name = "rustls-platform-verifier"5386
+version = "0.6.2"5387
+source = "registry+https://github.com/rust-lang/crates.io-index"5388
+checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784"5389
+dependencies = [5390
+ "core-foundation",5391
+ "core-foundation-sys",5392
+ "jni",5393
+ "log",5394
+ "once_cell",5395
+ "rustls",5396
+ "rustls-native-certs",5397
+ "rustls-platform-verifier-android",5398
+ "rustls-webpki",5399
+ "security-framework",5400
+ "security-framework-sys",5401
+ "webpki-root-certs",5402
+ "windows-sys 0.61.2",5403
+]5404
+5405
+[[package]]5406
+name = "rustls-platform-verifier-android"5407
+version = "0.1.1"5408
+source = "registry+https://github.com/rust-lang/crates.io-index"5409
+checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"5410
+5411
+[[package]]5412
+name = "rustls-webpki"5413
+version = "0.103.13"5414
+source = "registry+https://github.com/rust-lang/crates.io-index"5415
+checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"5416
+dependencies = [5417
+ "aws-lc-rs",5418
+ "ring",5419
+ "rustls-pki-types",5420
+ "untrusted",5421
+]5422
+5423
+[[package]]5424
+name = "rustversion"5425
+version = "1.0.22"5426
+source = "registry+https://github.com/rust-lang/crates.io-index"5427
+checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"5428
+5429
+[[package]]5430
+name = "ryu"5431
+version = "1.0.18"5432
+source = "registry+https://github.com/rust-lang/crates.io-index"5433
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"5434
+5435
+[[package]]5436
+name = "same-file"5437
+version = "1.0.6"5438
+source = "registry+https://github.com/rust-lang/crates.io-index"5439
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"5440
+dependencies = [5441
+ "winapi-util",5442
+]5443
+5444
+[[package]]5445
+name = "schannel"5446
+version = "0.1.29"5447
+source = "registry+https://github.com/rust-lang/crates.io-index"5448
+checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939"5449
+dependencies = [5450
+ "windows-sys 0.61.2",5451
+]5452
+5453
+[[package]]5454
+name = "scoped-tls"5455
+version = "1.0.1"5456
+source = "registry+https://github.com/rust-lang/crates.io-index"5457
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"5458
+5459
+[[package]]5460
+name = "scopeguard"5461
+version = "1.2.0"5462
+source = "registry+https://github.com/rust-lang/crates.io-index"5463
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"5464
+5465
+[[package]]5466
+name = "scroll"5467
+version = "0.12.0"5468
+source = "registry+https://github.com/rust-lang/crates.io-index"5469
+checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6"5470
+dependencies = [5471
+ "scroll_derive",5472
+]5473
+5474
+[[package]]5475
+name = "scroll_derive"5476
+version = "0.12.0"5477
+source = "registry+https://github.com/rust-lang/crates.io-index"5478
+checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932"5479
+dependencies = [5480
+ "proc-macro2",5481
+ "quote",5482
+ "syn 2.0.101",5483
+]5484
+5485
+[[package]]5486
+name = "sealed"5487
+version = "0.6.0"5488
+source = "registry+https://github.com/rust-lang/crates.io-index"5489
+checksum = "22f968c5ea23d555e670b449c1c5e7b2fc399fdaec1d304a17cd48e288abc107"5490
+dependencies = [5491
+ "proc-macro2",5492
+ "quote",5493
+ "syn 2.0.101",5494
+]5495
+5496
+[[package]]5497
+name = "security-framework"5498
+version = "3.5.1"5499
+source = "registry+https://github.com/rust-lang/crates.io-index"5500
+checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef"5501
+dependencies = [5502
+ "bitflags 2.10.0",5503
+ "core-foundation",5504
+ "core-foundation-sys",5505
+ "libc",5506
+ "security-framework-sys",5507
+]5508
+5509
+[[package]]5510
+name = "security-framework-sys"5511
+version = "2.15.0"5512
+source = "registry+https://github.com/rust-lang/crates.io-index"5513
+checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0"5514
+dependencies = [5515
+ "core-foundation-sys",5516
+ "libc",5517
+]5518
+5519
+[[package]]5520
+name = "semver"5521
+version = "1.0.27"5522
+source = "registry+https://github.com/rust-lang/crates.io-index"5523
+checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"5524
+dependencies = [5525
+ "serde",5526
+ "serde_core",5527
+]5528
+5529
+[[package]]5530
+name = "sentry"5531
+version = "0.47.0"5532
+source = "registry+https://github.com/rust-lang/crates.io-index"5533
+checksum = "eb25f439f97d26fea01d717fa626167ceffcd981addaa670001e70505b72acbb"5534
+dependencies = [5535
+ "cfg_aliases",5536
+ "httpdate",5537
+ "reqwest",5538
+ "sentry-backtrace",5539
+ "sentry-contexts",5540
+ "sentry-core",5541
+ "sentry-debug-images",5542
+ "sentry-panic",5543
+ "sentry-tracing",5544
+ "tokio",5545
+]5546
+5547
+[[package]]5548
+name = "sentry-backtrace"5549
+version = "0.47.0"5550
+source = "registry+https://github.com/rust-lang/crates.io-index"5551
+checksum = "46a8c2c1bd5c1f735e84f28b48e7d72efcaafc362b7541bc8253e60e8fcdffc6"5552
+dependencies = [5553
+ "backtrace",5554
+ "regex",5555
+ "sentry-core",5556
+]5557
+5558
+[[package]]5559
+name = "sentry-contexts"5560
+version = "0.47.0"5561
+source = "registry+https://github.com/rust-lang/crates.io-index"5562
+checksum = "9b88a90baa654d7f0e1f4b667f6b434293d9f72c71bef16b197c76af5b7d5803"5563
+dependencies = [5564
+ "hostname",5565
+ "libc",5566
+ "os_info",5567
+ "rustc_version",5568
+ "sentry-core",5569
+ "uname",5570
+]5571
+5572
+[[package]]5573
+name = "sentry-core"5574
+version = "0.47.0"5575
+source = "registry+https://github.com/rust-lang/crates.io-index"5576
+checksum = "0ac170a5bba8bec6e3339c90432569d89641fa7a3d3e4f44987d24f0762e6adf"5577
+dependencies = [5578
+ "rand 0.9.4",5579
+ "sentry-types",5580
+ "serde",5581
+ "serde_json",5582
+ "url",5583
+]5584
+5585
+[[package]]5586
+name = "sentry-debug-images"5587
+version = "0.47.0"5588
+source = "registry+https://github.com/rust-lang/crates.io-index"5589
+checksum = "dd9646a972b57896d4a92ed200cf76139f8e30b3cfd03b6662ae59926d26633c"5590
+dependencies = [5591
+ "findshlibs",5592
+ "sentry-core",5593
+]5594
+5595
+[[package]]5596
+name = "sentry-panic"5597
+version = "0.47.0"5598
+source = "registry+https://github.com/rust-lang/crates.io-index"5599
+checksum = "6127d3d304ba5ce0409401e85aae538e303a569f8dbb031bf64f9ba0f7174346"5600
+dependencies = [5601
+ "sentry-backtrace",5602
+ "sentry-core",5603
+]5604
+5605
+[[package]]5606
+name = "sentry-tracing"5607
+version = "0.47.0"5608
+source = "registry+https://github.com/rust-lang/crates.io-index"5609
+checksum = "27701acc51e68db5281802b709010395bfcbcb128b1d0a4e5873680d3b47ff0c"5610
+dependencies = [5611
+ "bitflags 2.10.0",5612
+ "sentry-backtrace",5613
+ "sentry-core",5614
+ "tracing-core",5615
+ "tracing-subscriber",5616
+]5617
+5618
+[[package]]5619
+name = "sentry-types"5620
+version = "0.47.0"5621
+source = "registry+https://github.com/rust-lang/crates.io-index"5622
+checksum = "56780cb5597d676bf22e6c11d1f062eb4def46390ea3bfb047bcbcf7dfd19bdb"5623
+dependencies = [5624
+ "debugid",5625
+ "hex",5626
+ "rand 0.9.4",5627
+ "serde",5628
+ "serde_json",5629
+ "thiserror 2.0.18",5630
+ "time",5631
+ "url",5632
+ "uuid",5633
+]5634
+5635
+[[package]]5636
+name = "serde"5637
+version = "1.0.228"5638
+source = "registry+https://github.com/rust-lang/crates.io-index"5639
+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"5640
+dependencies = [5641
+ "serde_core",5642
+ "serde_derive",5643
+]5644
+5645
+[[package]]5646
+name = "serde-wasm-bindgen"5647
+version = "0.6.5"5648
+source = "registry+https://github.com/rust-lang/crates.io-index"5649
+checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b"5650
+dependencies = [5651
+ "js-sys",5652
+ "serde",5653
+ "wasm-bindgen",5654
+]5655
+5656
+[[package]]5657
+name = "serde_bytes"5658
+version = "0.11.19"5659
+source = "registry+https://github.com/rust-lang/crates.io-index"5660
+checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8"5661
+dependencies = [5662
+ "serde",5663
+ "serde_core",5664
+]5665
+5666
+[[package]]5667
+name = "serde_core"5668
+version = "1.0.228"5669
+source = "registry+https://github.com/rust-lang/crates.io-index"5670
+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"5671
+dependencies = [5672
+ "serde_derive",5673
+]5674
+5675
+[[package]]5676
+name = "serde_derive"5677
+version = "1.0.228"5678
+source = "registry+https://github.com/rust-lang/crates.io-index"5679
+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"5680
+dependencies = [5681
+ "proc-macro2",5682
+ "quote",5683
+ "syn 2.0.101",5684
+]5685
+5686
+[[package]]5687
+name = "serde_html_form"5688
+version = "0.4.0"5689
+source = "registry+https://github.com/rust-lang/crates.io-index"5690
+checksum = "0946d52b4b7e28823148aebbeceb901012c595ad737920d504fa8634bb099e6f"5691
+dependencies = [5692
+ "form_urlencoded",5693
+ "indexmap",5694
+ "itoa",5695
+ "ryu",5696
+ "serde_core",5697
+]5698
+5699
+[[package]]5700
+name = "serde_json"5701
+version = "1.0.145"5702
+source = "registry+https://github.com/rust-lang/crates.io-index"5703
+checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"5704
+dependencies = [5705
+ "itoa",5706
+ "memchr",5707
+ "ryu",5708
+ "serde",5709
+ "serde_core",5710
+]5711
+5712
+[[package]]5713
+name = "serde_path_to_error"5714
+version = "0.1.20"5715
+source = "registry+https://github.com/rust-lang/crates.io-index"5716
+checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457"5717
+dependencies = [5718
+ "itoa",5719
+ "serde",5720
+ "serde_core",5721
+]5722
+5723
+[[package]]5724
+name = "serde_spanned"5725
+version = "1.1.1"5726
+source = "registry+https://github.com/rust-lang/crates.io-index"5727
+checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"5728
+dependencies = [5729
+ "serde_core",5730
+]5731
+5732
+[[package]]5733
+name = "serde_urlencoded"5734
+version = "0.7.1"5735
+source = "registry+https://github.com/rust-lang/crates.io-index"5736
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"5737
+dependencies = [5738
+ "form_urlencoded",5739
+ "itoa",5740
+ "ryu",5741
+ "serde",5742
+]5743
+5744
+[[package]]5745
+name = "sha1"5746
+version = "0.10.6"5747
+source = "registry+https://github.com/rust-lang/crates.io-index"5748
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"5749
+dependencies = [5750
+ "cfg-if",5751
+ "cpufeatures 0.2.12",5752
+ "digest",5753
+]5754
+5755
+[[package]]5756
+name = "sha2"5757
+version = "0.10.9"5758
+source = "registry+https://github.com/rust-lang/crates.io-index"5759
+checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"5760
+dependencies = [5761
+ "cfg-if",5762
+ "cpufeatures 0.2.12",5763
+ "digest",5764
+]5765
+5766
+[[package]]5767
+name = "sharded-slab"5768
+version = "0.1.7"5769
+source = "registry+https://github.com/rust-lang/crates.io-index"5770
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"5771
+dependencies = [5772
+ "lazy_static",5773
+]5774
+5775
+[[package]]5776
+name = "shlex"5777
+version = "1.3.0"5778
+source = "registry+https://github.com/rust-lang/crates.io-index"5779
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"5780
+5781
+[[package]]5782
+name = "signal-hook"5783
+version = "0.3.17"5784
+source = "registry+https://github.com/rust-lang/crates.io-index"5785
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"5786
+dependencies = [5787
+ "libc",5788
+ "signal-hook-registry",5789
+]5790
+5791
+[[package]]5792
+name = "signal-hook-mio"5793
+version = "0.2.4"5794
+source = "registry+https://github.com/rust-lang/crates.io-index"5795
+checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd"5796
+dependencies = [5797
+ "libc",5798
+ "mio",5799
+ "signal-hook",5800
+]5801
+5802
+[[package]]5803
+name = "signal-hook-registry"5804
+version = "1.4.2"5805
+source = "registry+https://github.com/rust-lang/crates.io-index"5806
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"5807
+dependencies = [5808
+ "libc",5809
+]5810
+5811
+[[package]]5812
+name = "signature"5813
+version = "2.2.0"5814
+source = "registry+https://github.com/rust-lang/crates.io-index"5815
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"5816
+dependencies = [5817
+ "rand_core 0.6.4",5818
+]5819
+5820
+[[package]]5821
+name = "simd-adler32"5822
+version = "0.3.7"5823
+source = "registry+https://github.com/rust-lang/crates.io-index"5824
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"5825
+5826
+[[package]]5827
+name = "similar"5828
+version = "2.6.0"5829
+source = "registry+https://github.com/rust-lang/crates.io-index"5830
+checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"5831
+5832
+[[package]]5833
+name = "similar-asserts"5834
+version = "1.7.0"5835
+source = "registry+https://github.com/rust-lang/crates.io-index"5836
+checksum = "b5b441962c817e33508847a22bd82f03a30cff43642dc2fae8b050566121eb9a"5837
+dependencies = [5838
+ "console",5839
+ "similar",5840
+]5841
+5842
+[[package]]5843
+name = "siphasher"5844
+version = "1.0.1"5845
+source = "registry+https://github.com/rust-lang/crates.io-index"5846
+checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"5847
+5848
+[[package]]5849
+name = "sketches-ddsketch"5850
+version = "0.4.0"5851
+source = "registry+https://github.com/rust-lang/crates.io-index"5852
+checksum = "05e40b6cf54d988dc1a2223531b969c9a9e30906ad90ef64890c27b4bfbb46ea"5853
+dependencies = [5854
+ "serde",5855
+]5856
+5857
+[[package]]5858
+name = "slab"5859
+version = "0.4.9"5860
+source = "registry+https://github.com/rust-lang/crates.io-index"5861
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"5862
+dependencies = [5863
+ "autocfg",5864
+]5865
+5866
+[[package]]5867
+name = "smallvec"5868
+version = "1.13.2"5869
+source = "registry+https://github.com/rust-lang/crates.io-index"5870
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"5871
+dependencies = [5872
+ "serde",5873
+]5874
+5875
+[[package]]5876
+name = "smawk"5877
+version = "0.3.2"5878
+source = "registry+https://github.com/rust-lang/crates.io-index"5879
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"5880
+5881
+[[package]]5882
+name = "socket2"5883
+version = "0.5.7"5884
+source = "registry+https://github.com/rust-lang/crates.io-index"5885
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"5886
+dependencies = [5887
+ "libc",5888
+ "windows-sys 0.52.0",5889
+]5890
+5891
+[[package]]5892
+name = "socket2"5893
+version = "0.6.0"5894
+source = "registry+https://github.com/rust-lang/crates.io-index"5895
+checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807"5896
+dependencies = [5897
+ "libc",5898
+ "windows-sys 0.59.0",5899
+]5900
+5901
+[[package]]5902
+name = "spki"5903
+version = "0.7.3"5904
+source = "registry+https://github.com/rust-lang/crates.io-index"5905
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"5906
+dependencies = [5907
+ "base64ct",5908
+ "der",5909
+]5910
+5911
+[[package]]5912
+name = "stable_deref_trait"5913
+version = "1.2.0"5914
+source = "registry+https://github.com/rust-lang/crates.io-index"5915
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"5916
+5917
+[[package]]5918
+name = "static_assertions"5919
+version = "1.1.0"5920
+source = "registry+https://github.com/rust-lang/crates.io-index"5921
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"5922
+5923
+[[package]]5924
+name = "statrs"5925
+version = "0.18.0"5926
+source = "registry+https://github.com/rust-lang/crates.io-index"5927
+checksum = "2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e"5928
+dependencies = [5929
+ "approx",5930
+ "num-traits",5931
+]5932
+5933
+[[package]]5934
+name = "stream_assert"5935
+version = "0.1.1"5936
+source = "registry+https://github.com/rust-lang/crates.io-index"5937
+checksum = "7fab678a73c9013f0427c63cfb42d98bd459a465194e7e583df486f679684b96"5938
+dependencies = [5939
+ "futures-util",5940
+]5941
+5942
+[[package]]5943
+name = "string_cache"5944
+version = "0.9.0"5945
+source = "registry+https://github.com/rust-lang/crates.io-index"5946
+checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901"5947
+dependencies = [5948
+ "new_debug_unreachable",5949
+ "parking_lot",5950
+ "phf_shared 0.13.1",5951
+ "precomputed-hash",5952
+]5953
+5954
+[[package]]5955
+name = "string_cache_codegen"5956
+version = "0.6.1"5957
+source = "registry+https://github.com/rust-lang/crates.io-index"5958
+checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69"5959
+dependencies = [5960
+ "phf_generator 0.13.1",5961
+ "phf_shared 0.13.1",5962
+ "proc-macro2",5963
+ "quote",5964
+]5965
+5966
+[[package]]5967
+name = "strsim"5968
+version = "0.11.1"5969
+source = "registry+https://github.com/rust-lang/crates.io-index"5970
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"5971
+5972
+[[package]]5973
+name = "strum"5974
+version = "0.27.2"5975
+source = "registry+https://github.com/rust-lang/crates.io-index"5976
+checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf"5977
+dependencies = [5978
+ "strum_macros",5979
+]5980
+5981
+[[package]]5982
+name = "strum_macros"5983
+version = "0.27.1"5984
+source = "registry+https://github.com/rust-lang/crates.io-index"5985
+checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8"5986
+dependencies = [5987
+ "heck",5988
+ "proc-macro2",5989
+ "quote",5990
+ "rustversion",5991
+ "syn 2.0.101",5992
+]5993
+5994
+[[package]]5995
+name = "subtle"5996
+version = "2.6.1"5997
+source = "registry+https://github.com/rust-lang/crates.io-index"5998
+checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"5999
+6000
+[[package]]6001
+name = "syn"6002
+version = "1.0.109"6003
+source = "registry+https://github.com/rust-lang/crates.io-index"6004
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"6005
+dependencies = [6006
+ "proc-macro2",6007
+ "quote",6008
+ "unicode-ident",6009
+]6010
+6011
+[[package]]6012
+name = "syn"6013
+version = "2.0.101"6014
+source = "registry+https://github.com/rust-lang/crates.io-index"6015
+checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"6016
+dependencies = [6017
+ "proc-macro2",6018
+ "quote",6019
+ "unicode-ident",6020
+]6021
+6022
+[[package]]6023
+name = "sync_wrapper"6024
+version = "1.0.1"6025
+source = "registry+https://github.com/rust-lang/crates.io-index"6026
+checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"6027
+dependencies = [6028
+ "futures-core",6029
+]6030
+6031
+[[package]]6032
+name = "synstructure"6033
+version = "0.13.1"6034
+source = "registry+https://github.com/rust-lang/crates.io-index"6035
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"6036
+dependencies = [6037
+ "proc-macro2",6038
+ "quote",6039
+ "syn 2.0.101",6040
+]6041
+6042
+[[package]]6043
+name = "tantivy"6044
+version = "0.26.1"6045
+source = "registry+https://github.com/rust-lang/crates.io-index"6046
+checksum = "edde6a10743fff00a4e1a8c9ef020bf5f3cbad301b7d2d39f2b07f123c4eac07"6047
+dependencies = [6048
+ "aho-corasick",6049
+ "arc-swap",6050
+ "base64",6051
+ "bitpacking",6052
+ "bon",6053
+ "byteorder",6054
+ "census",6055
+ "crc32fast",6056
+ "crossbeam-channel",6057
+ "datasketches",6058
+ "downcast-rs",6059
+ "fastdivide",6060
+ "fnv",6061
+ "fs4",6062
+ "htmlescape",6063
+ "itertools 0.14.0",6064
+ "levenshtein_automata",6065
+ "log",6066
+ "lru",6067
+ "lz4_flex",6068
+ "measure_time",6069
+ "memmap2",6070
+ "once_cell",6071
+ "oneshot",6072
+ "rayon",6073
+ "regex",6074
+ "rust-stemmers",6075
+ "rustc-hash",6076
+ "serde",6077
+ "serde_json",6078
+ "sketches-ddsketch",6079
+ "smallvec",6080
+ "tantivy-bitpacker",6081
+ "tantivy-columnar",6082
+ "tantivy-common",6083
+ "tantivy-fst",6084
+ "tantivy-query-grammar",6085
+ "tantivy-stacker",6086
+ "tantivy-tokenizer-api",6087
+ "tempfile",6088
+ "thiserror 2.0.18",6089
+ "time",6090
+ "typetag",6091
+ "uuid",6092
+ "winapi",6093
+]6094
+6095
+[[package]]6096
+name = "tantivy-bitpacker"6097
+version = "0.10.0"6098
+source = "registry+https://github.com/rust-lang/crates.io-index"6099
+checksum = "4fed3d674429bcd2de5d0a6d1aa5495fed8afd9c5ecce993019caf7615f53fa4"6100
+dependencies = [6101
+ "bitpacking",6102
+]6103
+6104
+[[package]]6105
+name = "tantivy-columnar"6106
+version = "0.7.0"6107
+source = "registry+https://github.com/rust-lang/crates.io-index"6108
+checksum = "c57166f5bcfd478f370ab8445afb4678dce44801fa5ce5c451aaf8595583c5dc"6109
+dependencies = [6110
+ "downcast-rs",6111
+ "fastdivide",6112
+ "itertools 0.14.0",6113
+ "serde",6114
+ "tantivy-bitpacker",6115
+ "tantivy-common",6116
+ "tantivy-sstable",6117
+ "tantivy-stacker",6118
+]6119
+6120
+[[package]]6121
+name = "tantivy-common"6122
+version = "0.11.0"6123
+source = "registry+https://github.com/rust-lang/crates.io-index"6124
+checksum = "bbf10915aa75da3c3b0d58b58853d2e889efbaf32d4982a4c3715dde6bba23e5"6125
+dependencies = [6126
+ "async-trait",6127
+ "byteorder",6128
+ "ownedbytes",6129
+ "serde",6130
+ "time",6131
+]6132
+6133
+[[package]]6134
+name = "tantivy-fst"6135
+version = "0.5.0"6136
+source = "registry+https://github.com/rust-lang/crates.io-index"6137
+checksum = "d60769b80ad7953d8a7b2c70cdfe722bbcdcac6bccc8ac934c40c034d866fc18"6138
+dependencies = [6139
+ "byteorder",6140
+ "regex-syntax",6141
+ "utf8-ranges",6142
+]6143
+6144
+[[package]]6145
+name = "tantivy-query-grammar"6146
+version = "0.26.0"6147
+source = "registry+https://github.com/rust-lang/crates.io-index"6148
+checksum = "dfadb8526b6da90704feb293b0701a6aae62ea14983143344be2dc5ce30f1d82"6149
+dependencies = [6150
+ "fnv",6151
+ "nom",6152
+ "ordered-float 5.3.0",6153
+ "serde",6154
+ "serde_json",6155
+]6156
+6157
+[[package]]6158
+name = "tantivy-sstable"6159
+version = "0.7.0"6160
+source = "registry+https://github.com/rust-lang/crates.io-index"6161
+checksum = "8a2cfc3ac5164cbadc28965ffb145a8f47582a60ae5897859ad8d4316596c606"6162
+dependencies = [6163
+ "futures-util",6164
+ "itertools 0.14.0",6165
+ "tantivy-bitpacker",6166
+ "tantivy-common",6167
+ "tantivy-fst",6168
+ "zstd",6169
+]6170
+6171
+[[package]]6172
+name = "tantivy-stacker"6173
+version = "0.7.0"6174
+source = "registry+https://github.com/rust-lang/crates.io-index"6175
+checksum = "6cbb051742da9d53ca9e8fff43a9b10e319338b24e2c0e15d0372df19ffeb951"6176
+dependencies = [6177
+ "murmurhash32",6178
+ "tantivy-common",6179
+]6180
+6181
+[[package]]6182
+name = "tantivy-tokenizer-api"6183
+version = "0.7.0"6184
+source = "registry+https://github.com/rust-lang/crates.io-index"6185
+checksum = "eac258c2c6390673f2685813afeeafcb8c4e0ee7de8dd3fc46838dcc37263f98"6186
+dependencies = [6187
+ "serde",6188
+]6189
+6190
+[[package]]6191
+name = "tempfile"6192
+version = "3.23.0"6193
+source = "registry+https://github.com/rust-lang/crates.io-index"6194
+checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"6195
+dependencies = [6196
+ "fastrand",6197
+ "getrandom 0.3.4",6198
+ "once_cell",6199
+ "rustix",6200
+ "windows-sys 0.61.2",6201
+]6202
+6203
+[[package]]6204
+name = "tendril"6205
+version = "0.5.0"6206
+source = "registry+https://github.com/rust-lang/crates.io-index"6207
+checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24"6208
+dependencies = [6209
+ "new_debug_unreachable",6210
+ "utf-8",6211
+]6212
+6213
+[[package]]6214
+name = "terminfo"6215
+version = "0.9.0"6216
+source = "registry+https://github.com/rust-lang/crates.io-index"6217
+checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662"6218
+dependencies = [6219
+ "fnv",6220
+ "nom",6221
+ "phf 0.11.3",6222
+ "phf_codegen 0.11.3",6223
+]6224
+6225
+[[package]]6226
+name = "termios"6227
+version = "0.3.3"6228
+source = "registry+https://github.com/rust-lang/crates.io-index"6229
+checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b"6230
+dependencies = [6231
+ "libc",6232
+]6233
+6234
+[[package]]6235
+name = "termwiz"6236
+version = "0.23.3"6237
+source = "registry+https://github.com/rust-lang/crates.io-index"6238
+checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7"6239
+dependencies = [6240
+ "anyhow",6241
+ "base64",6242
+ "bitflags 2.10.0",6243
+ "fancy-regex",6244
+ "filedescriptor",6245
+ "finl_unicode",6246
+ "fixedbitset",6247
+ "hex",6248
+ "lazy_static",6249
+ "libc",6250
+ "log",6251
+ "memmem",6252
+ "nix 0.29.0",6253
+ "num-derive",6254
+ "num-traits",6255
+ "ordered-float 4.6.0",6256
+ "pest",6257
+ "pest_derive",6258
+ "phf 0.11.3",6259
+ "sha2",6260
+ "signal-hook",6261
+ "siphasher",6262
+ "terminfo",6263
+ "termios",6264
+ "thiserror 1.0.63",6265
+ "ucd-trie",6266
+ "unicode-segmentation",6267
+ "vtparse",6268
+ "wezterm-bidi",6269
+ "wezterm-blob-leases",6270
+ "wezterm-color-types",6271
+ "wezterm-dynamic",6272
+ "wezterm-input-types",6273
+ "winapi",6274
+]6275
+6276
+[[package]]6277
+name = "textwrap"6278
+version = "0.16.2"6279
+source = "registry+https://github.com/rust-lang/crates.io-index"6280
+checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"6281
+dependencies = [6282
+ "smawk",6283
+ "unicode-linebreak",6284
+ "unicode-width",6285
+]6286
+6287
+[[package]]6288
+name = "thiserror"6289
+version = "1.0.63"6290
+source = "registry+https://github.com/rust-lang/crates.io-index"6291
+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"6292
+dependencies = [6293
+ "thiserror-impl 1.0.63",6294
+]6295
+6296
+[[package]]6297
+name = "thiserror"6298
+version = "2.0.18"6299
+source = "registry+https://github.com/rust-lang/crates.io-index"6300
+checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"6301
+dependencies = [6302
+ "thiserror-impl 2.0.18",6303
+]6304
+6305
+[[package]]6306
+name = "thiserror-impl"6307
+version = "1.0.63"6308
+source = "registry+https://github.com/rust-lang/crates.io-index"6309
+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"6310
+dependencies = [6311
+ "proc-macro2",6312
+ "quote",6313
+ "syn 2.0.101",6314
+]6315
+6316
+[[package]]6317
+name = "thiserror-impl"6318
+version = "2.0.18"6319
+source = "registry+https://github.com/rust-lang/crates.io-index"6320
+checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"6321
+dependencies = [6322
+ "proc-macro2",6323
+ "quote",6324
+ "syn 2.0.101",6325
+]6326
+6327
+[[package]]6328
+name = "thread_local"6329
+version = "1.1.8"6330
+source = "registry+https://github.com/rust-lang/crates.io-index"6331
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"6332
+dependencies = [6333
+ "cfg-if",6334
+ "once_cell",6335
+]6336
+6337
+[[package]]6338
+name = "throbber-widgets-tui"6339
+version = "0.11.0"6340
+source = "registry+https://github.com/rust-lang/crates.io-index"6341
+checksum = "f1e6941f74491a80911cb8821cb1f55f7e13bca867b28a2b14e5a1daaf691eb3"6342
+dependencies = [6343
+ "ratatui",6344
+]6345
+6346
+[[package]]6347
+name = "time"6348
+version = "0.3.47"6349
+source = "registry+https://github.com/rust-lang/crates.io-index"6350
+checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"6351
+dependencies = [6352
+ "deranged",6353
+ "itoa",6354
+ "libc",6355
+ "num-conv",6356
+ "num_threads",6357
+ "powerfmt",6358
+ "serde_core",6359
+ "time-core",6360
+ "time-macros",6361
+]6362
+6363
+[[package]]6364
+name = "time-core"6365
+version = "0.1.8"6366
+source = "registry+https://github.com/rust-lang/crates.io-index"6367
+checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"6368
+6369
+[[package]]6370
+name = "time-macros"6371
+version = "0.2.27"6372
+source = "registry+https://github.com/rust-lang/crates.io-index"6373
+checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"6374
+dependencies = [6375
+ "num-conv",6376
+ "time-core",6377
+]6378
+6379
+[[package]]6380
+name = "tinystr"6381
+version = "0.7.6"6382
+source = "registry+https://github.com/rust-lang/crates.io-index"6383
+checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"6384
+dependencies = [6385
+ "displaydoc",6386
+ "zerovec",6387
+]6388
+6389
+[[package]]6390
+name = "tinytemplate"6391
+version = "1.2.1"6392
+source = "registry+https://github.com/rust-lang/crates.io-index"6393
+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"6394
+dependencies = [6395
+ "serde",6396
+ "serde_json",6397
+]6398
+6399
+[[package]]6400
+name = "tinyvec"6401
+version = "1.8.0"6402
+source = "registry+https://github.com/rust-lang/crates.io-index"6403
+checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"6404
+dependencies = [6405
+ "tinyvec_macros",6406
+]6407
+6408
+[[package]]6409
+name = "tinyvec_macros"6410
+version = "0.1.1"6411
+source = "registry+https://github.com/rust-lang/crates.io-index"6412
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"6413
+6414
+[[package]]6415
+name = "tokio"6416
+version = "1.48.0"6417
+source = "registry+https://github.com/rust-lang/crates.io-index"6418
+checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"6419
+dependencies = [6420
+ "bytes",6421
+ "libc",6422
+ "mio",6423
+ "pin-project-lite",6424
+ "socket2 0.6.0",6425
+ "tokio-macros",6426
+ "windows-sys 0.61.2",6427
+]6428
+6429
+[[package]]6430
+name = "tokio-macros"6431
+version = "2.6.0"6432
+source = "registry+https://github.com/rust-lang/crates.io-index"6433
+checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"6434
+dependencies = [6435
+ "proc-macro2",6436
+ "quote",6437
+ "syn 2.0.101",6438
+]6439
+6440
+[[package]]6441
+name = "tokio-rustls"6442
+version = "0.26.0"6443
+source = "registry+https://github.com/rust-lang/crates.io-index"6444
+checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"6445
+dependencies = [6446
+ "rustls",6447
+ "rustls-pki-types",6448
+ "tokio",6449
+]6450
+6451
+[[package]]6452
+name = "tokio-stream"6453
+version = "0.1.17"6454
+source = "registry+https://github.com/rust-lang/crates.io-index"6455
+checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047"6456
+dependencies = [6457
+ "futures-core",6458
+ "pin-project-lite",6459
+ "tokio",6460
+ "tokio-util",6461
+]6462
+6463
+[[package]]6464
+name = "tokio-test"6465
+version = "0.4.4"6466
+source = "registry+https://github.com/rust-lang/crates.io-index"6467
+checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7"6468
+dependencies = [6469
+ "async-stream",6470
+ "bytes",6471
+ "futures-core",6472
+ "tokio",6473
+ "tokio-stream",6474
+]6475
+6476
+[[package]]6477
+name = "tokio-util"6478
+version = "0.7.17"6479
+source = "registry+https://github.com/rust-lang/crates.io-index"6480
+checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594"6481
+dependencies = [6482
+ "bytes",6483
+ "futures-core",6484
+ "futures-sink",6485
+ "pin-project-lite",6486
+ "tokio",6487
+]6488
+6489
+[[package]]6490
+name = "toml"6491
+version = "0.9.7"6492
+source = "registry+https://github.com/rust-lang/crates.io-index"6493
+checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0"6494
+dependencies = [6495
+ "indexmap",6496
+ "serde_core",6497
+ "serde_spanned",6498
+ "toml_datetime 0.7.2",6499
+ "toml_parser",6500
+ "toml_writer",6501
+ "winnow 0.7.13",6502
+]6503
+6504
+[[package]]6505
+name = "toml"6506
+version = "1.1.2+spec-1.1.0"6507
+source = "registry+https://github.com/rust-lang/crates.io-index"6508
+checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee"6509
+dependencies = [6510
+ "serde_core",6511
+ "serde_spanned",6512
+ "toml_datetime 1.1.1+spec-1.1.0",6513
+ "toml_parser",6514
+ "winnow 1.0.1",6515
+]6516
+6517
+[[package]]6518
+name = "toml_datetime"6519
+version = "0.6.8"6520
+source = "registry+https://github.com/rust-lang/crates.io-index"6521
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"6522
+6523
+[[package]]6524
+name = "toml_datetime"6525
+version = "0.7.2"6526
+source = "registry+https://github.com/rust-lang/crates.io-index"6527
+checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1"6528
+dependencies = [6529
+ "serde_core",6530
+]6531
+6532
+[[package]]6533
+name = "toml_datetime"6534
+version = "1.1.1+spec-1.1.0"6535
+source = "registry+https://github.com/rust-lang/crates.io-index"6536
+checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"6537
+dependencies = [6538
+ "serde_core",6539
+]6540
+6541
+[[package]]6542
+name = "toml_edit"6543
+version = "0.22.22"6544
+source = "registry+https://github.com/rust-lang/crates.io-index"6545
+checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"6546
+dependencies = [6547
+ "indexmap",6548
+ "toml_datetime 0.6.8",6549
+ "winnow 0.6.20",6550
+]6551
+6552
+[[package]]6553
+name = "toml_parser"6554
+version = "1.1.2+spec-1.1.0"6555
+source = "registry+https://github.com/rust-lang/crates.io-index"6556
+checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"6557
+dependencies = [6558
+ "winnow 1.0.1",6559
+]6560
+6561
+[[package]]6562
+name = "toml_writer"6563
+version = "1.0.4"6564
+source = "registry+https://github.com/rust-lang/crates.io-index"6565
+checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"6566
+6567
+[[package]]6568
+name = "tower"6569
+version = "0.5.2"6570
+source = "registry+https://github.com/rust-lang/crates.io-index"6571
+checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"6572
+dependencies = [6573
+ "futures-core",6574
+ "futures-util",6575
+ "pin-project-lite",6576
+ "sync_wrapper",6577
+ "tokio",6578
+ "tower-layer",6579
+ "tower-service",6580
+ "tracing",6581
+]6582
+6583
+[[package]]6584
+name = "tower-http"6585
+version = "0.6.8"6586
+source = "registry+https://github.com/rust-lang/crates.io-index"6587
+checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8"6588
+dependencies = [6589
+ "async-compression",6590
+ "bitflags 2.10.0",6591
+ "bytes",6592
+ "futures-core",6593
+ "futures-util",6594
+ "http",6595
+ "http-body",6596
+ "http-body-util",6597
+ "iri-string",6598
+ "pin-project-lite",6599
+ "tokio",6600
+ "tokio-util",6601
+ "tower",6602
+ "tower-layer",6603
+ "tower-service",6604
+]6605
+6606
+[[package]]6607
+name = "tower-layer"6608
+version = "0.3.3"6609
+source = "registry+https://github.com/rust-lang/crates.io-index"6610
+checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"6611
+6612
+[[package]]6613
+name = "tower-service"6614
+version = "0.3.3"6615
+source = "registry+https://github.com/rust-lang/crates.io-index"6616
+checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"6617
+6618
+[[package]]6619
+name = "tracing"6620
+version = "0.1.41"6621
+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"6622
+dependencies = [6623
+ "log",6624
+ "pin-project-lite",6625
+ "tracing-attributes",6626
+ "tracing-core",6627
+]6628
+6629
+[[package]]6630
+name = "tracing-appender"6631
+version = "0.2.3"6632
+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"6633
+dependencies = [6634
+ "crossbeam-channel",6635
+ "thiserror 2.0.18",6636
+ "time",6637
+ "tracing-subscriber",6638
+]6639
+6640
+[[package]]6641
+name = "tracing-attributes"6642
+version = "0.1.30"6643
+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"6644
+dependencies = [6645
+ "proc-macro2",6646
+ "quote",6647
+ "syn 2.0.101",6648
+]6649
+6650
+[[package]]6651
+name = "tracing-core"6652
+version = "0.1.34"6653
+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"6654
+dependencies = [6655
+ "once_cell",6656
+ "valuable",6657
+]6658
+6659
+[[package]]6660
+name = "tracing-error"6661
+version = "0.2.0"6662
+source = "registry+https://github.com/rust-lang/crates.io-index"6663
+checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e"6664
+dependencies = [6665
+ "tracing",6666
+ "tracing-subscriber",6667
+]6668
+6669
+[[package]]6670
+name = "tracing-log"6671
+version = "0.2.0"6672
+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"6673
+dependencies = [6674
+ "log",6675
+ "once_cell",6676
+ "tracing-core",6677
+]6678
+6679
+[[package]]6680
+name = "tracing-subscriber"6681
+version = "0.3.20"6682
+source = "git+https://github.com/tokio-rs/tracing.git?rev=20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05#20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05"6683
+dependencies = [6684
+ "matchers",6685
+ "nu-ansi-term",6686
+ "once_cell",6687
+ "regex-automata",6688
+ "sharded-slab",6689
+ "smallvec",6690
+ "thread_local",6691
+ "tracing",6692
+ "tracing-core",6693
+ "tracing-log",6694
+]6695
+6696
+[[package]]6697
+name = "try-lock"6698
+version = "0.2.5"6699
+source = "registry+https://github.com/rust-lang/crates.io-index"6700
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"6701
+6702
+[[package]]6703
+name = "tui-widget-list"6704
+version = "0.15.2"6705
+source = "registry+https://github.com/rust-lang/crates.io-index"6706
+checksum = "8fbf7f6c7d04beb3602630d83db44e81d7a1de1fea11ca3435d82e094c5c0192"6707
+dependencies = [6708
+ "ratatui-core",6709
+ "ratatui-widgets",6710
+]6711
+6712
+[[package]]6713
+name = "typeid"6714
+version = "1.0.3"6715
+source = "registry+https://github.com/rust-lang/crates.io-index"6716
+checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"6717
+6718
+[[package]]6719
+name = "typenum"6720
+version = "1.17.0"6721
+source = "registry+https://github.com/rust-lang/crates.io-index"6722
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"6723
+6724
+[[package]]6725
+name = "typetag"6726
+version = "0.2.22"6727
+source = "registry+https://github.com/rust-lang/crates.io-index"6728
+checksum = "c5a897b12c6c1151ad0b138b8db50252dc301f93bc3b027db05eec82aeed298c"6729
+dependencies = [6730
+ "erased-serde",6731
+ "inventory",6732
+ "once_cell",6733
+ "serde",6734
+ "typetag-impl",6735
+]6736
+6737
+[[package]]6738
+name = "typetag-impl"6739
+version = "0.2.22"6740
+source = "registry+https://github.com/rust-lang/crates.io-index"6741
+checksum = "cf808357c6ed7e13ba0f3277ec8d8f21b2d501274895104263985330c726c1c5"6742
+dependencies = [6743
+ "proc-macro2",6744
+ "quote",6745
+ "syn 2.0.101",6746
+]6747
+6748
+[[package]]6749
+name = "typewit"6750
+version = "1.14.2"6751
+source = "registry+https://github.com/rust-lang/crates.io-index"6752
+checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71"6753
+6754
+[[package]]6755
+name = "ucd-trie"6756
+version = "0.1.7"6757
+source = "registry+https://github.com/rust-lang/crates.io-index"6758
+checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"6759
+6760
+[[package]]6761
+name = "ulid"6762
+version = "1.1.4"6763
+source = "registry+https://github.com/rust-lang/crates.io-index"6764
+checksum = "f294bff79170ed1c5633812aff1e565c35d993a36e757f9bc0accf5eec4e6045"6765
+dependencies = [6766
+ "rand 0.8.6",6767
+ "web-time",6768
+]6769
+6770
+[[package]]6771
+name = "uname"6772
+version = "0.1.1"6773
+source = "registry+https://github.com/rust-lang/crates.io-index"6774
+checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"6775
+dependencies = [6776
+ "libc",6777
+]6778
+6779
+[[package]]6780
+name = "unarray"6781
+version = "0.1.4"6782
+source = "registry+https://github.com/rust-lang/crates.io-index"6783
+checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"6784
+6785
+[[package]]6786
+name = "unicase"6787
+version = "2.7.0"6788
+source = "registry+https://github.com/rust-lang/crates.io-index"6789
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"6790
+dependencies = [6791
+ "version_check",6792
+]6793
+6794
+[[package]]6795
+name = "unicode-ident"6796
+version = "1.0.22"6797
+source = "registry+https://github.com/rust-lang/crates.io-index"6798
+checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"6799
+6800
+[[package]]6801
+name = "unicode-linebreak"6802
+version = "0.1.5"6803
+source = "registry+https://github.com/rust-lang/crates.io-index"6804
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"6805
+6806
+[[package]]6807
+name = "unicode-normalization"6808
+version = "0.1.25"6809
+source = "registry+https://github.com/rust-lang/crates.io-index"6810
+checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"6811
+dependencies = [6812
+ "tinyvec",6813
+]6814
+6815
+[[package]]6816
+name = "unicode-segmentation"6817
+version = "1.12.0"6818
+source = "registry+https://github.com/rust-lang/crates.io-index"6819
+checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"6820
+6821
+[[package]]6822
+name = "unicode-truncate"6823
+version = "2.0.1"6824
+source = "registry+https://github.com/rust-lang/crates.io-index"6825
+checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5"6826
+dependencies = [6827
+ "itertools 0.14.0",6828
+ "unicode-segmentation",6829
+ "unicode-width",6830
+]6831
+6832
+[[package]]6833
+name = "unicode-width"6834
+version = "0.2.0"6835
+source = "registry+https://github.com/rust-lang/crates.io-index"6836
+checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"6837
+6838
+[[package]]6839
+name = "unicode-xid"6840
+version = "0.2.6"6841
+source = "registry+https://github.com/rust-lang/crates.io-index"6842
+checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"6843
+6844
+[[package]]6845
+name = "uniffi"6846
+version = "0.31.0"6847
+source = "registry+https://github.com/rust-lang/crates.io-index"6848
+checksum = "b8c6dec3fc6645f71a16a3fa9ff57991028153bd194ca97f4b55e610c73ce66a"6849
+dependencies = [6850
+ "anyhow",6851
+ "camino",6852
+ "cargo_metadata",6853
+ "clap",6854
+ "uniffi_bindgen",6855
+ "uniffi_build",6856
+ "uniffi_core",6857
+ "uniffi_macros",6858
+ "uniffi_pipeline",6859
+]6860
+6861
+[[package]]6862
+name = "uniffi-bindgen"6863
+version = "0.1.0"6864
+dependencies = [6865
+ "uniffi",6866
+]6867
+6868
+[[package]]6869
+name = "uniffi_bindgen"6870
+version = "0.31.0"6871
+source = "registry+https://github.com/rust-lang/crates.io-index"6872
+checksum = "4ed0150801958d4825da56a41c71f000a457ac3a4613fa9647df78ac4b6b6881"6873
+dependencies = [6874
+ "anyhow",6875
+ "askama",6876
+ "camino",6877
+ "cargo_metadata",6878
+ "fs-err",6879
+ "glob",6880
+ "goblin 0.8.2",6881
+ "heck",6882
+ "indexmap",6883
+ "once_cell",6884
+ "serde",6885
+ "tempfile",6886
+ "textwrap",6887
+ "toml 0.9.7",6888
+ "uniffi_internal_macros",6889
+ "uniffi_meta",6890
+ "uniffi_pipeline",6891
+ "uniffi_udl",6892
+]6893
+6894
+[[package]]6895
+name = "uniffi_build"6896
+version = "0.31.0"6897
+source = "registry+https://github.com/rust-lang/crates.io-index"6898
+checksum = "b78fd9271a4c2e85bd2c266c5a9ede1fac676eb39fd77f636c27eaf67426fd5f"6899
+dependencies = [6900
+ "anyhow",6901
+ "camino",6902
+ "uniffi_bindgen",6903
+]6904
+6905
+[[package]]6906
+name = "uniffi_core"6907
+version = "0.31.0"6908
+source = "registry+https://github.com/rust-lang/crates.io-index"6909
+checksum = "b0ef62e69762fbb9386dcb6c87cd3dd05d525fa8a3a579a290892e60ddbda47e"6910
+dependencies = [6911
+ "anyhow",6912
+ "async-compat",6913
+ "bytes",6914
+ "once_cell",6915
+ "static_assertions",6916
+]6917
+6918
+[[package]]6919
+name = "uniffi_internal_macros"6920
+version = "0.31.0"6921
+source = "registry+https://github.com/rust-lang/crates.io-index"6922
+checksum = "98f51ebca0d9a4b2aa6c644d5ede45c56f73906b96403c08a1985e75ccb64a01"6923
+dependencies = [6924
+ "anyhow",6925
+ "indexmap",6926
+ "proc-macro2",6927
+ "quote",6928
+ "syn 2.0.101",6929
+]6930
+6931
+[[package]]6932
+name = "uniffi_macros"6933
+version = "0.31.0"6934
+source = "registry+https://github.com/rust-lang/crates.io-index"6935
+checksum = "db9d12529f1223d014fd501e5f29ca0884d15d6ed5ddddd9f506e55350327dc3"6936
+dependencies = [6937
+ "camino",6938
+ "fs-err",6939
+ "once_cell",6940
+ "proc-macro2",6941
+ "quote",6942
+ "serde",6943
+ "syn 2.0.101",6944
+ "toml 0.9.7",6945
+ "uniffi_meta",6946
+]6947
+6948
+[[package]]6949
+name = "uniffi_meta"6950
+version = "0.31.0"6951
+source = "registry+https://github.com/rust-lang/crates.io-index"6952
+checksum = "9df6d413db2827c68588f8149d30d49b71d540d46539e435b23a7f7dbd4d4f86"6953
+dependencies = [6954
+ "anyhow",6955
+ "siphasher",6956
+ "uniffi_internal_macros",6957
+ "uniffi_pipeline",6958
+]6959
+6960
+[[package]]6961
+name = "uniffi_pipeline"6962
+version = "0.31.0"6963
+source = "registry+https://github.com/rust-lang/crates.io-index"6964
+checksum = "a806dddc8208f22efd7e95a5cdf88ed43d0f3271e8f63b47e757a8bbdb43b63a"6965
+dependencies = [6966
+ "anyhow",6967
+ "heck",6968
+ "indexmap",6969
+ "tempfile",6970
+ "uniffi_internal_macros",6971
+]6972
+6973
+[[package]]6974
+name = "uniffi_udl"6975
+version = "0.31.0"6976
+source = "registry+https://github.com/rust-lang/crates.io-index"6977
+checksum = "0d1a7339539bf6f6fa3e9b534dece13f778bda2d54b1a6d4e40b4d6090ac26e7"6978
+dependencies = [6979
+ "anyhow",6980
+ "textwrap",6981
+ "uniffi_meta",6982
+ "weedle2",6983
+]6984
+6985
+[[package]]6986
+name = "universal-hash"6987
+version = "0.5.1"6988
+source = "registry+https://github.com/rust-lang/crates.io-index"6989
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"6990
+dependencies = [6991
+ "crypto-common",6992
+ "subtle",6993
+]6994
+6995
+[[package]]6996
+name = "untrusted"6997
+version = "0.9.0"6998
+source = "registry+https://github.com/rust-lang/crates.io-index"6999
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"7000
+7001
+[[package]]7002
+name = "url"7003
+version = "2.5.7"7004
+source = "registry+https://github.com/rust-lang/crates.io-index"7005
+checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"7006
+dependencies = [7007
+ "form_urlencoded",7008
+ "idna",7009
+ "percent-encoding",7010
+ "serde",7011
+]7012
+7013
+[[package]]7014
+name = "urlencoding"7015
+version = "2.1.3"7016
+source = "registry+https://github.com/rust-lang/crates.io-index"7017
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"7018
+7019
+[[package]]7020
+name = "utf-8"7021
+version = "0.7.6"7022
+source = "registry+https://github.com/rust-lang/crates.io-index"7023
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"7024
+7025
+[[package]]7026
+name = "utf16_iter"7027
+version = "1.0.5"7028
+source = "registry+https://github.com/rust-lang/crates.io-index"7029
+checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"7030
+7031
+[[package]]7032
+name = "utf8-ranges"7033
+version = "1.0.5"7034
+source = "registry+https://github.com/rust-lang/crates.io-index"7035
+checksum = "7fcfc827f90e53a02eaef5e535ee14266c1d569214c6aa70133a624d8a3164ba"7036
+7037
+[[package]]7038
+name = "utf8_iter"7039
+version = "1.0.4"7040
+source = "registry+https://github.com/rust-lang/crates.io-index"7041
+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"7042
+7043
+[[package]]7044
+name = "utf8parse"7045
+version = "0.2.2"7046
+source = "registry+https://github.com/rust-lang/crates.io-index"7047
+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"7048
+7049
+[[package]]7050
+name = "uuid"7051
+version = "1.18.1"7052
+source = "registry+https://github.com/rust-lang/crates.io-index"7053
+checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"7054
+dependencies = [7055
+ "atomic",7056
+ "getrandom 0.3.4",7057
+ "js-sys",7058
+ "serde",7059
+ "wasm-bindgen",7060
+]7061
+7062
+[[package]]7063
+name = "valuable"7064
+version = "0.1.0"7065
+source = "registry+https://github.com/rust-lang/crates.io-index"7066
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"7067
+7068
+[[package]]7069
+name = "vcpkg"7070
+version = "0.2.15"7071
+source = "registry+https://github.com/rust-lang/crates.io-index"7072
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"7073
+7074
+[[package]]7075
+name = "vergen"7076
+version = "9.0.6"7077
+source = "registry+https://github.com/rust-lang/crates.io-index"7078
+checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777"7079
+dependencies = [7080
+ "anyhow",7081
+ "derive_builder",7082
+ "rustversion",7083
+ "time",7084
+ "vergen-lib",7085
+]7086
+7087
+[[package]]7088
+name = "vergen-gitcl"7089
+version = "1.0.8"7090
+source = "registry+https://github.com/rust-lang/crates.io-index"7091
+checksum = "b9dfc1de6eb2e08a4ddf152f1b179529638bedc0ea95e6d667c014506377aefe"7092
+dependencies = [7093
+ "anyhow",7094
+ "derive_builder",7095
+ "rustversion",7096
+ "time",7097
+ "vergen",7098
+ "vergen-lib",7099
+]7100
+7101
+[[package]]7102
+name = "vergen-lib"7103
+version = "0.1.6"7104
+source = "registry+https://github.com/rust-lang/crates.io-index"7105
+checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166"7106
+dependencies = [7107
+ "anyhow",7108
+ "derive_builder",7109
+ "rustversion",7110
+]7111
+7112
+[[package]]7113
+name = "version_check"7114
+version = "0.9.4"7115
+source = "registry+https://github.com/rust-lang/crates.io-index"7116
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"7117
+7118
+[[package]]7119
+name = "vodozemac"7120
+version = "0.10.0"7121
+source = "registry+https://github.com/rust-lang/crates.io-index"7122
+checksum = "b98bf83c0992966775b8012f194b07b44928996163e5a05b741b43891571ae5b"7123
+dependencies = [7124
+ "aes",7125
+ "arrayvec",7126
+ "base64",7127
+ "base64ct",7128
+ "cbc",7129
+ "chacha20poly1305",7130
+ "curve25519-dalek",7131
+ "ed25519-dalek",7132
+ "getrandom 0.2.15",7133
+ "hkdf",7134
+ "hmac",7135
+ "matrix-pickle",7136
+ "prost",7137
+ "rand 0.8.6",7138
+ "serde",7139
+ "serde_bytes",7140
+ "serde_json",7141
+ "sha2",7142
+ "subtle",7143
+ "thiserror 2.0.18",7144
+ "x25519-dalek",7145
+ "zeroize",7146
+]7147
+7148
+[[package]]7149
+name = "vtparse"7150
+version = "0.6.2"7151
+source = "registry+https://github.com/rust-lang/crates.io-index"7152
+checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0"7153
+dependencies = [7154
+ "utf8parse",7155
+]7156
+7157
+[[package]]7158
+name = "walkdir"7159
+version = "2.5.0"7160
+source = "registry+https://github.com/rust-lang/crates.io-index"7161
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"7162
+dependencies = [7163
+ "same-file",7164
+ "winapi-util",7165
+]7166
+7167
+[[package]]7168
+name = "want"7169
+version = "0.3.1"7170
+source = "registry+https://github.com/rust-lang/crates.io-index"7171
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"7172
+dependencies = [7173
+ "try-lock",7174
+]7175
+7176
+[[package]]7177
+name = "wasi"7178
+version = "0.11.0+wasi-snapshot-preview1"7179
+source = "registry+https://github.com/rust-lang/crates.io-index"7180
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"7181
+7182
+[[package]]7183
+name = "wasip2"7184
+version = "1.0.2+wasi-0.2.9"7185
+source = "registry+https://github.com/rust-lang/crates.io-index"7186
+checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"7187
+dependencies = [7188
+ "wit-bindgen",7189
+]7190
+7191
+[[package]]7192
+name = "wasip3"7193
+version = "0.4.0+wasi-0.3.0-rc-2026-01-06"7194
+source = "registry+https://github.com/rust-lang/crates.io-index"7195
+checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"7196
+dependencies = [7197
+ "wit-bindgen",7198
+]7199
+7200
+[[package]]7201
+name = "wasm-bindgen"7202
+version = "0.2.114"7203
+source = "registry+https://github.com/rust-lang/crates.io-index"7204
+checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"7205
+dependencies = [7206
+ "cfg-if",7207
+ "once_cell",7208
+ "rustversion",7209
+ "wasm-bindgen-macro",7210
+ "wasm-bindgen-shared",7211
+]7212
+7213
+[[package]]7214
+name = "wasm-bindgen-futures"7215
+version = "0.4.64"7216
+source = "registry+https://github.com/rust-lang/crates.io-index"7217
+checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8"7218
+dependencies = [7219
+ "cfg-if",7220
+ "futures-util",7221
+ "js-sys",7222
+ "once_cell",7223
+ "wasm-bindgen",7224
+ "web-sys",7225
+]7226
+7227
+[[package]]7228
+name = "wasm-bindgen-macro"7229
+version = "0.2.114"7230
+source = "registry+https://github.com/rust-lang/crates.io-index"7231
+checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6"7232
+dependencies = [7233
+ "quote",7234
+ "wasm-bindgen-macro-support",7235
+]7236
+7237
+[[package]]7238
+name = "wasm-bindgen-macro-support"7239
+version = "0.2.114"7240
+source = "registry+https://github.com/rust-lang/crates.io-index"7241
+checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3"7242
+dependencies = [7243
+ "bumpalo",7244
+ "proc-macro2",7245
+ "quote",7246
+ "syn 2.0.101",7247
+ "wasm-bindgen-shared",7248
+]7249
+7250
+[[package]]7251
+name = "wasm-bindgen-shared"7252
+version = "0.2.114"7253
+source = "registry+https://github.com/rust-lang/crates.io-index"7254
+checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16"7255
+dependencies = [7256
+ "unicode-ident",7257
+]7258
+7259
+[[package]]7260
+name = "wasm-bindgen-test"7261
+version = "0.3.64"7262
+source = "registry+https://github.com/rust-lang/crates.io-index"7263
+checksum = "6311c867385cc7d5602463b31825d454d0837a3aba7cdb5e56d5201792a3f7fe"7264
+dependencies = [7265
+ "async-trait",7266
+ "cast",7267
+ "js-sys",7268
+ "libm",7269
+ "minicov",7270
+ "nu-ansi-term",7271
+ "num-traits",7272
+ "oorandom",7273
+ "serde",7274
+ "serde_json",7275
+ "wasm-bindgen",7276
+ "wasm-bindgen-futures",7277
+ "wasm-bindgen-test-macro",7278
+ "wasm-bindgen-test-shared",7279
+]7280
+7281
+[[package]]7282
+name = "wasm-bindgen-test-macro"7283
+version = "0.3.64"7284
+source = "registry+https://github.com/rust-lang/crates.io-index"7285
+checksum = "67008cdde4769831958536b0f11b3bdd0380bde882be17fff9c2f34bb4549abd"7286
+dependencies = [7287
+ "proc-macro2",7288
+ "quote",7289
+ "syn 2.0.101",7290
+]7291
+7292
+[[package]]7293
+name = "wasm-bindgen-test-shared"7294
+version = "0.2.114"7295
+source = "registry+https://github.com/rust-lang/crates.io-index"7296
+checksum = "cfe29135b180b72b04c74aa97b2b4a2ef275161eff9a6c7955ea9eaedc7e1d4e"7297
+7298
+[[package]]7299
+name = "wasm-encoder"7300
+version = "0.244.0"7301
+source = "registry+https://github.com/rust-lang/crates.io-index"7302
+checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"7303
+dependencies = [7304
+ "leb128fmt",7305
+ "wasmparser",7306
+]7307
+7308
+[[package]]7309
+name = "wasm-metadata"7310
+version = "0.244.0"7311
+source = "registry+https://github.com/rust-lang/crates.io-index"7312
+checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"7313
+dependencies = [7314
+ "anyhow",7315
+ "indexmap",7316
+ "wasm-encoder",7317
+ "wasmparser",7318
+]7319
+7320
+[[package]]7321
+name = "wasm-streams"7322
+version = "0.5.0"7323
+source = "registry+https://github.com/rust-lang/crates.io-index"7324
+checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb"7325
+dependencies = [7326
+ "futures-util",7327
+ "js-sys",7328
+ "wasm-bindgen",7329
+ "wasm-bindgen-futures",7330
+ "web-sys",7331
+]7332
+7333
+[[package]]7334
+name = "wasm_evt_listener"7335
+version = "0.1.0"7336
+source = "registry+https://github.com/rust-lang/crates.io-index"7337
+checksum = "dc92d6378b411ed94839112a36d9dbc77143451d85b05dfb0cce93a78dab1963"7338
+dependencies = [7339
+ "accessory",7340
+ "derivative",7341
+ "derive_more 1.0.0",7342
+ "fancy_constructor",7343
+ "futures-core",7344
+ "js-sys",7345
+ "smallvec",7346
+ "tokio",7347
+ "wasm-bindgen",7348
+ "web-sys",7349
+]7350
+7351
+[[package]]7352
+name = "wasmparser"7353
+version = "0.244.0"7354
+source = "registry+https://github.com/rust-lang/crates.io-index"7355
+checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"7356
+dependencies = [7357
+ "bitflags 2.10.0",7358
+ "hashbrown 0.15.2",7359
+ "indexmap",7360
+ "semver",7361
+]7362
+7363
+[[package]]7364
+name = "web-sys"7365
+version = "0.3.91"7366
+source = "registry+https://github.com/rust-lang/crates.io-index"7367
+checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9"7368
+dependencies = [7369
+ "js-sys",7370
+ "wasm-bindgen",7371
+]7372
+7373
+[[package]]7374
+name = "web-time"7375
+version = "1.1.0"7376
+source = "registry+https://github.com/rust-lang/crates.io-index"7377
+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"7378
+dependencies = [7379
+ "js-sys",7380
+ "serde",7381
+ "wasm-bindgen",7382
+]7383
+7384
+[[package]]7385
+name = "web_atoms"7386
+version = "0.2.3"7387
+source = "registry+https://github.com/rust-lang/crates.io-index"7388
+checksum = "57a9779e9f04d2ac1ce317aee707aa2f6b773afba7b931222bff6983843b1576"7389
+dependencies = [7390
+ "phf 0.13.1",7391
+ "phf_codegen 0.13.1",7392
+ "string_cache",7393
+ "string_cache_codegen",7394
+]7395
+7396
+[[package]]7397
+name = "webpki-root-certs"7398
+version = "1.0.2"7399
+source = "registry+https://github.com/rust-lang/crates.io-index"7400
+checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a"7401
+dependencies = [7402
+ "rustls-pki-types",7403
+]7404
+7405
+[[package]]7406
+name = "webpki-roots"7407
+version = "1.0.6"7408
+source = "registry+https://github.com/rust-lang/crates.io-index"7409
+checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed"7410
+dependencies = [7411
+ "rustls-pki-types",7412
+]7413
+7414
+[[package]]7415
+name = "weedle2"7416
+version = "5.0.0"7417
+source = "registry+https://github.com/rust-lang/crates.io-index"7418
+checksum = "998d2c24ec099a87daf9467808859f9d82b61f1d9c9701251aea037f514eae0e"7419
+dependencies = [7420
+ "nom",7421
+]7422
+7423
+[[package]]7424
+name = "wezterm-bidi"7425
+version = "0.2.3"7426
+source = "registry+https://github.com/rust-lang/crates.io-index"7427
+checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec"7428
+dependencies = [7429
+ "log",7430
+ "wezterm-dynamic",7431
+]7432
+7433
+[[package]]7434
+name = "wezterm-blob-leases"7435
+version = "0.1.1"7436
+source = "registry+https://github.com/rust-lang/crates.io-index"7437
+checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7"7438
+dependencies = [7439
+ "getrandom 0.3.4",7440
+ "mac_address",7441
+ "sha2",7442
+ "thiserror 1.0.63",7443
+ "uuid",7444
+]7445
+7446
+[[package]]7447
+name = "wezterm-color-types"7448
+version = "0.3.0"7449
+source = "registry+https://github.com/rust-lang/crates.io-index"7450
+checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296"7451
+dependencies = [7452
+ "csscolorparser",7453
+ "deltae",7454
+ "lazy_static",7455
+ "wezterm-dynamic",7456
+]7457
+7458
+[[package]]7459
+name = "wezterm-dynamic"7460
+version = "0.2.1"7461
+source = "registry+https://github.com/rust-lang/crates.io-index"7462
+checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac"7463
+dependencies = [7464
+ "log",7465
+ "ordered-float 4.6.0",7466
+ "strsim",7467
+ "thiserror 1.0.63",7468
+ "wezterm-dynamic-derive",7469
+]7470
+7471
+[[package]]7472
+name = "wezterm-dynamic-derive"7473
+version = "0.1.1"7474
+source = "registry+https://github.com/rust-lang/crates.io-index"7475
+checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b"7476
+dependencies = [7477
+ "proc-macro2",7478
+ "quote",7479
+ "syn 1.0.109",7480
+]7481
+7482
+[[package]]7483
+name = "wezterm-input-types"7484
+version = "0.1.0"7485
+source = "registry+https://github.com/rust-lang/crates.io-index"7486
+checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e"7487
+dependencies = [7488
+ "bitflags 1.3.2",7489
+ "euclid",7490
+ "lazy_static",7491
+ "serde",7492
+ "wezterm-dynamic",7493
+]7494
+7495
+[[package]]7496
+name = "wildmatch"7497
+version = "2.6.1"7498
+source = "registry+https://github.com/rust-lang/crates.io-index"7499
+checksum = "29333c3ea1ba8b17211763463ff24ee84e41c78224c16b001cd907e663a38c68"7500
+7501
+[[package]]7502
+name = "winapi"7503
+version = "0.3.9"7504
+source = "registry+https://github.com/rust-lang/crates.io-index"7505
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"7506
+dependencies = [7507
+ "winapi-i686-pc-windows-gnu",7508
+ "winapi-x86_64-pc-windows-gnu",7509
+]7510
+7511
+[[package]]7512
+name = "winapi-i686-pc-windows-gnu"7513
+version = "0.4.0"7514
+source = "registry+https://github.com/rust-lang/crates.io-index"7515
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"7516
+7517
+[[package]]7518
+name = "winapi-util"7519
+version = "0.1.8"7520
+source = "registry+https://github.com/rust-lang/crates.io-index"7521
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"7522
+dependencies = [7523
+ "windows-sys 0.52.0",7524
+]7525
+7526
+[[package]]7527
+name = "winapi-x86_64-pc-windows-gnu"7528
+version = "0.4.0"7529
+source = "registry+https://github.com/rust-lang/crates.io-index"7530
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"7531
+7532
+[[package]]7533
+name = "windows"7534
+version = "0.61.1"7535
+source = "registry+https://github.com/rust-lang/crates.io-index"7536
+checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419"7537
+dependencies = [7538
+ "windows-collections",7539
+ "windows-core 0.61.2",7540
+ "windows-future",7541
+ "windows-link 0.1.1",7542
+ "windows-numerics",7543
+]7544
+7545
+[[package]]7546
+name = "windows-collections"7547
+version = "0.2.0"7548
+source = "registry+https://github.com/rust-lang/crates.io-index"7549
+checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"7550
+dependencies = [7551
+ "windows-core 0.61.2",7552
+]7553
+7554
+[[package]]7555
+name = "windows-core"7556
+version = "0.52.0"7557
+source = "registry+https://github.com/rust-lang/crates.io-index"7558
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"7559
+dependencies = [7560
+ "windows-targets 0.52.6",7561
+]7562
+7563
+[[package]]7564
+name = "windows-core"7565
+version = "0.61.2"7566
+source = "registry+https://github.com/rust-lang/crates.io-index"7567
+checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"7568
+dependencies = [7569
+ "windows-implement",7570
+ "windows-interface",7571
+ "windows-link 0.1.1",7572
+ "windows-result",7573
+ "windows-strings",7574
+]7575
+7576
+[[package]]7577
+name = "windows-future"7578
+version = "0.2.1"7579
+source = "registry+https://github.com/rust-lang/crates.io-index"7580
+checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"7581
+dependencies = [7582
+ "windows-core 0.61.2",7583
+ "windows-link 0.1.1",7584
+ "windows-threading",7585
+]7586
+7587
+[[package]]7588
+name = "windows-implement"7589
+version = "0.60.0"7590
+source = "registry+https://github.com/rust-lang/crates.io-index"7591
+checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"7592
+dependencies = [7593
+ "proc-macro2",7594
+ "quote",7595
+ "syn 2.0.101",7596
+]7597
+7598
+[[package]]7599
+name = "windows-interface"7600
+version = "0.59.1"7601
+source = "registry+https://github.com/rust-lang/crates.io-index"7602
+checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"7603
+dependencies = [7604
+ "proc-macro2",7605
+ "quote",7606
+ "syn 2.0.101",7607
+]7608
+7609
+[[package]]7610
+name = "windows-link"7611
+version = "0.1.1"7612
+source = "registry+https://github.com/rust-lang/crates.io-index"7613
+checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"7614
+7615
+[[package]]7616
+name = "windows-link"7617
+version = "0.2.1"7618
+source = "registry+https://github.com/rust-lang/crates.io-index"7619
+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"7620
+7621
+[[package]]7622
+name = "windows-numerics"7623
+version = "0.2.0"7624
+source = "registry+https://github.com/rust-lang/crates.io-index"7625
+checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"7626
+dependencies = [7627
+ "windows-core 0.61.2",7628
+ "windows-link 0.1.1",7629
+]7630
+7631
+[[package]]7632
+name = "windows-result"7633
+version = "0.3.4"7634
+source = "registry+https://github.com/rust-lang/crates.io-index"7635
+checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"7636
+dependencies = [7637
+ "windows-link 0.1.1",7638
+]7639
+7640
+[[package]]7641
+name = "windows-strings"7642
+version = "0.4.2"7643
+source = "registry+https://github.com/rust-lang/crates.io-index"7644
+checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"7645
+dependencies = [7646
+ "windows-link 0.1.1",7647
+]7648
+7649
+[[package]]7650
+name = "windows-sys"7651
+version = "0.45.0"7652
+source = "registry+https://github.com/rust-lang/crates.io-index"7653
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"7654
+dependencies = [7655
+ "windows-targets 0.42.2",7656
+]7657
+7658
+[[package]]7659
+name = "windows-sys"7660
+version = "0.48.0"7661
+source = "registry+https://github.com/rust-lang/crates.io-index"7662
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"7663
+dependencies = [7664
+ "windows-targets 0.48.5",7665
+]7666
+7667
+[[package]]7668
+name = "windows-sys"7669
+version = "0.52.0"7670
+source = "registry+https://github.com/rust-lang/crates.io-index"7671
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"7672
+dependencies = [7673
+ "windows-targets 0.52.6",7674
+]7675
+7676
+[[package]]7677
+name = "windows-sys"7678
+version = "0.59.0"7679
+source = "registry+https://github.com/rust-lang/crates.io-index"7680
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"7681
+dependencies = [7682
+ "windows-targets 0.52.6",7683
+]7684
+7685
+[[package]]7686
+name = "windows-sys"7687
+version = "0.60.2"7688
+source = "registry+https://github.com/rust-lang/crates.io-index"7689
+checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"7690
+dependencies = [7691
+ "windows-targets 0.53.5",7692
+]7693
+7694
+[[package]]7695
+name = "windows-sys"7696
+version = "0.61.2"7697
+source = "registry+https://github.com/rust-lang/crates.io-index"7698
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"7699
+dependencies = [7700
+ "windows-link 0.2.1",7701
+]7702
+7703
+[[package]]7704
+name = "windows-targets"7705
+version = "0.42.2"7706
+source = "registry+https://github.com/rust-lang/crates.io-index"7707
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"7708
+dependencies = [7709
+ "windows_aarch64_gnullvm 0.42.2",7710
+ "windows_aarch64_msvc 0.42.2",7711
+ "windows_i686_gnu 0.42.2",7712
+ "windows_i686_msvc 0.42.2",7713
+ "windows_x86_64_gnu 0.42.2",7714
+ "windows_x86_64_gnullvm 0.42.2",7715
+ "windows_x86_64_msvc 0.42.2",7716
+]7717
+7718
+[[package]]7719
+name = "windows-targets"7720
+version = "0.48.5"7721
+source = "registry+https://github.com/rust-lang/crates.io-index"7722
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"7723
+dependencies = [7724
+ "windows_aarch64_gnullvm 0.48.5",7725
+ "windows_aarch64_msvc 0.48.5",7726
+ "windows_i686_gnu 0.48.5",7727
+ "windows_i686_msvc 0.48.5",7728
+ "windows_x86_64_gnu 0.48.5",7729
+ "windows_x86_64_gnullvm 0.48.5",7730
+ "windows_x86_64_msvc 0.48.5",7731
+]7732
+7733
+[[package]]7734
+name = "windows-targets"7735
+version = "0.52.6"7736
+source = "registry+https://github.com/rust-lang/crates.io-index"7737
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"7738
+dependencies = [7739
+ "windows_aarch64_gnullvm 0.52.6",7740
+ "windows_aarch64_msvc 0.52.6",7741
+ "windows_i686_gnu 0.52.6",7742
+ "windows_i686_gnullvm 0.52.6",7743
+ "windows_i686_msvc 0.52.6",7744
+ "windows_x86_64_gnu 0.52.6",7745
+ "windows_x86_64_gnullvm 0.52.6",7746
+ "windows_x86_64_msvc 0.52.6",7747
+]7748
+7749
+[[package]]7750
+name = "windows-targets"7751
+version = "0.53.5"7752
+source = "registry+https://github.com/rust-lang/crates.io-index"7753
+checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"7754
+dependencies = [7755
+ "windows-link 0.2.1",7756
+ "windows_aarch64_gnullvm 0.53.1",7757
+ "windows_aarch64_msvc 0.53.1",7758
+ "windows_i686_gnu 0.53.1",7759
+ "windows_i686_gnullvm 0.53.1",7760
+ "windows_i686_msvc 0.53.1",7761
+ "windows_x86_64_gnu 0.53.1",7762
+ "windows_x86_64_gnullvm 0.53.1",7763
+ "windows_x86_64_msvc 0.53.1",7764
+]7765
+7766
+[[package]]7767
+name = "windows-threading"7768
+version = "0.1.0"7769
+source = "registry+https://github.com/rust-lang/crates.io-index"7770
+checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"7771
+dependencies = [7772
+ "windows-link 0.1.1",7773
+]7774
+7775
+[[package]]7776
+name = "windows_aarch64_gnullvm"7777
+version = "0.42.2"7778
+source = "registry+https://github.com/rust-lang/crates.io-index"7779
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"7780
+7781
+[[package]]7782
+name = "windows_aarch64_gnullvm"7783
+version = "0.48.5"7784
+source = "registry+https://github.com/rust-lang/crates.io-index"7785
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"7786
+7787
+[[package]]7788
+name = "windows_aarch64_gnullvm"7789
+version = "0.52.6"7790
+source = "registry+https://github.com/rust-lang/crates.io-index"7791
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"7792
+7793
+[[package]]7794
+name = "windows_aarch64_gnullvm"7795
+version = "0.53.1"7796
+source = "registry+https://github.com/rust-lang/crates.io-index"7797
+checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"7798
+7799
+[[package]]7800
+name = "windows_aarch64_msvc"7801
+version = "0.42.2"7802
+source = "registry+https://github.com/rust-lang/crates.io-index"7803
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"7804
+7805
+[[package]]7806
+name = "windows_aarch64_msvc"7807
+version = "0.48.5"7808
+source = "registry+https://github.com/rust-lang/crates.io-index"7809
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"7810
+7811
+[[package]]7812
+name = "windows_aarch64_msvc"7813
+version = "0.52.6"7814
+source = "registry+https://github.com/rust-lang/crates.io-index"7815
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"7816
+7817
+[[package]]7818
+name = "windows_aarch64_msvc"7819
+version = "0.53.1"7820
+source = "registry+https://github.com/rust-lang/crates.io-index"7821
+checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"7822
+7823
+[[package]]7824
+name = "windows_i686_gnu"7825
+version = "0.42.2"7826
+source = "registry+https://github.com/rust-lang/crates.io-index"7827
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"7828
+7829
+[[package]]7830
+name = "windows_i686_gnu"7831
+version = "0.48.5"7832
+source = "registry+https://github.com/rust-lang/crates.io-index"7833
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"7834
+7835
+[[package]]7836
+name = "windows_i686_gnu"7837
+version = "0.52.6"7838
+source = "registry+https://github.com/rust-lang/crates.io-index"7839
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"7840
+7841
+[[package]]7842
+name = "windows_i686_gnu"7843
+version = "0.53.1"7844
+source = "registry+https://github.com/rust-lang/crates.io-index"7845
+checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"7846
+7847
+[[package]]7848
+name = "windows_i686_gnullvm"7849
+version = "0.52.6"7850
+source = "registry+https://github.com/rust-lang/crates.io-index"7851
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"7852
+7853
+[[package]]7854
+name = "windows_i686_gnullvm"7855
+version = "0.53.1"7856
+source = "registry+https://github.com/rust-lang/crates.io-index"7857
+checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"7858
+7859
+[[package]]7860
+name = "windows_i686_msvc"7861
+version = "0.42.2"7862
+source = "registry+https://github.com/rust-lang/crates.io-index"7863
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"7864
+7865
+[[package]]7866
+name = "windows_i686_msvc"7867
+version = "0.48.5"7868
+source = "registry+https://github.com/rust-lang/crates.io-index"7869
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"7870
+7871
+[[package]]7872
+name = "windows_i686_msvc"7873
+version = "0.52.6"7874
+source = "registry+https://github.com/rust-lang/crates.io-index"7875
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"7876
+7877
+[[package]]7878
+name = "windows_i686_msvc"7879
+version = "0.53.1"7880
+source = "registry+https://github.com/rust-lang/crates.io-index"7881
+checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"7882
+7883
+[[package]]7884
+name = "windows_x86_64_gnu"7885
+version = "0.42.2"7886
+source = "registry+https://github.com/rust-lang/crates.io-index"7887
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"7888
+7889
+[[package]]7890
+name = "windows_x86_64_gnu"7891
+version = "0.48.5"7892
+source = "registry+https://github.com/rust-lang/crates.io-index"7893
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"7894
+7895
+[[package]]7896
+name = "windows_x86_64_gnu"7897
+version = "0.52.6"7898
+source = "registry+https://github.com/rust-lang/crates.io-index"7899
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"7900
+7901
+[[package]]7902
+name = "windows_x86_64_gnu"7903
+version = "0.53.1"7904
+source = "registry+https://github.com/rust-lang/crates.io-index"7905
+checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"7906
+7907
+[[package]]7908
+name = "windows_x86_64_gnullvm"7909
+version = "0.42.2"7910
+source = "registry+https://github.com/rust-lang/crates.io-index"7911
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"7912
+7913
+[[package]]7914
+name = "windows_x86_64_gnullvm"7915
+version = "0.48.5"7916
+source = "registry+https://github.com/rust-lang/crates.io-index"7917
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"7918
+7919
+[[package]]7920
+name = "windows_x86_64_gnullvm"7921
+version = "0.52.6"7922
+source = "registry+https://github.com/rust-lang/crates.io-index"7923
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"7924
+7925
+[[package]]7926
+name = "windows_x86_64_gnullvm"7927
+version = "0.53.1"7928
+source = "registry+https://github.com/rust-lang/crates.io-index"7929
+checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"7930
+7931
+[[package]]7932
+name = "windows_x86_64_msvc"7933
+version = "0.42.2"7934
+source = "registry+https://github.com/rust-lang/crates.io-index"7935
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"7936
+7937
+[[package]]7938
+name = "windows_x86_64_msvc"7939
+version = "0.48.5"7940
+source = "registry+https://github.com/rust-lang/crates.io-index"7941
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"7942
+7943
+[[package]]7944
+name = "windows_x86_64_msvc"7945
+version = "0.52.6"7946
+source = "registry+https://github.com/rust-lang/crates.io-index"7947
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"7948
+7949
+[[package]]7950
+name = "windows_x86_64_msvc"7951
+version = "0.53.1"7952
+source = "registry+https://github.com/rust-lang/crates.io-index"7953
+checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"7954
+7955
+[[package]]7956
+name = "winnow"7957
+version = "0.6.20"7958
+source = "registry+https://github.com/rust-lang/crates.io-index"7959
+checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"7960
+dependencies = [7961
+ "memchr",7962
+]7963
+7964
+[[package]]7965
+name = "winnow"7966
+version = "0.7.13"7967
+source = "registry+https://github.com/rust-lang/crates.io-index"7968
+checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"7969
+dependencies = [7970
+ "memchr",7971
+]7972
+7973
+[[package]]7974
+name = "winnow"7975
+version = "1.0.1"7976
+source = "registry+https://github.com/rust-lang/crates.io-index"7977
+checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5"7978
+7979
+[[package]]7980
+name = "wiremock"7981
+version = "0.6.5"7982
+source = "registry+https://github.com/rust-lang/crates.io-index"7983
+checksum = "08db1edfb05d9b3c1542e521aea074442088292f00b5f28e435c714a98f85031"7984
+dependencies = [7985
+ "assert-json-diff",7986
+ "base64",7987
+ "deadpool 0.12.3",7988
+ "futures",7989
+ "http",7990
+ "http-body-util",7991
+ "hyper",7992
+ "hyper-util",7993
+ "log",7994
+ "once_cell",7995
+ "regex",7996
+ "serde",7997
+ "serde_json",7998
+ "tokio",7999
+ "url",8000
+]8001
+8002
+[[package]]8003
+name = "wit-bindgen"8004
+version = "0.51.0"8005
+source = "registry+https://github.com/rust-lang/crates.io-index"8006
+checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"8007
+dependencies = [8008
+ "wit-bindgen-rust-macro",8009
+]8010
+8011
+[[package]]8012
+name = "wit-bindgen-core"8013
+version = "0.51.0"8014
+source = "registry+https://github.com/rust-lang/crates.io-index"8015
+checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"8016
+dependencies = [8017
+ "anyhow",8018
+ "heck",8019
+ "wit-parser",8020
+]8021
+8022
+[[package]]8023
+name = "wit-bindgen-rust"8024
+version = "0.51.0"8025
+source = "registry+https://github.com/rust-lang/crates.io-index"8026
+checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"8027
+dependencies = [8028
+ "anyhow",8029
+ "heck",8030
+ "indexmap",8031
+ "prettyplease",8032
+ "syn 2.0.101",8033
+ "wasm-metadata",8034
+ "wit-bindgen-core",8035
+ "wit-component",8036
+]8037
+8038
+[[package]]8039
+name = "wit-bindgen-rust-macro"8040
+version = "0.51.0"8041
+source = "registry+https://github.com/rust-lang/crates.io-index"8042
+checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"8043
+dependencies = [8044
+ "anyhow",8045
+ "prettyplease",8046
+ "proc-macro2",8047
+ "quote",8048
+ "syn 2.0.101",8049
+ "wit-bindgen-core",8050
+ "wit-bindgen-rust",8051
+]8052
+8053
+[[package]]8054
+name = "wit-component"8055
+version = "0.244.0"8056
+source = "registry+https://github.com/rust-lang/crates.io-index"8057
+checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"8058
+dependencies = [8059
+ "anyhow",8060
+ "bitflags 2.10.0",8061
+ "indexmap",8062
+ "log",8063
+ "serde",8064
+ "serde_derive",8065
+ "serde_json",8066
+ "wasm-encoder",8067
+ "wasm-metadata",8068
+ "wasmparser",8069
+ "wit-parser",8070
+]8071
+8072
+[[package]]8073
+name = "wit-parser"8074
+version = "0.244.0"8075
+source = "registry+https://github.com/rust-lang/crates.io-index"8076
+checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"8077
+dependencies = [8078
+ "anyhow",8079
+ "id-arena",8080
+ "indexmap",8081
+ "log",8082
+ "semver",8083
+ "serde",8084
+ "serde_derive",8085
+ "serde_json",8086
+ "unicode-xid",8087
+ "wasmparser",8088
+]8089
+8090
+[[package]]8091
+name = "write16"8092
+version = "1.0.0"8093
+source = "registry+https://github.com/rust-lang/crates.io-index"8094
+checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"8095
+8096
+[[package]]8097
+name = "writeable"8098
+version = "0.5.5"8099
+source = "registry+https://github.com/rust-lang/crates.io-index"8100
+checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"8101
+8102
+[[package]]8103
+name = "x25519-dalek"8104
+version = "2.0.1"8105
+source = "registry+https://github.com/rust-lang/crates.io-index"8106
+checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"8107
+dependencies = [8108
+ "curve25519-dalek",8109
+ "rand_core 0.6.4",8110
+ "serde",8111
+ "zeroize",8112
+]8113
+8114
+[[package]]8115
+name = "xshell"8116
+version = "0.2.2"8117
+source = "registry+https://github.com/rust-lang/crates.io-index"8118
+checksum = "6d47097dc5c85234b1e41851b3422dd6d19b3befdd35b4ae5ce386724aeca981"8119
+dependencies = [8120
+ "xshell-macros",8121
+]8122
+8123
+[[package]]8124
+name = "xshell-macros"8125
+version = "0.2.2"8126
+source = "registry+https://github.com/rust-lang/crates.io-index"8127
+checksum = "88301b56c26dd9bf5c43d858538f82d6f3f7764767defbc5d34e59459901c41a"8128
+8129
+[[package]]8130
+name = "xtask"8131
+version = "0.1.0"8132
+dependencies = [8133
+ "camino",8134
+ "chrono",8135
+ "clap",8136
+ "fs_extra",8137
+ "indexmap",8138
+ "lazy_static",8139
+ "regex",8140
+ "serde",8141
+ "serde_json",8142
+ "uniffi_bindgen",8143
+ "url",8144
+ "xshell",8145
+]8146
+8147
+[[package]]8148
+name = "xxhash-rust"8149
+version = "0.8.11"8150
+source = "registry+https://github.com/rust-lang/crates.io-index"8151
+checksum = "63658493314859b4dfdf3fb8c1defd61587839def09582db50b8a4e93afca6bb"8152
+8153
+[[package]]8154
+name = "yoke"8155
+version = "0.7.5"8156
+source = "registry+https://github.com/rust-lang/crates.io-index"8157
+checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40"8158
+dependencies = [8159
+ "serde",8160
+ "stable_deref_trait",8161
+ "yoke-derive",8162
+ "zerofrom",8163
+]8164
+8165
+[[package]]8166
+name = "yoke-derive"8167
+version = "0.7.5"8168
+source = "registry+https://github.com/rust-lang/crates.io-index"8169
+checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"8170
+dependencies = [8171
+ "proc-macro2",8172
+ "quote",8173
+ "syn 2.0.101",8174
+ "synstructure",8175
+]8176
+8177
+[[package]]8178
+name = "zerofrom"8179
+version = "0.1.5"8180
+source = "registry+https://github.com/rust-lang/crates.io-index"8181
+checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e"8182
+dependencies = [8183
+ "zerofrom-derive",8184
+]8185
+8186
+[[package]]8187
+name = "zerofrom-derive"8188
+version = "0.1.5"8189
+source = "registry+https://github.com/rust-lang/crates.io-index"8190
+checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"8191
+dependencies = [8192
+ "proc-macro2",8193
+ "quote",8194
+ "syn 2.0.101",8195
+ "synstructure",8196
+]8197
+8198
+[[package]]8199
+name = "zeroize"8200
+version = "1.8.2"8201
+source = "registry+https://github.com/rust-lang/crates.io-index"8202
+checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"8203
+dependencies = [8204
+ "zeroize_derive",8205
+]8206
+8207
+[[package]]8208
+name = "zeroize_derive"8209
+version = "1.4.2"8210
+source = "registry+https://github.com/rust-lang/crates.io-index"8211
+checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"8212
+dependencies = [8213
+ "proc-macro2",8214
+ "quote",8215
+ "syn 2.0.101",8216
+]8217
+8218
+[[package]]8219
+name = "zerovec"8220
+version = "0.10.4"8221
+source = "registry+https://github.com/rust-lang/crates.io-index"8222
+checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079"8223
+dependencies = [8224
+ "yoke",8225
+ "zerofrom",8226
+ "zerovec-derive",8227
+]8228
+8229
+[[package]]8230
+name = "zerovec-derive"8231
+version = "0.10.3"8232
+source = "registry+https://github.com/rust-lang/crates.io-index"8233
+checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"8234
+dependencies = [8235
+ "proc-macro2",8236
+ "quote",8237
+ "syn 2.0.101",8238
+]8239
+8240
+[[package]]8241
+name = "zstd"8242
+version = "0.13.3"8243
+source = "registry+https://github.com/rust-lang/crates.io-index"8244
+checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a"8245
+dependencies = [8246
+ "zstd-safe",8247
+]8248
+8249
+[[package]]8250
+name = "zstd-safe"8251
+version = "7.2.4"8252
+source = "registry+https://github.com/rust-lang/crates.io-index"8253
+checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d"8254
+dependencies = [8255
+ "zstd-sys",8256
+]8257
+8258
+[[package]]8259
+name = "zstd-sys"8260
+version = "2.0.15+zstd.1.5.7"8261
+source = "registry+https://github.com/rust-lang/crates.io-index"8262
+checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237"8263
+dependencies = [8264
+ "cc",8265
+ "pkg-config",8266
+]@@ -0,0 +1,241 @@
1
+[workspace]2
+members = [3
+ "benchmarks",4
+ "bindings/matrix-sdk-crypto-ffi",5
+ "bindings/matrix-sdk-ffi",6
+ "crates/*",7
+ "examples/*",8
+ "labs/*",9
+ "testing/*",10
+ "uniffi-bindgen",11
+ "xtask",12
+]13
+exclude = ["testing/data"]14
+# xtask, multiverse, testing and the bindings should only be built when invoked explicitly.15
+default-members = ["benchmarks", "crates/*"]16
+resolver = "3"17
+18
+[workspace.package]19
+rust-version = "1.93"20
+21
+[workspace.dependencies]22
+anyhow = { version = "1.0.100", default-features = false }23
+aquamarine = { version = "0.6.0", default-features = false }24
+as_variant = { version = "1.3.0", default-features = false }25
+assert-json-diff = { version = "2.0.2", default-features = false }26
+assert_matches = { version = "1.5.0", default-features = false }27
+assert_matches2 = { version = "0.1.2", default-features = false }28
+async_cell = { version = "0.2.3", default-features = false }29
+async-compat = { version = "0.2.5", default-features = false }30
+async-once-cell = { version = "0.5.4", default-features = false }31
+async-rx = { version = "0.2.0", default-features = false }32
+# Bumping this to 0.3.6 produces a test failure because the semantic between the33
+# versions changed subtly: https://github.com/matrix-org/matrix-rust-sdk/issues/459934
+async-stream = { version = "0.3.6", default-features = false }35
+async-trait = { version = "0.1.89", default-features = false }36
+base64 = { version = "0.22.1", default-features = false, features = ["std"] }37
+bitflags = { version = "2.10.0", default-features = false }38
+byteorder = { version = "1.5.0", default-features = false, features = ["std"] }39
+cfg-if = { version = "1.0.4", default-features = false }40
+clap = { version = "4.5.53", default-features = false, features = ["std", "help", "usage"] }41
+chrono = { version = "0.4.42", default-features = false, features = ["clock", "std", "oldtime", "wasmbind"] }42
+dirs = { version = "6.0.0", default-features = false }43
+eyeball = { version = "0.8.8", default-features = false, features = ["tracing"] }44
+eyeball-im = { version = "0.8.0", default-features = false, features = ["tracing"] }45
+eyeball-im-util = { version = "0.10.0", default-features = false }46
+futures-core = { version = "0.3.31", default-features = false, features = ["std"] }47
+futures-executor = { version = "0.3.31", default-features = false, features = ["std"] }48
+futures-util = { version = "0.3.31", default-features = false, features = ["std"] }49
+getrandom = { version = "0.4.2", default-features = false }50
+gloo-timers = { version = "0.3.0", default-features = false }51
+gloo-utils = { version = "0.2.0", default-features = false, features = ["serde"] }52
+growable-bloom-filter = { version = "2.1.1", default-features = false }53
+hkdf = { version = "0.12.4", default-features = false }54
+hmac = { version = "0.12.1", default-features = false }55
+http = { version = "1.3.1", default-features = false }56
+imbl = { version = "6.1.0", default-features = false }57
+indexed_db_futures = { version = "0.7.0", package = "matrix_indexed_db_futures", default-features = false }58
+indexmap = { version = "2.12.1", default-features = false }59
+insta = { version = "1.44.1", features = ["json", "redactions"] }60
+itertools = { version = "0.14.0", default-features = false, features = ["use_std"] }61
+js-sys = { version = "0.3.82", default-features = false, features = ["std"] }62
+mime = { version = "0.3.17", default-features = false }63
+oauth2 = { version = "5.0.0", default-features = false, features = ["timing-resistant-secret-traits"] }64
+oauth2-reqwest = { version = "0.1.0-alpha.3", default-features = false }65
+pbkdf2 = { version = "0.12.2", default-features = false }66
+pin-project-lite = { version = "0.2.16", default-features = false }67
+proc-macro2 = { version = "1.0.106", default-features = false }68
+proptest = { version = "1.9.0", default-features = false, features = ["std"] }69
+quote = { version = "1.0.37", default-features = false }70
+rand = { version = "0.10.1", default-features = false, features = ["std", "std_rng", "thread_rng"] }71
+regex = { version = "1.12.2", default-features = false }72
+reqwest = { version = "0.13.1", default-features = false }73
+rmp-serde = { version = "1.3.0", default-features = false }74
+ruma = { version = "0.16.0", features = [75
+ "client-api-c",76
+ "compat-unset-avatar",77
+ "compat-upload-signatures",78
+ "compat-arbitrary-length-ids",79
+ "compat-tag-info",80
+ "compat-encrypted-stickers",81
+ "compat-lax-room-create-deser",82
+ "compat-lax-room-topic-deser",83
+ "unstable-msc3230",84
+ "unstable-msc3401",85
+ "unstable-msc3417",86
+ "unstable-msc3488",87
+ "unstable-msc3489",88
+ "unstable-msc4075",89
+ "unstable-msc4140",90
+ "unstable-msc4143",91
+ "unstable-msc4171",92
+ "unstable-msc4195",93
+ "unstable-msc4278",94
+ "unstable-msc4286",95
+ "unstable-msc4306",96
+ "unstable-msc4308",97
+ "unstable-msc4310",98
+] }99
+sentry = { version = "0.47.0", default-features = false }100
+sentry-tracing = { version = "0.47.0", default-features = false }101
+serde = { version = "1.0.228", default-features = false, features = ["std", "rc", "derive"] }102
+serde_html_form = { version = "0.4.0", default-features = false }103
+serde_json = { version = "1.0.145", default-features = false, features = ["std"] }104
+sha2 = { version = "0.10.9", default-features = false }105
+similar-asserts = { version = "1.7.0", default-features = false }106
+stream_assert = { version = "0.1.1", default-features = false }107
+syn = { version = "2.0.43", default-features = false, features = ["derive", "parsing", "printing", "clone-impls"] }108
+tempfile = { version = "3.23.0", default-features = false }109
+thiserror = { version = "2.0.17", default-features = false }110
+tokio = { version = "1.48.0", default-features = false, features = ["sync"] }111
+tokio-stream = { version = "0.1.17", default-features = false }112
+tracing = { version = "0.1.41", default-features = false, features = ["std"] }113
+tracing-appender = { version = "0.2.3", default-features = false }114
+tracing-core = { version = "0.1.34", default-features = false }115
+tracing-subscriber = { version = "0.3.20", default-features = false, features = ["std", "smallvec", "fmt"] }116
+unicode-normalization = { version = "0.1.25", default-features = false }117
+unicode-segmentation = { version = "1.12.0", default-features = false }118
+uniffi = { version = "0.31.0", default-features = false, features = ["cargo-metadata"] }119
+uniffi_bindgen = { version = "0.31.0", default-features = false, features = ["cargo-metadata"] }120
+url = { version = "2.5.7", default-features = false }121
+uuid = { version = "1.18.1", default-features = false }122
+vergen-gitcl = { version = "1.0.8", default-features = false }123
+vodozemac = { version = "0.10.0", default-features = false, features = ["libolm-compat", "insecure-pk-encryption", "experimental-session-config"] }124
+wasm-bindgen = { version = "0.2.105", default-features = false }125
+wasm-bindgen-test = { version = "0.3.55", default-features = false, features = ["std"] }126
+web-sys = { version = "0.3.82", default-features = false }127
+wiremock = { version = "0.6.5", default-features = false }128
+zeroize = { version = "1.8.2", default-features = false }129
+130
+matrix-sdk = { path = "crates/matrix-sdk", version = "0.18.0", default-features = false }131
+matrix-sdk-base = { path = "crates/matrix-sdk-base", version = "0.18.0" }132
+matrix-sdk-common = { path = "crates/matrix-sdk-common", version = "0.18.0" }133
+matrix-sdk-crypto = { path = "crates/matrix-sdk-crypto", version = "0.18.0" }134
+matrix-sdk-ffi-macros = { path = "bindings/matrix-sdk-ffi-macros", version = "0.7.0" }135
+matrix-sdk-indexeddb = { path = "crates/matrix-sdk-indexeddb", version = "0.18.0", default-features = false }136
+matrix-sdk-qrcode = { path = "crates/matrix-sdk-qrcode", version = "0.18.0" }137
+matrix-sdk-sqlite = { path = "crates/matrix-sdk-sqlite", version = "0.18.0", default-features = false }138
+matrix-sdk-store-encryption = { path = "crates/matrix-sdk-store-encryption", version = "0.18.0" }139
+matrix-sdk-test = { path = "testing/matrix-sdk-test", version = "0.18.0" }140
+matrix-sdk-test-utils = { path = "testing/matrix-sdk-test-utils", version = "0.18.0" }141
+matrix-sdk-ui = { path = "crates/matrix-sdk-ui", version = "0.18.0", default-features = false }142
+matrix-sdk-search = { path = "crates/matrix-sdk-search", version = "0.18.0" }143
+144
+[workspace.lints.rust]145
+rust_2018_idioms = "warn"146
+semicolon_in_expressions_from_macros = "warn"147
+unexpected_cfgs = { level = "warn", check-cfg = [148
+ 'cfg(tarpaulin_include)', # Used by tarpaulin (code coverage)149
+ 'cfg(ruma_unstable_exhaustive_types)', # Used by Ruma's EventContent derive macro150
+] }151
+unused_extern_crates = "warn"152
+unused_import_braces = "warn"153
+unused_qualifications = "warn"154
+trivial_casts = "warn"155
+trivial_numeric_casts = "warn"156
+157
+[workspace.lints.clippy]158
+assigning_clones = "allow"159
+box_default = "allow"160
+cloned_instead_of_copied = "warn"161
+dbg_macro = "warn"162
+inefficient_to_string = "warn"163
+macro_use_imports = "warn"164
+manual_let_else = "warn"165
+mut_mut = "warn"166
+needless_borrow = "warn"167
+nonstandard_macro_braces = "warn"168
+redundant_clone = "warn"169
+str_to_string = "warn"170
+todo = "warn"171
+unnecessary_semicolon = "warn"172
+unused_async = "warn"173
+174
+# Default development profile; default for most Cargo commands, otherwise175
+# selected with `--debug`176
+[profile.dev]177
+# Saves a lot of disk space. If symbols are needed, use the dbg profile.178
+debug = 0179
+180
+# Profile for debug builds with full optimization and minimal debug symbols.181
+# This should be just enough to have proper backtraces, having way smaller binaries182
+# (10% of the size with full debug symbols profile, like `reldbg`).183
+# This profile differs from `reldbg` in not containing the debug symbols needed for184
+# debugging with LLDB/GDB, trading that for binary size, allowing quick iterations185
+# of building the bindings, installing in a real device, testing your changes, repeat.186
+# It's also different from `dev` in having enough debug symbols to display backtraces.187
+[profile.reldev]188
+inherits = "dev"189
+opt-level = 3190
+debug = "line-tables-only"191
+strip = "debuginfo"192
+193
+[profile.dev.package]194
+# Optimize quote even in debug mode. Speeds up proc-macros enough to account195
+# for the extra time of optimizing it for a clean build of matrix-sdk-ffi.196
+quote = { opt-level = 2 }197
+sha2 = { opt-level = 2 }198
+# faster runs for insta.rs snapshot testing199
+insta.opt-level = 3200
+similar.opt-level = 3201
+202
+# Custom profile with full debugging info, use `--profile dbg` to select203
+[profile.dbg]204
+inherits = "dev"205
+debug = 2206
+207
+# Custom profile for use in (debug) builds of the binding crates, use208
+# `--profile reldbg` to select209
+[profile.reldbg]210
+inherits = "dbg"211
+opt-level = 3212
+213
+[profile.dist]214
+# Use release profile as a base215
+inherits = "release"216
+# Strip the minimal debug info, while still allowing us to have proper backtraces, but it will affect debuggers217
+strip = "debuginfo"218
+# Use link time optimizations219
+lto = true220
+# Use binary size optimization, since this is intended for distributed copies of the SDK221
+opt-level = "s"222
+223
+[profile.profiling]224
+inherits = "release"225
+# LTO is too slow to compile.226
+lto = false227
+# Get symbol names for profiling purposes.228
+debug = true229
+230
+[profile.bench]231
+inherits = "release"232
+lto = false233
+234
+[patch.crates-io]235
+async-compat = { git = "https://github.com/element-hq/async-compat", rev = "5a27c8b290f1f1dcfc0c4ec22c464e38528aa591" }236
+const_panic = { git = "https://github.com/jplatte/const_panic", rev = "e0b317a9a7bde2d48a7d15b6a60d70e4a41d3b5f" }237
+# Needed to fix rotation log issue on Android (https://github.com/tokio-rs/tracing/issues/2937)238
+tracing = { git = "https://github.com/tokio-rs/tracing.git", rev = "20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05" }239
+tracing-core = { git = "https://github.com/tokio-rs/tracing.git", rev = "20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05" }240
+tracing-subscriber = { git = "https://github.com/tokio-rs/tracing.git", rev = "20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05" }241
+tracing-appender = { git = "https://github.com/tokio-rs/tracing.git", rev = "20f5b3d8ba057ca9c4ae00ad30dda3dce8a71c05" }@@ -0,0 +1,177 @@
1
+2
+ Apache License3
+ Version 2.0, January 20044
+ http://www.apache.org/licenses/5
+6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION7
+8
+ 1. Definitions.9
+10
+ "License" shall mean the terms and conditions for use, reproduction,11
+ and distribution as defined by Sections 1 through 9 of this document.12
+13
+ "Licensor" shall mean the copyright owner or entity authorized by14
+ the copyright owner that is granting the License.15
+16
+ "Legal Entity" shall mean the union of the acting entity and all17
+ other entities that control, are controlled by, or are under common18
+ control with that entity. For the purposes of this definition,19
+ "control" means (i) the power, direct or indirect, to cause the20
+ direction or management of such entity, whether by contract or21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the22
+ outstanding shares, or (iii) beneficial ownership of such entity.23
+24
+ "You" (or "Your") shall mean an individual or Legal Entity25
+ exercising permissions granted by this License.26
+27
+ "Source" form shall mean the preferred form for making modifications,28
+ including but not limited to software source code, documentation29
+ source, and configuration files.30
+31
+ "Object" form shall mean any form resulting from mechanical32
+ transformation or translation of a Source form, including but33
+ not limited to compiled object code, generated documentation,34
+ and conversions to other media types.35
+36
+ "Work" shall mean the work of authorship, whether in Source or37
+ Object form, made available under the License, as indicated by a38
+ copyright notice that is included in or attached to the work39
+ (an example is provided in the Appendix below).40
+41
+ "Derivative Works" shall mean any work, whether in Source or Object42
+ form, that is based on (or derived from) the Work and for which the43
+ editorial revisions, annotations, elaborations, or other modifications44
+ represent, as a whole, an original work of authorship. For the purposes45
+ of this License, Derivative Works shall not include works that remain46
+ separable from, or merely link (or bind by name) to the interfaces of,47
+ the Work and Derivative Works thereof.48
+49
+ "Contribution" shall mean any work of authorship, including50
+ the original version of the Work and any modifications or additions51
+ to that Work or Derivative Works thereof, that is intentionally52
+ submitted to Licensor for inclusion in the Work by the copyright owner53
+ or by an individual or Legal Entity authorized to submit on behalf of54
+ the copyright owner. For the purposes of this definition, "submitted"55
+ means any form of electronic, verbal, or written communication sent56
+ to the Licensor or its representatives, including but not limited to57
+ communication on electronic mailing lists, source code control systems,58
+ and issue tracking systems that are managed by, or on behalf of, the59
+ Licensor for the purpose of discussing and improving the Work, but60
+ excluding communication that is conspicuously marked or otherwise61
+ designated in writing by the copyright owner as "Not a Contribution."62
+63
+ "Contributor" shall mean Licensor and any individual or Legal Entity64
+ on behalf of whom a Contribution has been received by Licensor and65
+ subsequently incorporated within the Work.66
+67
+ 2. Grant of Copyright License. Subject to the terms and conditions of68
+ this License, each Contributor hereby grants to You a perpetual,69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable70
+ copyright license to reproduce, prepare Derivative Works of,71
+ publicly display, publicly perform, sublicense, and distribute the72
+ Work and such Derivative Works in Source or Object form.73
+74
+ 3. Grant of Patent License. Subject to the terms and conditions of75
+ this License, each Contributor hereby grants to You a perpetual,76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable77
+ (except as stated in this section) patent license to make, have made,78
+ use, offer to sell, sell, import, and otherwise transfer the Work,79
+ where such license applies only to those patent claims licensable80
+ by such Contributor that are necessarily infringed by their81
+ Contribution(s) alone or by combination of their Contribution(s)82
+ with the Work to which such Contribution(s) was submitted. If You83
+ institute patent litigation against any entity (including a84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work85
+ or a Contribution incorporated within the Work constitutes direct86
+ or contributory patent infringement, then any patent licenses87
+ granted to You under this License for that Work shall terminate88
+ as of the date such litigation is filed.89
+90
+ 4. Redistribution. You may reproduce and distribute copies of the91
+ Work or Derivative Works thereof in any medium, with or without92
+ modifications, and in Source or Object form, provided that You93
+ meet the following conditions:94
+95
+ (a) You must give any other recipients of the Work or96
+ Derivative Works a copy of this License; and97
+98
+ (b) You must cause any modified files to carry prominent notices99
+ stating that You changed the files; and100
+101
+ (c) You must retain, in the Source form of any Derivative Works102
+ that You distribute, all copyright, patent, trademark, and103
+ attribution notices from the Source form of the Work,104
+ excluding those notices that do not pertain to any part of105
+ the Derivative Works; and106
+107
+ (d) If the Work includes a "NOTICE" text file as part of its108
+ distribution, then any Derivative Works that You distribute must109
+ include a readable copy of the attribution notices contained110
+ within such NOTICE file, excluding those notices that do not111
+ pertain to any part of the Derivative Works, in at least one112
+ of the following places: within a NOTICE text file distributed113
+ as part of the Derivative Works; within the Source form or114
+ documentation, if provided along with the Derivative Works; or,115
+ within a display generated by the Derivative Works, if and116
+ wherever such third-party notices normally appear. The contents117
+ of the NOTICE file are for informational purposes only and118
+ do not modify the License. You may add Your own attribution119
+ notices within Derivative Works that You distribute, alongside120
+ or as an addendum to the NOTICE text from the Work, provided121
+ that such additional attribution notices cannot be construed122
+ as modifying the License.123
+124
+ You may add Your own copyright statement to Your modifications and125
+ may provide additional or different license terms and conditions126
+ for use, reproduction, or distribution of Your modifications, or127
+ for any such Derivative Works as a whole, provided Your use,128
+ reproduction, and distribution of the Work otherwise complies with129
+ the conditions stated in this License.130
+131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,132
+ any Contribution intentionally submitted for inclusion in the Work133
+ by You to the Licensor shall be under the terms and conditions of134
+ this License, without any additional terms or conditions.135
+ Notwithstanding the above, nothing herein shall supersede or modify136
+ the terms of any separate license agreement you may have executed137
+ with Licensor regarding such Contributions.138
+139
+ 6. Trademarks. This License does not grant permission to use the trade140
+ names, trademarks, service marks, or product names of the Licensor,141
+ except as required for reasonable and customary use in describing the142
+ origin of the Work and reproducing the content of the NOTICE file.143
+144
+ 7. Disclaimer of Warranty. Unless required by applicable law or145
+ agreed to in writing, Licensor provides the Work (and each146
+ Contributor provides its Contributions) on an "AS IS" BASIS,147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or148
+ implied, including, without limitation, any warranties or conditions149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A150
+ PARTICULAR PURPOSE. You are solely responsible for determining the151
+ appropriateness of using or redistributing the Work and assume any152
+ risks associated with Your exercise of permissions under this License.153
+154
+ 8. Limitation of Liability. In no event and under no legal theory,155
+ whether in tort (including negligence), contract, or otherwise,156
+ unless required by applicable law (such as deliberate and grossly157
+ negligent acts) or agreed to in writing, shall any Contributor be158
+ liable to You for damages, including any direct, indirect, special,159
+ incidental, or consequential damages of any character arising as a160
+ result of this License or out of the use or inability to use the161
+ Work (including but not limited to damages for loss of goodwill,162
+ work stoppage, computer failure or malfunction, or any and all163
+ other commercial damages or losses), even if such Contributor164
+ has been advised of the possibility of such damages.165
+166
+ 9. Accepting Warranty or Additional Liability. While redistributing167
+ the Work or Derivative Works thereof, You may choose to offer,168
+ and charge a fee for, acceptance of support, warranty, indemnity,169
+ or other liability obligations and/or rights consistent with this170
+ License. However, in accepting such obligations, You may act only171
+ on Your own behalf and on Your sole responsibility, not on behalf172
+ of any other Contributor, and only if You agree to indemnify,173
+ defend, and hold each Contributor harmless for any liability174
+ incurred by, or claims asserted against, such Contributor by reason175
+ of your accepting any such warranty or additional liability.176
+177
+ END OF TERMS AND CONDITIONS@@ -0,0 +1,101 @@
1
+<h1 align="center">Matrix Rust SDK</h1>2
+3
+<div align="center">4
+ <em>Your all-in-one toolkit for creating Matrix clients with Rust, from simple bots to full-featured apps.</em>5
+ <br />6
+ <img src="contrib/logo.svg">7
+ <hr />8
+ <a href="https://github.com/matrix-org/matrix-rust-sdk/releases">9
+ <img src="https://img.shields.io/github/v/release/matrix-org/matrix-rust-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=GitHub&logoColor=white"></a>10
+ <a href="https://crates.io/crates/matrix-sdk/">11
+ <img src="https://img.shields.io/crates/v/matrix-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Rust&logoColor=white"></a>12
+ <a href="https://codecov.io/gh/matrix-org/matrix-rust-sdk">13
+ <img src="https://img.shields.io/codecov/c/gh/matrix-org/matrix-rust-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Codecov&logoColor=white"></a>14
+ <br />15
+ <a href="https://docs.rs/matrix-sdk/">16
+ <img src="https://img.shields.io/docsrs/matrix-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Rust&logoColor=white"></a>17
+ <a href="https://github.com/matrix-org/matrix-rust-sdk/actions/workflows/ci.yml">18
+ <img src="https://img.shields.io/github/actions/workflow/status/matrix-org/matrix-rust-sdk/ci.yml?style=flat&labelColor=1C2E27&color=66845F&logo=GitHub%20Actions&logoColor=white"></a>19
+</div>20
+21
+<div align="center">22
+23
+The Matrix Rust SDK is a collection of libraries that make it easier to build24
+[Matrix] clients in [Rust].25
+<br />26
+<br />27
+28
+<picture>29
+ <source srcset="contrib/element-logo-light.png" media="(prefers-color-scheme: dark)">30
+ <source srcset="contrib/element-logo-dark.png" media="(prefers-color-scheme: light)">31
+ <img src="contrib/element-logo-fallback.png" alt="Element logo">32
+</picture>33
+34
+<br />35
+<br />36
+37
+Development of the SDK is proudly sponsored and maintained by38
+[Element](https://element.io). Element uses the SDK in their next-generation39
+mobile apps Element X on [iOS](https://github.com/element-hq/element-x-ios) and40
+[Android](https://github.com/element-hq/element-x-android) and has plans to41
+introduce it to the web and desktop clients as well.42
+43
+The SDK is also the basis for multiple Matrix projects and we welcome44
+contributions from all.45
+46
+</div>47
+48
+## Purpose49
+50
+The SDK takes care of the low-level details like encryption,51
+syncing, and room state, so you can focus on your app's logic and UI. Whether52
+you're writing a small bot, a desktop client, or something in between, the SDK53
+is designed to be flexible, async-friendly, and ready to use out of the box.54
+55
+## Project structure56
+57
+The Matrix Rust SDK is made up of several crates that build on top of each58
+other. The following crates are expected to be usable as direct dependencies:59
+60
+- [matrix-sdk-ui](https://docs.rs/matrix-sdk-ui/latest/matrix_sdk_ui/) – A61
+ high-level client library that makes it easy to build full-featured UI clients62
+ with minimal setup. Check out our reference client,63
+ [multiverse](https://github.com/matrix-org/matrix-rust-sdk/tree/main/labs/multiverse),64
+ for an example.65
+- [matrix-sdk](https://docs.rs/matrix-sdk/latest/matrix_sdk/) – A mid-level66
+ client library, ideal for building bots, custom clients, or higher-level67
+ abstractions. You can find example usage in the68
+ [examples directory](https://github.com/matrix-org/matrix-rust-sdk/tree/main/examples).69
+- [matrix-sdk-crypto](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/)70
+ – A standalone encryption state machine with no network I/O, providing71
+ end-to-end encryption support for Matrix clients and libraries. See the72
+ [crypto tutorial](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/tutorial/index.html)73
+ for a step-by-step introduction.74
+75
+All other crates are effectively internal-only and only structured as crates for76
+organizational purposes and to improve compilation times. Direct usage of them77
+is discouraged.78
+79
+## Status80
+81
+The library is considered production ready and backs multiple client82
+implementations such as Element X83
+[[1]](https://github.com/element-hq/element-x-ios)84
+[[2]](https://github.com/element-hq/element-x-android),85
+[Fractal](https://gitlab.gnome.org/World/fractal) and86
+[iamb](https://github.com/ulyssa/iamb). Client developers should feel confident87
+to build upon it.88
+89
+## Bindings90
+91
+The higher-level crates of the Matrix Rust SDK can be embedded in other92
+environments such as Swift, Kotlin, JavaScript, and Node.js. Check out the93
+[bindings/](./bindings/) directory to learn more about how to integrate the SDK94
+into your language of choice.95
+96
+## License97
+98
+[Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0)99
+100
+[Matrix]: https://matrix.org/101
+[Rust]: https://www.rust-lang.org/@@ -0,0 +1,50 @@
1
+# Releasing and publishing the SDK2
+3
+While the release process can be handled manually, `cargo-release` has been4
+configured to make it more convenient.5
+6
+By default, [`cargo-release`](https://github.com/crate-ci/cargo-release) assumes7
+that no pull request is required to cut a release. However, since the SDK8
+repo is set up so that each push requires a pull request, we need to slightly9
+deviate from the default workflow. A `cargo-xtask` has been created to make the10
+process as smooth as possible.11
+12
+The procedure is as follows:13
+14
+1. Switch to a release branch:15
+16
+ ```bash17
+ git switch -c release-x.y.z18
+ ```19
+20
+2. Prepare the release. This will update the `README.md`, set the versions in21
+ the `CHANGELOG.md` file, and bump the version in the `Cargo.toml` file.22
+23
+ ```bash24
+ cargo xtask release prepare --execute minor|patch|rc25
+ ```26
+27
+3. Double-check and edit the `CHANGELOG.md` and `README.md` if necessary. Once28
+ you are satisfied, push the branch and open a PR.29
+30
+ ```bash31
+ git push --set-upstream origin/release-x.y.z32
+ ```33
+34
+4. Pass the review and merge the branch as you would with any other branch.35
+5. Create tags for your new release, publish the release on crates.io and push36
+ the tags:37
+38
+ ```bash39
+ # Switch to main first.40
+ git switch main41
+ # Pull in the now-merged release commit(s).42
+ git pull43
+ # Create tags, publish the release on crates.io, and push the tags.44
+ cargo xtask release publish --execute45
+ ```46
+47
+ For more information on cargo-release:48
+ [https://github.com/crate-ci/cargo-release][https-github-com-crate-ci-cargo-release]49
+50
+[https-github-com-crate-ci-cargo-release]: https://github.com/crate-ci/cargo-release@@ -0,0 +1,60 @@
1
+[package]2
+name = "benchmarks"3
+description = "Matrix SDK benchmarks"4
+edition = "2024"5
+license = "Apache-2.0"6
+rust-version.workspace = true7
+version = "1.0.0"8
+publish = false9
+10
+[package.metadata.release]11
+release = false12
+13
+[features]14
+codspeed = []15
+16
+[dependencies]17
+assert_matches.workspace = true18
+criterion = { version = "4.2.1", features = ["async", "async_tokio", "html_reports"], package = "codspeed-criterion-compat" }19
+futures-util.workspace = true20
+matrix-sdk = { workspace = true, features = ["e2e-encryption", "sqlite", "testing"] }21
+matrix-sdk-base.workspace = true22
+matrix-sdk-crypto.workspace = true23
+matrix-sdk-sqlite = { workspace = true, features = ["crypto-store"] }24
+matrix-sdk-test.workspace = true25
+matrix-sdk-ui.workspace = true26
+rand.workspace = true27
+ruma.workspace = true28
+serde.workspace = true29
+serde_json.workspace = true30
+tempfile.workspace = true31
+tokio = { workspace = true, features = ["rt-multi-thread"] }32
+wiremock.workspace = true33
+34
+[[bench]]35
+name = "crypto_bench"36
+harness = false37
+38
+[[bench]]39
+name = "linked_chunk"40
+harness = false41
+42
+[[bench]]43
+name = "store_bench"44
+harness = false45
+46
+[[bench]]47
+name = "room_bench"48
+harness = false49
+50
+[[bench]]51
+name = "timeline"52
+harness = false53
+54
+[[bench]]55
+name = "event_cache"56
+harness = false57
+58
+[[bench]]59
+name = "room_list"60
+harness = false@@ -0,0 +1,89 @@
1
+# Benchmarks for the rust-sdk crypto layer2
+3
+This directory contains various benchmarks that test critical functionality in4
+the crypto layer in the rust-sdk.5
+6
+We're using [Criterion] for the benchmarks,7
+[the full documentation for Criterion can be found here](https://bheisler.github.io/criterion.rs/book/criterion_rs.html).8
+9
+## Running the benchmarks10
+11
+The benchmark can be run by using the `bench` command of `cargo`:12
+13
+```bash14
+$ cargo bench15
+```16
+17
+This will work from the workspace directory of the rust-sdk.18
+19
+To lower compile times, you might be interested in using the `profiling`20
+profile, that's optimized for a fair tradeoff between compile times and runtime21
+performance:22
+23
+```bash24
+$ cargo bench --profile profiling25
+```26
+27
+If you want to pass options to the benchmark28
+[you'll need to specify the name of the benchmark](https://bheisler.github.io/criterion.rs/book/faq.html#cargo-bench-gives-unrecognized-option-errors-for-valid-command-line-options):29
+30
+```bash31
+$ cargo bench --bench crypto_bench -- # Your options go here32
+```33
+34
+If you want to run only a specific benchmark, pass the name of the35
+benchmark as an argument:36
+37
+```bash38
+$ cargo bench --bench crypto_bench "Room key sharing/"39
+```40
+41
+After the benchmarks are done, a HTML report can be found in42
+`target/criterion/report/index.html`.43
+44
+### Using a baseline for the benchmark45
+46
+The benchmarks will by default compare the results to the previous run of the47
+benchmark. If you are improving the performance of a specific feature and run48
+the benchmark many times, it may be useful to store a baseline to compare49
+against instead.50
+51
+The `--save-baseline` switch can be used to create a baseline for the benchmark.52
+53
+```bash54
+$ cargo bench --bench crypto_bench -- --save-baseline libolm55
+```56
+57
+After you make your changes you can use the baseline to compare the results like58
+so:59
+60
+```bash61
+$ cargo bench --bench crypto_bench -- --baseline libolm62
+```63
+64
+### Generating flame graphs for the benchmarks65
+66
+The benchmarks support profiling and generating [Flame Graphs] while they run in67
+profiling mode using [pprof].68
+69
+Profiling usually requires root permissions, to avoid the need for root70
+permissions you can adjust the value of `perf_event_paranoid`, e.g. the most71
+permisive value is `-1`:72
+73
+```bash74
+$ echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid75
+```76
+77
+To generate flame graphs feature, enable the profiling mode using the78
+`--profile-time` command line flag:79
+80
+```bash81
+$ cargo bench --bench crypto_bench -- --profile-time=582
+```83
+84
+After the benchmarks are done, a flame graph for each individual benchmark can85
+be found in `target/criterion/<name-of-benchmark>/profile/flamegraph.svg`.86
+87
+[pprof]: https://docs.rs/pprof/0.5.0/pprof/index.html#88
+[Criterion]: https://docs.rs/criterion/0.3.5/criterion/89
+[Flame Graphs]: https://www.brendangregg.com/flamegraphs.html@@ -0,0 +1,324 @@
1
+use std::{ops::Deref, sync::Arc};2
+3
+use criterion::{BenchmarkId, Criterion, Throughput, criterion_group, criterion_main};4
+use matrix_sdk_crypto::{EncryptionSettings, OlmMachine};5
+use matrix_sdk_sqlite::SqliteCryptoStore;6
+use matrix_sdk_test::ruma_response_from_json;7
+use ruma::{8
+ DeviceId, OwnedUserId, TransactionId, UserId,9
+ api::client::{10
+ keys::{claim_keys, get_keys},11
+ to_device::send_event_to_device::v3::Response as ToDeviceResponse,12
+ },13
+ device_id, room_id, user_id,14
+};15
+use serde_json::Value;16
+use tokio::runtime::Builder;17
+18
+fn alice_id() -> &'static UserId {19
+ user_id!("@alice:example.org")20
+}21
+22
+fn alice_device_id() -> &'static DeviceId {23
+ device_id!("JLAFKJWSCS")24
+}25
+26
+fn keys_query_response() -> get_keys::v3::Response {27
+ let data = include_bytes!("crypto_bench/keys_query.json");28
+ let data: Value = serde_json::from_slice(data).unwrap();29
+ ruma_response_from_json(&data)30
+}31
+32
+fn keys_claim_response() -> claim_keys::v3::Response {33
+ let data = include_bytes!("crypto_bench/keys_claim.json");34
+ let data: Value = serde_json::from_slice(data).unwrap();35
+ ruma_response_from_json(&data)36
+}37
+38
+fn huge_keys_query_response() -> get_keys::v3::Response {39
+ let data = include_bytes!("crypto_bench/keys_query_2000_members.json");40
+ let data: Value = serde_json::from_slice(data).unwrap();41
+ ruma_response_from_json(&data)42
+}43
+44
+pub fn keys_query(c: &mut Criterion) {45
+ let runtime = Builder::new_multi_thread().build().expect("Can't create runtime");46
+ let machine = runtime.block_on(OlmMachine::new(alice_id(), alice_device_id()));47
+ let response = keys_query_response();48
+ let txn_id = TransactionId::new();49
+50
+ let count = response.device_keys.values().fold(0, |acc, d| acc + d.len())51
+ + response.master_keys.len()52
+ + response.self_signing_keys.len()53
+ + response.user_signing_keys.len();54
+55
+ let mut group = c.benchmark_group("Keys querying");56
+ group.throughput(Throughput::Elements(count as u64));57
+58
+ let name = format!("{count} device and cross signing keys");59
+60
+ // Benchmark memory store.61
+62
+ group.bench_with_input(63
+ BenchmarkId::new("Device keys query [memory]", &name),64
+ &response,65
+ |b, response| {66
+ b.to_async(&runtime)67
+ .iter(|| async { machine.mark_request_as_sent(&txn_id, response).await.unwrap() })68
+ },69
+ );70
+71
+ // Benchmark sqlite store.72
+73
+ let dir = tempfile::tempdir().unwrap();74
+ let store = Arc::new(runtime.block_on(SqliteCryptoStore::open(dir.path(), None)).unwrap());75
+ let machine = runtime76
+ .block_on(OlmMachine::with_store(alice_id(), alice_device_id(), store, None))77
+ .unwrap();78
+79
+ group.bench_with_input(80
+ BenchmarkId::new("Device keys query [SQLite]", &name),81
+ &response,82
+ |b, response| {83
+ b.to_async(&runtime)84
+ .iter(|| async { machine.mark_request_as_sent(&txn_id, response).await.unwrap() })85
+ },86
+ );87
+88
+ {89
+ let _guard = runtime.enter();90
+ drop(machine);91
+ }92
+93
+ group.finish()94
+}95
+96
+/// This test panics on the CI, not sure why so we're disabling it for now.97
+#[cfg(not(feature = "codspeed"))]98
+pub fn keys_claiming(c: &mut Criterion) {99
+ let runtime = Builder::new_multi_thread().build().expect("Can't create runtime");100
+101
+ let keys_query_response = keys_query_response();102
+ let txn_id = TransactionId::new();103
+104
+ let response = keys_claim_response();105
+106
+ let count = response.one_time_keys.values().fold(0, |acc, d| acc + d.len());107
+108
+ let mut group = c.benchmark_group("Olm session creation");109
+ group.throughput(Throughput::Elements(count as u64));110
+111
+ let name = format!("{count} one-time keys");112
+113
+ group.bench_with_input(114
+ BenchmarkId::new("One-time keys claiming [memory]", &name),115
+ &response,116
+ |b, response| {117
+ b.iter_batched(118
+ || {119
+ let machine = runtime.block_on(OlmMachine::new(alice_id(), alice_device_id()));120
+ runtime121
+ .block_on(machine.mark_request_as_sent(&txn_id, &keys_query_response))122
+ .unwrap();123
+ (machine, &runtime, &txn_id)124
+ },125
+ move |(machine, runtime, txn_id)| {126
+ runtime.block_on(async {127
+ machine.mark_request_as_sent(txn_id, response).await.unwrap();128
+ drop(machine);129
+ })130
+ },131
+ criterion::BatchSize::SmallInput,132
+ )133
+ },134
+ );135
+136
+ group.bench_with_input(137
+ BenchmarkId::new("One-time keys claiming [SQLite]", &name),138
+ &response,139
+ |b, response| {140
+ b.iter_batched(141
+ || {142
+ let dir = tempfile::tempdir().unwrap();143
+ let store = Arc::new(144
+ runtime.block_on(SqliteCryptoStore::open(dir.path(), None)).unwrap(),145
+ );146
+147
+ let machine = runtime148
+ .block_on(OlmMachine::with_store(149
+ alice_id(),150
+ alice_device_id(),151
+ store,152
+ None,153
+ ))154
+ .unwrap();155
+ runtime156
+ .block_on(machine.mark_request_as_sent(&txn_id, &keys_query_response))157
+ .unwrap();158
+ (machine, &runtime, &txn_id)159
+ },160
+ move |(machine, runtime, txn_id)| {161
+ runtime.block_on(async {162
+ machine.mark_request_as_sent(txn_id, response).await.unwrap();163
+ });164
+165
+ let _ = runtime.enter();166
+ drop(machine);167
+ },168
+ criterion::BatchSize::SmallInput,169
+ )170
+ },171
+ );172
+173
+ group.finish()174
+}175
+176
+pub fn room_key_sharing(c: &mut Criterion) {177
+ let runtime = Builder::new_multi_thread().build().expect("Can't create runtime");178
+179
+ let keys_query_response = keys_query_response();180
+ let txn_id = TransactionId::new();181
+ let response = keys_claim_response();182
+ let room_id = room_id!("!test:localhost");183
+184
+ let to_device_response = ToDeviceResponse::new();185
+ let users: Vec<OwnedUserId> = keys_query_response.device_keys.keys().cloned().collect();186
+187
+ let count = response.one_time_keys.values().fold(0, |acc, d| acc + d.len());188
+189
+ let machine = runtime.block_on(OlmMachine::new(alice_id(), alice_device_id()));190
+ runtime.block_on(machine.mark_request_as_sent(&txn_id, &keys_query_response)).unwrap();191
+ runtime.block_on(machine.mark_request_as_sent(&txn_id, &response)).unwrap();192
+193
+ let mut group = c.benchmark_group("Room key sharing");194
+ group.throughput(Throughput::Elements(count as u64));195
+ let name = format!("{count} devices");196
+197
+ // Benchmark memory store.198
+199
+ group.bench_function(BenchmarkId::new("Room key sharing [memory]", &name), |b| {200
+ b.to_async(&runtime).iter(|| async {201
+ let requests = machine202
+ .share_room_key(203
+ room_id,204
+ users.iter().map(Deref::deref),205
+ EncryptionSettings::default(),206
+ )207
+ .await208
+ .unwrap();209
+210
+ assert!(!requests.is_empty());211
+212
+ for request in requests {213
+ machine.mark_request_as_sent(&request.txn_id, &to_device_response).await.unwrap();214
+ }215
+216
+ machine.discard_room_key(room_id).await.unwrap();217
+ })218
+ });219
+220
+ // Benchmark sqlite store.221
+222
+ let dir = tempfile::tempdir().unwrap();223
+ let store = Arc::new(runtime.block_on(SqliteCryptoStore::open(dir.path(), None)).unwrap());224
+225
+ let machine = runtime226
+ .block_on(OlmMachine::with_store(alice_id(), alice_device_id(), store, None))227
+ .unwrap();228
+ runtime.block_on(machine.mark_request_as_sent(&txn_id, &keys_query_response)).unwrap();229
+ runtime.block_on(machine.mark_request_as_sent(&txn_id, &response)).unwrap();230
+231
+ group.bench_function(BenchmarkId::new("Room key sharing [SQLite]", &name), |b| {232
+ b.to_async(&runtime).iter(|| async {233
+ let requests = machine234
+ .share_room_key(235
+ room_id,236
+ users.iter().map(Deref::deref),237
+ EncryptionSettings::default(),238
+ )239
+ .await240
+ .unwrap();241
+242
+ assert!(!requests.is_empty());243
+244
+ for request in requests {245
+ machine.mark_request_as_sent(&request.txn_id, &to_device_response).await.unwrap();246
+ }247
+248
+ machine.discard_room_key(room_id).await.unwrap();249
+ })250
+ });251
+252
+ {253
+ let _guard = runtime.enter();254
+ drop(machine);255
+ }256
+257
+ group.finish()258
+}259
+260
+pub fn devices_missing_sessions_collecting(c: &mut Criterion) {261
+ let runtime = Builder::new_multi_thread().build().expect("Can't create runtime");262
+263
+ let machine = runtime.block_on(OlmMachine::new(alice_id(), alice_device_id()));264
+ let response = huge_keys_query_response();265
+ let txn_id = TransactionId::new();266
+ let users: Vec<OwnedUserId> = response.device_keys.keys().cloned().collect();267
+268
+ let count = response.device_keys.values().fold(0, |acc, d| acc + d.len());269
+270
+ let mut group = c.benchmark_group("Devices missing sessions collecting");271
+ group.throughput(Throughput::Elements(count as u64));272
+273
+ let name = format!("{count} devices");274
+275
+ runtime.block_on(machine.mark_request_as_sent(&txn_id, &response)).unwrap();276
+277
+ // Benchmark memory store.278
+279
+ group.bench_function(BenchmarkId::new("Devices collecting [memory]", &name), |b| {280
+ b.to_async(&runtime).iter_with_large_drop(|| async {281
+ machine.get_missing_sessions(users.iter().map(Deref::deref)).await.unwrap()282
+ })283
+ });284
+285
+ // Benchmark sqlite store.286
+287
+ let dir = tempfile::tempdir().unwrap();288
+ let store = Arc::new(runtime.block_on(SqliteCryptoStore::open(dir.path(), None)).unwrap());289
+290
+ let machine = runtime291
+ .block_on(OlmMachine::with_store(alice_id(), alice_device_id(), store, None))292
+ .unwrap();293
+294
+ runtime.block_on(machine.mark_request_as_sent(&txn_id, &response)).unwrap();295
+296
+ group.bench_function(BenchmarkId::new("Devices collecting [SQLite]", &name), |b| {297
+ b.to_async(&runtime).iter(|| async {298
+ machine.get_missing_sessions(users.iter().map(Deref::deref)).await.unwrap()299
+ })300
+ });301
+302
+ {303
+ let _guard = runtime.enter();304
+ drop(machine);305
+ }306
+307
+ group.finish()308
+}309
+310
+#[cfg(not(feature = "codspeed"))]311
+criterion_group! {312
+ name = benches;313
+ config = Criterion::default();314
+ targets = keys_query, keys_claiming, room_key_sharing, devices_missing_sessions_collecting,315
+}316
+317
+#[cfg(feature = "codspeed")]318
+criterion_group! {319
+ name = benches;320
+ config = Criterion::default();321
+ targets = keys_query, room_key_sharing, devices_missing_sessions_collecting,322
+}323
+324
+criterion_main!(benches);@@ -0,0 +1 @@
1
+{"one_time_keys":{"@example2:localhost":{"NMMBNBUSNR":{"signed_curve25519:AAAADg":{"key":"Tib0yzXb6gAdrZsb74DQ80N3VEx7rw/AM5pO3vyBOWc","signatures":{"@example2:localhost":{"ed25519:NMMBNBUSNR":"UnK5GSQE7Oj4aG56ftAK0qBzzylwE/r3gHLFJqsKKRgZO13D3BlfQG8nGJ2vH+dU8jGfjWxMreHWoiK7JUasAw"}}}},"SKISMLNIMH":{"signed_curve25519:AAAAVQ":{"key":"nuNElix5zk/v2YaKh6YW6tD9tXGlJ283ixm1pLa0NiI","signatures":{"@example2:localhost":{"ed25519:SKISMLNIMH":"rC8Mn+ac0ClLhsBZ59+iWoD6hxq3L3CM17qi+Pw60ybOt/W5TvU8PPViDoyfPQB26jG9z9Q2rbvxorbwxZiQCQ"}}}}},"@example:localhost":{"AFGUOBTZWM":{"signed_curve25519:AAAABQ":{"key":"9IGouMnkB6c6HOd4xUsNv4i3Dulb4IS96TzDordzOws","signatures":{"@example:localhost":{"ed25519:AFGUOBTZWM":"2bvUbbmJegrV0eVP/vcJKuIWC3kud+V8+C0dZtg4dVovOSJdTP/iF36tQn2bh5+rb9xLlSeztXBdhy4c+LiOAg"}}}},"ARCIQGAOXH":{"signed_curve25519:AAAABQ":{"key":"hb2zAbIYFQHQxfVnDXMpaOOtIw7Sm+/IM2xNsh4tfkA","signatures":{"@example:localhost":{"ed25519:ARCIQGAOXH":"FyO4OmRuzCPZHWyhYEoAOTg6Tu03CUS3h+1c0zFc3HFvJ7oI4TVmbUP20KenX8/xnTO5CQaUCXVyH8QN6s+oDQ"}}}},"AYUJPHPSAC":{"signed_curve25519:AAAABQ":{"key":"se2bMxnTTbxCZHI6bMPijc7ereFfUZ0ML8W3BcU/vGU","signatures":{"@example:localhost":{"ed25519:AYUJPHPSAC":"7bKgbXDAfOgqgUdlIL2ladoZK4xbisMHoIv1kG84j788U/bzoGYY3ETqjf5m99DTroBd5+7W1u7XBf0vMksGBA"}}}},"AZWYEFDSDX":{"signed_curve25519:AAAABQ":{"key":"xsoUhL7yH3i1anuXeVzCjgzjP1JKouki7kAlF96kmSo","signatures":{"@example:localhost":{"ed25519:AZWYEFDSDX":"ABDNOM7lDXqXCCvCTx+ruWle5BPJWEp7J86zC5vIzWgo6uMs+AnxTHeRcdzArZyDgo31hWHgExj/mCbcGWQpDg"}}}},"BBGXWJCGEV":{"signed_curve25519:AAAABQ":{"key":"x8GEvcwcs08Jx6KJ6DzAPwo+2YuD1pXZ0mxPfy0U10U","signatures":{"@example:localhost":{"ed25519:BBGXWJCGEV":"9ZpEJxOMkjIQh34UQ1ZFpgU/92h1kk/f46dCNaRAPfOYiQLhBTnDx+yHT2ys6IeJ/RjtWe5nrFJRPgAFf+t/Bg"}}}},"BNPGUGDFAE":{"signed_curve25519:AAAABQ":{"key":"QSiaJfFPKo7YelLnezHpNwl7+54NnJyX2aPuqR2/Y2o","signatures":{"@example:localhost":{"ed25519:BNPGUGDFAE":"EzemA6kDlDrNJy6DXcTAY7MZMK/14FqNFr8PrjZUAFTGdiDvNvTrsr9kNMssJQkJr05YSh9SGzsVhzRXFEtrDg"}}}},"BZKAGPQUAB":{"signed_curve25519:AAAABQ":{"key":"Ng1qyxiWyTz1h8i7VOX/oNvtOtklFvzdCzrjhP9Gczg","signatures":{"@example:localhost":{"ed25519:BZKAGPQUAB":"vHTUl/MQC5lMQgslTFXdyZ3p+68df2Oa2VIB2hUu2cB/QILZcQh7CepsvK2wkU8elQNehUaB699f7yI62A3QDA"}}}},"CCECSKBEDH":{"signed_curve25519:AAAABQ":{"key":"6wdkkNbRv5KOCQEAJpx6Adx7Pp8Baa3vtm3Qx0iRN3c","signatures":{"@example:localhost":{"ed25519:CCECSKBEDH":"Q8t6n0Ch1WNzc0azZZf8pGmvI6DZbBfmwOUyAQY5ZBNdY3d6sJZXunw4HroDcQpxAGdI09Ju8Kx8mBVg31P9BQ"}}}},"CEVBXZPTZI":{"signed_curve25519:AAAABQ":{"key":"JgEjoYPflqUDz+mZ6kWZuGfv59PgFXQalWUMBDXvQEA","signatures":{"@example:localhost":{"ed25519:CEVBXZPTZI":"plsxT+REpfILkbV2soWSdJKaBO82pX0q+HJHWXNJePmogBH+JavxZvfCRQXnRcqNVqvVZMbd7LzdE9MGs1ePDw"}}}},"CEVLRMVPBD":{"signed_curve25519:AAAABQ":{"key":"yuM+176WD2MwzgTCNKNgU5hTreRd6kTB2NQzrApp+GY","signatures":{"@example:localhost":{"ed25519:CEVLRMVPBD":"7ngNlt5SUEQ8k2pdmrYeiF2y6iTZzHScVfZEL7Uaf3uGkxu3i2qhdWmaZhlUCGhAJWg/u9Gmz/dOHM8GqCELDg"}}}},"CHWHHLVNRU":{"signed_curve25519:AAAABQ":{"key":"UM3FRT6cFTvwZ7XFDI59rG1lBIfvbYx6l2sRlYteuhA","signatures":{"@example:localhost":{"ed25519:CHWHHLVNRU":"8iQU5ROmvy+weXD7riod4cvHvTYrxvin/YnumOl/eFZFUqYf+fJtqDxTUVpcrpMO2Mn1vlZ6IUFPQoeTllozCQ"}}}},"COTJRBEJRK":{"signed_curve25519:AAAABQ":{"key":"TjdvLmI/S1ZfDXlxPpR8SEHLrWllkOiEWPsOYrSFGCc","signatures":{"@example:localhost":{"ed25519:COTJRBEJRK":"CnCUBx9yRBJGc2iPrMAWdJIMftkGn4wgGW8i9l6VkV8ORAH07q0gO08IEI8XNiveLzuC2vq4hjqGxYWJFYMYCA"}}}},"COZKBAJDSL":{"signed_curve25519:AAAABQ":{"key":"diq2cZEb46nCLvMj9SsY1WXSNLo0LkKwhGnZYbtwCVU","signatures":{"@example:localhost":{"ed25519:COZKBAJDSL":"Tu3byXcnF59k75UO2aRrVZHrxq63FwZ/7qG2jz1IhyslttMpExhLv+BCYmPaFZHR4pkb/aNwTLBAmugLZ5gtAQ"}}}},"CPLENDMCJZ":{"signed_curve25519:AAAABQ":{"key":"Yv8Q7EuPA7dpxxJaFl9Mjo9S0CSGKCgsufSXrr0dRRY","signatures":{"@example:localhost":{"ed25519:CPLENDMCJZ":"SVIpMqBbqLMyP2mfHd6fqGjDCUPV1BqV+Hrw54xIAVI0FIu2EipCtU64OIl55+dHOBFuhGwzAtlVfnJJa5k5Cg"}}}},"CQSGOHRFJE":{"signed_curve25519:AAAABQ":{"key":"EW4AYmZ65GGUGy0mNla7gjybMDvqyB0s4r9AgxMKQFo","signatures":{"@example:localhost":{"ed25519:CQSGOHRFJE":"TmZDCRzSqu8EC/xg2Fob6U5DhGeQ6HRgR02TWqcUR44GnwcgibANQemWvV/agu6LnJjAkREggXZC47xceZExDQ"}}}},"CRYYTUURSR":{"signed_curve25519:AAAABQ":{"key":"0u8F+/8lHiIxgrdHrBnSFbWOyJ5+4k9GGF7nAmdF00g","signatures":{"@example:localhost":{"ed25519:CRYYTUURSR":"+UK3EP4BJqXPCfhKMtl7/iWgXbIM7zUYmvWEh2vT1oQnboOIOM5vsRltarjv7RIfDiP5N2m7TeEBvNjrf3e0Cg"}}}},"CXLMFOVYUX":{"signed_curve25519:AAAABQ":{"key":"Y8QbX9D7p+3AIYT8uxOzzaT2AqefrffptfQlkljjpk8","signatures":{"@example:localhost":{"ed25519:CXLMFOVYUX":"gHN8yzyDURb5XiaCr/gKYfIIVkYOhLFNqVJ7C39YSOVWC7QALMKY1Aiy63b0ldNVofMCoCqogbTxyfs6t7DtDw"}}}},"DDMJJSUUSH":{"signed_curve25519:AAAABQ":{"key":"qcJDtyiLcu7li19tCmaVfh1cnYFLTxM7YTISLGuFsS0","signatures":{"@example:localhost":{"ed25519:DDMJJSUUSH":"m6moRaWZkCYueh6nvbR5kIQbZmTvZFRMLQte2b8Z9NSM6Boa+/SR4Ds0YA4I8OVe5CEBA9tdsS68sH4NubRBAA"}}}},"DEFPMZXZCM":{"signed_curve25519:AAAABQ":{"key":"T3kZS/F3tDWy2P0kPP8NcugNF1rf4TaYEeX2loLmhAI","signatures":{"@example:localhost":{"ed25519:DEFPMZXZCM":"R/lm/iL4xedB+fldEqFSMgYbga1KdhVxHa42vRPb9ucD34pKAoB2So11nKG4pxBujzO258VofWPXToz4AmRkAA"}}}},"DHJPFSVBXZ":{"signed_curve25519:AAAABQ":{"key":"8qdZCJXi9jUJHaBNvW4xC1Z45+djh0sJOakuJknSTEg","signatures":{"@example:localhost":{"ed25519:DHJPFSVBXZ":"igHPMqdtAsVwBfmWoQz62Hp1HnPDQ/YrTIFLKcIFzMX/Mat9uJRj/C/4WYdJ+AWq+A+cEMS3/mlnZERpTqS2Bw"}}}},"DKJOMBOOJT":{"signed_curve25519:AAAABQ":{"key":"OKQJW/h8MPLO3fTaFFhlu0eu8JpfiIwVVKWUITjZBC0","signatures":{"@example:localhost":{"ed25519:DKJOMBOOJT":"aqV5z0vDMj5IgozTtr45L8kXTlL9m7o8UFLy5/RLfLn3RGOlm4VoImrhJLMLCe/Unn0qiyesq2wLS5KTYXxRCg"}}}},"DKTFRSRHCO":{"signed_curve25519:AAAABQ":{"key":"TpPJMlL6XY6tV3J7+0IxSVVLwO73wyC648Zk0xBELCI","signatures":{"@example:localhost":{"ed25519:DKTFRSRHCO":"0nlR1AtN+dFhjtP6ODOSkcfYVg6A3bIZ41378tXTsl3ZlOsMHitfo8mEyo+uKzj6ManK6rxdGA5+WpqDnBO9AQ"}}}},"DQCYLQFCGB":{"signed_curve25519:AAAAAw":{"key":"TmtqlsSp8X8HUrGsCBwOXAPGaC0UaDpS4vXRcljNyEk","signatures":{"@example:localhost":{"ed25519:DQCYLQFCGB":"1LAyTQYZ+T+YDOC3kmf7fWY0ZB9xCmi8yWi1yc7zH1TVzC3cvDHF4sUgqCqJvlHlG/oo7m0dfsdo43cX3FWiDQ"}}}},"DTFJXETAZD":{"signed_curve25519:AAAABQ":{"key":"/vV7pIZFVsMm7ny2LA0vwuGrSXox/Oh9dSr0hHb+xFQ","signatures":{"@example:localhost":{"ed25519:DTFJXETAZD":"AnKflgTS+JrNrNKTRLfkUCH+uVH7WAfRT+DVRNVHanGIVeJyWbLC0HAetTE3O5B2DQlw3FLCQTFTCIIsp+00CA"}}}},"EDECYDJGSA":{"signed_curve25519:AAAABQ":{"key":"5jo6mb1OdQ0xXLAaG5M+w/W8eZASHjwQJU3s/XNYRDU","signatures":{"@example:localhost":{"ed25519:EDECYDJGSA":"ULBYHkRRFutZ1cbJVV93f/2llA1kWQ0WkrhqiJuIg+wt9CVFocUYPFa0KwdOQ9y3zcSbUL7QJTRxwb084SzODw"}}}},"EFZNCETFCJ":{"signed_curve25519:AAAABQ":{"key":"XdfKhyXK1z4+h3li3qRo9S5Guw6IqniXhuVvSbYiDRQ","signatures":{"@example:localhost":{"ed25519:EFZNCETFCJ":"YNCHbhPgQl0ChOUmd+nD22Fx16imrLGwEvqeLooKqltqhB9rvRl65ta85FsnoZleRnLPGhQwmum0Vcj9eE5ACw"}}}},"EVMLDDWANA":{"signed_curve25519:AAAABQ":{"key":"f9XvwIZgXRPRG5RvgQD58ek/quiA1vi9qUohromPjSU","signatures":{"@example:localhost":{"ed25519:EVMLDDWANA":"6g1HsO60iXjHMeQnzUDKsaEIgA2Wkvm4R88Mlm+LkCjX3agFRCLmWQbDbCNyhfAuKp5RtGVztwLP+w/7qr5OBw"}}}},"FAQIGNOZEI":{"signed_curve25519:AAAABQ":{"key":"W3nw8o5bls1FakhZcXXm7bu754GSDZhDuy1h5Z2qlF8","signatures":{"@example:localhost":{"ed25519:FAQIGNOZEI":"s0ytdVbNqoibCBIg/H8eoDapHnK30x3f8LgYQelGAK1JeYaHV2jsXErB08IqMX+ExveuZJjhC2UruMotjM38DA"}}}},"FEEBAUWTGH":{"signed_curve25519:AAAABQ":{"key":"nmMKZNw2GNnX5IrC+mLxs7VygFGe4Rr8Luzir/wlZgY","signatures":{"@example:localhost":{"ed25519:FEEBAUWTGH":"3jDEjcUS1zh1Ls79HcgIU9s4Hbkp7X2+31O4bLwfuZmHX4qgfhEJdHAqw4rnv8d5sGurRvij9SrrsrurX0kSAA"}}}},"FIFUHVFZPB":{"signed_curve25519:AAAAAw":{"key":"7XG2DKzDDUhmOaYAuBnVfmvzg+CYOiwBJHh38xpGjW0","signatures":{"@example:localhost":{"ed25519:FIFUHVFZPB":"WolHVbPLD/GnbXr0Sat78bV6YEVf3tWK3NQV+59VGGUA09ktj2Ks8UgPNpbCQSRs/w10PMITcA0wqDOdCzO2CA"}}}},"FLAIGGZDUI":{"signed_curve25519:AAAABQ":{"key":"C24KE70E2Q8oGhntRH9A8ecJQ4c+NqcT/Sr7U++2K3M","signatures":{"@example:localhost":{"ed25519:FLAIGGZDUI":"+zbDEA7vbM++Ykg+l1KucVnM4wAnlJhw+ynAWG2pXwooPz0Dwss9Svv3o+TtbRxoVj9mSMafN0qjoiOrJWQIBA"}}}},"FPPORJYJWZ":{"signed_curve25519:AAAABQ":{"key":"7Qeko4af6cyac1/UH0RtvcjhIwVbTH9XjPn22a3jiHo","signatures":{"@example:localhost":{"ed25519:FPPORJYJWZ":"/4huQ0h2v24kRvqCIiZsjtucgMoc2/0ak7tQ52ACWma1iEFkjFkJhs5QKf81qfb73jkwjcnSHfUtcLMago/eBA"}}}},"FRZAXXLFNO":{"signed_curve25519:AAAABQ":{"key":"m+LMjhyRoutQij2tLLynQpOpWmYLrNilywl8QkFe8AU","signatures":{"@example:localhost":{"ed25519:FRZAXXLFNO":"so0lZOlknaNZopmQ6hWAnZSo822V4dYDRAZtD/FL9UPj8WLNUCoArkDzaU05mi95Eu5fAmr15hs3FJXamBFhAg"}}}},"GGBGEQJNSJ":{"signed_curve25519:AAAABQ":{"key":"B0b2TKhfX9aaGllKtqRpczjBkD33C5Vo+GFZok9qC38","signatures":{"@example:localhost":{"ed25519:GGBGEQJNSJ":"EWeAsi4wsssk6Y62h8mMLQi1UZNj+atYQLsyoGmcmGRZ9IYAuXz/qLkGGTErvMzlA6OxeJPBUWSEj9tgq5V/AQ"}}}},"GIOUUFLOLZ":{"signed_curve25519:AAAABQ":{"key":"4gaX6tSP2CH3SuFhHbJewTJnTv1ATfmLyvqGySFKvTM","signatures":{"@example:localhost":{"ed25519:GIOUUFLOLZ":"hoiLlIRhzEG74Jp69ckkIlhtuVRqRIf7GHOYrSW5UFaxzxwdcqVWUeXHL4cq9KUAhk+Sq7WIDojavU8Ia99dCQ"}}}},"GOAKBDPUKJ":{"signed_curve25519:AAAABQ":{"key":"UDn9ExvHIO2cddBqPas4KXePMaX1vRJ6zmUdQq5GPVs","signatures":{"@example:localhost":{"ed25519:GOAKBDPUKJ":"kELcOheftQVdcgouGW+uAbiA0Z74qgql0ucoWAWeh6GW5z5xiKpGkPgUDa2QLyV760nJY24dSFVbk5XBcHCpDA"}}}},"GOVWXTWHIQ":{"signed_curve25519:AAAABQ":{"key":"LQiTE14erDyDGZWJGRgbzbTOdPqZNUqUUZmGRU8wnQ4","signatures":{"@example:localhost":{"ed25519:GOVWXTWHIQ":"mabFSjzBrFkgRYNQcizR5U0GwAazZVzXIU6tEjG1cHx5dp6j/ZaXMUBQqYIsdzaO+yNYRvn4RUoD0JhCDnQjBw"}}}},"GSKQTOKLNQ":{"signed_curve25519:AAAABQ":{"key":"Mmy/vwjtOj5kMBrj1fijI5H7oswIOELDczyto74hZGM","signatures":{"@example:localhost":{"ed25519:GSKQTOKLNQ":"5N69Kp3isctfVDdVnoaBIc0/d3nRSiTHT04eHdMNXTDKkxbeZpVqCgl42W6IMYFcGrDMeK2WJVEfYxGstXTGCw"}}}},"HHQFHSMEYG":{"signed_curve25519:AAAABQ":{"key":"CDF79o3JSPwt5pLoP+2QUUi/EL7N4hlbdXzkBCTr8Ts","signatures":{"@example:localhost":{"ed25519:HHQFHSMEYG":"NTitNxtT3qbi2mbTsqpW/DueRJBHdwHe7MzWH7PaS50skqcNpGm+9nWmMMXeyHtMCgGKISOy1gNo+/FGPo2DDQ"}}}},"HVAILYUHDN":{"signed_curve25519:AAAABQ":{"key":"zfV6yLaZ5Z3u7Hk1UWtfYy55FMl1+fsi+dgIk+L6j3o","signatures":{"@example:localhost":{"ed25519:HVAILYUHDN":"JYfDBJSpMmGZiENM0uXRHHEZrh2cBQNnTLzsDwA+LFcPmpAgBXbN7xxRLuV/K5ndfsNu66JlzgU8a99p1lR4Cw"}}}},"ICPHTICSZV":{"signed_curve25519:AAAABQ":{"key":"fQbah5Bz/1fmGZ6eK/vfbUBIgeoz/yknAILK2FrNSV4","signatures":{"@example:localhost":{"ed25519:ICPHTICSZV":"sT2vwmRj1gBR0cPJKXEEkndti9T6eubuKZogHS9AYAuKSL6rjmE3E4vsBKQQNgKZROim2oUc4DqUYDkHm+LBAA"}}}},"IDZMWJANDA":{"signed_curve25519:AAAABQ":{"key":"FOrahT+LcAIUXPLJwF8kxhB/q9VhOy0TMLndwTHZH3w","signatures":{"@example:localhost":{"ed25519:IDZMWJANDA":"NXVD65HL34YhcdfayixruoSVW4UmVqqtcCsNdCLvcjQrjgRCeTQ20U5g2qLde9MhpGmPZEI07ovVTFh0dWShDg"}}}},"IFLWAVYNOG":{"signed_curve25519:AAAABQ":{"key":"d9f8PJdxzTwjhbiL+KSsQp7O0AP564wAoKO0YPlTUBY","signatures":{"@example:localhost":{"ed25519:IFLWAVYNOG":"wkdJG9IbrjkZFiSuAu05gjv0rZRU5t9qiU/Xetlreo2pZjUfRUttvpxqlti9ms5IVFRjf2yqIWjhOjajq2pgCA"}}}},"IKHFOAKJYY":{"signed_curve25519:AAAABQ":{"key":"3wEwFj17WW2A7X/LEQche7nUSwtyKD0qYf7kyUlVOF0","signatures":{"@example:localhost":{"ed25519:IKHFOAKJYY":"3o972gJH+KZZ+41P03rPbfCPiRQJR2lwPFyH6RLRqW9yZCF5io1mT/cnhQFT55bc7fdLp9eH1hOntkp88rsjDw"}}}},"IKJVWFOXIF":{"signed_curve25519:AAAABQ":{"key":"zHDptdgkl/sZI2zcmal15TR7fvgpbIC7tjOStACZUjc","signatures":{"@example:localhost":{"ed25519:IKJVWFOXIF":"TeukT6OLHwq3+VVSLbuLsYr515fp369hzUCiC7e024e8nRXvT4it1wPT+3dd/XFtkZK9gdQaNrOHO+dnJUeCAw"}}}},"IUQJOWHVID":{"signed_curve25519:AAAAAw":{"key":"GCFQ3E66D0tW8yV78UJvZ0LQxesyxlgxyqba4X4ywX0","signatures":{"@example:localhost":{"ed25519:IUQJOWHVID":"Ot9fkViT03WSXkya0+szJ6tbAte+6hQhwvQe+vY7juQpeW9X0/gYXz07P13yVoG1mjLyQEn691U4sG31q9aMAw"}}}},"IZKJKHXKYI":{"signed_curve25519:AAAABA":{"key":"cyuP5zHIU8y4Di8IIwT1O3pK1Y6PUo5X1MO8KInsWhc","signatures":{"@example:localhost":{"ed25519:IZKJKHXKYI":"aOhRAXBCWdNai6VtUSb+lAa1/jjXb65ZySTE061CwilmXp5y3nmpXtu3cU3+ENRuGVbBiIBU1GlDCALtOWTMDA"}}}},"JDKSTVQUQM":{"signed_curve25519:AAAAAw":{"key":"vwgDSMn59usFwH4zT3H3QPWWtBfWHX0ibX0d4aE4xU8","signatures":{"@example:localhost":{"ed25519:JDKSTVQUQM":"ZcXGAn9J1/EIrFKrPWceC5oDMKHeBvXxkXz5Y3jzl9mwDRy7xKcfM9tBMgb7Nt873wdvIIz9M4L6Rw4h/pG2AQ"}}}},"JHCACATEDC":{"signed_curve25519:AAAABQ":{"key":"WgUdgP1x6sDs0aRje145nVn+OASZCNChSR0yg1Gq63A","signatures":{"@example:localhost":{"ed25519:JHCACATEDC":"apswiRhdR4E5waOxCpORduI/AyH/2oZvWf7WKECDE/iDhw7mc0NFzuO7PZZbMGQ/cZBXZHl379mhr/MK9zpxBQ"}}}},"JKEXZVRELA":{"signed_curve25519:AAAABQ":{"key":"vT8xV+yDhZXazduqUYXy2PUOBcy9xNal4LZd9JUEYxE","signatures":{"@example:localhost":{"ed25519:JKEXZVRELA":"hd4WVbRyt9ZMPzdDybJwloBMpvOWhYufVtNI+Ff/tiIVDfan9Fsh1GylweKqhcfLOWpgxlZGe92P1FGkVk+vDg"}}}},"JSJZHEGJHQ":{"signed_curve25519:AAAABQ":{"key":"Pm3bmSAt4N9aBsglBl7I3Mse9Mkm/o/VTMkkoNmnny0","signatures":{"@example:localhost":{"ed25519:JSJZHEGJHQ":"zeC0n5IO9n9RnBNEU5Bzwkhg++xxHYw9Hc+XcuDreu0bg/TmPgKFvJFSOIoYc2ETlNrusu2Srl1TRWq0zmsECg"}}}},"JSXCDTJQTQ":{"signed_curve25519:AAAABQ":{"key":"7Sg6EctVD6ohjNFKJWH19oMYuSEkI95SOFirJIxnaRM","signatures":{"@example:localhost":{"ed25519:JSXCDTJQTQ":"qvytL/sppF6UyGTYbjqSCZVtKtQyD9Yh3gr1gA5oLqUibrWAsuLyFJVT5QJp/boLN8WrNbcu1YZMFtOd7mWnDg"}}}},"JVUSWHJVVM":{"signed_curve25519:AAAABQ":{"key":"Q9B+aCB8MbsGR+HzFAr3rRhKt4NmVT3laRPJtc5ckXY","signatures":{"@example:localhost":{"ed25519:JVUSWHJVVM":"z+qdE54OxTt7+2d7S2ogA6IevyLJVXcYGy0maqvbhRl/ItVp5zI/QkgYR6r0C2oDp7TkA9AwfP8fdZcxD3RyBA"}}}},"JXESGIWWOX":{"signed_curve25519:AAAABQ":{"key":"9Syd/W/GDKVtFA9vqRq2AxiQXpze5B/tdnmYt1DzxUc","signatures":{"@example:localhost":{"ed25519:JXESGIWWOX":"3GKCdNYurZyinprjXYpL25eCTwd9ZZVyvluJ6bBLp6Cr0Ho/Pa+IN7ddEIvv+XeM7xh14L2OTkCm4V+TcpXrDQ"}}}},"KAJPYAZKWG":{"signed_curve25519:AAAAAw":{"key":"5kcrA5y+i7Q6NT9o4k9pXUHeBeDa/Iz4yfyiIkVvWgU","signatures":{"@example:localhost":{"ed25519:KAJPYAZKWG":"20ie3Apsm2iNz25Gaqeb2ubU1GzOVAKwKJnvMoCbbgcXM3DgdZIIRylWYyKU4FKt7Fqhh/8Z7YClBRSY7M/GCA"}}}},"KIAYGCDGBV":{"signed_curve25519:AAAAAw":{"key":"c84WaZULk36GTbbVJru7a2wg0tTai7T8dxpZvN64mgQ","signatures":{"@example:localhost":{"ed25519:KIAYGCDGBV":"d6wwo19qdQgbTjivp+2vTH9799ftbBeeTcqFobTDZLVxxruteCr5DcTg07q8+12AngBrhUZoL9ArUit4stPPDA"}}}},"KISRZEPQWM":{"signed_curve25519:AAAABQ":{"key":"Y0WAaJIRREfjrloJklpbWynqPBro+32vBEDtQ4O8AFw","signatures":{"@example:localhost":{"ed25519:KISRZEPQWM":"fGXr6nqQztJMfSFGm15QztdKOTNFEYzRuCLftS3B6gShUiGsJxUpUuyf0/woko1kkYbeOvb9LJK7pVONMCEpDw"}}}},"KKCOTIXYTM":{"signed_curve25519:AAAABQ":{"key":"7s2XFE+l1wzwuv7R6l2HtIM9wjOPeNLPDr5T322zCVc","signatures":{"@example:localhost":{"ed25519:KKCOTIXYTM":"ZYOZAa2SEa2hPNyc41AeRC7bZmNmaRfBR5rATNI4EB+nSE3N5SQ2FCkryHlNKFn4NCa/GuJ05F6WlfX9veAlDA"}}}},"KKZJWRYGSG":{"signed_curve25519:AAAABQ":{"key":"opFUiO9oFOaTVxp9mcgCOfiFVKSBc4rgyp1DiRj8rxg","signatures":{"@example:localhost":{"ed25519:KKZJWRYGSG":"rbzItmBcHF3E1gg1c51W2JfUcdY7LIzdvqi4K/TbTwqonk5Gc6DhQtPIqLSxHXWspGD+9bR29Tlz3bViTzlIBQ"}}}},"KMKRBJXMDJ":{"signed_curve25519:AAAABQ":{"key":"XybOfpwgQdki0smx6fwjqRKVuqepXCb50DnVTAVCux0","signatures":{"@example:localhost":{"ed25519:KMKRBJXMDJ":"ztiwAH+beqnRaEuA+GqRWeBC+tml1+fOLLH+mQ5fIzmaQev6w3bQhBPjJmDkIugMFvscu2IQoGN7QazUXg71CA"}}}},"KTZXWCPEZU":{"signed_curve25519:AAAABQ":{"key":"ujpucE+5OJxupcNllB658jL32g9GCUtGCS15okUKqmA","signatures":{"@example:localhost":{"ed25519:KTZXWCPEZU":"9hTNg4KrzOS4gxKNX4ElI11CYOGrnNv6/AtiAZ9evZbuS+EGIR2im336JwHoqAQbspPwdQgPk6A1Dks3X1GPBw"}}}},"LMAUZPCZJE":{"signed_curve25519:AAAACA":{"key":"PQa8Id/xkNPqU+xK3l0hVs2gtk6feWm2wncWHYf3DBk","signatures":{"@example:localhost":{"ed25519:LMAUZPCZJE":"UgkfOr4R2gLaxP4DYVHxqFWcssNaDqYovUm5IRMvoUl+b1hH5Iv4XP9to3XAERbV4l2G34UhpGJ0ZMzC6ehrCg"}}}},"LTPSXLWMGZ":{"signed_curve25519:AAAABQ":{"key":"mvkq27g4aGic71BotAtFZqPgd+2fbr18VsGbjOCA800","signatures":{"@example:localhost":{"ed25519:LTPSXLWMGZ":"38/8fbSvrO3Qz3m03hWUb/Ef5jDKapbd0pztSeAMILv0MewdQcF9zxSFkIUNOtczWZvsUeSj15vv+UfYIWkXCA"}}}},"LVWOVGOXME":{"signed_curve25519:AAAAsQ":{"key":"H2sqFeswPO1HiMNlWUByDWYuk2S00fXlDwcDjCw9Y28","signatures":{"@example:localhost":{"ed25519:LVWOVGOXME":"IMIkKYDkbnGLpfiOmv4gGZkhUy400+gpsqmNJxwYUt5f2TfhiDvoh7tX7kSSIx56hAqNQV6A5hSPlp8Qjh2fAg"}}}},"MJUNZFVNEB":{"signed_curve25519:AAAABQ":{"key":"l7/ezZMwt6TuNzijz1E2gr6sxUQQUH/0AO5XFNMeYzc","signatures":{"@example:localhost":{"ed25519:MJUNZFVNEB":"lJUYlp9/kGXN4R+uEU/JG0DsQPzgA5APcSbULvUPoSzDye3Exg4FdDE7ro0/yd4632DzcDWJk12UttK/r9ZLBA"}}}},"MOGWGGXXBZ":{"signed_curve25519:AAAABQ":{"key":"D4NvD7OchpyaCWaZj4v00CIvCFUQvfo+8kFYpv3n1WM","signatures":{"@example:localhost":{"ed25519:MOGWGGXXBZ":"Yx/cWF3XJVFwHik1Mt9sEnZ0g6hz4uCDQZ8lqzY7Pg1RcQAjVCWMpP8UgrcqAkZcswg/MpH4o9iBl3huT2daBQ"}}}},"MPLCYWDUMV":{"signed_curve25519:AAAABQ":{"key":"runHg1CANPy3vGq+nFBSOUSiGZzDgYZ6ZcpN8BT6mCo","signatures":{"@example:localhost":{"ed25519:MPLCYWDUMV":"8BadaF/wscICNyno+fsMkQQHJTUFp51U2TV9JD8o4X+OeCts+Al+Q3pB1hoAQwXlBKVqVVAUVpCyPpGaR7x5Dw"}}}},"MWFXPINOAO":{"signed_curve25519:AAAABQ":{"key":"7547iJG8yD7rsQioFeR/6VNrePgagKuamNoTCiA8PQw","signatures":{"@example:localhost":{"ed25519:MWFXPINOAO":"xUVkHAeLyHrLyYnUltJmCAJZUJmdGfpdUwXZZFN0dVlbP0TbB33bIq91pQcjsbUFA+9zGBtqj1wV/Z2rvyr2CA"}}}},"MWVTUXDNNM":{"signed_curve25519:AAAABQ":{"key":"lwfLjFqwJN1Z8xFzb830030NVKXKQjXy46HQnn8WWUA","signatures":{"@example:localhost":{"ed25519:MWVTUXDNNM":"Em6DNEOvM0Ym1wDT8Dtmcnl/4ArBghW0H8g6rzfvfFIy/fBuMTp54JrJVIm/zCqdmH/ygfsn7jUi5IieXaPWBg"}}}},"MYTNISNDKK":{"signed_curve25519:AAAABQ":{"key":"S4/rTuzq2XxbfoACFgbVPPOVEa2biEvpoZWaOsG/c08","signatures":{"@example:localhost":{"ed25519:MYTNISNDKK":"GFuyakFesGnYwk0pIlPQeQgCrST7M4qgMSuGe8SD9cS/owb4GhI633Uya6jYvI3NitzF+50fOq5ScvsR1x6NAw"}}}},"MZECYDWJFY":{"signed_curve25519:AAAABQ":{"key":"fjopoO0I90USyQskjdORu9iEtEJVcNRUF7DBCsEcpAc","signatures":{"@example:localhost":{"ed25519:MZECYDWJFY":"2wFJsn/+K3/92A6SDQUYQCeRcW7oxJbkv2rOJRIfKnDGqg7t1sVtRcJwrIoqxhQ+zn/N9pT/DjTgcv2tM5eFCQ"}}}},"NATWAGSISG":{"signed_curve25519:AAAABQ":{"key":"3wItCw+Ps1x4A4Hx88MM6s4yLXJYT5WTwEOiOQLRzQo","signatures":{"@example:localhost":{"ed25519:NATWAGSISG":"wUFCL+lBn3dKqt7DomiNefz88cznNfvUM+1ou7QDWCmhtV3OugnM1vOldQC6wcL+Sni6mOyxh07nqTYnxFAMAA"}}}},"NFOYODETZN":{"signed_curve25519:AAAABQ":{"key":"o58N6afcIfD+vLIj/NEKG16xDGBBm0bInEltzGmk/AA","signatures":{"@example:localhost":{"ed25519:NFOYODETZN":"VYA8+P5axweIHMPETW8hds6AYdozfs6byHwV/g04UmmJayViJu8MBPdmrW5E93Zfhxtgrf78y8BrxS2WW0+UDw"}}}},"NKYXFHUYWE":{"signed_curve25519:AAAABQ":{"key":"XAj2MOH7RIOlfgqkjPsNWS9CxUIh49yUC1bNl59oXxU","signatures":{"@example:localhost":{"ed25519:NKYXFHUYWE":"vMVRtXO20nmd7sK4OEpbAk/fNqxPy1YBpZpaxEDSBtszAcXrEC3b89U237FGJvSQCYgdcYdP1+pRGPcey0TjCg"}}}},"NLWICQEGVA":{"signed_curve25519:AAAABQ":{"key":"igMZya3UYfUWW7UD3ywXhiYlY7YucTxK/EuubQ8wvnQ","signatures":{"@example:localhost":{"ed25519:NLWICQEGVA":"t+vgNIrhCcl1O6H8oJy47pDwzQtqQq4yoy9+n7N9DdL6e9SlhfFXeaev9anjLUBpsJbHOrakw0jKgtPFEWApCg"}}}},"NMEOKLUWNV":{"signed_curve25519:AAAABQ":{"key":"+tWr41BirmesfifQiN/aLTibUyYuWyLCxh94IUMqk2E","signatures":{"@example:localhost":{"ed25519:NMEOKLUWNV":"W6Xw3qZGTQkWPmbkantW12DaF/xERhgdLgIgKpPP/AyoMSMb9QMYbOVPu1k1HnC8ne6usI6OVArB+G3a57bnAg"}}}},"NXGUGXMPQX":{"signed_curve25519:AAAABQ":{"key":"KjO8TWg0SeWQK6EP3PU+lNt/VGpeLOrsdBdMY0SWYxI","signatures":{"@example:localhost":{"ed25519:NXGUGXMPQX":"A58uyovkFugwM0jlth1baDnQlAcADpXgctRedd6dYnuJRbdEsBohizrneHcwCJl03ZP7dgge2d1VDeTwhAspBw"}}}},"OAVYDZNHPK":{"signed_curve25519:AAAABQ":{"key":"XxtK/9qnhuI4EdB5NX8jbf1py0olHhU8R67IzaKR2X0","signatures":{"@example:localhost":{"ed25519:OAVYDZNHPK":"STg4ahB+5Kaxqh/LWr3RcrNJjo6RV8chRrkrQEnCk6euHXPMrH6FzpZZfqSYZWJTjk1qvtKEiYsE1OG8wyWyCg"}}}},"OAXXWDJTWT":{"signed_curve25519:AAAABQ":{"key":"GgNmjyBlfwB2zSi7zbO0xYX5YGstCA3kGeD7xvdBjnA","signatures":{"@example:localhost":{"ed25519:OAXXWDJTWT":"5eOMyEVvJZrJdgARL295Pvg/KG3cPqRf5x3o8gFLrZZ5FI6XzHYRAhmJX/JgdktovhtvfhBerBcl/VDOZR1ODQ"}}}},"OBFHLVDNMU":{"signed_curve25519:AAAABQ":{"key":"1fdMPzmpAjAwGCJkSJQm6cHueLOWVB1FP7KyCgNnj28","signatures":{"@example:localhost":{"ed25519:OBFHLVDNMU":"LcuZBb+pkoM2gOZ6FeVXBaIAk4SHHCiti+BBjcnXwBYIz8ujqiFUN46jIGyPgMeqc3PTB+S4YxpQoAmE3bd2Bg"}}}},"OJBSRLPEIR":{"signed_curve25519:AAAABQ":{"key":"mi6gyEO1RGT1LW4ncMsEulRJjADvl862tyFDBGiLQ0I","signatures":{"@example:localhost":{"ed25519:OJBSRLPEIR":"CB3t9RAHaC3cx2HorunazS6qIQ4iW6/xUoRk+MCOGDfpzCi5B/yd52AQQzKriLbAAag/676JgeQQa9trjP6TDw"}}}},"OOIGEAIKXR":{"signed_curve25519:AAAABQ":{"key":"PbTR9BL/uzEdBa2a+FSAukPe0DbhaQ1B79q6NSuh6GU","signatures":{"@example:localhost":{"ed25519:OOIGEAIKXR":"/KVD7+PxY0CXUA9ME24PNRLFRIumS/uBVhpz6QACxUGee7w2ErDSRotOoqsLf45BvE8cufOmoLfnTDeDPVxwBQ"}}}},"OOJRSPOHZE":{"signed_curve25519:AAAABQ":{"key":"0RhHNv1NpFtifL/jgFTwGQLHdeWLWTThh7K2l9/3Iik","signatures":{"@example:localhost":{"ed25519:OOJRSPOHZE":"lZd7by0GVrFqQIwoVg3LeC95Cc5e9Jeq6wzHojyRNdlYqrggk6ZdADeoJIQLE/S4+zddiXtOY2cbuouCX4jqAg"}}}},"OOWGKJKCAL":{"signed_curve25519:AAAABQ":{"key":"Tuqx8OYyF2zovDEtXL3Vs76MqKk53YRPwc25Rt/0JHI","signatures":{"@example:localhost":{"ed25519:OOWGKJKCAL":"r/WJJTnqWgch4qXIszqKINKXg8Nt8FNrVD65zNaMBBMc0Ijyr1PI9uQ/l1ob5CSLFq6AghGM2BQ6Ii/8eJ/FAA"}}}},"OQUMZGQBZC":{"signed_curve25519:AAAABQ":{"key":"3SC3CYb6asP/0/uMT6IDAmzJfAgnpsbaZAmEQBsJ+Uc","signatures":{"@example:localhost":{"ed25519:OQUMZGQBZC":"hYfJVAwPzSBRONyTK7N+nuwrKzfFYGbkOCKkp4XeEpLfpp8QLpbpuyXtX3ZnixZ579veMsBBSmneIpbYQdI7Ag"}}}},"PCWYNGUAAB":{"signed_curve25519:AAAABQ":{"key":"dGzuxckv84idCdXr6pPrVmpDfEt7YQfssvp4GKiGUnY","signatures":{"@example:localhost":{"ed25519:PCWYNGUAAB":"4hj9MxeXRGcF7I941CWY+8dawPaXLYA57lwMJ5TV62jeQrxGgm/7yQHSdenwdbYIhuvs9oD1wbP+t8n6HRuCCg"}}}},"PFXZAUEJSR":{"signed_curve25519:AAAAAw":{"key":"C6nKhK1Wr7IxWjsbs7akxAGBvcH/Rmx547xnP5+zGCQ","signatures":{"@example:localhost":{"ed25519:PFXZAUEJSR":"lSwwfnCBCLC2bA8Q05uqJq2k03NFrCu2fIik1DEKRhG0BdJmAZOvCpKDpWANN7BkU9YPLsgPZzF5V8alihDFDg"}}}},"PIRRYJJPEE":{"signed_curve25519:AAAABQ":{"key":"getZl6nYQJy4eUwyX3Mpdj0GtZUNpRH1IVqxBjYj0Sc","signatures":{"@example:localhost":{"ed25519:PIRRYJJPEE":"lMiOsoLCjtVgiIZPL6FtjA+ZUcohXaJVXXBDosLCzRzt8GiNtrVKgfBSWLp6+nBFMDHAJDgNRi2g9wyAoOjHDA"}}}},"PITUXWBZKW":{"signed_curve25519:AAAABQ":{"key":"Vy66LQ4mdNqnRGS9PfbUEZBBwMFZXaQROkY+7G1DNh8","signatures":{"@example:localhost":{"ed25519:PITUXWBZKW":"LzEde1/0bQbmMc35jxeuWsVR54RenM/QagnRm7yDVZwwwjDWiK8N+w+8ZOBhp2hbebl0vCuja2k2sv6wGaR0Dw"}}}},"PLKUNRVDEA":{"signed_curve25519:AAAABQ":{"key":"rvviVyDH4f/oWyGA6gxNjq04aw0wcKYwBNboL/youAA","signatures":{"@example:localhost":{"ed25519:PLKUNRVDEA":"pQqvm2m4DAetw0pQO6zh9Eml6zv3Hb+uketW6rag0DXVHaCc26jOsa9w5QyzIAoThs1VRzIShrV7HTtITh+YBg"}}}},"PMTFYTFGTD":{"signed_curve25519:AAAAAw":{"key":"EWTpwhcQmMHfyJhg+nlU7NLYrGrcxZ2U5AHVFfepg2A","signatures":{"@example:localhost":{"ed25519:PMTFYTFGTD":"IY6r6cm1FouDPzcIK/FGs3ZJRTldPyE9vTgss3TPb1enVQDObwaoeci/YXdhBLD/3UmFTlpfmrDFPwZOSvGcDw"}}}},"POEMMCBEMR":{"signed_curve25519:AAAABQ":{"key":"OIzB2zd1+agcQJvRS6KUsndzBi4pEj5pnxpzYPEcVlg","signatures":{"@example:localhost":{"ed25519:POEMMCBEMR":"LPCe18RY0NOqocPDDIOW8npLsinH9V31zwqnevGOjAZwUd4DI95xbqFQ2oyf0zdCBZT2hA6A0md9m6vj8wKiAQ"}}}},"PPHATICKBQ":{"signed_curve25519:AAAABQ":{"key":"GwDTTkGb+5lA/nIuQFSLP/DhcCIqZGKVW+ivVcTdYz4","signatures":{"@example:localhost":{"ed25519:PPHATICKBQ":"swjm0Q5aLiKmOdXfOHQV03v64UVurX1cxWEQx6pkIgN4GcrM0uj2OkJ8KlIokDBTKUrDFiNvkVKSgeQGDSpfDg"}}}},"PTJUYANNPX":{"signed_curve25519:AAAABQ":{"key":"mKOGTrZ2/ByL5F3YkF5T2ilLTeELdQqwY6nKRYkjiH8","signatures":{"@example:localhost":{"ed25519:PTJUYANNPX":"YsVgrAv6OrO4ju5tJOHbS6Zi6Syyn2AklnqYTQ7hqdE1V7rJIEMIn79vJnNfYm9IWzZ3cgVlRs6+q3DybymNAA"}}}},"PVSCUNMZPC":{"signed_curve25519:AAAABQ":{"key":"4cfqHlyFJrustJMMLMoMIXFFzppvkJj7IOb7p7skfiY","signatures":{"@example:localhost":{"ed25519:PVSCUNMZPC":"SrCmBSBZxyEViE3qDiYIpie/k40N9PJiDolwW05rjQYKrETTBPCJq4rHBgu8lJuOsuaDnoTOT+lpyd/v6uWbDQ"}}}},"PYKAGIYQNL":{"signed_curve25519:AAAABQ":{"key":"mqekWemvWR5RT+o2uLy91HYw8qqtpDBzfHWaHiH1PDA","signatures":{"@example:localhost":{"ed25519:PYKAGIYQNL":"NR5NCIMoPuXSEhlUDjsP9UnBCh/FJ+LeDPPE0aOaoM+1mBYFezaCWtDVfi6OftSHBECAM3R6KaYH70fhCxcbAA"}}}},"QEVCPMBWQX":{"signed_curve25519:AAAABQ":{"key":"NOLqrPubBokQcWYtzI/lc3SsQzr/6FP6zFUo2/cAQGk","signatures":{"@example:localhost":{"ed25519:QEVCPMBWQX":"QAHKj1grBgcI0cCwgrXlLbZSndibdGI7UkVRWBa5UzfzFEYeWKTYYwkSMRGZNecRSjLmVTHDDGEN3PeKHMO8Cw"}}}},"QGBSWWBGRL":{"signed_curve25519:AAAABQ":{"key":"zC89+w+d2IMeDVpuDBBvxSbbitEX+bn0wWkx2xDH2XU","signatures":{"@example:localhost":{"ed25519:QGBSWWBGRL":"KFVht65sBVukCeh0/vGxZ7HbrudbsXWXUDNeIQr/b9DmXd1w6cAhVtc4WGJXLYSp8pcYjxkL1BrqXBIHNfgLDg"}}}},"QWHZAEXBJB":{"signed_curve25519:AAAABQ":{"key":"pd+Hg1O3fnsQWpl3/G7fNBBopO1ldYsNR5PJjc7tbmE","signatures":{"@example:localhost":{"ed25519:QWHZAEXBJB":"dnSodBcZiIas0b/hxWKQMgMSdMsORZLmcx2a6dzKp1zxtGAab6Jn1cOx7G7j1P0QG7ZJIMcjH4cFV+5g2AO+BA"}}}},"RDRBMAITSM":{"signed_curve25519:AAAABQ":{"key":"wg3kZ2R8X50VEl5U4sCXeMA4pgBK3Zzhj0Gy14hgAQs","signatures":{"@example:localhost":{"ed25519:RDRBMAITSM":"BEeEnEN/IPUPF7Om+sKVNqHqJgUiU0t0n70FpDUuPNL2asFTuGawIRDrUGsNGJBhQK7dI3hRFTC+q9Seem7nDQ"}}}},"REGDZMINHE":{"signed_curve25519:AAAABQ":{"key":"spP/9TVeRUiwsx7srT/X8cAzxGOhn3lhJBmwtyPfc1Y","signatures":{"@example:localhost":{"ed25519:REGDZMINHE":"tpN7Efa+8KzrXLYT0wpOdIXoxXe5KpgElWz99mxSYIC7zf5Hivez60VUWGwQ9nqXWlao7vsgJBjv1dkarIPMAg"}}}},"RKMGIKJYLD":{"signed_curve25519:AAAABQ":{"key":"WXZacNrPQ3anivmmVkMgO4NXqvuTCrHKGJa+L3GIyCM","signatures":{"@example:localhost":{"ed25519:RKMGIKJYLD":"abljyBMvI5vZhkAAwd6u3IKfTbT05/GZddLjufpL12ScybIyCOneVAm8bD3qqUzSHsXkKP12VEJRBovyCmb1Aw"}}}},"RMFBNJEHOU":{"signed_curve25519:AAAABQ":{"key":"DMGtNTLxGtBG5h39lAJD07Crawq5QQMHSSj5YDp3zXk","signatures":{"@example:localhost":{"ed25519:RMFBNJEHOU":"2SKPf2tlbAWWo/7dybPP/xaYjyVsIvaNgJyzqlWOANqOkL+2nanfrhdyIaAg53SOGcNnTz5YWYmrmVy0VbCWBw"}}}},"RNCCPGZUFA":{"signed_curve25519:AAAAAw":{"key":"IhVaRjse0bZG/+6n1yPY6ncz8Uc0CHib72Ls9hrxBFo","signatures":{"@example:localhost":{"ed25519:RNCCPGZUFA":"rGwEDQixUhQdAEXFx34D6YoOK0zL0lHoTkYxory+cW563jj38+Gy+HuCQ/7xGNg081+hgb/sCMy3gvjmA85QCA"}}}},"RQIKNNRLWT":{"signed_curve25519:AAAABQ":{"key":"+C1abhNI53RuyewxlKnmeQ5LGINpjN0zzpGQKwsR/n0","signatures":{"@example:localhost":{"ed25519:RQIKNNRLWT":"K0S3Hb+HtxhZAKn/mNN+unfx5z6yhOJlmNCFAADCxoip3gEnv1ZKNfye0a1OdeW5m6EwYgFS7Gk0PjpxcuKsDA"}}}},"SFJLADLVLN":{"signed_curve25519:AAAABQ":{"key":"mLPBefUN5dtdwxTSX/RZQ6L7cWLhrQ9JbILoQb/8xVo","signatures":{"@example:localhost":{"ed25519:SFJLADLVLN":"1a5ENQ08Y3tzwo0bY0tihY7q09gFICuTLjfIcN7C/3v6x+zT2QEMymlAMzLm+cjJaIfs01jLyP1vnSQn5mJaBw"}}}},"SFKYKWBWOS":{"signed_curve25519:AAAABQ":{"key":"xtGqXvZJCky4TOW77p4nYeBAmcmCdXwyGrzkQDTSRmw","signatures":{"@example:localhost":{"ed25519:SFKYKWBWOS":"mduwl0FThUlKhT7oW0shPDH8YRDGL3ORSStp0nT3azzb/RtV5Ndj4be7jvOnGxCPCsmiSQ8fe3igaUUE7UHCBQ"}}}},"SFQMEHNZZS":{"signed_curve25519:AAAABQ":{"key":"X3YZD0f3Hh/VsLoQBN7q/D3VmmeZhn/Ctpgi9XWpj1U","signatures":{"@example:localhost":{"ed25519:SFQMEHNZZS":"Od+MLIeXuTPev6tLuK80BVQaIzN84Xm8GrmOb7qJlc04xXdPxrGed6L3RKHEeHADLbcZUvnoOO3+5DOq4ofBAw"}}}},"SJJONGRGGH":{"signed_curve25519:AAAABQ":{"key":"nBLmKUOx9eVq3QnP20B+4dAM74Y8ZYwC+CXGMC0hayw","signatures":{"@example:localhost":{"ed25519:SJJONGRGGH":"Q1a7j8Uvio+RALpVyHLa1ajC28NekDETHGymIgZGH44eK+UBxdXO6SBH4qDTE80zVuG2vEBdpW6+A6+mwdzfAw"}}}},"SJMFYPCVTT":{"signed_curve25519:AAAABQ":{"key":"IS1G2+ma34zs5WsUch2xpLw1I07fzlfxTzqpvwt3Llc","signatures":{"@example:localhost":{"ed25519:SJMFYPCVTT":"UGua/56SkG3whnGUw1cEnoPylmVhBWJVNSY/pVGegxFkYuF3joblIiH1JIkUHr5Yh2aDr3j1EzYnp18eH1BxDQ"}}}},"SLMEYJPPRU":{"signed_curve25519:AAAABQ":{"key":"EXzN4RHRgQiINQCsBP1SOv+VolPL+rHBaftuBsJw93A","signatures":{"@example:localhost":{"ed25519:SLMEYJPPRU":"zDCeiWUvy1gG8lyAb6IpI2+ipj+uBU5Y8Bb8KKorw9aFigKMGvwYTK4OhvSeNrsa+WQeqjZAXh0nNtTwKdKmCA"}}}},"SPQBMGZYIV":{"signed_curve25519:AAAABQ":{"key":"AQyiIz6RGeftx2bKckeeqZjKmPBWPRta1BEb38Y38GU","signatures":{"@example:localhost":{"ed25519:SPQBMGZYIV":"ukScLq/GQrjYwKytzwI4YcZ+fVUEf0I/rvy//VP7dP/cWIVOMktOCrm4JB3fpn8lCmf7yxbkJu5i1er4ebt3Dw"}}}},"SRLQGLPZOH":{"signed_curve25519:AAAABQ":{"key":"LquIiMAZnx4TkQwf76iDrkdtsJ62QPnhwKxWmteslTs","signatures":{"@example:localhost":{"ed25519:SRLQGLPZOH":"xkt69nBhv4M1/NLrbOWiSW6q6rnT/N+Yxk04O3F1d43yulpJh30aA/HIRQNSo4nD2IIg6fulvpNF88149aVJAQ"}}}},"SRWZNGFQQK":{"signed_curve25519:AAAABQ":{"key":"RppHoXv8KOEg0pMsHN2fYnfZHjLFB1HfU/Vr9TJFrW8","signatures":{"@example:localhost":{"ed25519:SRWZNGFQQK":"QfUY6mIZAPH1WuG4FXjOcK3nb5E4H2BGLp71SyqAyeSIxhW9X7+6UnvPdAJIKrzqsS0zPiT7GtNPmh7gW49TBQ"}}}},"SUQWYILHRZ":{"signed_curve25519:AAAAAw":{"key":"R6lNl5jRxhioTdrNJnx5clkR2k51ldV3B0h5jX+5JC4","signatures":{"@example:localhost":{"ed25519:SUQWYILHRZ":"aOLQ0jPUvjTmD0X7tsRPlNBBpnf3KednMC6O1ILHFKAe7npstBbmVthtrc3Pa9jPJ6d/cimEj7Xupj/DvaJGBg"}}}},"SWBGZLVCMH":{"signed_curve25519:AAAAAw":{"key":"tNo9xIeKKbOQVVsCML7sbW3qeIHzSIxjZxBWtUmhbhs","signatures":{"@example:localhost":{"ed25519:SWBGZLVCMH":"Uvwx9OVpB6w0D37u69vK+MOtVy00OzfhTgcYHPHhioHZIEBCWWrmKOXcKV6C66m33JvqUMRBUfsJkQ8yMYlYCA"}}}},"SZVTBGJGBL":{"signed_curve25519:AAAAAw":{"key":"FUT/CqpFfwrHVGS5ruqH0c+PNGqD5POv9s+394gSWmU","signatures":{"@example:localhost":{"ed25519:SZVTBGJGBL":"GI1t0IPwanIEwfj0qK+RxgARB3fY4MJRlIJxkMA4YM91RxKT1wqVKpem1HCRMvqbxlFFBAuLI6tZF7YD9mZ7AQ"}}}},"TCOYAZRGZK":{"signed_curve25519:AAAABQ":{"key":"KOz9ucpAnKBA++zPswsXkohuh0m7z/BaEVKUuJw1Vno","signatures":{"@example:localhost":{"ed25519:TCOYAZRGZK":"uq0CFVJerfkBzE4beMUpsXpeim8CmDlu1zNvPDkGFJvlUYIpq3TPqj/HI/fNfviEs9oYwlZ5nN5/9Ey06kubDA"}}}},"TDQKXBKSKG":{"signed_curve25519:AAAABA":{"key":"4FM24OsPJgaZF6iLW61bZxT9/9ykfEyYrFEfJm15Am8","signatures":{"@example:localhost":{"ed25519:TDQKXBKSKG":"an66kGmbzaJmwze+enZbGQwYRrQUgwjAQW/as6SaOI4qZ/+0PViLyo/3SX9ulIZQdtdZuRSPV1V0ogI+/wGGDg"}}}},"TXOCPFNJLZ":{"signed_curve25519:AAAABQ":{"key":"KN+JqOuGBrYlYvzEbbVacFqk4LIknUrMRpZynXpLekY","signatures":{"@example:localhost":{"ed25519:TXOCPFNJLZ":"QB5PNrI5+gnjEHWxtHC9Na4+0SHGNVYZPiNnXcmKhlQ9XQpGWRq1i0K6/axcmLxeIl70hjZ9ieCOnrbYzqaYBQ"}}}},"TXWZDGLUCI":{"signed_curve25519:AAAABQ":{"key":"QSJuspIfKbxt135IFRs8NZzy4X/LWHolIMrAzFM9B3s","signatures":{"@example:localhost":{"ed25519:TXWZDGLUCI":"a338MAD59U2FPzuLiSXcb/Q7B1dE8b4TL53DZUXrNehJjlUkTiqmDWfGDLOAq7PnsDCFXtjy6Y0XSJfrfwz1Aw"}}}},"TYVVHABYWC":{"signed_curve25519:AAAABQ":{"key":"ayDn1US9YUCrtLPDhQraPdu/Dqum0wD/OrhRukvxEig","signatures":{"@example:localhost":{"ed25519:TYVVHABYWC":"7amVLtIyaRWbo2MZoPlQY8iiiHP7SLA3TaWcxfvA4BwFOlGckNEcLsLMCFWXOh8eW9q/syOztO0UIoPiR2pxDg"}}}},"TYVXUYCJYC":{"signed_curve25519:AAAABQ":{"key":"RBQ2YXiSVaDLS6AdXcUsdvSf2Kl6S+c+6WoJHLSKHRY","signatures":{"@example:localhost":{"ed25519:TYVXUYCJYC":"eUb6G1dDN65gl1HFzyIVrjQrwvaTixJWdKb0fBXovdTnQiiEKs2PuPyRCH8LU3UngB6e24q2L9uA7JF5Dt7TCw"}}}},"UJFFDLXBFG":{"signed_curve25519:AAAABQ":{"key":"KHyV9f0VFN2U39NpKD0AAfgf+5JPWH0rguIpHeLWQTA","signatures":{"@example:localhost":{"ed25519:UJFFDLXBFG":"Od/8j/CHvOAkSzNWDv3vERk0BQYvPloHDyojC+ohVvsafhKSJEuM+jIU7lxQHtqo0Rkp1AsmO0P2vDcbnQx4AA"}}}},"ULJMVHVAOG":{"signed_curve25519:AAAABQ":{"key":"y3dwcVbLHeVa5Rd43nPqfKlqHQEF4KMAThSDgM/YDSA","signatures":{"@example:localhost":{"ed25519:ULJMVHVAOG":"n6NA3X/WHtMPyArLcpJjnl+t0TXvq7B845/9pJFE3kZQjZ9thIwQVV1qUIs3EvdjdqoU5BsMPxFFD4jxWqi0Ag"}}}},"ULRVAILNPW":{"signed_curve25519:AAAABQ":{"key":"zwy6uSf6UWD0cXXmzktB0dO2f24Cq55DfPStS8I2CVQ","signatures":{"@example:localhost":{"ed25519:ULRVAILNPW":"gs/OnCJx8EBQrOxzi/nGpKWd8wPss8lbAyVifEYI79SkZEUieIqRcOdo9OOg1yM89mPFJRG9uwO2uD9lEe88AQ"}}}},"UNOULJXOXX":{"signed_curve25519:AAAABQ":{"key":"oMvdhZCoHj6Dxe67uY9gIm2mnbVAAMi6NNF5yfPEM3Q","signatures":{"@example:localhost":{"ed25519:UNOULJXOXX":"J4QUjCgohmDVlCwf39U//aqeBF1Z89SPpajZkhKWG3bU8Neuuj6cSRNEjxVsREw58VJyTZbOq3EK6BZ9gMNsCQ"}}}},"UPMCUPQRDH":{"signed_curve25519:AAAABQ":{"key":"PWgUmtktUgIUmSNRdfvMKTdonTZSeiIyoEOpwlioWA4","signatures":{"@example:localhost":{"ed25519:UPMCUPQRDH":"xuSDWBaKrpXNvP2PQ1FVHG2pHjjAG1FqltitvUWLcJVPLvjDAlEhL4XQudYjx3I8zbvVIYtPSue63lLZGlxhCQ"}}}},"UPSICJSJXA":{"signed_curve25519:AAAABQ":{"key":"uArB2L11//UuHLvFxMeDrHEjZPQih8HA5LX3LdeaWkE","signatures":{"@example:localhost":{"ed25519:UPSICJSJXA":"nvgdFFWR0P+yTjtW8afOqURMpEst3NfNX16jl2vdsir9pyhXvvyGOjmclDYxvlFQp5fKO1kWnUSb1qXgYDMYDQ"}}}},"UTVPFWOSFH":{"signed_curve25519:AAAABQ":{"key":"KBJi8THRGfIge2/DpB/CCPzcykDYE8ICaEEFmjxaQHM","signatures":{"@example:localhost":{"ed25519:UTVPFWOSFH":"im50KkQkf1vt5XWAPoqnAbhY4gvHSeTJiJgwCzL/OM4Di/YYmdGbrfSW4g4lz4oERLlQrQLs4QCN97DYArXZAA"}}}},"UWKQEPYTKT":{"signed_curve25519:AAAABQ":{"key":"HYdlZiD4ezrg6J9R3jyQTSun+7g6g0wUUQH6N3iNYkc","signatures":{"@example:localhost":{"ed25519:UWKQEPYTKT":"BTR/ZpJh8J25+oP84Q/0FfhMGJaZysuU+y9f2QOest2GIr8X5K0ePiLgBPFeHEBd99aYbtpzMJgVU7YHowS7DQ"}}}},"UYIIXHSTHI":{"signed_curve25519:AAAABQ":{"key":"RB8Rg94m/XOw7aajfhplTJbjGqIMG3vovnWVl7zUjGY","signatures":{"@example:localhost":{"ed25519:UYIIXHSTHI":"+bnWYVUL5xVqtPYGcCYKvkHae2K9njyOXy+IJA7i/TlQ2f//LdE2tClM0jeVeOZEsunBBc8OBj6JV2h2BBpmDA"}}}},"UYIUDLVJWP":{"signed_curve25519:AAAABQ":{"key":"btIdnh5VcFLXEn02Rercxhu++Zs3s1dPLXmGy1gj5zQ","signatures":{"@example:localhost":{"ed25519:UYIUDLVJWP":"lksUHpn87mQYJ5a94LKvHTkV7smfrg82MnlwuCozf3nLuxO46qwOQtEkmZPAabcJHbRQ5rdi8T/H38ov8BzMAg"}}}},"VEGPLVOEVA":{"signed_curve25519:AAAABQ":{"key":"F5Ftz9qLxmZmWDEdD7r352Kn9R4NL+acuch7soAIdjI","signatures":{"@example:localhost":{"ed25519:VEGPLVOEVA":"o5fxPEKcFiqd4fhhri7fr2xy6kLQmPgHnXoiS7Get2wZSxxrDTU96wVo3McJagD2/u1gd+NoqVpL8EUCV88UAw"}}}},"VJLILRHZUW":{"signed_curve25519:AAAABQ":{"key":"2IujXgo0ok0G508s4ToK5tZ6JuwVBGRTZHUPrT5hDkk","signatures":{"@example:localhost":{"ed25519:VJLILRHZUW":"9a2sK2tLY1MvobVp2yrBPhd0miKMu5AFwOYfsZogBO73c7dy+JHZQ/JGegzBp6K9iHPA6dL66wYm2UVtAANGAQ"}}}},"VKUYMBNZQQ":{"signed_curve25519:AAAABQ":{"key":"fdO42BEwP0Xzn2PIin+vuldPwMheySw9iK7tjHLMFyY","signatures":{"@example:localhost":{"ed25519:VKUYMBNZQQ":"z29JbKgyztcsxwhMKw9nYj77k9zY3QqyWQT0Pys75AC015qtEICyn/sbbhGCxfPyqsKm7+Ltvm1OqSybQrU6Ag"}}}},"VRSCQXSSNQ":{"signed_curve25519:AAAABQ":{"key":"djXakT2j688707Od7RoIHjqEZI2FneCr8or2rRYj5FQ","signatures":{"@example:localhost":{"ed25519:VRSCQXSSNQ":"GtSYeL+tkOGPipShCyVNQY9tmg1HJ1BIvpUqhF+M6p6xbWJWQSv6N7qKM0mTrU8nvbly8CiYG7fcMrq29S0NCw"}}}},"VXTRVBKMJB":{"signed_curve25519:AAAABQ":{"key":"kuXok8lJ2zwa4kSi89FT/7Pooa3t4qTrub8Ordy4uTA","signatures":{"@example:localhost":{"ed25519:VXTRVBKMJB":"jY9/JnJ5cv1YWvyhYt2IgifreS9MBLcw74/juVwo7K1C7P2vuseotHV9f6JdPouzZSc3iKZak+gigkvJAPyHAA"}}}},"WBXWCWRWFI":{"signed_curve25519:AAAABQ":{"key":"FLneOCkNi6NST/O5jlF5Fn3dWgZ9pnWr3HC++Z1t+ig","signatures":{"@example:localhost":{"ed25519:WBXWCWRWFI":"kvFyMgpkq9aevA2vlDOmMPEBJ3p6mJFOhq3oI4CPqQoJ3ulVb7XV8r/5qHclnCpIJPK4mZJ8HlA942vW9N/MDQ"}}}},"WINACUTKQK":{"signed_curve25519:AAAABQ":{"key":"YY1iW2zaqy22FnuQnDXiHl25bpLk45fkv2A9tHzjzFg","signatures":{"@example:localhost":{"ed25519:WINACUTKQK":"Hge/EXnK6N7WHaQS7fKI7Sl9GRWwv8ZQBWPd36qH5MeSIc0Q94eUhusok6ta+62OBf4nzJkhEtDUqwDV0iWgDA"}}}},"WNHNFCTQDF":{"signed_curve25519:AAAABQ":{"key":"30NcSoAJE2tAVu4JPf2a98KpRyWJ4E423ho/ZV5klBg","signatures":{"@example:localhost":{"ed25519:WNHNFCTQDF":"L3MXSX9/aud3uU7jWGlyuuyHabXWyM/pO0vsO0ITO0KlKHP6irA6oM2YE+Tfz7tjPpu8AH+R7Q384Z//2JRoDA"}}}},"WUFSXGMGDC":{"signed_curve25519:AAAABQ":{"key":"kNtjFE8rBDZc8DodzBqtsBtES5wfyNCq1BeMGSJ8hSw","signatures":{"@example:localhost":{"ed25519:WUFSXGMGDC":"RTqYH/awDSocgz0IcapT4MN1BafNrbOhs/eWgiK/jGk8NcABaHwBRmiinJPEAm8r5hymI2r2OZbDziNsjMjQDg"}}}},"WWFJHBNUVS":{"signed_curve25519:AAAABQ":{"key":"pnHgn0Jaq6DvR28Vivs9kMXCD7xtlgFA4NYvnEgo80E","signatures":{"@example:localhost":{"ed25519:WWFJHBNUVS":"dbwjnSEr3kPvqMQKtmitxzmTUNoDkG88OeNta3uoKOngNKRbpeccoDe8pVwUJcnVf06W1XZyGBWfc/4IhFEoCw"}}}},"WYEWNGNQLY":{"signed_curve25519:AAAABQ":{"key":"m+LxWZViRuTGO1sP9YoeMf9H0qaIHMQmg0bnhxu23Dw","signatures":{"@example:localhost":{"ed25519:WYEWNGNQLY":"H5R8rmv1JQ4xownu0jO1dgBzFG3mrTc77p8Sqfdd0driKs2yiZQxcOmUjjQLgV5CTkjNQaQD13ooIv/dmFy1Ag"}}}},"WZAEFAVVYB":{"signed_curve25519:AAAABQ":{"key":"u+wyAfIvMOOy50g3KK2Vj3edH7SrBB9lVPZBHLWII38","signatures":{"@example:localhost":{"ed25519:WZAEFAVVYB":"9DRXWbZ8AkkgfHmEB+PKhgZiUrZQWKu6Sud+z8X1TWWuoLXUMq5z7fe8M7y2XGt5b1hu2zEGc54nTvnVEqT9Dw"}}}},"XDGOZRFUAX":{"signed_curve25519:AAAABQ":{"key":"y68SYUbWvJnyUi546cr8eun3YYSvumv/GM7swY203CE","signatures":{"@example:localhost":{"ed25519:XDGOZRFUAX":"pKq+SXQkE+8uvL1fXUCUU/Ipz1VDZry60H1U1mJAywTVSc0TA6G4toZd/nVeU1cmYLDqrUgKIxyWeb9t3Jh+DQ"}}}},"XJNSUWGBNH":{"signed_curve25519:AAAABQ":{"key":"1CH8UzLh/spbZAmrm6hZ87VGvlyoLfrsvI2+q1AgbCw","signatures":{"@example:localhost":{"ed25519:XJNSUWGBNH":"U7vgPxdDNsNm8CXmGKuLWH0xAowa7G6W44md75xXFCj0LCz2Mzw/+VA67b6AcXloKI3NUeypgNJOcvhbPa2PBw"}}}},"XOWLHHFSWM":{"signed_curve25519:AAAAOg":{"key":"nL33vdK1f9IhVipN9oUUzjUhIL0+rGwBOA+dCkknoic","signatures":{"@example:localhost":{"ed25519:XOWLHHFSWM":"V5PMnT3zgkvHLxo+P1wH1XFwaiCt37GvE1VyltYkIsv9xbrihH24gYTgQG+oktZgH9PZArg5x0/VGcdA6qqhCg"}}}},"XVGSJAYERR":{"signed_curve25519:AAAABQ":{"key":"xVW9NhaaLKbdO23WZCtuyBrIpKJqC91Z70xeBDSSJWY","signatures":{"@example:localhost":{"ed25519:XVGSJAYERR":"z+BGFh+zfyjDnOg3yEmUe05PxicRrtEQPcf6WxA8EP7XvLLcbhROyGKftvxhQ3xupAbFNPz2I6ErgIUHhR3ZCA"}}}},"XYMAAFPCXM":{"signed_curve25519:AAAABQ":{"key":"kR+9jLf0UfGemfpEsebR4pZbJxg3uwrbYgOaotjWhh0","signatures":{"@example:localhost":{"ed25519:XYMAAFPCXM":"9tgu3/EDmsbCZJRPng95Ew4cou1aeuYgo4sKXmHHvH9RRgxRoBG2Qxp42LQqUf5JbRoaLgexjDvbrNQaPOEGDA"}}}},"YEETQDERLH":{"signed_curve25519:AAAABQ":{"key":"bNgXd1nPdHv36xBLJz2kSWtmQfOKo3J4YmGO9ZCejwg","signatures":{"@example:localhost":{"ed25519:YEETQDERLH":"RS8sI3k+g1uwu/91KRiG1dvaq1YFQWYPQGAZtqtJL0Zg/wbTFV1N8exTGEo4OxCi45uTJ3r3yK2/har0yodhBw"}}}},"YGMINGOBMN":{"signed_curve25519:AAAABQ":{"key":"eoQwGbDbtzH9guNz5kt+P4y0wD2DG61I7eW3ukYQpkw","signatures":{"@example:localhost":{"ed25519:YGMINGOBMN":"jirRu8NPtHG96cAM29hMwrUZUh9mi0un9Fm8vMTyALm0FDTsJYx8hJiY2rYGtH3gF48W4zcLWwJa9KZ/1aSeBw"}}}},"YLSFRBNBIQ":{"signed_curve25519:AAAABQ":{"key":"wq8ScYQ33p868VizuV3BR3PHtUwaPB8YGi3jzGCgdSY","signatures":{"@example:localhost":{"ed25519:YLSFRBNBIQ":"cT5BnUKOJzD95jIjXGq1n2Qt3xKhRjlJeUe4cUNkduQc7+2+t14cBsiGIsZJRZzogE3Ut/8O6WZP9f1EvBgPAg"}}}},"YMSRVAICJW":{"signed_curve25519:AAAABQ":{"key":"C8vbpciQBiM9jh5x4nY10hc3MY4WyLLJ6da/d0KYnBQ","signatures":{"@example:localhost":{"ed25519:YMSRVAICJW":"8LyCHwYxlhIRf+0Iilvbmu9NgkvkvO7dHpLO+ipBOjtRTgpkDYw+L0x6L+T+tieiqr/51+Y/vDI7OYWtxUv7BQ"}}}},"YPRSATMMOG":{"signed_curve25519:AAAABQ":{"key":"59oiAPEIGNCd6rJVLrtD21K+7y9jRj3XFJK9yjG9sWE","signatures":{"@example:localhost":{"ed25519:YPRSATMMOG":"rNYSNNIlagNBoSAujk0i2o8YdLoSMw5evu+FAE9YFmnJoV9OK9dKC7CXKdHFOnm8NM+hmMloPFgyVkFvB1iOBA"}}}},"YPSHAVNOAF":{"signed_curve25519:AAAABQ":{"key":"7KCLKyTLrOcjDJ2Q73VPipZLo4zLnpoKfN5GY9eh+mw","signatures":{"@example:localhost":{"ed25519:YPSHAVNOAF":"AJ4A5GOM3yD4GHfegaFMecObjjS78TEaO/S3WfJTjT0zCcomy8LYtdjPLmg/jB4Ph9LLQuEB+UOmYexO3CRoCg"}}}},"ZCKUKLKSTF":{"signed_curve25519:AAAABQ":{"key":"xRN+INH//ipFSVS7Nbb1Q/qQ12Ty8O4v1wG8UrAQo2I","signatures":{"@example:localhost":{"ed25519:ZCKUKLKSTF":"ZYyjyN4CIOSp+t21oBoED85UB2sM3+xxNDQ0MrJZnwvh4nHCQJk3v0VBGQ8XWtquU1/nJR1vl4++C1Omoa1lBg"}}}},"ZCOMPAXRXZ":{"signed_curve25519:AAAABQ":{"key":"VcdhjR4vbU43zUpYE9rNRO2lm8tb0H2ezboxvRF3iHU","signatures":{"@example:localhost":{"ed25519:ZCOMPAXRXZ":"7TYpEa+iUwH4dHFEHU6/qc0G8fFVv3D4/fRKo57O8e9yo+CDunutMC20azFJiXijjMUnexqvhlSu3lCINXFnCw"}}}},"ZDHFMSACDV":{"signed_curve25519:AAAABQ":{"key":"0aFaVokTl1WnqVrlbkFU7T1Zx9yw2zv9q75RZgoR8SI","signatures":{"@example:localhost":{"ed25519:ZDHFMSACDV":"VcERdTNlYwwZfCGi02cnNUfB2KE9immPa8HNX9nuwd1tdRsAusxL2tgI8nJQTMaDEUiuu3E1KseRc1wMSGiIDQ"}}}},"ZLSGHJACJW":{"signed_curve25519:AAAABQ":{"key":"Nfv0q06oElGow107VfASK2F9cqxGisYB8Xw9qCbSfBk","signatures":{"@example:localhost":{"ed25519:ZLSGHJACJW":"dRacsgbd1A1ppOkQHWSJgR5fCPnnd3qDJdb6Wv4yplg3N0D4ii//8nePmxT9/MrKSDV/VCMLPrDEMdossOlCCg"}}}},"ZMKDSVIKPT":{"signed_curve25519:AAAABQ":{"key":"tiFh7Ogyw8NzpR5RfMI7mhLUcNMVACgS5BGc/fouJhA","signatures":{"@example:localhost":{"ed25519:ZMKDSVIKPT":"dO4tYN0DzyRmAujbvo7HjrwNvH8nQEGwRz6jnhFb+xKErohppTk3R7A0l3Wong1upfAtkcMkmQzxpkJsX6PxBQ"}}}}}},"failures":{}}@@ -0,0 +1 @@
1
+{"device_keys":{"@example:localhost":{"AFGUOBTZWM":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"AFGUOBTZWM","keys":{"curve25519:AFGUOBTZWM":"boYjDpaC+7NkECQEeMh5dC+I1+AfriX0VXG2UV7EUQo","ed25519:AFGUOBTZWM":"NayrMQ33ObqMRqz6R9GosmHdT6HQ6b/RX/3QlZ2yiec"},"signatures":{"@example:localhost":{"ed25519:AFGUOBTZWM":"RoSWvru1jj6fs2arnTedWsyIyBmKHMdOu7r9gDi0BZ61h9SbCK2zLXzuJ9ZFLao2VvA0yEd7CASCmDHDLYpXCA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"ARCIQGAOXH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"ARCIQGAOXH","keys":{"curve25519:ARCIQGAOXH":"eZiwiJbwTF/UQvNZBMLJT+R1iMKrrlCGHLQ//YkOMgw","ed25519:ARCIQGAOXH":"Lw1PF6meijJuWKzMm1COAilTL9at0Tkvmn3JFk7XpaQ"},"signatures":{"@example:localhost":{"ed25519:ARCIQGAOXH":"RfBgWjBdCTOLfi0/v98pCMpsJycOtEeiZEaKmOB4VKQGZjKcKVmC+cH/uBRou8DXof7zXkrvmDHQuymO5tkBCQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"AYUJPHPSAC":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"AYUJPHPSAC","keys":{"curve25519:AYUJPHPSAC":"2DQ0pJMvsf2Yg9UkoZlWybJyX+fBdC+uhqwggrjDF1A","ed25519:AYUJPHPSAC":"oomqAvpzV+inhi2LQ6+dhAtigTfYTArWxXSoYTgEpDA"},"signatures":{"@example:localhost":{"ed25519:AYUJPHPSAC":"mmUmLmAdNeuj7hngHWbKJqDA+PzsPRYsnz1JoBRDI5oFvFiaPiihQ4ZTB6FZUHath+6qPxPH8lcsT6uDmuXsCg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"AZWYEFDSDX":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"AZWYEFDSDX","keys":{"curve25519:AZWYEFDSDX":"Klonyu0Zuit4W4Z2/EPHRXR16cEGA81j2vdOvBhaUE4","ed25519:AZWYEFDSDX":"F6KHwaNS/DitsYIkwZps6mRR7CUZ5m5dwJ4sPyP7Aa0"},"signatures":{"@example:localhost":{"ed25519:AZWYEFDSDX":"472rltS4MLkM3Scqo0n2fDYTHozlKxVdrVz7lcqtJd8I7vqEh40xjUtefXqV9GkI40oG1vuqqYh7B/efT7efDw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"BBGXWJCGEV":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"BBGXWJCGEV","keys":{"curve25519:BBGXWJCGEV":"od5C7iceI1GcXrByZzW0ocAPfrsa59YE6VwFPkttx1Q","ed25519:BBGXWJCGEV":"J9fWumdvwQwk2wtNPg2DJdQXESWzy7Zs8R/4TPG80Hw"},"signatures":{"@example:localhost":{"ed25519:BBGXWJCGEV":"RFhmBPQYCxIvtOFhGiAPd23lKWvdB2YMy99vVCaEn9PfTco0W00ufVOodNMPUiz0VvlWm6/F++oXRSRGKDKeAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"BNPGUGDFAE":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"BNPGUGDFAE","keys":{"curve25519:BNPGUGDFAE":"29DDwMuYC3IqUty4GDYW2ticNPc+xb2R+veB7gi0oj8","ed25519:BNPGUGDFAE":"DYR48IbyDDbpjs4QtO4uGZnZXABCMqBkYwEkDJwDHwc"},"signatures":{"@example:localhost":{"ed25519:BNPGUGDFAE":"DeOhR+IRRIe9Ccx3orNnSmcdpNfCW2eXr4/0IEAdlDUvSltGHIBulkM5HwFhunVtMF6lhSZCwbHo+mwTZDUwAw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"BNYQQWUMXO":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"BNYQQWUMXO","keys":{"curve25519:BNYQQWUMXO":"xfgbLIC5WAl1OIkpOzoxpCe8FsRDT6nch7NQsOb15nc","ed25519:BNYQQWUMXO":"2/5LWJMow5zhJqakV88SIc7q/1pa8fmkfgAzx72w9G4"},"signatures":{"@example:localhost":{"ed25519:BNYQQWUMXO":"kTwMrbsLJJM/uFGOj/oqlCaRuw7i9p/6eGrTlXjo8UJMCFAetoyWzoMcF35vSe4S6FTx8RJmqX6rM7ep53MHDQ","ed25519:0C8lCBxrvrv/O7BQfsKnkYogHZX3zAgw3RfJuyiq210":"RakIF9XWAb5y85z5oIGJoozvhYK2Wr/351vp6Lz878hyOrkLo6m9757GSv3AsvUN3sYvnmC8avARQ+6y9DRdDg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"Weechat Matrix"}},"BZKAGPQUAB":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"BZKAGPQUAB","keys":{"curve25519:BZKAGPQUAB":"/X2pLyOrh+9E80qA0Mq1DUY2+pHy7u17PWvixe+P3zw","ed25519:BZKAGPQUAB":"g7W5UERuaIURUrUI0f+aZubJ3tbjPSro9i1n6DX9bzw"},"signatures":{"@example:localhost":{"ed25519:BZKAGPQUAB":"6PS+4OinvDs2OQ4Qycfxj2Mq30KWMvd0uMdz1ycFzJdP+RBhXQnJr2ngV5y5C/kP7E0kelf3jlfDTesnOhbRDw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"CCECSKBEDH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"CCECSKBEDH","keys":{"curve25519:CCECSKBEDH":"QsRFFHs1HF/orwqieQKltHlDDsXW02GrdH0Pp0HDBlA","ed25519:CCECSKBEDH":"p0S9tLw21whnI/XswMmee6k0cmCSu53mFLuxODrvVOE"},"signatures":{"@example:localhost":{"ed25519:CCECSKBEDH":"ReTwQxutab0T/a1CfvX5fegg84pv9xwt0NiHPsgUI81NaK1BeYwX7JXmR1J34s/6+hwylwWQ19iZ8E//FxFYDw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"CEVBXZPTZI":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"CEVBXZPTZI","keys":{"curve25519:CEVBXZPTZI":"iuk223YnZJ3Kx4W6RYP785H+/vqELpxojsXJpOr+YwQ","ed25519:CEVBXZPTZI":"N3FC36pYdI1tEv1p6BUOD2KiTEwQxy2b4KFpg/5suew"},"signatures":{"@example:localhost":{"ed25519:CEVBXZPTZI":"eo9HiXEsNPC97K/ymnu6IWY6Xm9T/etWwAzlQNYjdKfDDxIW0qbrisUk5LWTKXEk+dEfLcJEEbHKDvweXRFzDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"CEVLRMVPBD":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"CEVLRMVPBD","keys":{"curve25519:CEVLRMVPBD":"fiD62YZpgcTlIqV4NHPm2vdf+LqDSjzi9Ak2I0BHxBE","ed25519:CEVLRMVPBD":"hTzdy04JUjVveH2m5x7Fhs4MNNuBaunO9kRJ5aEI9tA"},"signatures":{"@example:localhost":{"ed25519:CEVLRMVPBD":"Zeibp6v+SI0UmRWXJNz44ZQvF6R5vgRG/1AnZAnnC60gBB8tJc4F6O1UguMZLjyarlEzUgLEDDq5HSBevTYxAw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"CHWHHLVNRU":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"CHWHHLVNRU","keys":{"curve25519:CHWHHLVNRU":"LQIt7ZpiwStQa+hyPS//iY7CLy8ne2FwL+RswXLM2DM","ed25519:CHWHHLVNRU":"zl6V/o9EMfZnyDYJhhIbo0Aryg97UIs8Gsbh586j/nk"},"signatures":{"@example:localhost":{"ed25519:CHWHHLVNRU":"8UDfQrc3b4fJ3LSmmcIH0+noQLHucUQOr1ksCepZwZsTjPzREVY48txsE+qSnK1+hMfMiCAb/NjVFNI/OZhoBw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"COTJRBEJRK":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"COTJRBEJRK","keys":{"curve25519:COTJRBEJRK":"ytUYh86ZdyJh0OThUOphKW0Eo3baMOzyXja/jBjE3GE","ed25519:COTJRBEJRK":"aCmB8hWjMkw9Zx2jpV5d3mMxiTONirf2m3TNcbr/eaU"},"signatures":{"@example:localhost":{"ed25519:COTJRBEJRK":"nJN9NrRd3uMsLoPix3OHnPK4BukR8uug8smv9htUUvlhAeJ2PLf62Zbvzn59LoiZZ0NGxfU3svCdSp/qV9F+AA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"COZKBAJDSL":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"COZKBAJDSL","keys":{"curve25519:COZKBAJDSL":"O/EwY8A74RZkuwRW5UZT2ibslBkBbYiWhx6FB0RrZls","ed25519:COZKBAJDSL":"B6eH5/uoRFaJqoAALQvhOM3ey9s4GNqspJ8z6/VvXPY"},"signatures":{"@example:localhost":{"ed25519:COZKBAJDSL":"cMe38Jibhq2d15g8JFL5qQXteNpjWlHyFMSfwub1U0niNrYMYArwiz15w8Nm3wYfnEl37pLFumvzBYJJaa5SCQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"CPLENDMCJZ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"CPLENDMCJZ","keys":{"curve25519:CPLENDMCJZ":"y6PpQHyk3RB/XCtoyzOibPU3tuI3g0aVp2vIqQHh2U4","ed25519:CPLENDMCJZ":"F6KFxLxokfvx674wfHh2ZSUrQEG6HXduTv/8FM5aWy8"},"signatures":{"@example:localhost":{"ed25519:CPLENDMCJZ":"REio0WOK+O6GRMBjF6DWtj0ZhpYzKhT5QJm9CLkvUMQ7thU1Z6sMmSZWHwI8ZefU8r6f2MyCS2yIDYFMFG0eAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"CQSGOHRFJE":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"CQSGOHRFJE","keys":{"curve25519:CQSGOHRFJE":"Ng7TyX6FnBg/bsDAy2AJral/QOWE2geQIDUZ1LcyxXY","ed25519:CQSGOHRFJE":"Ic/8cSsie1Sy+AzJWKC59LK0YXFtxt8gbr85FSfHMbo"},"signatures":{"@example:localhost":{"ed25519:CQSGOHRFJE":"iQmXBmZyHzuF8K3fw49z6Z1VWUz1oxlUQQK6fdefXjTuQFaZvz/cllbObZQxz0KmBCLT3GYvwmG6+WJ7ybqjDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"CRYYTUURSR":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"CRYYTUURSR","keys":{"curve25519:CRYYTUURSR":"xWUASbZV35lgdhtFmH1AatJf8L2XxJ8NiWdMabd2l1Q","ed25519:CRYYTUURSR":"fq7baDLZYlsP0EwZESMQ2qa6kf4sEW4HH/SsQCll/JA"},"signatures":{"@example:localhost":{"ed25519:CRYYTUURSR":"FBA24IHX3sI3U4wLU/m3G206qNPAOBxEYN91zIgRRvNCwb3eCIUBB/oSu4wA0h1B72UL1kA23YYvm9JTih7VCw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"CXLMFOVYUX":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"CXLMFOVYUX","keys":{"curve25519:CXLMFOVYUX":"1A1HW57+1nh1hI3hzJ0WnV0A2cMWJTaBVu8uUWTRkTo","ed25519:CXLMFOVYUX":"eRdPcOA/bUiGq3jpIXy4bpJ5IbhDrD+/rIJYaljpESg"},"signatures":{"@example:localhost":{"ed25519:CXLMFOVYUX":"0R65WgKhxgpM07HiCvHbi1LcjTqtdr0uBUYX2yEzTrctuowJVGUgFOBPExCtye3El1RRx1F/nkeM6EQD5w6uCQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"DDMJJSUUSH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"DDMJJSUUSH","keys":{"curve25519:DDMJJSUUSH":"TK3bSkdn4jJ4xYK0uV1CUc07RRLoRKGxRZrb5fmYqUo","ed25519:DDMJJSUUSH":"337BfZ+gkdawTHAdBV4bY0b4fov9Broh3YwdEhOkd5o"},"signatures":{"@example:localhost":{"ed25519:DDMJJSUUSH":"TFlYWK7c2tXiAMaZLRLAvdso4YumTdqHHesM67oJCi+rqE0y0MzPcrQydQtH4LHFy4prdMb6VziyYTcjIf0yAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"DEFPMZXZCM":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"DEFPMZXZCM","keys":{"curve25519:DEFPMZXZCM":"Gvymv2j/h5YL1fWIoJaNPtU1wEfqZsGyzOgom9Q1/24","ed25519:DEFPMZXZCM":"a1iB8jI1F1XHDdWZdmgIsd2XLBOCDF4PEtNkCs1gMFk"},"signatures":{"@example:localhost":{"ed25519:DEFPMZXZCM":"a2U3D5BhPLqmIlOb7mv7qa2Tbv29ziolZIkb2A3AIfjmAMnFVlkAww7O1rzZIlEtlR1VDwIaNWowy0/syFgsAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"DHJPFSVBXZ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"DHJPFSVBXZ","keys":{"curve25519:DHJPFSVBXZ":"G/RjulKuWkDV5lpH3DPaAVvkAdUK75g9zXjGA9iBelM","ed25519:DHJPFSVBXZ":"h4hvg3wwLbsMv87auSOTMxuR80gSk0U5TUqEj3wlPMk"},"signatures":{"@example:localhost":{"ed25519:DHJPFSVBXZ":"uITMLXzrgUgF52XbUH5yop2d24ZvkEGLb4y5itE/HU2j18KKnNon8l2pMcOHzsVetqAPiOia255rPAjYLGJTDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk-wasm"}},"DKJOMBOOJT":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"DKJOMBOOJT","keys":{"curve25519:DKJOMBOOJT":"HUMtEoPxWB6EW0Gja4xJWeOKk/JITMzR+faXUsT/gDk","ed25519:DKJOMBOOJT":"VRg3483UtvJK9s3Guv788lBAb5FaEOSYykLnzhZNaOA"},"signatures":{"@example:localhost":{"ed25519:DKJOMBOOJT":"eQFmD6RgZggilfddD7Hd4QEhe+Am15wQAZiy6vJ2puchNTLcTGXRptkK59kx3P+XzyqikYGPCiNqqM7QMiVsAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"DKTFRSRHCO":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"DKTFRSRHCO","keys":{"curve25519:DKTFRSRHCO":"/xhNEY9jYuw8l++H/aHbPUEOTCvJjVLBFuJoKcbxm2Y","ed25519:DKTFRSRHCO":"1EXshkm6VaX+C7/BlpPFTy5p8M+grIgA890xjYLy6W0"},"signatures":{"@example:localhost":{"ed25519:DKTFRSRHCO":"FAOYgeL8YMcXmrXE8po9MkX7bPdmMCcssvHBMZNmgyU5j6J7jRvyJuiGys3uA0Dabk6HhMLnyNm+G3MR9MH/DA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"DTFJXETAZD":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"DTFJXETAZD","keys":{"curve25519:DTFJXETAZD":"abhyVz8dtYfBEcXMOX001paq86q0qqHhCkwgkVM3aWw","ed25519:DTFJXETAZD":"Wbskd0C7Ww6UJlPq+C7dnAAId7RhouaCqTeuNSlRiI0"},"signatures":{"@example:localhost":{"ed25519:DTFJXETAZD":"nUWyvpYq4kEzTbR1+WkCCjF3BgM7tWzEpSjudaf1UPVKyk1kXQ6SnQz6xJSLaBxuZsq7UAjKJhbd8mb+7PdPBA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"EDECYDJGSA":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"EDECYDJGSA","keys":{"curve25519:EDECYDJGSA":"gc53TigwtxOxVliLM4OFv/RsPlJItIZk3NR2OKpLxn4","ed25519:EDECYDJGSA":"EtlBtNqPlzItQ2iagN1AxqGFUMMtI07IFa4N5wXzmmA"},"signatures":{"@example:localhost":{"ed25519:EDECYDJGSA":"mwLjtrqIy/cSK1UzgMWFqBLV74pC7LD8RMt47Bk+ku6JjfAA92prUGzUGz7HZVDLVgYjlYBbSPELavyFRwUECA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"EFZNCETFCJ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"EFZNCETFCJ","keys":{"curve25519:EFZNCETFCJ":"cmC1n3kWUYrItLQ92tNYYRi5avMG5WTqyJ5nCjN5L2M","ed25519:EFZNCETFCJ":"GlRC/vpaxc6Vhf9EoB11p7TmdSplhB96XIcW6OOL+iY"},"signatures":{"@example:localhost":{"ed25519:EFZNCETFCJ":"EOfk9Jue5Wu1W5F3n6VnhvT34nvQ7q404utuXahaRj2EpMKuBaUNWFP6xUprrHoIOxmR1yZxv9SNDXOr3/lKDw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"EVMLDDWANA":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"EVMLDDWANA","keys":{"curve25519:EVMLDDWANA":"k8iZGYLn/aC0aHEzIFwUKgHBBTb7ekDZW/3ob+HK/lc","ed25519:EVMLDDWANA":"9ttPUG9PsM5voQC2VCRvXiWzXxFPn9HtClg5VX07lLQ"},"signatures":{"@example:localhost":{"ed25519:EVMLDDWANA":"DqE4vzO3vIyYXDDYfc+Xb8+gZ2z6GLveSeKq+5AtOhmE4Dfu344wlTutoxHn0xRVEew1nMdBQXVs9YqBWH7rBw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"FAQIGNOZEI":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"FAQIGNOZEI","keys":{"curve25519:FAQIGNOZEI":"xP7f4EbPkOWYD4hIFgsWDtlv5INujXEjhEc2tlC1VXc","ed25519:FAQIGNOZEI":"FsQPPSa9SaV6ppuI4zr063hcPvojq5SUUhXha5qKszU"},"signatures":{"@example:localhost":{"ed25519:FAQIGNOZEI":"6Kcc2Vgp2yScVKfbnIFOpWzoVtu4PZe1ESj8iTNcwiXXSgVnJEy6OggX9Z5Q7W+uiPQCRdAqTvzqBZHLomMBDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"FEEBAUWTGH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"FEEBAUWTGH","keys":{"curve25519:FEEBAUWTGH":"7/bg2vnOdjNkgT5dglrUQTxoCXWOJXYfw2VmVk5hRmc","ed25519:FEEBAUWTGH":"x+zNBfbXadw/DxdC57rtSrpOOBFb9G7VZKh5iA4M9KA"},"signatures":{"@example:localhost":{"ed25519:FEEBAUWTGH":"U+oFU6HlrW/1532A7lf00fKE3JEiR5SVeUKETOa2O39FpEZeTwEZbbMyAoeJrcc9sIHXXOfpWdua+IjBjbDjAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"FLAIGGZDUI":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"FLAIGGZDUI","keys":{"curve25519:FLAIGGZDUI":"9n4/BmU0GxgGBX3odfluCNEXnHaioGKBQ+a6UlNz/2Q","ed25519:FLAIGGZDUI":"QEq1PwjrV0e08nobjzdF6VKI2wdBQSfm1kLoYnRr8Js"},"signatures":{"@example:localhost":{"ed25519:FLAIGGZDUI":"vi5VtcRWq7Cwm0l18Do8sQ2STIVS5Hxu2Io6eajTNCMfR+myssfgqYzsVGCkAnKGt0iogXeIv57XMaSLwA+zBQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"FPPORJYJWZ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"FPPORJYJWZ","keys":{"curve25519:FPPORJYJWZ":"PpfiaBTGPj0mT7GQxvtwk2/aP24O415R2D+R6eLq6TI","ed25519:FPPORJYJWZ":"+WT2w6O8k4WVaccQ6LhCDU60PI8cTVglK6+4ufp8ZiA"},"signatures":{"@example:localhost":{"ed25519:FPPORJYJWZ":"os7QUz7pLeoHYjKhu6LiuNJQ5XY37fTYKfbOTxgjcVnbaJR7nEXmLMuGS3IXTonvWnVJ2xuacuxlWdJ5odl2Bg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"FRZAXXLFNO":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"FRZAXXLFNO","keys":{"curve25519:FRZAXXLFNO":"pvYDoXisb1Esj6/TpcXeSjBDXvIOAUrcK739/JysLSQ","ed25519:FRZAXXLFNO":"9AE1d/pd8lmtN2AXXmSuOSp85zW3WJlk4WB/gjlGRCk"},"signatures":{"@example:localhost":{"ed25519:FRZAXXLFNO":"DI7bIxC6/Ketflx60ne6E/pHP6fPsSMIlrX3KWRcdO57waPw2bGbWK8mP9H5ckTyuw3JvGS8exakv+P/5FwiBA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"GGBGEQJNSJ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"GGBGEQJNSJ","keys":{"curve25519:GGBGEQJNSJ":"chK9JzRYPSj7ThJuE+UYTrMX2BSctWpzItqdvJZ4Gjk","ed25519:GGBGEQJNSJ":"dLq6UtM0Bvky79RjwmeC2xpOmg4mDoOy4ssP79LjH8Q"},"signatures":{"@example:localhost":{"ed25519:GGBGEQJNSJ":"WLluRN6F5qHWBKXBeMPjOEFtCUJERCiNujmyaPSbJgiZy2OWGVEjiTHk5EfOxYEPM5WhfAhHLd32WXOcI8IGBw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"GIOUUFLOLZ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"GIOUUFLOLZ","keys":{"curve25519:GIOUUFLOLZ":"/Vko/8rs4Gs4JbYmpesZCGzjPF/Gqbtue5mNf0jhFV0","ed25519:GIOUUFLOLZ":"29hi3+fwS8HK47BixjLNc3L4mAQAqUrQLsys+1RCGcI"},"signatures":{"@example:localhost":{"ed25519:GIOUUFLOLZ":"fnX3om+9LTySamF0z5Mfhyci3pSTZt+l+fKGy4k9hcjHhUJ6D6279oM3PDkFlErwYgEA/GDblveRYBdpTcPWCA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"GOAKBDPUKJ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"GOAKBDPUKJ","keys":{"curve25519:GOAKBDPUKJ":"TXqlvxJiVBX8vbHi1LR+W7s1HTrIxnJLa5j124Vz6WI","ed25519:GOAKBDPUKJ":"6D9qpzNz4ZKR7Ze6Th+ctihvNl4Drqdrc9SteewAcwQ"},"signatures":{"@example:localhost":{"ed25519:GOAKBDPUKJ":"hy04yRRua2ninf8QQWlA9MfQWxtVKDpTY2zHaxS4jXeoxg3ugdPMmP01CQryFI4v3NI57KT/YCL3uLbXYO3xBA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"GOVWXTWHIQ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"GOVWXTWHIQ","keys":{"curve25519:GOVWXTWHIQ":"N6ls7+U7no431Hf+iDh3H0NAD95CMyT+PedFprAYrUc","ed25519:GOVWXTWHIQ":"5KO4QwxpSNRK/q5QNzLRlxx3q7leum3KC5vLAlW+bd8"},"signatures":{"@example:localhost":{"ed25519:GOVWXTWHIQ":"PrMjYMva8vn7DQz0zV+ai/pP0kiWh/SY81WXLq6Zs/FPaFzjcJcbG9UcOOAAngmSRCDOEXF46u35fsMjW0TmBg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"GSKQTOKLNQ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"GSKQTOKLNQ","keys":{"curve25519:GSKQTOKLNQ":"lgoF1T7Vgb9Tjkj6KerK6WqS0h0jkrmkTqaijT0wZzs","ed25519:GSKQTOKLNQ":"Yk5ims6MWAd/NGOzJViqVQ6egiplEdvZErTnoEBAutY"},"signatures":{"@example:localhost":{"ed25519:GSKQTOKLNQ":"JeuPlg2X2HTtRJppQmOEPMsKgDMXUAX0NOn0bxQhy2lZi/6hgihf8WLMIjaCIGtBTsGu0Vj8IIKsV1TVPXTcBQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"HHQFHSMEYG":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"HHQFHSMEYG","keys":{"curve25519:HHQFHSMEYG":"oxNHYLY8dy8/spgTVduUZz/KlqfL1QFxE1iQvT/6xFw","ed25519:HHQFHSMEYG":"IhUxZjz/JriOgqHJf5Yof1bMTB63gxKZcRP+jwDm4TU"},"signatures":{"@example:localhost":{"ed25519:HHQFHSMEYG":"2RhookUlR24U7hKz+a3P8AUQanysGKXldjjNkq9Qh1enoOh7Y4rpezMVlWqZSETYz6Uj+ESJzszw+N99hbTTCg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"HVAILYUHDN":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"HVAILYUHDN","keys":{"curve25519:HVAILYUHDN":"aPJndwzHmFdVcoCYHnbKLIHv7/gvTtG5bkVM7i8px10","ed25519:HVAILYUHDN":"VPC7L+WFGpqM4JEoscfskWbDmMKNVDDAGKk4UhlQqws"},"signatures":{"@example:localhost":{"ed25519:HVAILYUHDN":"csFD1gHCW2luzKCvDftInifAHsm5656nKolNKame3+657ys2/R6/hWyzCgzcyYvXwl28zk5v/b7e1rWkOKRoCA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"ICPHTICSZV":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"ICPHTICSZV","keys":{"curve25519:ICPHTICSZV":"tGbZEu8gj2tBjPVb9+CBBi1a8fasfewWup+y3aCbA1c","ed25519:ICPHTICSZV":"JNfXcfs2JWTYbvyAygVM9/WI0iWCp+VRJFgu+l9k6Fw"},"signatures":{"@example:localhost":{"ed25519:ICPHTICSZV":"BC7QK+Lw5cods+EkRnL1Qm85vAbUX+GQIRiBDxavuIHe/6GCCNqV07Bj+eGtuij0RiatS34SqqRktEzqeahkCQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"IDZMWJANDA":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"IDZMWJANDA","keys":{"curve25519:IDZMWJANDA":"dEtBXqYG8jUaUQRxYTglImxyrwhxbbE0+Zp9wcGLtgQ","ed25519:IDZMWJANDA":"gLe2JUaCLlNJfVaDjdhVSjML/lhSeiJYs6a27ZtSvaA"},"signatures":{"@example:localhost":{"ed25519:IDZMWJANDA":"1R90dIi+dPTmN0pE9DTa2eVVkRC1jTu5HwpAqdqBw/WBPBvGcquD5xODqbNIWiek0jhLWRj/iIuBGgdRE0yhAg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"IFLWAVYNOG":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"IFLWAVYNOG","keys":{"curve25519:IFLWAVYNOG":"ve+J8V63+tr/aUKM0Arsjh/kkPGTz+7k+wiq8Fkcfic","ed25519:IFLWAVYNOG":"fHkmX5GJjAx6MpcAJkmMNQBUiKAD1A6B5MYkeOG8IwY"},"signatures":{"@example:localhost":{"ed25519:IFLWAVYNOG":"9rK6KhlrBnqid106BWW4nicHqjKNdj3hTdPNEOcr3EFBaUAOJeuW1ggOoSzkmIY9sk7Z4L6NEejqdM74NS05CA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"IKHFOAKJYY":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"IKHFOAKJYY","keys":{"curve25519:IKHFOAKJYY":"MGdliXfcIhZbDpv96xoqE8K8qrP5M9yK40/95b8qMXc","ed25519:IKHFOAKJYY":"VuVczMUP1RgHzVzI8p+js+Xtmm9xGZFvsOhwDyEAJFU"},"signatures":{"@example:localhost":{"ed25519:IKHFOAKJYY":"eMsF163j2U8QrdkjP9CJALZgqgE2h52kDjkDcxbZjLJYDXu/Hi21pw+9YntHDWsRoNatNkyFGDgQOCjDKGaxAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"IKJVWFOXIF":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"IKJVWFOXIF","keys":{"curve25519:IKJVWFOXIF":"GfEiJ2nazgWgHgZOpaFcjSkToVIb3kdtXAz3hvmJGAs","ed25519:IKJVWFOXIF":"TBI04p6Jd/wMUi3yCOMXR4w8A4RVVTGHkyCz3kHtWu4"},"signatures":{"@example:localhost":{"ed25519:IKJVWFOXIF":"g6w+LN82n7Yq3xZKWtSvEdllOQNih+Fy5A5gMsv7aJpXaStybc3WR/viwSMM2Amu+JMEO5ieBk8L4Bg5MkeCDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"JHCACATEDC":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"JHCACATEDC","keys":{"curve25519:JHCACATEDC":"PV7axMHURCK9ruLHAQWUqBQMmPrAfn/5ZmzVXC+uPjw","ed25519:JHCACATEDC":"zuqQJcvF0g2sToJvZB4O25jJ3SPZm2BAitQVobU8Uks"},"signatures":{"@example:localhost":{"ed25519:JHCACATEDC":"dfUytbQC90ZKTZNnK8bc7eLMYucbEdTrS7yl9SU55IJxJgDpwZ0VSLdDq7IRX0BDm4mkSo0cdcBsUn8/r6KJBQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"JKEXZVRELA":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"JKEXZVRELA","keys":{"curve25519:JKEXZVRELA":"IGJdCZnHGGwtqArZDH6W6IUCliRqBRmRIIrJ7xioiDE","ed25519:JKEXZVRELA":"Zo/LfTiPfn9mDRruPr9hcy6SFInecqilWmLIBJEVI/I"},"signatures":{"@example:localhost":{"ed25519:JKEXZVRELA":"y3O0yJassbk/DECg2fMptdRf24NxdjlqTPd+44+uU0nZHm9xTxjq/kHkcQuONQbuvjQUW00RnW3DORzRGFfFDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"JSJZHEGJHQ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"JSJZHEGJHQ","keys":{"curve25519:JSJZHEGJHQ":"BDxVYJ/R91Z2aSzefibP1sYnd19dT+p/s5F28EmpvEE","ed25519:JSJZHEGJHQ":"Kivi/DTNLgt4pJibk55hqPfzDZCd+Z5T5tB8ZBOUpcM"},"signatures":{"@example:localhost":{"ed25519:JSJZHEGJHQ":"7pmAXSVQEYpL8T9eCdo53ykqf9vJTp/XWryHJDVwv9y5k6rQafzKjc0hqNvm1Pj78vVQuNWPUhzTdNscnl4EBg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"JSXCDTJQTQ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"JSXCDTJQTQ","keys":{"curve25519:JSXCDTJQTQ":"KnNMtfqSZ3LhTKTQy3Z+kfr8UzzejfQ02OLEPUIB5SQ","ed25519:JSXCDTJQTQ":"GFfMGVmIyDM4xTcUTYGv8q6gh6xonEzxSFgf81WRJps"},"signatures":{"@example:localhost":{"ed25519:JSXCDTJQTQ":"jgcuMewlfpuGeuQmov9p0ml3lt5ObsJ/NhSwNqxgwQm6nZvgXVb5DrOxCcTRkehdU8uwpbODEPDNEdjW69oPDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"JVUSWHJVVM":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"JVUSWHJVVM","keys":{"curve25519:JVUSWHJVVM":"21N0nwBPQAfefYaHV4uy1ORESMPOQIp+s6uNIBO/JwA","ed25519:JVUSWHJVVM":"PeUOJAE/h2S2PYDV7i3wa5wy+14hoMUKPhj7obcrpMo"},"signatures":{"@example:localhost":{"ed25519:JVUSWHJVVM":"vcbQOooN8fdViUCsEY28TN83/P2uZX152nvu3VvjXfuM7Kp//47SputatcUmX3duVYdImJCWCnsWE7ErMhHNCQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"JXESGIWWOX":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"JXESGIWWOX","keys":{"curve25519:JXESGIWWOX":"YQpHMSD38HUCJr37jhq9+lx6ON2GPnCl3UZ/Id3kwEw","ed25519:JXESGIWWOX":"GiliD6zI9nGLMIPWHl/ds0D+B1r19Efo5FHxTlQY5uE"},"signatures":{"@example:localhost":{"ed25519:JXESGIWWOX":"QAHTpUSESuNCGUFT727QF1kt9nnWHtnu52VtINbI3HMkDYt44IsQ1Fqwvw6Ke3QNL3YGgPOcGewfUCMOEQORCg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"KISRZEPQWM":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"KISRZEPQWM","keys":{"curve25519:KISRZEPQWM":"8YNcRFqrKibx6chUTyy67z3EAxAuZ6pIUHEpmMYiYVY","ed25519:KISRZEPQWM":"B9zO5nilPp3ljUg73hkOLXJSjZKmZCXAfectpdFm0TE"},"signatures":{"@example:localhost":{"ed25519:KISRZEPQWM":"eGKgCTDeLsbV1UrJCG80H70OX9x7gjS85Kgjj594x/jPaIqNjY/2ZEZdR4Xp13vkyPKGdTE5WyJSWJFVdhE3CQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"KKCOTIXYTM":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"KKCOTIXYTM","keys":{"curve25519:KKCOTIXYTM":"2Mzjyexq0m6EBIqs1ZkTQl8SVyKnM79xjosLoE75PDA","ed25519:KKCOTIXYTM":"JiYyYfzi/f8psRI4UalIxMnvA6lLBqYm2+8kx6Q9G3M"},"signatures":{"@example:localhost":{"ed25519:KKCOTIXYTM":"AuQyOfAtcJtD8OUk9KcSFY6mZvkw6ACxwDDsGGVntufra2LvuxNecV6g9l+1FigseTBLL1TaFWAQ/cn1cO1uCA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"KKZJWRYGSG":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"KKZJWRYGSG","keys":{"curve25519:KKZJWRYGSG":"8uoPW4pcSNyXsDLoc8fLjI+zcdqfM1bdjmVGXwB6bgU","ed25519:KKZJWRYGSG":"W2hcZGaZeYnc/aB4vN9Xuow/etzXSZfdiR4SP1S3EvQ"},"signatures":{"@example:localhost":{"ed25519:KKZJWRYGSG":"kuRUQegUWcB9oY22SIgICbxyvtE1CWIkuqpGxNIyKdmk171NJHdgxja+8bDqqRfJqLsnLzO97LpIBFyU2kz5Cw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"KMKRBJXMDJ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"KMKRBJXMDJ","keys":{"curve25519:KMKRBJXMDJ":"NMkgdM1QkaBeX5UQjhNZDqWOOaPTknFr2kbE06QmVkI","ed25519:KMKRBJXMDJ":"F748e0IEt3OIEsgFHiCTCjx/Mw2ZLqtu+0dhCNh74R8"},"signatures":{"@example:localhost":{"ed25519:KMKRBJXMDJ":"lQwuhhJXyj1kWguLwVpzXqA7WG86pPf213urpkuEEIHvaYC+IjobwCK52UeSgVwOT5yZK+rWBrduGmFQCv3kBA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"KTZXWCPEZU":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"KTZXWCPEZU","keys":{"curve25519:KTZXWCPEZU":"D8o2AjEh9Dq6d296FORsHLCuVmJeultGIoDk78VU1xk","ed25519:KTZXWCPEZU":"GR3EnBgrwFvygzfRXhO6oIoXFDPPa0GQGYHBMptO2I0"},"signatures":{"@example:localhost":{"ed25519:KTZXWCPEZU":"GTI2SIX8AbUaNMSAzfTJ8ZXr4HuD1hJoeUG0xpeho0SNKeMemRfPVy9QVXRlaW/tDzxhWWkchmbk+Iy3kOqNDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"LMAUZPCZJE":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"LMAUZPCZJE","keys":{"curve25519:LMAUZPCZJE":"VvrA6rZl1vKuuVWYr2nu9HIo99PIP+sCSMbrISvM6ic","ed25519:LMAUZPCZJE":"FcjySXEpoOXlGKYcVg+7cYcb2NRMROujXfjIH9/HXsc"},"signatures":{"@example:localhost":{"ed25519:LMAUZPCZJE":"l4FW9C1ujsFYq72TkoMqfmQJ4uqme6MYs0oLbZfXifHm7EAmB0oTObtSyYovZKVBC4F3yF2qLU6qB5Dr5W3vDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"Weechat Matrix"}},"LTPSXLWMGZ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"LTPSXLWMGZ","keys":{"curve25519:LTPSXLWMGZ":"5lj6CHAUIoTFRPAByYzTBTH1B9a+PCdcUuES8fH4+Cc","ed25519:LTPSXLWMGZ":"ub3m4bev8bGPAIbOpqQZ7f3mWvcW8gAUg4qKDzob3U8"},"signatures":{"@example:localhost":{"ed25519:LTPSXLWMGZ":"fjpzEsPJZTMw/pXVFpnqST/PqB8X2nqHT/V0UyDeR52guYo1PinriWvN+ziz5ykqrd1KRMtswNxcrl1PyryoDg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"LVWOVGOXME":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"LVWOVGOXME","keys":{"curve25519:LVWOVGOXME":"KMfWKUhnDW1D11hNzATs/Ax1FQRsJxKCWzq0NyGtIiI","ed25519:LVWOVGOXME":"k+NC3L7CBD6fBClcHBrKLOkqCyGNSKhWXiH5Q2STRnA"},"signatures":{"@example:localhost":{"ed25519:LVWOVGOXME":"39Ir5Bttpc5+bQwzLj7rkjm5E5/cp/JTbMJ/t0enj6J5w9MXVBFOUqqM2hpaRaRwILMMpwYbJ8IOGjl0Y/MGAw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"pantalaimon"}},"MJUNZFVNEB":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"MJUNZFVNEB","keys":{"curve25519:MJUNZFVNEB":"iSvsFJXubQlAWK0uX/0wlLd8fmkhF9Yl5ZydjExibzM","ed25519:MJUNZFVNEB":"+VUUfI84aa2EEzje0dxnMu3pZ9pKUHG9qIiyW001+tE"},"signatures":{"@example:localhost":{"ed25519:MJUNZFVNEB":"WE7PcWTU6hG7fiHArsobkFiQ+D4RYIMll8Kv8f5TSeJY/2HBtzA2s8Liv+cD9BYwtmAiOOYH3sALl6QrE+yuDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"MOGWGGXXBZ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"MOGWGGXXBZ","keys":{"curve25519:MOGWGGXXBZ":"np8r9X2lqMycqRgEXykbg0Z8pHU9vUFRVUcf965yCRo","ed25519:MOGWGGXXBZ":"Ax1i0KzQv+sdlU2DQSi2iXmNR5kgT+qIbPammwsBJOY"},"signatures":{"@example:localhost":{"ed25519:MOGWGGXXBZ":"BZbstlXDH46EIHtMcAgAMvSFFVHIce7HTT7JdpZrKLU53jaDKuAOxXeQ8gv3ftSnjHC751/7e18jIb7rG7G9CQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"MPLCYWDUMV":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"MPLCYWDUMV","keys":{"curve25519:MPLCYWDUMV":"0+FCTk+4FHrlzgh1nEUI46Udtw83luLUc5wjxO1yoDM","ed25519:MPLCYWDUMV":"uEBCy0MQXiEQoAYrvrW0CfXzhNcDPPhhr07vc0nNbTs"},"signatures":{"@example:localhost":{"ed25519:MPLCYWDUMV":"Ul+Y+AGhF2cQqwHh7Ox0/MEZ5y7sDdIowsjTRr6SvTC7oVPF6+tn0dMx2vkJr+KYV7L6ocxOyjOIOuS8J2WEDg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"MWFXPINOAO":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"MWFXPINOAO","keys":{"curve25519:MWFXPINOAO":"6zbxEXyLcKzLZmfLuF1Dobnm3ADCyNEPy78LIl0Hh04","ed25519:MWFXPINOAO":"F++g2wR1Nc9Tg8MS0Vt4eJSn0Y9e2TdqorhT01owQLs"},"signatures":{"@example:localhost":{"ed25519:MWFXPINOAO":"xSRpIrdf3XONvsB3nFELqHzhSatSAjinszZtVlFZc2mh/45GYiW6Nxl4wonEic/OGw56w94WFD8mB+XeTywzAw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"MWVTUXDNNM":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"MWVTUXDNNM","keys":{"curve25519:MWVTUXDNNM":"zfjciR/GCcaJ95MhHf1RebrGiNEoBvLgqUVVc9iLGwo","ed25519:MWVTUXDNNM":"TRceeejqTtArjvPlA4jOEsQEb4jR5JhtSqPobM+WFSM"},"signatures":{"@example:localhost":{"ed25519:MWVTUXDNNM":"PPcPuV36pas9ygXg8d2NNJud8mAEmz0B9u7xPsLXYhX0JLa4CRt8q5RXQTlVcVJbeJ/S9vNjnl4uvBViGvqhDg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"MYTNISNDKK":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"MYTNISNDKK","keys":{"curve25519:MYTNISNDKK":"PXTZq1Pglp32Y42GEDW6t04ZxzfOQ0KQQG68yci0l08","ed25519:MYTNISNDKK":"YbevhxHh3SJR0YCWGXaaSe7QTl9KlcZqPBspDNd1GsM"},"signatures":{"@example:localhost":{"ed25519:MYTNISNDKK":"dTGZaD6ZhF2Zs+vIhnWXM7TwdJlqddQiIktkoybQPYgxfeLSwzncTXSVIqESzXhaNe5NJqxS7bTYfAdMOF6IAw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"MZECYDWJFY":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"MZECYDWJFY","keys":{"curve25519:MZECYDWJFY":"auKjVejkjIno48aku83COoTSPx505EAZixyq9FBPxl8","ed25519:MZECYDWJFY":"62bpag8ha91ICj2t4v/glQgO78W+stBxM7q1I5XhyeM"},"signatures":{"@example:localhost":{"ed25519:MZECYDWJFY":"dNWP290Wt7qm8kJp3y0uP2eXPTA0+N8Fx6bBBfKsRKuZRi3izNwRl05TNadqemxnCY6U474cNKe+mwO4zMWxBg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"NATWAGSISG":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"NATWAGSISG","keys":{"curve25519:NATWAGSISG":"Y0npzPT/N8sjwpC4/bBPTrWsTpXfhoiNVMR5YhNI2ww","ed25519:NATWAGSISG":"KDYHNwXH5JJYswMvH/x/FjnXFphX8F+bMc4SW6TOheI"},"signatures":{"@example:localhost":{"ed25519:NATWAGSISG":"czEWN+4eWnoju/jW5AiaYH6vRNvXN8O57Him4hRnSFfyrhzphyOPtV2OpggLeqG4GWCGmYgqJy8QjsxO/tDoDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"NFOYODETZN":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"NFOYODETZN","keys":{"curve25519:NFOYODETZN":"qaQXKBgtmIwEIqP02jNNhGbZ9ebcbE2VHl2/PF0DomQ","ed25519:NFOYODETZN":"4AgIvFW3C7fMUSEeR3ZteKJOGFRKnAUzH42ygF7SEgQ"},"signatures":{"@example:localhost":{"ed25519:NFOYODETZN":"U9Tix4YASYND2yov8EVD77HWPrYhVTHppOCag6OONMcGMEAl23y5gRk29BfnvbIBhs4V3s/lM2j81Ch9imMCAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"NKYXFHUYWE":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"NKYXFHUYWE","keys":{"curve25519:NKYXFHUYWE":"Y4XAaI3o9r2UfjUEOO3mnCXe8BhteuPw5dljj05UxCQ","ed25519:NKYXFHUYWE":"wx6mmOUU5sYnxmRGd2xa7wl0faKEBtWgtJiD80jMJCo"},"signatures":{"@example:localhost":{"ed25519:NKYXFHUYWE":"dCcgkRjbkmThv0KDZ9cu6F+s15gOwE4dhskhHGG6ESv/Fo9FLzwMuwrBVhiKCegNKc4PgLN8FAgyQEYRgifnBg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"NLWICQEGVA":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"NLWICQEGVA","keys":{"curve25519:NLWICQEGVA":"cu6cPSjQ2LbwV/XmaZgp2TyVR42uZbAce/q2L2ZpKHs","ed25519:NLWICQEGVA":"QpRR2lgoFtnQwALJzSH+8n2dt9xgD5Jz7HNkAAhQXmA"},"signatures":{"@example:localhost":{"ed25519:NLWICQEGVA":"b5HNlyNizaycUsY4jd4vN+tcP5snUApcCNOT0TxZNscZgEeNG1mFErTZ2L6UoCXGFnX63zdRMcYfT6uH5P1JCQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"NMEOKLUWNV":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"NMEOKLUWNV","keys":{"curve25519:NMEOKLUWNV":"djM3WnA5JAuBJ4eSioYseMj/0hBurkxLES2QJ020mmU","ed25519:NMEOKLUWNV":"tUqH5H6aXy+aqJhkcHyEZ/S7nIrcnBJtntrlT0WMDqg"},"signatures":{"@example:localhost":{"ed25519:NMEOKLUWNV":"5Y3qiCZ+K8JUPUe3zYc68SeoIcCrjykc7Wj7DGLxuufub4gaD0Ne+1aIWe3p4c/yjkjE+VHHw20EB4YU+Q/1AQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"NXGUGXMPQX":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"NXGUGXMPQX","keys":{"curve25519:NXGUGXMPQX":"4FYtp0bZTAQGPCIKBU5PGt9/MXrG/RHBRtdtExPyiVQ","ed25519:NXGUGXMPQX":"EA/f6o6xxOJ5mikfjXfboK6Hsl9I3BThN2gblBQD5F8"},"signatures":{"@example:localhost":{"ed25519:NXGUGXMPQX":"tHxhjtuXq2KVIZmD2PlFKJK45D5CEkbJxyYd3IG8rRN+L7XQ671a28suIfh19K1fpiUgoCrGyHu8DxiEV5uAAg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"OAVYDZNHPK":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"OAVYDZNHPK","keys":{"curve25519:OAVYDZNHPK":"4LaUTm3tkF2h0/WRVyh7hmBHZsMqYd2vSi38j3bxaV8","ed25519:OAVYDZNHPK":"rSCwye+pueSSk/3YefhYiyg5Qb3/d4ULGx21o5WUQgE"},"signatures":{"@example:localhost":{"ed25519:OAVYDZNHPK":"BExfhXdCuAqEmd/19/uKUZ+M3zHg730Djujngx/DAa3Hw2zN1kI8SDrkQP1VnKcXJH1xmRu+wIDFkDBxsl1/Cw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"OAXXWDJTWT":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"OAXXWDJTWT","keys":{"curve25519:OAXXWDJTWT":"LRAnjevh6cozHocp5P7EO9sS4cFhq2/n5R9p6gsoXXo","ed25519:OAXXWDJTWT":"PvTzNi9HY+2kkuNSOzbCr++X9mymRFdBmpftkApORsI"},"signatures":{"@example:localhost":{"ed25519:OAXXWDJTWT":"GP/2pWtqcim+CMOLaUhC48wvDPDeG1QDSEFCY8h5MOeKPN76z7K/+GK7MLIKAIXfPWfntsmQEgvoVSFEfvcTAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"OBFHLVDNMU":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"OBFHLVDNMU","keys":{"curve25519:OBFHLVDNMU":"q/xSEFZQXfir1WgOi/8NCMrxSrETRtw3Zs9CHZ1g62A","ed25519:OBFHLVDNMU":"WpvUDNyavyAxPgQn9xEBCZRPCSAWrgSfptlMiIk4Vbk"},"signatures":{"@example:localhost":{"ed25519:OBFHLVDNMU":"pFSjECWgNTVSdyrF3amFzeEOotrqhudS+K9H0LHIlgiUBgtIlECR57jeNrTAW9vJTTip+2ON9Q0YP+wnHetVAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"OJBSRLPEIR":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"OJBSRLPEIR","keys":{"curve25519:OJBSRLPEIR":"Sin5ESE2QkO/Zwv831+2FxoRrKhXMCyphDuZeuFWYn8","ed25519:OJBSRLPEIR":"JmE2ftGFfdosr2MHaqrcgFfxpoTyy5iYwojYARPUTSw"},"signatures":{"@example:localhost":{"ed25519:OJBSRLPEIR":"PA8DKQlb6xRby/GTKigCQK9pBTkEbOcTsqDLYB20OZB3CVCPeaD5BBwT73QHW4oJMKPSViW6ai7u1YuIgBU6Cg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"OOIGEAIKXR":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"OOIGEAIKXR","keys":{"curve25519:OOIGEAIKXR":"8AbPTjgj+pOO9mB5cW+Eig0rnOdmahdtjH7J90rK0hU","ed25519:OOIGEAIKXR":"EZWli9hc7E7GJtlpeAJsBbB1mfsqvpOT9JJyHvq8RvY"},"signatures":{"@example:localhost":{"ed25519:OOIGEAIKXR":"CcfGXORlTPQKcG0aB1WS8EtiRwMRLhxS+/G9eYYloHWCx84g58T44YxSG67yTjg1ijB4D5mEwPAN4i6YGYseCw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"OOJRSPOHZE":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"OOJRSPOHZE","keys":{"curve25519:OOJRSPOHZE":"59m/ij2bNAMlbO7fVNHTftl/OPo1luYC5lSYxIXfDX8","ed25519:OOJRSPOHZE":"AuC/o2/DtAa53fAAbefALiqrc64yzgEt+vpmOdixS+Y"},"signatures":{"@example:localhost":{"ed25519:OOJRSPOHZE":"NVUeLpNYymLEXNTzzomvnYNVeprx4Nl8i6NStqe2s/o9qK5kwnbTvT+g0h6+TFnL53ndOxk+qFcMtMETyk+nDw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"OOWGKJKCAL":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"OOWGKJKCAL","keys":{"curve25519:OOWGKJKCAL":"+QvB+KynczhvV3O4/WZPDERqfXp3zEEmkQ7VtM1GrAc","ed25519:OOWGKJKCAL":"KhLZC6lveJyi9qRHlNCrnlG3EFBg331bmoMqO4XzHNU"},"signatures":{"@example:localhost":{"ed25519:OOWGKJKCAL":"+0tBSs5yFkDS+H/gEBMxJk1yDommLubGHAcyJKTKyXf9m3N74rhO2ApTmxJNdbWwt9RFdYhfxTpfxXsPVIyjAg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"OQUMZGQBZC":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"OQUMZGQBZC","keys":{"curve25519:OQUMZGQBZC":"PsSKtdsRIMalKjDyAnzI+TVeP7aB6bZ/+7O36xxdVV4","ed25519:OQUMZGQBZC":"IvqkNWSRTsFIECHVmSLe98CIFg1i2uaTcMFgRn4FKwQ"},"signatures":{"@example:localhost":{"ed25519:OQUMZGQBZC":"BajB5FyBBmkj4lpvXxNQ4rVUEqj+sPQu+IqUpR28lq5XiNjs6WJZ2wqNXXvD8CBIcDQWZQvt6MCTjjvHAmcLDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"PCWYNGUAAB":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"PCWYNGUAAB","keys":{"curve25519:PCWYNGUAAB":"QLDSL7ynIAe9MX46HpknGlakaRIghijAinDj7XZer3w","ed25519:PCWYNGUAAB":"QD1+XWYlDBKGV6IomzNpFtNgj9Ol+AOfxa2txuPxF+s"},"signatures":{"@example:localhost":{"ed25519:PCWYNGUAAB":"5FtJOVoC77Y9fREeK9XFNQRAfsEAHrEZt5Vm9kmOc+vxVyrGtxU6ZmfMC5ZwxGCzKycrQ78pz+sVvySgTdvvAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"PIRRYJJPEE":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"PIRRYJJPEE","keys":{"curve25519:PIRRYJJPEE":"WHVOUDJaIyAt13UQO3DYNq0ZL7+DeFvM1GvGlLDNRSc","ed25519:PIRRYJJPEE":"Vy1tE6d9qx2P87IjFFIiFlzOz1GplSLwJKWO2KrjXvU"},"signatures":{"@example:localhost":{"ed25519:PIRRYJJPEE":"0Kt8IeP/zm1O1Dirw4RY9qo4C6Q3XV4i1UTf63Zj5OgdLBMXA734D6/EEW4qvB/46Bg6mpRFqrDUPCE4BVJpAg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"PITUXWBZKW":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"PITUXWBZKW","keys":{"curve25519:PITUXWBZKW":"65ui70Z3BCEPHwT1ccL0Bo7GWENIrflX3AuUjsXg7ms","ed25519:PITUXWBZKW":"irvwObR9gGCTVaZ8gXiLBsyqI0tglgzk+XFSynKymJ4"},"signatures":{"@example:localhost":{"ed25519:PITUXWBZKW":"ePCdO249s6Y3pNobyEO1Sio/sbAoKkqHWZkEzWr9wcWuRW5zgFYKpaUerpNN/SSYXMFufN1yftvefL+VAWT4Bw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"PLKUNRVDEA":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"PLKUNRVDEA","keys":{"curve25519:PLKUNRVDEA":"+yDO4Iizhel4uELH8KgXiUlHQT1d5pXH0dgSCvqKrz4","ed25519:PLKUNRVDEA":"mx8zet9BnmBo026mx71SPbqMDaTbasgQi2noEnXAh8M"},"signatures":{"@example:localhost":{"ed25519:PLKUNRVDEA":"dej6vgtmcevYZGuc6BMtbOGtQxG+BVXvrz8dEToys8gXGkTRqw7NmaBq3FdOJXhOFdRwm6pMtiJINMDEHFbeAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"POEMMCBEMR":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"POEMMCBEMR","keys":{"curve25519:POEMMCBEMR":"v3gzsAw9ODVo6EREELcIK6Pzb0amxHXxcj8YGn3NfXs","ed25519:POEMMCBEMR":"NDz1EeURyJvc7nVoNIXD/saC3JQxg8au/sZSECZ0aYA"},"signatures":{"@example:localhost":{"ed25519:POEMMCBEMR":"p/pBRtKyryQ/PvghKpuDSM6FpO+DsDKbn8d/jImEacE17nbfmwxIHQGKuAfjbR4g96OG9xDHc1CAm4+lgoBrDw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"PPHATICKBQ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"PPHATICKBQ","keys":{"curve25519:PPHATICKBQ":"i9GHf0K7XB3LdQiN5BwH1QiqfkCMi+1HTxsch74Z4CA","ed25519:PPHATICKBQ":"p/JndNW78P5ooWB9fihpJI/24QOnHOuqHmS0onKu074"},"signatures":{"@example:localhost":{"ed25519:PPHATICKBQ":"tXojlryYW5Kbva/5vllf4CtsPPUHFLl6UhJZeVDXS/ANAFhE3VkNnSClEVc8ZN75BACvjVkWd0iaBJf+psImCA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"PTJUYANNPX":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"PTJUYANNPX","keys":{"curve25519:PTJUYANNPX":"D00NKohz4ZpXSc6yiTaxEsb8n1rqwOBogZzp6VFu8kA","ed25519:PTJUYANNPX":"gjpBq79wOBnewopxoZgkVGgromo1L6r00mthhqotQJw"},"signatures":{"@example:localhost":{"ed25519:PTJUYANNPX":"T528p0/ibl5uc+F9m//3mXZwsrMNOqXJKbBV6TwRLmQsC07VTpxjH5btOKOK0Zd35SA/eXjZXyFQc8Uwwp7vAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"PVSCUNMZPC":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"PVSCUNMZPC","keys":{"curve25519:PVSCUNMZPC":"pIuNOCGcpr/l+VeHRERe1XxOc2wITAUiQ5rs0+MsrDc","ed25519:PVSCUNMZPC":"l8NpVBCzwqJ3b24niw8aQtw+M9x0u8zhRQAhh3tlT/w"},"signatures":{"@example:localhost":{"ed25519:PVSCUNMZPC":"eqEr+/IKgXTuDTOQBdda4QxAbLaFj3JkgWpMIm3v2YPSCzwfNMFZeTFvUb4KqMfoIrKXIlxkzFUsRgzhGajqBA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"PYKAGIYQNL":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"PYKAGIYQNL","keys":{"curve25519:PYKAGIYQNL":"XnwcW34M8ReZ7MXnK9dSzbEUfRJB13/819WTH3FkIXk","ed25519:PYKAGIYQNL":"EEayT/Ecj6aEG2b82q5yxPu7vku0uipbAeQoKibr8Ug"},"signatures":{"@example:localhost":{"ed25519:PYKAGIYQNL":"bTJKR90VxJFatUWqGp45wgNuWfK78JflVkOsaXlGYrcnSWREMryslowouJWPytGk52ua61sLAu/caKJItZFJCw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"QEVCPMBWQX":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"QEVCPMBWQX","keys":{"curve25519:QEVCPMBWQX":"nf+q6BUx7t0LFtTu14qiNGY/GNatoUNVe0O6DKJh80k","ed25519:QEVCPMBWQX":"EPVnZFdhNZCUeyky2Ipm9K23LBaBmXfnR3CyaEkv0UQ"},"signatures":{"@example:localhost":{"ed25519:QEVCPMBWQX":"Ujj0GNLOsDr002fFgTeeulYHmNi4eZHQdCfoXDDKXet9c+POmhwUDJN6sRXvRRChb5Zqo6qt8ux0HBFS94vhAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"QGBSWWBGRL":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"QGBSWWBGRL","keys":{"curve25519:QGBSWWBGRL":"PCPc5qFcKUlDLDvcM1r7kUZtT6UrDg2H1qmZ/D1UUi8","ed25519:QGBSWWBGRL":"hMtBx3rUKlLINfhamPzeoFhfNRzlSAejzLm5R1X1IcE"},"signatures":{"@example:localhost":{"ed25519:QGBSWWBGRL":"0JlD+fwOICXniES3Cx9i8SQQmG1lsnO3x7noHj2K4H1voaMQ9vXQZ2L34kqJinEBf+cEquN8KfGKHWEOVn3oDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"QWHZAEXBJB":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"QWHZAEXBJB","keys":{"curve25519:QWHZAEXBJB":"wid7PTTK9Zx3uYyMILkZCq/mB9wTWsBKoTWG/nlhVlY","ed25519:QWHZAEXBJB":"i0UMwT3mgg/UEKgk+6OzOIcIag7fAleW8irf2TQtNfc"},"signatures":{"@example:localhost":{"ed25519:QWHZAEXBJB":"LW/jRwYS7KZBrX29aLA5uPENqTLlwphqTXDL4RUVTU5uqzyIjXlNtvhywsH706+rsQvsyJYy+2DqN/Cu0cVACg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"RDRBMAITSM":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"RDRBMAITSM","keys":{"curve25519:RDRBMAITSM":"ZQNreVj7slWoJZ2gpbaa5KOeSDUz1yf6Pf5tq6pJMks","ed25519:RDRBMAITSM":"ayGH6/2l5O6FVYZgZsOki9jA9cCj1ZoFkqQJoNmmgj0"},"signatures":{"@example:localhost":{"ed25519:RDRBMAITSM":"duWBvJXaxbHlhOJp79HabqD4q+lOjCxcp9QZZ8iBTZYgw5Pbt/qJn3UKeuw/YYPcnzw0qaZprDXHn8hScWgFAg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"REGDZMINHE":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"REGDZMINHE","keys":{"curve25519:REGDZMINHE":"ZWfWlL5Ey8vPzkmUmUYlTe10iyVlIeF2rnVrMD/Ndlo","ed25519:REGDZMINHE":"M+UzA+WnDHJJJjZ5vPoaMcGQzfgjPZ5SJM1TD/Gi9SY"},"signatures":{"@example:localhost":{"ed25519:REGDZMINHE":"h2AVOTzuDahqWurUobat5NH6lN1OXou+tRyLl8cX2lAtauCU5x01qCwIvjyduznKEQLyfy7r3y2DI+jI5e/NAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"RKMGIKJYLD":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"RKMGIKJYLD","keys":{"curve25519:RKMGIKJYLD":"PRKI9C3TkeF92LrmfoarcTY/fzBbhMwB/wBOVJmcHAY","ed25519:RKMGIKJYLD":"ipzwyIc1drUnOmZG/nmWUE4auE0tZqFLSsw5GZ+y5aU"},"signatures":{"@example:localhost":{"ed25519:RKMGIKJYLD":"9K7p3lU4BiIm4eV73NUTbOoK/P3nM8bnz/EpLwxwp0RszM/+nWKOkrfoP3n8P/eWaIVciq9ixSF3YTxMyAh/Cw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"RMFBNJEHOU":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"RMFBNJEHOU","keys":{"curve25519:RMFBNJEHOU":"zsUYoMLLSiplgkV32AyAErwhD69xOE+JT7mFrsbnmHY","ed25519:RMFBNJEHOU":"v/m9j0uWnTOwn1wfxbrdfFWNhp9BQW/680y3XbhbrD0"},"signatures":{"@example:localhost":{"ed25519:RMFBNJEHOU":"2jTsWC4ogrmyDJdhob0uL+AFC0f7qAvseiVQ0eIrZGg/hnxh79PazfuKnR5Fd6jlBzEcm8hbe6Qd05CMako2Dg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"RQIKNNRLWT":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"RQIKNNRLWT","keys":{"curve25519:RQIKNNRLWT":"xDC3X8ai+1DgfoU0trv+BGths3b4xe0LU6f8ba2gKzk","ed25519:RQIKNNRLWT":"rKDPohS4HbqADhdDUeLmPp8CR3/NSdQdQzarArn/5zY"},"signatures":{"@example:localhost":{"ed25519:RQIKNNRLWT":"zc4GVMmWzpkWrx5OEl6sTC732bzAdtuRE/VyX8BUiQe4msRXAsSR+x9x7O+CaahWotRklbd2+c/kI6Ibc2fOAg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"SFJLADLVLN":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"SFJLADLVLN","keys":{"curve25519:SFJLADLVLN":"0nQgDmqEmh4PgN8C4g1otVdAt68F8znOeMzfkCDssEE","ed25519:SFJLADLVLN":"67py5bURkyMdGeZa2iDc4ze1yAumrY5UEfmG31R/uAs"},"signatures":{"@example:localhost":{"ed25519:SFJLADLVLN":"vWJqxJU3xoGZW51NcCZV255l3AooY5jDUDAEGFFDe7rhuiu77DPrpY0tHt/yQ5qutoxVjh63ueOHMYpQXOqFCA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"SFKYKWBWOS":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"SFKYKWBWOS","keys":{"curve25519:SFKYKWBWOS":"aFb9Wr1FYcQ+FfL2LhhCErUlKinDhDcJgVQRY+OirUM","ed25519:SFKYKWBWOS":"R+q6+srEJSBVt+1qwVDeaqu9pVnKOshPWQL9K7YvbB8"},"signatures":{"@example:localhost":{"ed25519:SFKYKWBWOS":"+w95lf5VJUyZVo7fDQy4AdauhfwwMkFmq6fuiYUzwVaKRCUP1Roxcna9Z0iPIfdos8TineOPkGXjhDgtGMlvBg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"SFQMEHNZZS":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"SFQMEHNZZS","keys":{"curve25519:SFQMEHNZZS":"2/UibVqBRl2sDxN8LET20Fg/LNpZjtcMV5PpMOJyQlo","ed25519:SFQMEHNZZS":"vU4iYmheziw20343W0q/4lNShYV7tzdkcVQnGU5FOzE"},"signatures":{"@example:localhost":{"ed25519:SFQMEHNZZS":"nsQpOaDAfq+KoID9G1Zud3jPXn/DR5not+pJWWk84zm/BJJxJz50kjYv2sEocNC/lVEjnCe5HexBd6yIM4dTAw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"SJJONGRGGH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"SJJONGRGGH","keys":{"curve25519:SJJONGRGGH":"nN/Az1Ev/sPeIDgIYbLEA0vAyTeal2bRoMFzspaKGVs","ed25519:SJJONGRGGH":"6nPJVBIlpRn5DitUZcYXX1sOwlNyGcroVRJgiOd/3tA"},"signatures":{"@example:localhost":{"ed25519:SJJONGRGGH":"Nd/Hwz7J7TR5dXa5HrYL2MAkeRhKhCFr4x4ZNcoI4mGoiLWCmn9k9+xAfYMPL0e/esj4ohEQlZ5875NjXY4gDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"SJMFYPCVTT":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"SJMFYPCVTT","keys":{"curve25519:SJMFYPCVTT":"ARlbk/Ve+50X5qsPnmIjsZoVkofjyCeYpd/jQGSGuhk","ed25519:SJMFYPCVTT":"8+6euGEKcEetrLRRGnIivu3mxGvButWDyx+hi9l0jv0"},"signatures":{"@example:localhost":{"ed25519:SJMFYPCVTT":"MPDaHvCFMbTRTPFIpySzRTmwFNbO94xru9FyfZtqGovgsWJ/rOO/2daiqQySgPdqoG11r7wFY8pjhdNA5+n5BA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"SLMEYJPPRU":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"SLMEYJPPRU","keys":{"curve25519:SLMEYJPPRU":"Kui5pTxxe4r841I/13sCykuMTYJzBW0r91vdg6CQmHw","ed25519:SLMEYJPPRU":"qnU646bmyjz4fTlMPvLHM9WreHaKmF5PRLHskhKY3xM"},"signatures":{"@example:localhost":{"ed25519:SLMEYJPPRU":"O+cVzMw6MjunXvL7TiyXnhxqVVzK01XCemQ9FXnKB8wZ/zcsplBIJW9bs5KMqXXNN6hRzzHbo7DkkP3hS6OLBQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"SPQBMGZYIV":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"SPQBMGZYIV","keys":{"curve25519:SPQBMGZYIV":"AswtHLd3bG/2Rost0kjRo2rQnNE/3qgFmSKxf+fvZHQ","ed25519:SPQBMGZYIV":"ixQEMjrg6KXl3WaQhr4IZYisKplyo952l15KWQ7LTz4"},"signatures":{"@example:localhost":{"ed25519:SPQBMGZYIV":"5QrgrfvpL6TUwzmtuVBU98WY9m5RPQ723L3p1L2PrvevdfY/12D4yGCfWoyd3TZrN96YfS59QRqSUpFpqoUpDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"SRLQGLPZOH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"SRLQGLPZOH","keys":{"curve25519:SRLQGLPZOH":"XzBUXl0MhApEPbTDYNb1V1xbZhNSYWTiH/jXeuHRd3M","ed25519:SRLQGLPZOH":"jdQfsZANV8XHii8VK+7uz0YllJ3W4DL/yrs21h6yis8"},"signatures":{"@example:localhost":{"ed25519:SRLQGLPZOH":"NTi2AdsAHbnxtd3ZZ1RmmLdgJrp9uiQh1Z0F69tzr1Pb2lkts+jU8/LdnvbjCybCAYQd9PFNzYZGRQlfdEnyDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"SRWZNGFQQK":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"SRWZNGFQQK","keys":{"curve25519:SRWZNGFQQK":"FTLIp2uZdze8b3PyG9Q1wn7mXCdyKx5FnzK6S1aZM0c","ed25519:SRWZNGFQQK":"SLgx/wpJlOjVIJed84A/qnsyIRl9WvhfdBrYMvX1UCw"},"signatures":{"@example:localhost":{"ed25519:SRWZNGFQQK":"GHdEvTAmhULs6L/pBLWIIO+44TL0Ubt01LcdWHL3hnYWt15EOq9CXFvY1lJIEysgIxpzbhlYD0FM7jVW95GlCA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"TCOYAZRGZK":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"TCOYAZRGZK","keys":{"curve25519:TCOYAZRGZK":"yHulQUaLolOfA26otau4Dp2Dqg+uNQvjuyLjbqOFczQ","ed25519:TCOYAZRGZK":"ayAReLic8e/56tLgFBAzfOrCspj1W8DKqeRHLUd7/MQ"},"signatures":{"@example:localhost":{"ed25519:TCOYAZRGZK":"u66iDHYT+fOWR4B2KXPJBZzISZqObsRMvYFvGix8agGzdXpBZa9qCOI1021Ckg+ca/NwzhA0q7golmZs7u8BDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"TDQKXBKSKG":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"TDQKXBKSKG","keys":{"curve25519:TDQKXBKSKG":"6m7U378PMMXXCkUt4SGxqx9XLR8+jhk/PHkY8JGSVnQ","ed25519:TDQKXBKSKG":"5KO5tuQG/eLrRCFUi+T1wVEpOn/gjlx0+ssWWQpRAfI"},"signatures":{"@example:localhost":{"ed25519:TDQKXBKSKG":"1c+ivErNSnOJaVMSynTn2GxPDelzU6KsgSejVasbw4L6wlXh14W2NgHtdVrnJ7ZY/H/Duqy1E0MjcqvikquKDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"command bot"}},"TXOCPFNJLZ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"TXOCPFNJLZ","keys":{"curve25519:TXOCPFNJLZ":"DK6tXaqvxOwYPTf+TIKAAEq1mMW1zXHIbpyw/HZpBHU","ed25519:TXOCPFNJLZ":"uJ1cvkajSbXSuT5cnZmCwhyKGdhB4h6yQCsQmjVLTqM"},"signatures":{"@example:localhost":{"ed25519:TXOCPFNJLZ":"FO2vmBqS1kAE0oxOPA5litr+p5To2ROY2xT+MDNvrUffBUKQ/6dwqDA1AUfCY+arMl8EUTxRwE1l4fjqFnIHAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"TXWZDGLUCI":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"TXWZDGLUCI","keys":{"curve25519:TXWZDGLUCI":"7uE3dU9zyU2wi9B3i71ysFXSVpfwoNZodWQ4Ss1DPx8","ed25519:TXWZDGLUCI":"hbtf+kOqJ5GLWwRfueKJCLJPFS1yLHth61fhokNZsro"},"signatures":{"@example:localhost":{"ed25519:TXWZDGLUCI":"f0sKN6k3sKHFtTY+ZoS0JyKqz6i9KZJZlQ9kI24x91Xi/3tbpl7bIpORPgPCL5tRnhfB3K0PKKrMHbITxHwEAg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"Weechat-Matrix-rs"}},"TYVVHABYWC":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"TYVVHABYWC","keys":{"curve25519:TYVVHABYWC":"QJadtohEnfJvXY0IjM7L57I50ksACTI4hp0hYPGLaTg","ed25519:TYVVHABYWC":"jnDmWsOA3wrxchNK4wa4wg885p8cUXHxcgARhq0/6w0"},"signatures":{"@example:localhost":{"ed25519:TYVVHABYWC":"MgJcBu9AfKYF/eta5l8pnx1RLaPSY9YdPvAW7/EY85eC9Df7Vrk7BcI3/RdyMHZzAi0QSgGZX5nkc4Sir2cVAg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"TYVXUYCJYC":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"TYVXUYCJYC","keys":{"curve25519:TYVXUYCJYC":"F9z07wuhtcXvae3bcZ+9ht6vwwrdF7AVKjR5j65pamM","ed25519:TYVXUYCJYC":"N26nx5vuOYXHU6aLI/fEk611nTySPUyyOGHXqy0tkBM"},"signatures":{"@example:localhost":{"ed25519:TYVXUYCJYC":"QpwIIw0pDSumFnPX+CPRyCwqgyBjvpyDhydjF6JFZ79/LpvYqHNrX+wWnmtEWe5aONVVneZQ1QpQWMrwQYrNCQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"UJFFDLXBFG":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"UJFFDLXBFG","keys":{"curve25519:UJFFDLXBFG":"3oSgPfOn1uu1Gb+Mx0Ggv08LyOnTM1jiykT0w9ibdFU","ed25519:UJFFDLXBFG":"qywgWH2hwub2ySjeXMv+Bh2fK3bAHP9i0LCWtFQWx2Q"},"signatures":{"@example:localhost":{"ed25519:UJFFDLXBFG":"R/bx3JlQTtzJRZ2bHEqofHy4ASg3olgCLxbkp937kMw5tJn5QfvX12lrTxz+Km8jO3JZKvIRPUfkZDNoVj7UAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"ULJMVHVAOG":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"ULJMVHVAOG","keys":{"curve25519:ULJMVHVAOG":"A2Q+zMywf9vAEW8duBxp/458I9hb96K2r5NSDCJm1AY","ed25519:ULJMVHVAOG":"NAekP17BRbVYaec7gp/WUJekgu5ey9mNTfL+dhZne74"},"signatures":{"@example:localhost":{"ed25519:ULJMVHVAOG":"wHO5CAK12IGuGu/z9BuvcQnrr7FW3ova5bLE84XBM99dZMnWlad69jKKWUoFonC9guBqEwmMjqwXqJHzTYCFAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"ULRVAILNPW":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"ULRVAILNPW","keys":{"curve25519:ULRVAILNPW":"fl4FJqlz1E6i1lx1p8h7XUH54MiPvhbr8wCXeJI7JBw","ed25519:ULRVAILNPW":"JC2z+kRYg01zt8uH9uNqU3KLOXFuBLGg9m3KNVVrtv0"},"signatures":{"@example:localhost":{"ed25519:ULRVAILNPW":"sIPYMZwjO7cRiqnAuhNNFZyJvE1X5wtI/BoT6pAXdPqwoomxNV9NNWbRjG195QMUKwR+Nt/keE8gXqnH6K5cCw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"UNOULJXOXX":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"UNOULJXOXX","keys":{"curve25519:UNOULJXOXX":"94dOQkf8ENo3hk9cuC3kbOrEdhj8o/W+hI8OwUA9DRI","ed25519:UNOULJXOXX":"6X6kHx9fDcUnd2geSXXDwebIRFMOklVaHnzBR9nA3fA"},"signatures":{"@example:localhost":{"ed25519:UNOULJXOXX":"sZapMjqL0f3djip+Prx1cmKuLaGvdUM2xJFAw231TbX0HAvXDLW/2yPSv5eDfZ2roGTOTBav5VTd3SEbKLRmDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"UPMCUPQRDH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"UPMCUPQRDH","keys":{"curve25519:UPMCUPQRDH":"3+2qfWP/l12nP3an+WquG6wfJ6sxk94WQMN2iN5TuC4","ed25519:UPMCUPQRDH":"KhhOLB3OLocVuR7Dz77Mi27rOdLzsrwrmPzJz17VA64"},"signatures":{"@example:localhost":{"ed25519:UPMCUPQRDH":"EgMnM0MLXkigEvzKacAFFnQd9kURZ2V0dfilinU6lQoWY6Ll1bxY956uTq3NWXTGvET7sztMiC7EuM6RIdJ0Ag"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"UPSICJSJXA":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"UPSICJSJXA","keys":{"curve25519:UPSICJSJXA":"ijSFTbjz9aKDb47iD0X3FbiwH2PgWBILUXw7tpeQqXU","ed25519:UPSICJSJXA":"4tDWYVz9jBcVsUQT9oPFLiX+1VPM8PEW4/zgRAo99Fk"},"signatures":{"@example:localhost":{"ed25519:UPSICJSJXA":"rv2byUNpixrK/827I2tQT2lVzxrVxP5Bie/ORw6QIFPLADDzmBFYtSJh1WBqKuvqToWXROggdynuffKc4vAdBw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"UTVPFWOSFH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"UTVPFWOSFH","keys":{"curve25519:UTVPFWOSFH":"cHISeqOynQHbzrFtF2vOVppG5D+iGQmEEdLo6REKixg","ed25519:UTVPFWOSFH":"CNrg8vho+onWjNd/t4WohAuBANps2C4N/zB/w7ISpSk"},"signatures":{"@example:localhost":{"ed25519:UTVPFWOSFH":"eH7iiMOE+qn6CMFEP6L4SAQg6P5OSKm32y7SSn9DvM4x1ENe40zDCuobls0dS+i8fdl1bAktg3fNRP2qTHEMAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"UWKQEPYTKT":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"UWKQEPYTKT","keys":{"curve25519:UWKQEPYTKT":"E3m1HIfYORRk8mTJqXjnb3Olkqa3PEcUjPEQ9Wjx+lw","ed25519:UWKQEPYTKT":"3oxTXIV5N4hwlMj/Tw8GbZvJhiYrgbr2cTE6VsRTZxc"},"signatures":{"@example:localhost":{"ed25519:UWKQEPYTKT":"eTlyV1cUa8+leIz8Xnho0QA1dOZ+vqVKw0340+n2V+0G7LhUsjqnepWM1G6xbA3m2Q3FSN0eVDlYTFGOrS2cBw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"UYIIXHSTHI":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"UYIIXHSTHI","keys":{"curve25519:UYIIXHSTHI":"hKCPEMiHjHwQ1uylbgFfbvdBbt1iM7VNil3i7zfiXTE","ed25519:UYIIXHSTHI":"jQTk2R6B059J8HsaSndv+E5OQuIyujzEHWDmQ2pQ6AM"},"signatures":{"@example:localhost":{"ed25519:UYIIXHSTHI":"YFxgmuRaRF/uhcTX4EvLQA89JeK28Trhn531pSPl7tY+wInmm/ElixTG45ZNbAZuIamyi8XvyUsRPz85hXz5Aw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"UYIUDLVJWP":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"UYIUDLVJWP","keys":{"curve25519:UYIUDLVJWP":"CNmdZWpIjJ/xn0PaVFSMo7ifmm5ddb137QPbiF+01yI","ed25519:UYIUDLVJWP":"C/nmjo0X0Hs0s9RSI+w1zA9A9lCaGQ0tPyAG5WyxCS4"},"signatures":{"@example:localhost":{"ed25519:UYIUDLVJWP":"XtRVSB0MMdg9oOTx0gFKD6/TIG623gbdIWVF3ivlqRllDQ3aMOq4kN3acL3B4gENNiRanW1c6XnK8hLyBw4JAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"VEGPLVOEVA":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"VEGPLVOEVA","keys":{"curve25519:VEGPLVOEVA":"14ieCgprBGI8/xRNtFiaqDUeyMoxibWt4t5xoUXTG0o","ed25519:VEGPLVOEVA":"fb//yu8H/X1SSz2YArGTSXbkfqbk4P2oTEnyM8EMs1Q"},"signatures":{"@example:localhost":{"ed25519:VEGPLVOEVA":"HnNSmDVhQEGQjuGRqh3S3iv78UljiiVrS87kPfD4eKtM42lxrINlO8oExYcr87oQu37q0xQqID9HpGr1a8DlCg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"VJLILRHZUW":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"VJLILRHZUW","keys":{"curve25519:VJLILRHZUW":"JmKBRKqK5lCaiPZvd3hoMv4vRZhFPocoKK3GZa9jtFs","ed25519:VJLILRHZUW":"tHOuDssOuCmGZT3iNoXuAj1ya7dcbg9Kqk4X8Cz01xI"},"signatures":{"@example:localhost":{"ed25519:VJLILRHZUW":"hszsy9FSkEA8YZhjcmRWEBEdqmO0b0DgkRAynYF16texCt2DJUiYvhxDv3cMWvfxt/wgthE6JtpJhp35yU1DCQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"VKUYMBNZQQ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"VKUYMBNZQQ","keys":{"curve25519:VKUYMBNZQQ":"nO+vSLw8m7vjnqBQf5gxwPefIWAIA9cfl70wnjmBRns","ed25519:VKUYMBNZQQ":"OtKvaKYZ6ntieWB9JxkNS4O5vF889Ylc32inFxZ3Cgo"},"signatures":{"@example:localhost":{"ed25519:VKUYMBNZQQ":"T49nUL/rxmUimCRIWzpoEmh8gry44LmOH9Q1zXPEp5ircIGNyGERFVCJOFN+qy6uYxcguoQQBR8lp9meTrr0Cw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"VRSCQXSSNQ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"VRSCQXSSNQ","keys":{"curve25519:VRSCQXSSNQ":"rHfDr5yDmNDuN54AIH3mznS9a2UXhxcpSM7Dt7WmFAk","ed25519:VRSCQXSSNQ":"yzXUVycYuXRnH1yAbD+kChVWaBrL0nqvMXBEgL6+r4U"},"signatures":{"@example:localhost":{"ed25519:VRSCQXSSNQ":"I5yLz/KHvCY3vBqCxY/fhLPXOQJYPicCdklx4OHPh428zb6d0w9aQPA+ag6HCz7+JMOI/sOkAPqcMpweg5cTCA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"VXTRVBKMJB":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"VXTRVBKMJB","keys":{"curve25519:VXTRVBKMJB":"JLcDjo6IZFq/lM2FtgKwZFzEP2asJhNNL7Ft4Bqn8FI","ed25519:VXTRVBKMJB":"tFPs/l5f3C2H7mBfeoFDQQ9MUT6CjvUgna+53ygVtoA"},"signatures":{"@example:localhost":{"ed25519:VXTRVBKMJB":"OFQnWhcVTrv0BKldx1TFTrPOlelOyVcMNHuaEiTLOxv5wkZt/iQscT3wpRA4PYSIhwy7WpCAlOfgp8dk3ONQCw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"WBXWCWRWFI":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"WBXWCWRWFI","keys":{"curve25519:WBXWCWRWFI":"zwx7EF4GWpEl+zMRfaT1oVoQSPw6Da5Adoxx041v1Fg","ed25519:WBXWCWRWFI":"4ylojCsaL6JWXeIpLQ3vPt8kkgmQmcJKAUkiUYLi6Kg"},"signatures":{"@example:localhost":{"ed25519:WBXWCWRWFI":"YSgJ36iGE2q6H0Jksqk5AUKoppLXPrncjnxkwlIfxeema9f7z9dvWd/B6I5ozl/tCgBgwOv93tEA7YRViUdyDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"WINACUTKQK":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"WINACUTKQK","keys":{"curve25519:WINACUTKQK":"6V8eZFFn4AjuKlbs8CqPhHps1bmDTZUaq+q7zJGAsAU","ed25519:WINACUTKQK":"4h45kYwEQEJPQQBDPMVW/outmPp35gpivVV3NrTc3bk"},"signatures":{"@example:localhost":{"ed25519:WINACUTKQK":"O9ptFTyrW1wdvq7X1khN3iKJ1CI1GLUzxNoID0hO2wedtYVtc6TtW0STJZ5ttR9XcxsECmo9tu4FjWhDlRk1BA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"WNHNFCTQDF":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"WNHNFCTQDF","keys":{"curve25519:WNHNFCTQDF":"AbVL+d8kWc8zNABWQ4C7/U1aU3xqJAPpHSE5rmSZH3s","ed25519:WNHNFCTQDF":"xDtWLIpxQfsc/biteWo+A/XCD0Rp/5iT4Hk2FEpgFVU"},"signatures":{"@example:localhost":{"ed25519:WNHNFCTQDF":"GwH1nbrGxYh5otBbqzYMN0jLApyB7gib0HJXZqA659wOMJFsnMj1hEWJ8JkGxuLw05paceJX/XQvo2dpbxFlBQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"WSKKLTJZCL":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"WSKKLTJZCL","keys":{"curve25519:WSKKLTJZCL":"wnip2tbJBJxrFayC88NNJpm61TeSNgYcqBH4T9yEDhU","ed25519:WSKKLTJZCL":"lQ+eshkhgKoo+qp9Qgnj3OX5PBoWMU5M9zbuEevwYqE"},"signatures":{"@example:localhost":{"ed25519:WSKKLTJZCL":"SKpIUnq7QK0xleav0PrIQyKjVm+TgZr7Yi8cKjLeZDtkgyToE2d4/e3Aj79dqOlLB92jFVE4d1cM/Ry04wFwCA","ed25519:0C8lCBxrvrv/O7BQfsKnkYogHZX3zAgw3RfJuyiq210":"9UGu1iC5YhFCdELGfB29YaV+QE0t/X5UDSsPf4QcdZyXIwyp9zBbHX2lh9vWudNQ+akZpaq7ZRaaM+4TCnw/Ag","ed25519:e+Qq1hWqN6BkvYR9UQorvxGHqZXN1/UgzHPsFC34So0":"cWYFws+ovmBxDzN9pz2qdTf3eQjMTGxqYj8ElvOq4h5LLf/gFltqhrdXpSKxm6tO1SPMz+Ziil4ddH8++AjzBg","ed25519:CVkM31zG1nev8YoYMQjus8DVUIacMRZEHfx9hxzkODA":"sxovNLx54iqCPh9VnKm2f7VW06lAGZdZ5Z0cogJU209bOgCk2oRAJ3vRbvI6oA3nrtaoiAEurzYZgpURVMVDBA","ed25519:TBUjvDspzp4d9ManEuanzoOvpQSkfwBZy1RYHQPMOFA":"KE75QF8B9acIw0L5ltJuwmhwStPsJDOJQdkJgfmEzbz7dRJEVX28xBBlVZmElkhxBfYYxAA/HAplKcqLC/CEDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"Riot Desktop on Linux"}},"WUFSXGMGDC":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"WUFSXGMGDC","keys":{"curve25519:WUFSXGMGDC":"aGxdobdki59r4ydbYqRTvIY9a0qdaXyUatBbfF0QACY","ed25519:WUFSXGMGDC":"WA5i+k+Ln9mVzZxiM3WxU6NHl3tTjQ1h/FaV0ZJ3U5Y"},"signatures":{"@example:localhost":{"ed25519:WUFSXGMGDC":"cZZGFz0ueWAad1zQwHP6D7ZnxOohYs6OWbiXsWOQL69IPQwyh/HRcz2Hp6dWN/9RnnUtpg05fv5MHTpE/3jVCw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"WWFJHBNUVS":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"WWFJHBNUVS","keys":{"curve25519:WWFJHBNUVS":"3JT9TLumcM9JzQ3a84NscItkyyPWYzGc1fLqn1nq+DI","ed25519:WWFJHBNUVS":"xdLmqQbQ90Ikjwb7+T+nYqld/lINDtNcWfWVUKEwN0k"},"signatures":{"@example:localhost":{"ed25519:WWFJHBNUVS":"3QxVcsxl8/+CzUXUIRQ+4fEncf6Yg23z1iCeKffWd2LRLgm0qgKGzRwrxfuFAuas4/Pjvt6DAsvYWzevTIstAg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"WYEWNGNQLY":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"WYEWNGNQLY","keys":{"curve25519:WYEWNGNQLY":"EF+ijDJc8dM5Vp4HQxlXLJn9prjkvlZ2U6dFarc00AI","ed25519:WYEWNGNQLY":"WT5CyOVnW3XXo5p1wbthlD1dLP264nggApuDqUQd7Yw"},"signatures":{"@example:localhost":{"ed25519:WYEWNGNQLY":"Qa1/6J1bVslOmbx/wMVVceOsSQ37ibCvJVjXtpWmH3JUIcuCzc0VJBk1IBQbmp/3GNTJ/i9TMES/CwNKXSSBBQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"WZAEFAVVYB":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"WZAEFAVVYB","keys":{"curve25519:WZAEFAVVYB":"4mYQn8UAflKfeTc0D6ROR0J98yY8K0GRZ2Hp8MQ2+k4","ed25519:WZAEFAVVYB":"GyczYeikbZ9bV+7AR2nKtbVAIemH4/4fJR2WVX5pHS4"},"signatures":{"@example:localhost":{"ed25519:WZAEFAVVYB":"Ieh/pwn772dkmM4qx0gOv0R0CawssEs0cw2V/DVGuQjbrQgdl5o9sgZmF68xesQO8Tqj4weBFs+MBEfTj2ldBA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"XDGOZRFUAX":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"XDGOZRFUAX","keys":{"curve25519:XDGOZRFUAX":"1X6A8XstX4OAGZm6EwbSZahqOc8k6Ab8lRWbTOmNJDc","ed25519:XDGOZRFUAX":"8C37J8VvD0LccBa0S5p5Bq8X7BCXf1V+J/Faim2gWis"},"signatures":{"@example:localhost":{"ed25519:XDGOZRFUAX":"weU0qJIzRjfAf0GG63kAHsBmNajgJXViOPrJsuWPPMEf1hseiruGafaMJkKkgljquE9yLItXUoptj2AClYmjDg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"XJNSUWGBNH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"XJNSUWGBNH","keys":{"curve25519:XJNSUWGBNH":"K6RzmNAyKPUS6A2gk9VaV3nCAQuwMYD1kzUsaC/VXww","ed25519:XJNSUWGBNH":"2nyeCOsjCKQn4oCN8fBr4sSiy9iHKivrKjE1YLTVnoU"},"signatures":{"@example:localhost":{"ed25519:XJNSUWGBNH":"yD6uYw6A6ZfctKJ0nG48CovexVRVuZbPTrjBLpnqE+E7/37t7kGosgthKMRySU5PCHKQuvCEfim2bMXtZ7FnCg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"XOWLHHFSWM":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"XOWLHHFSWM","keys":{"curve25519:XOWLHHFSWM":"1ZO5CwPAPufOCaWzNLno4MWATOWaXa3KeUKlOTrlbUs","ed25519:XOWLHHFSWM":"RzxaTfWdyqNvnRQu6eGSN14L2mecM34uvtdWw8frdQ8"},"signatures":{"@example:localhost":{"ed25519:XOWLHHFSWM":"vVQNEbV46OunL9j71PjoEA8PopOlgxQqQ2xT7h7s7E5JjG0RxKWnLHrEuuh+WRFnF9V5fc7sf9Ekdupt5YJXAg","ed25519:lahZAk83e58AYfGT2yiVlG4BoqU6Jj4+2dOlG+dqdKg":"UrG5LbpmZ22HyDRGRRAu1WWLSWFr8IONLMbB9ttQPJkg9sd+Qeg26Ps2nF5g2OntaHsUXy8Veo2QiulazF8aAA","ed25519:w04+aAcpPZ9P9JdpYo5bp8vf9nGOV3Oq8tX+zsPUGLU":"xx86Vvn8Tt0kWWav1IR79r3uUeH5CABUNBLbbd1NouoSzpV619A4OXHAYnbDjV0KL9e+2eiOuuUSapEwI8DFCg","ed25519:+gi6jOnIvETEJEFICULD2TldgT4FLzxF8ycdEDwqQZw":"6c5Jj6HL6ZV3vHKq0KqRrVVNzEaC3vnmMIYzRT2dDIi7cxlPJHk6pMenMNfGE/uDU8Zy58sul/d5Z8F5INjPBA","ed25519:W08y6PTFexQ2QK0C8PtZU/8asrphODzGXrZQYJ2DmpQ":"ujuIQ9xmFNub8JdEfZH3JORHg32lNtD9Aa4sFJ14jMfeFzywLG+qxMyyAduMlG23gUikT65dlGnGSMFgijf0AA","ed25519:mtkgwI48SsBXmfaKahqueMRZXwvGUfgha/1o0yf6AJA":"yj4CDrK1r1PExfBrZDpyzReQSuCCyfZ+FS6SHz66t0FlNw8jMa0t5GUZlSsX2/vEE+TzrHJFxQVT2VMV4hz4CA","ed25519:kQXOuy639Yt47mvNTdrIluoC6DMvfbZLYbxAmwiDyhI":"vptjdJ/Xyni8X7ujNyT+EhzhkBE7m5X2Badu7nin4kKLcmd/iSCzM9Gt6hRTe4z2uvXE17KKtAwVJzqTYigTCg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"Element Desktop (Linux)"}},"XVGSJAYERR":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"XVGSJAYERR","keys":{"curve25519:XVGSJAYERR":"cC2T6s/FrpnlSJPoSxC38tF5F1zCUOXTENf1Jo/dYgo","ed25519:XVGSJAYERR":"3tCtRf62fIqqrYUDe8W5lQIoGcsLCjLwettmJQpNIPo"},"signatures":{"@example:localhost":{"ed25519:XVGSJAYERR":"6huQAMhl5KHzh99qARVfoSbV3MOeVcXjSp8gMOFCtUibfe2Sgcl2tvBSfg6pRUBg/BfTI2VDrB88wZlj++cpDQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"XYMAAFPCXM":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"XYMAAFPCXM","keys":{"curve25519:XYMAAFPCXM":"nNwMBECwUjon6dRP34UtGbG5FRQ1eI8yK9rUQvwjBzg","ed25519:XYMAAFPCXM":"GKAaCDoAwlg5HTeRWxzhqRekaSXnhphs+9n//GtHPc0"},"signatures":{"@example:localhost":{"ed25519:XYMAAFPCXM":"HMppM2jWNv6hXDRe1Jx3IE3bkMm7PX2EFv4Hx4VQZ2xmDwPdqJmJ4MLfPOICTyt8WVbzjvZs9GB4+ShAxX+sAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"YEETQDERLH":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"YEETQDERLH","keys":{"curve25519:YEETQDERLH":"gOuFowBp12/LzVo488lWpb+t3QJvQMWNmsX9RzZu/zQ","ed25519:YEETQDERLH":"IdVXEfV11ZDKpWbhIB4ghRfIKJwJBXacXqTP05OiNB8"},"signatures":{"@example:localhost":{"ed25519:YEETQDERLH":"caK3eFsa1w2KenVn+0Z3vKYnr0A3kS7Y30Ph6lrl3zVDxqwxDnBz5PJTloSngawm7nS+xCNCs84UbhValHdJAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"YGMINGOBMN":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"YGMINGOBMN","keys":{"curve25519:YGMINGOBMN":"sOWDPgsOxCUHZnDHKwHXLOmQj2SOyFG7z1KeEapMEHM","ed25519:YGMINGOBMN":"Pzv/+3VIBwY4sKMm8xyu7j5RXyiOu3ht/iD0n29UY2k"},"signatures":{"@example:localhost":{"ed25519:YGMINGOBMN":"MSv9M/OZTq/IcTNm/vFXYQcpI8otFcHqfGBn0ihmxBolWU7jaVW8A3W72j8FRhf+iaUyBehSQI4UT+zRAT1EBg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"YLSFRBNBIQ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"YLSFRBNBIQ","keys":{"curve25519:YLSFRBNBIQ":"DvzcB+Trx+3+YjMoWmqxjNPCqPJUiksyjJ70epIQehg","ed25519:YLSFRBNBIQ":"Ryeoc/Ezo2Ezx7SFxLfPVInihF9JD4OOWCdHIPPM6iA"},"signatures":{"@example:localhost":{"ed25519:YLSFRBNBIQ":"CwezTZ+baEcIAzk8R50/EcyQmkPfonNfmcUwUZAyeEjoUu3Du7LnNXZBLo/8R/MiHJdkgzWPCH5JMJrk7HRSBg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"YMSRVAICJW":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"YMSRVAICJW","keys":{"curve25519:YMSRVAICJW":"lKLTp+UdBUCGFf0jXqBSgP37Gha5AAaeD8qFNWhqsG0","ed25519:YMSRVAICJW":"xpHICEPYA/PVxa8cS+oIBYh4t/qM9ku8Wkw0C82pC3k"},"signatures":{"@example:localhost":{"ed25519:YMSRVAICJW":"Gp3ZSAKwXzrh6PjMmCf0ybM9hDhz+x1362BmsFSf5lBYRH5bxtlMOI3gx/tLZf3CfvHIaJxisarqxJ8e37EMDA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"YPRSATMMOG":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"YPRSATMMOG","keys":{"curve25519:YPRSATMMOG":"OpKO0Xq3PxuY0Z3IW7J6KNC8I4rSGrVKevy0c+UA1lw","ed25519:YPRSATMMOG":"SygzI6aUOVk3Mlsv8AkXXuMBrSy8DGY3mE1h8EiJSS8"},"signatures":{"@example:localhost":{"ed25519:YPRSATMMOG":"wT/1ViM8nGLK5B1ZCwAcMJKxuz7IbzmiDFY1kEcM2tE3jWF6TeYHCK0DX7Q0m/A+CnG93hbMeM/hYwqdnunFBA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"YPSHAVNOAF":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"YPSHAVNOAF","keys":{"curve25519:YPSHAVNOAF":"+Qk4/VcW9+NeVdAbFbzve92qDjDVDFmvXS+IHquP7kw","ed25519:YPSHAVNOAF":"hFZdKDM5LxCobMyeYgpnr1zYMq/6dSFsj3ZKgqvqJDU"},"signatures":{"@example:localhost":{"ed25519:YPSHAVNOAF":"uVs8MXi/StKP3ph0MBdscC5m/KGzUga8hP1Fq5D/AjO2h0dYN7JkD3aMLW2BLY8oXYRwLqjFYskTuBy0E35nDw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"ZCKUKLKSTF":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"ZCKUKLKSTF","keys":{"curve25519:ZCKUKLKSTF":"V8iEgz8NLTnIldCc1Q8kpsFMjLb4m7MoejZPVImWtho","ed25519:ZCKUKLKSTF":"pHj6FKt6r4n4ZJMsg+U6BpwFrHC89exkqG9Hw1HY9zo"},"signatures":{"@example:localhost":{"ed25519:ZCKUKLKSTF":"Ybwd8NZKycejX1OGPwbfVlzwhk8NXHAQHqR7Kcv/VThA9qk+2u4DHT0JG2/w73n9aTKiF8aXERH30mc7RgIYCA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"ZCOMPAXRXZ":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"ZCOMPAXRXZ","keys":{"curve25519:ZCOMPAXRXZ":"jUCoJ8qJWDl5/epwrBA0kUVlYfjdLc884Ff3JVIfcD0","ed25519:ZCOMPAXRXZ":"671iVPUS8WdeO6axRxAkdAjOf17BVuweZSKsT2OZ0uM"},"signatures":{"@example:localhost":{"ed25519:ZCOMPAXRXZ":"SuIOcicRu8w9SSLG8jEEIE0iAEYB4xgdJuhWPyanX3dOnU7oROeMmo8BizVGfpOPlY0PVjzPJaGRUsWbbgM8Cw"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"ZDHFMSACDV":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"ZDHFMSACDV","keys":{"curve25519:ZDHFMSACDV":"ANF+BGAVDNG3rgcEjQ/T9Fkmh+AaLDMbaerjcE2XOBc","ed25519:ZDHFMSACDV":"MXJg3nvz6LOZIpCFXVa7FveKpzKOERN9FnOS0yUz8Qs"},"signatures":{"@example:localhost":{"ed25519:ZDHFMSACDV":"6fQPagLqT6f1A2OcmYDFfto/O0C0RoJ2B69Yu/8iy0ziTszGUn0tucEiLvuX1A44soudtP/vFiyu+cSfYhSRAA"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"ZLSGHJACJW":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"ZLSGHJACJW","keys":{"curve25519:ZLSGHJACJW":"5DaHF+/cIMjelFrC32JRrje6G6hXkQtKBCpDEKVhZko","ed25519:ZLSGHJACJW":"Hw0/tPeQ5Iw6JvYGcsODyf06t4m0tHu0tsFO/kehyJM"},"signatures":{"@example:localhost":{"ed25519:ZLSGHJACJW":"deBYjuNTAILYD+l7tIp8XcwHaTA2BwuOh9ITPsEtPTcgRlRc3XwLSiyOUSv1UlSu99WgpLvG1/kVezP/FLaPAQ"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}},"ZMKDSVIKPT":{"algorithms":["m.olm.v1.curve25519-aes-sha2","m.megolm.v1.aes-sha2"],"device_id":"ZMKDSVIKPT","keys":{"curve25519:ZMKDSVIKPT":"TXHMr/hwD2FyMUBVLRQ/nDYLSjvy2xCgtT3WrDcOfEs","ed25519:ZMKDSVIKPT":"+OzJMLGBkLsdgTzzJ/uBkQGBv+ZlDnLoKm0eLO6khA0"},"signatures":{"@example:localhost":{"ed25519:ZMKDSVIKPT":"4pHlr3/6daVdJuqJenoyH5sYo2ygT4V5JeEMEdonVwHuz0zDL1Vj0gTEO21gN9xmV2Wj3SRSTeoHfb+xZ8+HCg"}},"user_id":"@example:localhost","unsigned":{"device_display_name":"rust-sdk"}}}},"failures":{},"master_keys":{"@example:localhost":{"user_id":"@example:localhost","usage":["master"],"keys":{"ed25519:n2lpJGx0LiKnuNE1IucZP3QExrD4SeRP0veBHPe3XUU":"n2lpJGx0LiKnuNE1IucZP3QExrD4SeRP0veBHPe3XUU"},"signatures":{"@example:localhost":{"ed25519:TCSJXPWGVS":"+j9G3L41I1fe0++wwusTTQvbboYW0yDtRWUEujhwZz4MAltjLSfJvY0hxhnz+wHHmuEXvQDen39XOpr1p29sAg"}}}},"self_signing_keys":{"@example:localhost":{"user_id":"@example:localhost","usage":["self_signing"],"keys":{"ed25519:kQXOuy639Yt47mvNTdrIluoC6DMvfbZLYbxAmwiDyhI":"kQXOuy639Yt47mvNTdrIluoC6DMvfbZLYbxAmwiDyhI"},"signatures":{"@example:localhost":{"ed25519:n2lpJGx0LiKnuNE1IucZP3QExrD4SeRP0veBHPe3XUU":"q32ifix/qyRpvmegw2BEJklwoBCAJldDNkcX+fp+lBA4Rpyqtycxge6BA4hcJdxYsy3oV0IHRuugS8rJMMFyAA"}}}},"user_signing_keys":{"@example:localhost":{"user_id":"@example:localhost","usage":["user_signing"],"keys":{"ed25519:g4ED07Fnqf3GzVWNN1pZ0IFrPQVdqQf+PYoJNH4eE0s":"g4ED07Fnqf3GzVWNN1pZ0IFrPQVdqQf+PYoJNH4eE0s"},"signatures":{"@example:localhost":{"ed25519:n2lpJGx0LiKnuNE1IucZP3QExrD4SeRP0veBHPe3XUU":"nKQu8alQKDefNbZz9luYPcNj+Z+ouQSot4fU/A23ELl1xrI06QVBku/SmDx0sIW1ytso0Cqwy1a+3PzCa1XABg"}}}}}@@ -0,0 +1,40069 @@
1
+{2
+ "device_keys": {3
+ "@alice:hs1": {4
+ "ALDJLSKJD": {5
+ "algorithms": [6
+ "m.olm.v1.curve25519-aes-sha2",7
+ "m.megolm.v1.aes-sha2"8
+ ],9
+ "device_id": "ALDJLSKJD",10
+ "keys": {11
+ "curve25519:ALDJLSKJD": "Bvk2zCI2YihAiuiZBPoPYkS3+s8ZwqNVll4qKnI9TWw",12
+ "ed25519:ALDJLSKJD": "FrhkI5JUJmEWs6Io+U5S49SoSGw9nD47ubMD6VYEbYs"13
+ },14
+ "signatures": {15
+ "@alice:hs1": {16
+ "ed25519:ALDJLSKJD": "HFk9kfScxqUJaCQj39V38a491LCMPaVIyn/IKLKu8OWNWflzMqX70kOiN8VaYDhByv/Gbewnpw/RTm/RsB2SCg"17
+ }18
+ },19
+ "user_id": "@alice:hs1",20
+ "unsigned": {}21
+ },22
+ "UWWSVUZVWH": {23
+ "algorithms": [24
+ "m.olm.v1.curve25519-aes-sha2",25
+ "m.megolm.v1.aes-sha2"26
+ ],27
+ "device_id": "UWWSVUZVWH",28
+ "keys": {29
+ "curve25519:UWWSVUZVWH": "6osBROgsCSQxajzsqPA9ynYCVdAEaiOVB6wNgPl7RXE",30
+ "ed25519:UWWSVUZVWH": "cQ6bUAT64/5xi+Ux7ixKfDEBgtO0v/LnqjOqTuowsfA"31
+ },32
+ "signatures": {33
+ "@alice:hs1": {34
+ "ed25519:UWWSVUZVWH": "+snfEYv9xwFnL5iroIeLVgFhjafHiBgYwwQKGORFqJRqXLdqOiwJ/ckgVZjMD3ZAmUVpbUOHnvI0LCJk2HBBBA"35
+ }36
+ },37
+ "user_id": "@alice:hs1",38
+ "unsigned": {39
+ "device_display_name": "Weechat-Matrix-rs"40
+ }41
+ },42
+ "XQWLNMCYQZ": {43
+ "algorithms": [44
+ "m.olm.v1.curve25519-aes-sha2",45
+ "m.megolm.v1.aes-sha2"46
+ ],47
+ "device_id": "XQWLNMCYQZ",48
+ "keys": {49
+ "curve25519:XQWLNMCYQZ": "eIjT2EDiNARdfAh1/4/pRHhYioUvq+zmR5rVBWGk33E",50
+ "ed25519:XQWLNMCYQZ": "RHoVaLGhwPeda91cwyDmwcE9ezaqdX8CVDYaH+cnFoU"51
+ },52
+ "signatures": {53
+ "@alice:hs1": {54
+ "ed25519:XQWLNMCYQZ": "8EjiyhPHfzfRpX/yTUpc6YGfhIttjL5X/1qE2iduwnrkciLKMz17cSfb9WbgHdknQIDjj88XYYyfNaPxfjV1DA"55
+ }56
+ },57
+ "user_id": "@alice:hs1",58
+ "unsigned": {59
+ "device_display_name": "Weechat-Matrix-rs"60
+ }61
+ }62
+ },63
+ "@alice_1003:hs1": {64
+ "ALICEDEVICE1003": {65
+ "algorithms": [66
+ "m.olm.v1.curve25519-aes-sha2",67
+ "m.megolm.v1.aes-sha2"68
+ ],69
+ "device_id": "ALICEDEVICE1003",70
+ "keys": {71
+ "curve25519:ALICEDEVICE1003": "jmCyAwzZae3xip/iIOWtUwp73b8vQ3aXrAcAowcoPkY",72
+ "ed25519:ALICEDEVICE1003": "eLv6cTJMGVuZlRNnxMJft0KvSaL6nKJW4ETn6ZraL2I"73
+ },74
+ "signatures": {75
+ "@alice_1003:hs1": {76
+ "ed25519:ALICEDEVICE1003": "F+AULxqesJTkxcgdWnCKalIFKla2ohnufpSDVYYbjbCb0IoGKMUG/weRFQZxiMVI4G9a7EL2+uLTcpJd7rlBCg"77
+ }78
+ },79
+ "user_id": "@alice_1003:hs1",80
+ "unsigned": {}81
+ }82
+ },83
+ "@alice_1907:hs1": {84
+ "ALICEDEVICE1907": {85
+ "algorithms": [86
+ "m.olm.v1.curve25519-aes-sha2",87
+ "m.megolm.v1.aes-sha2"88
+ ],89
+ "device_id": "ALICEDEVICE1907",90
+ "keys": {91
+ "curve25519:ALICEDEVICE1907": "t/+KwdftUYRmeppPGj9gYizjVgcujGTqiBPD7rn5EHk",92
+ "ed25519:ALICEDEVICE1907": "487OSTxB7+h4xQPbhVsE/8RWvqznORcIX2Z44W0rSMY"93
+ },94
+ "signatures": {95
+ "@alice_1907:hs1": {96
+ "ed25519:ALICEDEVICE1907": "Efb8hwsiggUX5hcN8MRmPwx/p4uJAfGFsQGLs5DAPXm51uN/sYg3qjQNpDYrBik+akR6m2pAJzlrOuHIC0bOAw"97
+ }98
+ },99
+ "user_id": "@alice_1907:hs1",100
+ "unsigned": {}101
+ }102
+ },103
+ "@alice_1993:hs1": {104
+ "ALICEDEVICE1993": {105
+ "algorithms": [106
+ "m.olm.v1.curve25519-aes-sha2",107
+ "m.megolm.v1.aes-sha2"108
+ ],109
+ "device_id": "ALICEDEVICE1993",110
+ "keys": {111
+ "curve25519:ALICEDEVICE1993": "L38mXeoMt4cD1vmVpQTCuynd2ymcdMd0HsQ80DeGtxI",112
+ "ed25519:ALICEDEVICE1993": "wTiEjRWUfvdyoUAt0sH9q3FHY0mjfNdNeTu8Ft73+ko"113
+ },114
+ "signatures": {115
+ "@alice_1993:hs1": {116
+ "ed25519:ALICEDEVICE1993": "uIZx1u8lH3KHdrh9zS24VFlJOrgoNe8pvrWifq/0C0GAD337vOEmFiDpOnqiyEIrHKlFgDL/fvMt4OCSPMY/AQ"117
+ }118
+ },119
+ "user_id": "@alice_1993:hs1",120
+ "unsigned": {}121
+ }122
+ },123
+ "@alice_1994:hs1": {124
+ "ALICEDEVICE1994": {125
+ "algorithms": [126
+ "m.olm.v1.curve25519-aes-sha2",127
+ "m.megolm.v1.aes-sha2"128
+ ],129
+ "device_id": "ALICEDEVICE1994",130
+ "keys": {131
+ "curve25519:ALICEDEVICE1994": "l4HAN38VdY/2KJrm5Z4wHuoCaXm0oLq2HuZ1YZjtt3k",132
+ "ed25519:ALICEDEVICE1994": "LD3SwzaBmmoHt0myb9nwUAesorrL1MVWu8wEPL6uooE"133
+ },134
+ "signatures": {135
+ "@alice_1994:hs1": {136
+ "ed25519:ALICEDEVICE1994": "bY/C/J1q9EaW32u1xo6rGdvi63AjHLL22ZobO/wb8KhRALmg4LL1o0nX6QeJgY9k4rAEjjTF0qGwBwukZ7ITCw"137
+ }138
+ },139
+ "user_id": "@alice_1994:hs1",140
+ "unsigned": {}141
+ }142
+ },143
+ "@alice_1995:hs1": {144
+ "ALICEDEVICE1995": {145
+ "algorithms": [146
+ "m.olm.v1.curve25519-aes-sha2",147
+ "m.megolm.v1.aes-sha2"148
+ ],149
+ "device_id": "ALICEDEVICE1995",150
+ "keys": {151
+ "curve25519:ALICEDEVICE1995": "5OpKhFWuPPz/3YAF9Z7VDsCAN/tsWmWbEVsj/OaA30w",152
+ "ed25519:ALICEDEVICE1995": "97N4brNlusgbKHqEgNt0sn8GOmPymWt9n5X8Mi5UJ4A"153
+ },154
+ "signatures": {155
+ "@alice_1995:hs1": {156
+ "ed25519:ALICEDEVICE1995": "2hZnxH0eYTLvNfGCqcd5V4XJA+QdFKhIEDI+/zvcv4iptLUqlyfvC5pWElhkBh0miF/RfuyGtS7hjeSPDLiiCA"157
+ }158
+ },159
+ "user_id": "@alice_1995:hs1",160
+ "unsigned": {}161
+ }162
+ },163
+ "@alice_1996:hs1": {164
+ "ALICEDEVICE1996": {165
+ "algorithms": [166
+ "m.olm.v1.curve25519-aes-sha2",167
+ "m.megolm.v1.aes-sha2"168
+ ],169
+ "device_id": "ALICEDEVICE1996",170
+ "keys": {171
+ "curve25519:ALICEDEVICE1996": "nAIXPRfcs6UdnVkp8Svr3YSxE59G7fYlxT221GayiXI",172
+ "ed25519:ALICEDEVICE1996": "gXVKZJf5omUPep3LUljuSq9HJOtEjsqOOqUvDzgHzW8"173
+ },174
+ "signatures": {175
+ "@alice_1996:hs1": {176
+ "ed25519:ALICEDEVICE1996": "uJxPXZywJ+sB7zbH4QvS8QMxLsqpQLGjlxZFjLldXnE8R5sOQrX4wcp+1YBBgzz6ve2ZIObIKCYVyGLwH19TBw"177
+ }178
+ },179
+ "user_id": "@alice_1996:hs1",180
+ "unsigned": {}181
+ }182
+ },183
+ "@alice_1997:hs1": {184
+ "ALICEDEVICE1997": {185
+ "algorithms": [186
+ "m.olm.v1.curve25519-aes-sha2",187
+ "m.megolm.v1.aes-sha2"188
+ ],189
+ "device_id": "ALICEDEVICE1997",190
+ "keys": {191
+ "curve25519:ALICEDEVICE1997": "T2+2b/cjsSjsSDLfzAS9dLkzKTkxvSC5rMpIFOv0P3c",192
+ "ed25519:ALICEDEVICE1997": "Sm/NFId3no+9uWh5jIddYHGBnMQRgdKfkxVtxXBMbGk"193
+ },194
+ "signatures": {195
+ "@alice_1997:hs1": {196
+ "ed25519:ALICEDEVICE1997": "WjDNlTcCJGyNaCw+X690KIKyhLF4xGkJI0kTMhbjmfDqLFRcFruoac03I3BkQ2Bb57sX8SuXrnVytSjpAQYOBw"197
+ }198
+ },199
+ "user_id": "@alice_1997:hs1",200
+ "unsigned": {}201
+ }202
+ },203
+ "@alice_1998:hs1": {204
+ "ALICEDEVICE1998": {205
+ "algorithms": [206
+ "m.olm.v1.curve25519-aes-sha2",207
+ "m.megolm.v1.aes-sha2"208
+ ],209
+ "device_id": "ALICEDEVICE1998",210
+ "keys": {211
+ "curve25519:ALICEDEVICE1998": "qUBcL039rXtZhrejR3BjGMHxgM314HtZMKRKQseipUw",212
+ "ed25519:ALICEDEVICE1998": "4fZ6kuswUTWW3Lyu+LLEKBfHvD4g/vyZE/IJ6aAv2mc"213
+ },214
+ "signatures": {215
+ "@alice_1998:hs1": {216
+ "ed25519:ALICEDEVICE1998": "JDb5cp+Ms1B/oNoVjXfXk0F9WIgnhLLwX1YB8UdLTnAe7ufp49s+aIBY5ozFHk5mhhyNyIz13FLFELUvkaV0AA"217
+ }218
+ },219
+ "user_id": "@alice_1998:hs1",220
+ "unsigned": {}221
+ }222
+ },223
+ "@alice_1999:hs1": {224
+ "ALICEDEVICE1999": {225
+ "algorithms": [226
+ "m.olm.v1.curve25519-aes-sha2",227
+ "m.megolm.v1.aes-sha2"228
+ ],229
+ "device_id": "ALICEDEVICE1999",230
+ "keys": {231
+ "curve25519:ALICEDEVICE1999": "GQWm9Vc2F52V8jWIGPzaK7zuNmn0zFUt0CtXcA/hhSI",232
+ "ed25519:ALICEDEVICE1999": "kfp+7X8qjftcdX1RDXVefgxe4rlKlszgjrBpHZXXX9E"233
+ },234
+ "signatures": {235
+ "@alice_1999:hs1": {236
+ "ed25519:ALICEDEVICE1999": "EgrVPIF4H9yW0mJfjel73anAnTZXO+sFXnbmhE0N8qupPyi13O/hrACQrjlI5H36XMOEuylCkg70biPIaai4AA"237
+ }238
+ },239
+ "user_id": "@alice_1999:hs1",240
+ "unsigned": {}241
+ }242
+ },243
+ "@alice_382:hs1": {244
+ "ALICEDEVICE382": {245
+ "algorithms": [246
+ "m.olm.v1.curve25519-aes-sha2",247
+ "m.megolm.v1.aes-sha2"248
+ ],249
+ "device_id": "ALICEDEVICE382",250
+ "keys": {251
+ "curve25519:ALICEDEVICE382": "dQezXXFmJAi5khWAgCRITfgXOKAI5eruSRuzB2+LwBY",252
+ "ed25519:ALICEDEVICE382": "nuJIfUTdsRW/eNBtINVvCyJzns3LMehnPtCPpA0pBTw"253
+ },254
+ "signatures": {255
+ "@alice_382:hs1": {256
+ "ed25519:ALICEDEVICE382": "hmZ+uT0acfs0RLh6NXUm/q/W09oF1I2keAmJprtMKw2TS6LigXMYqzqBD0hhRKGfod9GAKeTxC1fucF/u/PICw"257
+ }258
+ },259
+ "user_id": "@alice_382:hs1",260
+ "unsigned": {}261
+ }262
+ },263
+ "@alice_401:hs1": {264
+ "ALICEDEVICE401": {265
+ "algorithms": [266
+ "m.olm.v1.curve25519-aes-sha2",267
+ "m.megolm.v1.aes-sha2"268
+ ],269
+ "device_id": "ALICEDEVICE401",270
+ "keys": {271
+ "curve25519:ALICEDEVICE401": "cwnvvGjjW4kq7ozfUL4cZutmUjy0gCMdJuX4UsRkfyA",272
+ "ed25519:ALICEDEVICE401": "p5c7iPklvR0QLevwDHdwJtl5pYRsGid/v0Qumer/uGI"273
+ },274
+ "signatures": {275
+ "@alice_401:hs1": {276
+ "ed25519:ALICEDEVICE401": "WSCn8IG0gTbaEADYxj6rTCO/SpZnjluPzyRuc5JM/MH1JnzJJmuaUSdONn0MQzuYdcA417l4yXMHGpFZfS1oDw"277
+ }278
+ },279
+ "user_id": "@alice_401:hs1",280
+ "unsigned": {}281
+ }282
+ },283
+ "@alice_53:hs1": {284
+ "ALICEDEVICE53": {285
+ "algorithms": [286
+ "m.olm.v1.curve25519-aes-sha2",287
+ "m.megolm.v1.aes-sha2"288
+ ],289
+ "device_id": "ALICEDEVICE53",290
+ "keys": {291
+ "curve25519:ALICEDEVICE53": "5JqB4M0aVJPeB8wAw4a5IK1QLhR9tSaquhgyQny4LFg",292
+ "ed25519:ALICEDEVICE53": "1MTqtrjiEhw83r7FO77g7eRKtHcnV7KaQhh7JqMUdHM"293
+ },294
+ "signatures": {295
+ "@alice_53:hs1": {296
+ "ed25519:ALICEDEVICE53": "0LIWO1qT+GjBcxEAimVbs3FgSkOd8ewfViue6th31Gum39D8ThiVYprgI1zKbkQPbvYIVsm79ZKPCv30erxUDg"297
+ }298
+ },299
+ "user_id": "@alice_53:hs1",300
+ "unsigned": {}301
+ }302
+ },303
+ "@alice_1000:hs1": {304
+ "ALICEDEVICE1000": {305
+ "algorithms": [306
+ "m.olm.v1.curve25519-aes-sha2",307
+ "m.megolm.v1.aes-sha2"308
+ ],309
+ "device_id": "ALICEDEVICE1000",310
+ "keys": {311
+ "curve25519:ALICEDEVICE1000": "Wnc3hFKK2HHviQD7ylyAiCzU1sgVftBcQEfPRvLsPzU",312
+ "ed25519:ALICEDEVICE1000": "Iz8ecmIVjDpyZyAfZyUrm7NTXFv7ZMB/9tDH39yFAqQ"313
+ },314
+ "signatures": {315
+ "@alice_1000:hs1": {316
+ "ed25519:ALICEDEVICE1000": "cLyv2ovqmYSns1soNAXw9d20w50avWejrg3AdkGMuDuWoH1lKZk5UpKa47yJAVgvjlqonmIgoKb0UavXnTWXCA"317
+ }318
+ },319
+ "user_id": "@alice_1000:hs1",320
+ "unsigned": {}321
+ }322
+ },323
+ "@alice_1014:hs1": {324
+ "ALICEDEVICE1014": {325
+ "algorithms": [326
+ "m.olm.v1.curve25519-aes-sha2",327
+ "m.megolm.v1.aes-sha2"328
+ ],329
+ "device_id": "ALICEDEVICE1014",330
+ "keys": {331
+ "curve25519:ALICEDEVICE1014": "tZgqLkmDd48ruyjsyHjlbfiPE1DAq1Etd2am4MQqvzk",332
+ "ed25519:ALICEDEVICE1014": "apJmccZk/luI2ONWSIDJhKwHjO0sfZrfhzJbhnnI8q8"333
+ },334
+ "signatures": {335
+ "@alice_1014:hs1": {336
+ "ed25519:ALICEDEVICE1014": "Kyn1mRRaVQESX+nyJfFKttthKhR1fUC6hd6/u8CtoLu5MVMdWTNolypqN8ruprBDLGvZABKwjIYQohmVZsB2Cg"337
+ }338
+ },339
+ "user_id": "@alice_1014:hs1",340
+ "unsigned": {}341
+ }342
+ },343
+ "@alice_1015:hs1": {344
+ "ALICEDEVICE1015": {345
+ "algorithms": [346
+ "m.olm.v1.curve25519-aes-sha2",347
+ "m.megolm.v1.aes-sha2"348
+ ],349
+ "device_id": "ALICEDEVICE1015",350
+ "keys": {351
+ "curve25519:ALICEDEVICE1015": "jmoNh4Og0vXnPc5T3ag3tpBiIEMEOTvJs1agebXW2xY",352
+ "ed25519:ALICEDEVICE1015": "8z6xmS3ryuLyWsN8dIvc4AgOINr/9fgknZcmglzr3ic"353
+ },354
+ "signatures": {355
+ "@alice_1015:hs1": {356
+ "ed25519:ALICEDEVICE1015": "uV+6NLhTv1FSw8e/YWNmgsSsvHyf2JUgI2ZuR8hkgXxfuydHLMDM/xxqLrD1fQAblcPq0RxnUAxrKL8MOxneCQ"357
+ }358
+ },359
+ "user_id": "@alice_1015:hs1",360
+ "unsigned": {}361
+ }362
+ },363
+ "@alice_1018:hs1": {364
+ "ALICEDEVICE1018": {365
+ "algorithms": [366
+ "m.olm.v1.curve25519-aes-sha2",367
+ "m.megolm.v1.aes-sha2"368
+ ],369
+ "device_id": "ALICEDEVICE1018",370
+ "keys": {371
+ "curve25519:ALICEDEVICE1018": "HJZoCGGADDuJemzu1tiYg1hMeYuCVgSMlkjLLP0wC3E",372
+ "ed25519:ALICEDEVICE1018": "MwwwUwT2ZXbnSrukk0C8GGCsFWFPj0P5OvGf6JlCBKc"373
+ },374
+ "signatures": {375
+ "@alice_1018:hs1": {376
+ "ed25519:ALICEDEVICE1018": "Fm95CC9mAK/VkOtpLp142nSKNb+DkhuGmKqot6Dqoel6YapFLTpHU7stShm3b0TduzPLcabvxVEJ2rjZf1hzBQ"377
+ }378
+ },379
+ "user_id": "@alice_1018:hs1",380
+ "unsigned": {}381
+ }382
+ },383
+ "@alice_1024:hs1": {384
+ "ALICEDEVICE1024": {385
+ "algorithms": [386
+ "m.olm.v1.curve25519-aes-sha2",387
+ "m.megolm.v1.aes-sha2"388
+ ],389
+ "device_id": "ALICEDEVICE1024",390
+ "keys": {391
+ "curve25519:ALICEDEVICE1024": "PrZ6DSyRI0LpQwsH4YanET1J8cQYcxjd/k8wcV/QEnk",392
+ "ed25519:ALICEDEVICE1024": "YeNWgrjzvUzBzCNGWS2zp4Xbn4QKxc4J9T1uGA5t9B8"393
+ },394
+ "signatures": {395
+ "@alice_1024:hs1": {396
+ "ed25519:ALICEDEVICE1024": "fIyjnqEaXZyCl2VFHuTn6xQ8VKRGjL1bp6LD0T6G4o1erOyj11qfnc1Ho7zaBRurAYVt+5QUE7Q6WOFipJhEDg"397
+ }398
+ },399
+ "user_id": "@alice_1024:hs1",400
+ "unsigned": {}401
+ }402
+ },403
+ "@alice_1029:hs1": {404
+ "ALICEDEVICE1029": {405
+ "algorithms": [406
+ "m.olm.v1.curve25519-aes-sha2",407
+ "m.megolm.v1.aes-sha2"408
+ ],409
+ "device_id": "ALICEDEVICE1029",410
+ "keys": {411
+ "curve25519:ALICEDEVICE1029": "hqyNdhjxWrpjWrb/mTLTugG4IcnTuloALt9udO+/RCo",412
+ "ed25519:ALICEDEVICE1029": "hfjNSuIIBaQrU30H8zQz+56J00Bq5v8YGhqtSHVzWQE"413
+ },414
+ "signatures": {415
+ "@alice_1029:hs1": {416
+ "ed25519:ALICEDEVICE1029": "xaaDiHh7zjUWxUfmC0DIqWWB3Nf66U7+8navWwwynmz2lh1gnzYstFkph435SZCUimpPq7Bmgishi9CM9dmqDw"417
+ }418
+ },419
+ "user_id": "@alice_1029:hs1",420
+ "unsigned": {}421
+ }422
+ },423
+ "@alice_1042:hs1": {424
+ "ALICEDEVICE1042": {425
+ "algorithms": [426
+ "m.olm.v1.curve25519-aes-sha2",427
+ "m.megolm.v1.aes-sha2"428
+ ],429
+ "device_id": "ALICEDEVICE1042",430
+ "keys": {431
+ "curve25519:ALICEDEVICE1042": "PPFci2ZOzuuDsO85g7mwGXiCbAW/yKXRa3JTKu6O5WU",432
+ "ed25519:ALICEDEVICE1042": "qzw80RKu9JxrdHz/X0bq4Q3hXMjKg5PBkmYH/IKJItg"433
+ },434
+ "signatures": {435
+ "@alice_1042:hs1": {436
+ "ed25519:ALICEDEVICE1042": "aLna3pPoFbguqe9wvvsq1DRzwgqW0PpBc3/r29DqqX3OyVavx9xhY4/DSrP/kxom2ubXImLcTh1GY66Z7M/IDw"437
+ }438
+ },439
+ "user_id": "@alice_1042:hs1",440
+ "unsigned": {}441
+ }442
+ },443
+ "@alice_1063:hs1": {444
+ "ALICEDEVICE1063": {445
+ "algorithms": [446
+ "m.olm.v1.curve25519-aes-sha2",447
+ "m.megolm.v1.aes-sha2"448
+ ],449
+ "device_id": "ALICEDEVICE1063",450
+ "keys": {451
+ "curve25519:ALICEDEVICE1063": "5T3cUIX9S97bAUi5jPuzHaK4+71Z51cYWdc7C8m4I0E",452
+ "ed25519:ALICEDEVICE1063": "G5OcoEPJf2XF9x/WIlv/Fsg/6qTCGvTHWLAFXST7A9M"453
+ },454
+ "signatures": {455
+ "@alice_1063:hs1": {456
+ "ed25519:ALICEDEVICE1063": "3KeASBrRKOOUm7Rp1frll0zftHWrgGOc4MHAxpBPaO4qvpgusu1NIy1gauygMcbVdGVddkyIIuh2jzjjVo1EAQ"457
+ }458
+ },459
+ "user_id": "@alice_1063:hs1",460
+ "unsigned": {}461
+ }462
+ },463
+ "@alice_1068:hs1": {464
+ "ALICEDEVICE1068": {465
+ "algorithms": [466
+ "m.olm.v1.curve25519-aes-sha2",467
+ "m.megolm.v1.aes-sha2"468
+ ],469
+ "device_id": "ALICEDEVICE1068",470
+ "keys": {471
+ "curve25519:ALICEDEVICE1068": "rmmybQ/hIkat71qY8Jy3tBmCUrMuuMBbITKF/WPvylk",472
+ "ed25519:ALICEDEVICE1068": "+Mqds6TDruZUzuM/m+EggZyI4NQwMuA+ZociTxUzngM"473
+ },474
+ "signatures": {475
+ "@alice_1068:hs1": {476
+ "ed25519:ALICEDEVICE1068": "CEu4692Vtk0ha1GlP8nh7zeGK8Etob8iqo+dgiX3NqyzcsuDFJiJ5pjAQka6hmEs6u2cN4+sxou+1y87IthLAA"477
+ }478
+ },479
+ "user_id": "@alice_1068:hs1",480
+ "unsigned": {}481
+ }482
+ },483
+ "@alice_1069:hs1": {484
+ "ALICEDEVICE1069": {485
+ "algorithms": [486
+ "m.olm.v1.curve25519-aes-sha2",487
+ "m.megolm.v1.aes-sha2"488
+ ],489
+ "device_id": "ALICEDEVICE1069",490
+ "keys": {491
+ "curve25519:ALICEDEVICE1069": "ga8HdIygAI3/bo8G/czjzAT9AFY8ytE+mTeMJeeURAw",492
+ "ed25519:ALICEDEVICE1069": "FhYiFiRstJd2pNLiWCG9Y1zaw5dUU5MzkO+qGBuuCGI"493
+ },494
+ "signatures": {495
+ "@alice_1069:hs1": {496
+ "ed25519:ALICEDEVICE1069": "fG3WuPukmaVakszbRBRLH5pCtElsNBNXKK8hUcmonyffMwzLp0imp0ILmoHsAexAf5cFvLRrnSFFTg8SXn3cCA"497
+ }498
+ },499
+ "user_id": "@alice_1069:hs1",500
+ "unsigned": {}501
+ }502
+ },503
+ "@alice_1070:hs1": {504
+ "ALICEDEVICE1070": {505
+ "algorithms": [506
+ "m.olm.v1.curve25519-aes-sha2",507
+ "m.megolm.v1.aes-sha2"508
+ ],509
+ "device_id": "ALICEDEVICE1070",510
+ "keys": {511
+ "curve25519:ALICEDEVICE1070": "9YCDjcN3Hisb7A8BDJ5/JQK7TLhwfP/yTSHSrXMKFF0",512
+ "ed25519:ALICEDEVICE1070": "Umb81ly1BAipnPll2zljMs16N0FSZVDMT714fw/O5VY"513
+ },514
+ "signatures": {515
+ "@alice_1070:hs1": {516
+ "ed25519:ALICEDEVICE1070": "N8AMJeBLLiDJ2niSONH3XZHZ+MuLclUngSSn8xxU6UdVqxpQXzqZpfp3qXz+zFiJl85KrYWCewRyEFz+BmF5Bg"517
+ }518
+ },519
+ "user_id": "@alice_1070:hs1",520
+ "unsigned": {}521
+ }522
+ },523
+ "@alice_1074:hs1": {524
+ "ALICEDEVICE1074": {525
+ "algorithms": [526
+ "m.olm.v1.curve25519-aes-sha2",527
+ "m.megolm.v1.aes-sha2"528
+ ],529
+ "device_id": "ALICEDEVICE1074",530
+ "keys": {531
+ "curve25519:ALICEDEVICE1074": "kkkcXLcYnPkPuCitO+020av77YIkAhun6mzx+gcUtU4",532
+ "ed25519:ALICEDEVICE1074": "tFA0EdQyLbfE4XPZiJkhzlRBS4MilOyKpix4qWjFqtA"533
+ },534
+ "signatures": {535
+ "@alice_1074:hs1": {536
+ "ed25519:ALICEDEVICE1074": "1n6wacUV60eRLjQeo/gjAi6LSg5PrcrOiF9ytwPh8hybHmxy+HqNkmqSMolovNN/jA7YZBjyujNd3yi4MsgrCA"537
+ }538
+ },539
+ "user_id": "@alice_1074:hs1",540
+ "unsigned": {}541
+ }542
+ },543
+ "@alice_1075:hs1": {544
+ "ALICEDEVICE1075": {545
+ "algorithms": [546
+ "m.olm.v1.curve25519-aes-sha2",547
+ "m.megolm.v1.aes-sha2"548
+ ],549
+ "device_id": "ALICEDEVICE1075",550
+ "keys": {551
+ "curve25519:ALICEDEVICE1075": "GzVun1UKV3SkxTGstQq7JeM8TfAWHR5AZ+cJTlry+Qc",552
+ "ed25519:ALICEDEVICE1075": "rZQ9+08rcdwcOTlZOvqsKexi/Yik0gsvkSG06+oqws8"553
+ },554
+ "signatures": {555
+ "@alice_1075:hs1": {556
+ "ed25519:ALICEDEVICE1075": "yzKhVWkBJ3mY8JQy8T8xzMl98e3bpINqnmCmxtdLJtuVNnvgFURcSR9AC+NZ8TwCS1YMYmC6nQbjhAkKtfifBA"557
+ }558
+ },559
+ "user_id": "@alice_1075:hs1",560
+ "unsigned": {}561
+ }562
+ },563
+ "@alice_1077:hs1": {564
+ "ALICEDEVICE1077": {565
+ "algorithms": [566
+ "m.olm.v1.curve25519-aes-sha2",567
+ "m.megolm.v1.aes-sha2"568
+ ],569
+ "device_id": "ALICEDEVICE1077",570
+ "keys": {571
+ "curve25519:ALICEDEVICE1077": "s0wbWTzgH7v4GUjkm7NpiU9bQziQMTMtQjRk8U4lFWo",572
+ "ed25519:ALICEDEVICE1077": "g8YJctaUz/OMgNBfqyHbVMqvaLDHFl6erpVPT8c5Zeo"573
+ },574
+ "signatures": {575
+ "@alice_1077:hs1": {576
+ "ed25519:ALICEDEVICE1077": "8aAsDf2hJKc17VsNVml+cEhSfVwWDeWYv6us1P6IuCQUljTpZCCUl3bMQC/TwFywOGIFgJJmimXkTRLh/uVeCA"577
+ }578
+ },579
+ "user_id": "@alice_1077:hs1",580
+ "unsigned": {}581
+ }582
+ },583
+ "@alice_1079:hs1": {584
+ "ALICEDEVICE1079": {585
+ "algorithms": [586
+ "m.olm.v1.curve25519-aes-sha2",587
+ "m.megolm.v1.aes-sha2"588
+ ],589
+ "device_id": "ALICEDEVICE1079",590
+ "keys": {591
+ "curve25519:ALICEDEVICE1079": "pNEkJsBl9YQSEJ2lKYtvdNvR5ejzYXjg8+/9HvdDnkE",592
+ "ed25519:ALICEDEVICE1079": "GWArQf2wJF0vPBuyJQvzAuQelVpzCbMHXvDVO5Cp6Zg"593
+ },594
+ "signatures": {595
+ "@alice_1079:hs1": {596
+ "ed25519:ALICEDEVICE1079": "Z9iUwD0RKNz1lnuXucKmXjIrHiZXcuYxG64s/aQpporvT/5NWsqwUeV2n0/hEwBHcWW1wyGtsEz2ipAWGYb6CA"597
+ }598
+ },599
+ "user_id": "@alice_1079:hs1",600
+ "unsigned": {}601
+ }602
+ },603
+ "@alice_1083:hs1": {604
+ "ALICEDEVICE1083": {605
+ "algorithms": [606
+ "m.olm.v1.curve25519-aes-sha2",607
+ "m.megolm.v1.aes-sha2"608
+ ],609
+ "device_id": "ALICEDEVICE1083",610
+ "keys": {611
+ "curve25519:ALICEDEVICE1083": "5vhhSfPdTf03SHszhEog4CdLbPI03V6/TI2G2p3FD1U",612
+ "ed25519:ALICEDEVICE1083": "FtF3rtvMEQMtoTt78TRJocPmwLcRaGc/ujjU3yHJbGo"613
+ },614
+ "signatures": {615
+ "@alice_1083:hs1": {616
+ "ed25519:ALICEDEVICE1083": "mF4DDlx1w9BEOghuKCALGgIj8oY9l2pLaDBNEnKHEEm33yC+/wfDWOKK1nBjPCzogZdNr1P/XAeiUaTrQHjxDQ"617
+ }618
+ },619
+ "user_id": "@alice_1083:hs1",620
+ "unsigned": {}621
+ }622
+ },623
+ "@alice_1092:hs1": {624
+ "ALICEDEVICE1092": {625
+ "algorithms": [626
+ "m.olm.v1.curve25519-aes-sha2",627
+ "m.megolm.v1.aes-sha2"628
+ ],629
+ "device_id": "ALICEDEVICE1092",630
+ "keys": {631
+ "curve25519:ALICEDEVICE1092": "YyrWGbHn5DJPfBmlEj94frmIklqc2gAmkBaxENX81hk",632
+ "ed25519:ALICEDEVICE1092": "vkP49lX1NP/zXunSqUyQyT+pOyxBOHRhsvrbd8DAVvM"633
+ },634
+ "signatures": {635
+ "@alice_1092:hs1": {636
+ "ed25519:ALICEDEVICE1092": "2x08Ty2/+5zeRrh1FEU6AN9sITtnE8c9B27CnM5gtmYn1cvL9pqOmB/c3ENhVJBMgxa230UN3OuKC39J5x5aBQ"637
+ }638
+ },639
+ "user_id": "@alice_1092:hs1",640
+ "unsigned": {}641
+ }642
+ },643
+ "@alice_1095:hs1": {644
+ "ALICEDEVICE1095": {645
+ "algorithms": [646
+ "m.olm.v1.curve25519-aes-sha2",647
+ "m.megolm.v1.aes-sha2"648
+ ],649
+ "device_id": "ALICEDEVICE1095",650
+ "keys": {651
+ "curve25519:ALICEDEVICE1095": "K6Vy4nbM0X/fLhPjAz1/1xzslc702S65IO/Si/bv/m8",652
+ "ed25519:ALICEDEVICE1095": "qq0tSPlDF4Wo7ByjJxXcQsQrtjiyn35lSkjD3UhAAY8"653
+ },654
+ "signatures": {655
+ "@alice_1095:hs1": {656
+ "ed25519:ALICEDEVICE1095": "8PRss+ySAzz+p+Aju25Bjnllp2isErFNJi3NQctT8CWpsIW7IhIrefhuRGX2XHAUpTw3tu9tFYX7H8zjeMVhAw"657
+ }658
+ },659
+ "user_id": "@alice_1095:hs1",660
+ "unsigned": {}661
+ }662
+ },663
+ "@alice_1097:hs1": {664
+ "ALICEDEVICE1097": {665
+ "algorithms": [666
+ "m.olm.v1.curve25519-aes-sha2",667
+ "m.megolm.v1.aes-sha2"668
+ ],669
+ "device_id": "ALICEDEVICE1097",670
+ "keys": {671
+ "curve25519:ALICEDEVICE1097": "3TiChwhaqdP76EDSLXnbBUkSIUyDvLkuWdl/sl97K2E",672
+ "ed25519:ALICEDEVICE1097": "TsvPLugtLMFRs6ewiPTUh5vbjO18f0qe/CW94jv2+0M"673
+ },674
+ "signatures": {675
+ "@alice_1097:hs1": {676
+ "ed25519:ALICEDEVICE1097": "SawPfMaFEWkKenRK5DSmUnqggaN8pg+CBqi4fQn2P0p8oV3aID0v7Aim5H3uDKFLNipuvj9l40le3nueKRthBA"677
+ }678
+ },679
+ "user_id": "@alice_1097:hs1",680
+ "unsigned": {}681
+ }682
+ },683
+ "@alice_1105:hs1": {684
+ "ALICEDEVICE1105": {685
+ "algorithms": [686
+ "m.olm.v1.curve25519-aes-sha2",687
+ "m.megolm.v1.aes-sha2"688
+ ],689
+ "device_id": "ALICEDEVICE1105",690
+ "keys": {691
+ "curve25519:ALICEDEVICE1105": "+zrberU3Ennb0PGDxfgX5R5GI+J0PpUfvEYow0t3KnQ",692
+ "ed25519:ALICEDEVICE1105": "y/t7G8pzlzBUHjhxoSVxdM5qPmjgwPLBib2hrC+6sho"693
+ },694
+ "signatures": {695
+ "@alice_1105:hs1": {696
+ "ed25519:ALICEDEVICE1105": "ANr4qi8YemWcsjhad0YKz21m4Ex9MtLJt6VgkBL7RK2XcXEnHttRnhm5n2X+mC6ltvo3lw5Cbbvtnhjlv3BLBg"697
+ }698
+ },699
+ "user_id": "@alice_1105:hs1",700
+ "unsigned": {}701
+ }702
+ },703
+ "@alice_1106:hs1": {704
+ "ALICEDEVICE1106": {705
+ "algorithms": [706
+ "m.olm.v1.curve25519-aes-sha2",707
+ "m.megolm.v1.aes-sha2"708
+ ],709
+ "device_id": "ALICEDEVICE1106",710
+ "keys": {711
+ "curve25519:ALICEDEVICE1106": "SL4HfvbTsDwNCiEyqbr48N3zbyAq0BpO2XINVWgL4RE",712
+ "ed25519:ALICEDEVICE1106": "QvLpwIod3L5fYiRZFEDorDr7+yAIQiLxz+PfMD1VCjE"713
+ },714
+ "signatures": {715
+ "@alice_1106:hs1": {716
+ "ed25519:ALICEDEVICE1106": "lmFYkPrZHUVHh+yeNxdjYpZXsj9mHO27+Kz3BwKMcjm+CzMw9XkEDE7UMLZnSql2VZcXTj1gaOlCFFH6TDI9CQ"717
+ }718
+ },719
+ "user_id": "@alice_1106:hs1",720
+ "unsigned": {}721
+ }722
+ },723
+ "@alice_1131:hs1": {724
+ "ALICEDEVICE1131": {725
+ "algorithms": [726
+ "m.olm.v1.curve25519-aes-sha2",727
+ "m.megolm.v1.aes-sha2"728
+ ],729
+ "device_id": "ALICEDEVICE1131",730
+ "keys": {731
+ "curve25519:ALICEDEVICE1131": "XPVB+zpeXL3eSWVlBVEdH9XJQFCmw+Bl5hLxMKmJLWc",732
+ "ed25519:ALICEDEVICE1131": "p/kjYwgPnv5u3qnTaEPCQooaUzdsgCVG92/3l+uNOTU"733
+ },734
+ "signatures": {735
+ "@alice_1131:hs1": {736
+ "ed25519:ALICEDEVICE1131": "ZWD7+6m95LhoNnA0wGeyYJSTZWiuMHqocL+xb2TmlhWGB2t8gC8nFnF1PXbBCOyDzsBePhRmVlvgVF87bvkABQ"737
+ }738
+ },739
+ "user_id": "@alice_1131:hs1",740
+ "unsigned": {}741
+ }742
+ },743
+ "@alice_1139:hs1": {744
+ "ALICEDEVICE1139": {745
+ "algorithms": [746
+ "m.olm.v1.curve25519-aes-sha2",747
+ "m.megolm.v1.aes-sha2"748
+ ],749
+ "device_id": "ALICEDEVICE1139",750
+ "keys": {751
+ "curve25519:ALICEDEVICE1139": "IKMYwy3oq5uD4MzSJFN1r8E5vhKxAEjbXn/OGeOaiyo",752
+ "ed25519:ALICEDEVICE1139": "qq5ljvmxn6agaUrRonGOZ67iqOy9lzDyW6UvfJTGCHM"753
+ },754
+ "signatures": {755
+ "@alice_1139:hs1": {756
+ "ed25519:ALICEDEVICE1139": "SfrkawHq4Pe5i+v5InYq0h9EQnZwPZ0GR73vElf4lkQZYGQRSpiTV3KM5fgtz+uH2o0OIdRLJ6KqwnANhO0hBA"757
+ }758
+ },759
+ "user_id": "@alice_1139:hs1",760
+ "unsigned": {}761
+ }762
+ },763
+ "@alice_1142:hs1": {764
+ "ALICEDEVICE1142": {765
+ "algorithms": [766
+ "m.olm.v1.curve25519-aes-sha2",767
+ "m.megolm.v1.aes-sha2"768
+ ],769
+ "device_id": "ALICEDEVICE1142",770
+ "keys": {771
+ "curve25519:ALICEDEVICE1142": "QIZ2nPfVMY1VLOjPvYgSBf5esHQjUtvLdPmX9YWcdTs",772
+ "ed25519:ALICEDEVICE1142": "EOf43/Ph2N6JCFPsaVATwBLWK1zrHPI+zg7r5tP9FhE"773
+ },774
+ "signatures": {775
+ "@alice_1142:hs1": {776
+ "ed25519:ALICEDEVICE1142": "zN7altc5DRvgE87eeFwosHIQmRdmSAAowFzpIZUeVAMERlNzX3ngx0+tQHFFSlnxwS0nFPXnb8iP65nYMmwcCg"777
+ }778
+ },779
+ "user_id": "@alice_1142:hs1",780
+ "unsigned": {}781
+ }782
+ },783
+ "@alice_114:hs1": {784
+ "ALICEDEVICE114": {785
+ "algorithms": [786
+ "m.olm.v1.curve25519-aes-sha2",787
+ "m.megolm.v1.aes-sha2"788
+ ],789
+ "device_id": "ALICEDEVICE114",790
+ "keys": {791
+ "curve25519:ALICEDEVICE114": "pqV6NGx3kJEoVj8Y8QVwkUvM4i9ldK7G91n9RUSph1o",792
+ "ed25519:ALICEDEVICE114": "79205ygfqbMgg/yg3D1OWEqQyTFEbYz6xS1L1J5PTO0"793
+ },794
+ "signatures": {795
+ "@alice_114:hs1": {796
+ "ed25519:ALICEDEVICE114": "YU0gkuKp4d73akxjfuIJ0jH6CCmB/vt/YTDoFDi7nLvKnQ71KHWUosH1qbI3VKCKoVKebLpC8qQG1Epm19MxCQ"797
+ }798
+ },799
+ "user_id": "@alice_114:hs1",800
+ "unsigned": {}801
+ }802
+ },803
+ "@alice_1150:hs1": {804
+ "ALICEDEVICE1150": {805
+ "algorithms": [806
+ "m.olm.v1.curve25519-aes-sha2",807
+ "m.megolm.v1.aes-sha2"808
+ ],809
+ "device_id": "ALICEDEVICE1150",810
+ "keys": {811
+ "curve25519:ALICEDEVICE1150": "31fn3MWF0SGMrhVBjsBW24hGd47dzoDohGqVJeBYLTQ",812
+ "ed25519:ALICEDEVICE1150": "f1km7a/zEUIDOUo1MULULo7uJzKSaT7SQs+TX0RcrOw"813
+ },814
+ "signatures": {815
+ "@alice_1150:hs1": {816
+ "ed25519:ALICEDEVICE1150": "3kEAZhGV4k6l46rP2Ps1sBSUlrRd0LKesoKjpMEb8ajYtEQHYqd3GpGFxRCCXg6Gq8ZDzvclAdxfyAajQImhAg"817
+ }818
+ },819
+ "user_id": "@alice_1150:hs1",820
+ "unsigned": {}821
+ }822
+ },823
+ "@alice_1162:hs1": {824
+ "ALICEDEVICE1162": {825
+ "algorithms": [826
+ "m.olm.v1.curve25519-aes-sha2",827
+ "m.megolm.v1.aes-sha2"828
+ ],829
+ "device_id": "ALICEDEVICE1162",830
+ "keys": {831
+ "curve25519:ALICEDEVICE1162": "9KpsK4S+c7X1806Eyo/J4Oc0lNY0bqv8mwCkTaEIGWQ",832
+ "ed25519:ALICEDEVICE1162": "JmeDoofpfDc/h8Jfs/x1/hT3UynnZXsh2xKOQCyuIoA"833
+ },834
+ "signatures": {835
+ "@alice_1162:hs1": {836
+ "ed25519:ALICEDEVICE1162": "T0GK4FD4RiSNJqKdMbBTNwaFXZuQQDKsys4QwWoHer4Ogt21oIDTbRYYwmR4IIZly5TzahssN0BS2bnreZpTBQ"837
+ }838
+ },839
+ "user_id": "@alice_1162:hs1",840
+ "unsigned": {}841
+ }842
+ },843
+ "@alice_116:hs1": {844
+ "ALICEDEVICE116": {845
+ "algorithms": [846
+ "m.olm.v1.curve25519-aes-sha2",847
+ "m.megolm.v1.aes-sha2"848
+ ],849
+ "device_id": "ALICEDEVICE116",850
+ "keys": {851
+ "curve25519:ALICEDEVICE116": "9OaNj6Y793IxSM8QVx+wSM7rRxcSkCnE1F9vYC0vyDQ",852
+ "ed25519:ALICEDEVICE116": "+IhtwgosueMx7rKNLJpX+/esqZRHPXI73MarVgnqXDA"853
+ },854
+ "signatures": {855
+ "@alice_116:hs1": {856
+ "ed25519:ALICEDEVICE116": "QalQ+aZUugCLMsy4pchXKT5M3dG5ymQYUpySI9fUJ+atvgDIiAVAnmMI5FQxbQ6Jw99WOP6srrkbyPomjP33Dg"857
+ }858
+ },859
+ "user_id": "@alice_116:hs1",860
+ "unsigned": {}861
+ }862
+ },863
+ "@alice_1170:hs1": {864
+ "ALICEDEVICE1170": {865
+ "algorithms": [866
+ "m.olm.v1.curve25519-aes-sha2",867
+ "m.megolm.v1.aes-sha2"868
+ ],869
+ "device_id": "ALICEDEVICE1170",870
+ "keys": {871
+ "curve25519:ALICEDEVICE1170": "hnMltgB3h6jN1Ri/9rxyodLc+hGdjTH/0Endf3N+Cgw",872
+ "ed25519:ALICEDEVICE1170": "FZ9lRq0QCGWbRdkcF8pcIM26ak2AQX90hR3K+Y6mtmw"873
+ },874
+ "signatures": {875
+ "@alice_1170:hs1": {876
+ "ed25519:ALICEDEVICE1170": "OiWx8fChadiEneR3+8TnCXBAaQsLSOz4v4KKRU7uaq2paoOY1ZrbYeKOPK7enOG32yUwYu+edjdulRJU3IpWBw"877
+ }878
+ },879
+ "user_id": "@alice_1170:hs1",880
+ "unsigned": {}881
+ }882
+ },883
+ "@alice_1180:hs1": {884
+ "ALICEDEVICE1180": {885
+ "algorithms": [886
+ "m.olm.v1.curve25519-aes-sha2",887
+ "m.megolm.v1.aes-sha2"888
+ ],889
+ "device_id": "ALICEDEVICE1180",890
+ "keys": {891
+ "curve25519:ALICEDEVICE1180": "1dRczpVECVDuyKfcNgN6psjYEcP1jQDpCoGa0aFbJSk",892
+ "ed25519:ALICEDEVICE1180": "CnLvDWhy9/PkaLmvxp/phis72o+U/JWf9O51OmRM8TQ"893
+ },894
+ "signatures": {895
+ "@alice_1180:hs1": {896
+ "ed25519:ALICEDEVICE1180": "7McpDmcxfGyVRI3SxCx6S633Fkfg8x9OGH9bs6/ZGLEoSCRGrFiCiDflsCFSxgUOl0OvxLIwT1/rOWX4FYrGDQ"897
+ }898
+ },899
+ "user_id": "@alice_1180:hs1",900
+ "unsigned": {}901
+ }902
+ },903
+ "@alice_1183:hs1": {904
+ "ALICEDEVICE1183": {905
+ "algorithms": [906
+ "m.olm.v1.curve25519-aes-sha2",907
+ "m.megolm.v1.aes-sha2"908
+ ],909
+ "device_id": "ALICEDEVICE1183",910
+ "keys": {911
+ "curve25519:ALICEDEVICE1183": "e6QnOnd0ViH+mTChPiTVKgItoV5JwtjoPaCxc0Ys6wQ",912
+ "ed25519:ALICEDEVICE1183": "u6zywKwJU+gnPHQbAALDwsQQaUrY8dDf9MsksBiEjfM"913
+ },914
+ "signatures": {915
+ "@alice_1183:hs1": {916
+ "ed25519:ALICEDEVICE1183": "HOThBPs2QnqxGjq8dixi6y/wQFK5RviJPQzuOrvYV5tZ/hMY7NwSpzwN/R3XQODsjYu9eDm4HJ/CbYscd6IJCw"917
+ }918
+ },919
+ "user_id": "@alice_1183:hs1",920
+ "unsigned": {}921
+ }922
+ },923
+ "@alice_1189:hs1": {924
+ "ALICEDEVICE1189": {925
+ "algorithms": [926
+ "m.olm.v1.curve25519-aes-sha2",927
+ "m.megolm.v1.aes-sha2"928
+ ],929
+ "device_id": "ALICEDEVICE1189",930
+ "keys": {931
+ "curve25519:ALICEDEVICE1189": "Ux0iOIAT/1FLITKTjdb18g59+378emLvGxiG2k1hrBc",932
+ "ed25519:ALICEDEVICE1189": "oGBW8kAkrsLVOPaulCMzciffNlouuwD9CXkEUPc5wrE"933
+ },934
+ "signatures": {935
+ "@alice_1189:hs1": {936
+ "ed25519:ALICEDEVICE1189": "cm5MrWp+LLf6zOMsTTf0Qp27XzVFkGubNxzp6E5MrT9ly6w3Sb/x0YGO38YDpmdjj2aeN7P1PnlEr6+rHIpRCQ"937
+ }938
+ },939
+ "user_id": "@alice_1189:hs1",940
+ "unsigned": {}941
+ }942
+ },943
+ "@alice_118:hs1": {944
+ "ALICEDEVICE118": {945
+ "algorithms": [946
+ "m.olm.v1.curve25519-aes-sha2",947
+ "m.megolm.v1.aes-sha2"948
+ ],949
+ "device_id": "ALICEDEVICE118",950
+ "keys": {951
+ "curve25519:ALICEDEVICE118": "rhePUpGbdvGAnvtxQPIR3lUUMs84WeG+V+8xX7vwlUo",952
+ "ed25519:ALICEDEVICE118": "EXIMPDLcz69tAGWetyo45m59j/+EEdd3/8xa/g5Nd98"953
+ },954
+ "signatures": {955
+ "@alice_118:hs1": {956
+ "ed25519:ALICEDEVICE118": "H8jVGInVey+OO0UgFES+PZb3tk9y8Foql+rFH23XI+8nNrVeQQ2TAXG1lOujO/5hjM0VBtr8bKm/cKYP7A6ACA"957
+ }958
+ },959
+ "user_id": "@alice_118:hs1",960
+ "unsigned": {}961
+ }962
+ },963
+ "@alice_1194:hs1": {964
+ "ALICEDEVICE1194": {965
+ "algorithms": [966
+ "m.olm.v1.curve25519-aes-sha2",967
+ "m.megolm.v1.aes-sha2"968
+ ],969
+ "device_id": "ALICEDEVICE1194",970
+ "keys": {971
+ "curve25519:ALICEDEVICE1194": "xq9lQVR5BkaW5rPjdjcYnG3ONuCNA/OXLbHaVVzqEEI",972
+ "ed25519:ALICEDEVICE1194": "6xmsk2HQtUuJtpNnzGXw4/0ftLOyi9AXn4JgXBiwx1Q"973
+ },974
+ "signatures": {975
+ "@alice_1194:hs1": {976
+ "ed25519:ALICEDEVICE1194": "iPME0jByWhYMg8IzeL1scxXuPAaK16jSO5fQLDGyKYFF+mge2kfqaZrmb5RZ2xi3ZBs43CZ1FLZFgEX5lVrECQ"977
+ }978
+ },979
+ "user_id": "@alice_1194:hs1",980
+ "unsigned": {}981
+ }982
+ },983
+ "@alice_1215:hs1": {984
+ "ALICEDEVICE1215": {985
+ "algorithms": [986
+ "m.olm.v1.curve25519-aes-sha2",987
+ "m.megolm.v1.aes-sha2"988
+ ],989
+ "device_id": "ALICEDEVICE1215",990
+ "keys": {991
+ "curve25519:ALICEDEVICE1215": "G8fjC+K52bIrmx1zhBuWEVcXyLWrzl1ifRlnK7J4uR8",992
+ "ed25519:ALICEDEVICE1215": "RIGwkn7h8uhfFE/ChpCLh1LqvPTRQoSjU6VbenwnjCg"993
+ },994
+ "signatures": {995
+ "@alice_1215:hs1": {996
+ "ed25519:ALICEDEVICE1215": "JBIsnaKC9vu6E/JMSEoWRGUbkPpxHm2Wgg3HaLXzC+WyEEcCJR8ejGKEjRbfaEDZ2AxBD1bn9QzBNn4fjq3XAg"997
+ }998
+ },999
+ "user_id": "@alice_1215:hs1",1000
+ "unsigned": {}1001
+ }1002
+ },1003
+ "@alice_1230:hs1": {1004
+ "ALICEDEVICE1230": {1005
+ "algorithms": [1006
+ "m.olm.v1.curve25519-aes-sha2",1007
+ "m.megolm.v1.aes-sha2"1008
+ ],1009
+ "device_id": "ALICEDEVICE1230",1010
+ "keys": {1011
+ "curve25519:ALICEDEVICE1230": "qcR3tNnEejqI1nipT1cf1qBSWGbJGtBidhhB27g0gio",1012
+ "ed25519:ALICEDEVICE1230": "mm4ST1+et76b20t2pJcKmUA226hZr/RX4EAEKUldOGg"1013
+ },1014
+ "signatures": {1015
+ "@alice_1230:hs1": {1016
+ "ed25519:ALICEDEVICE1230": "M9JM3Wi8IojE5I+Um+CxPIajGVRAVjHEqN8GC+SjmCbTn8Qe2C2g9WutB2FLYFZ7pr3Hkr8jsdtqPqdxvoIPDQ"1017
+ }1018
+ },1019
+ "user_id": "@alice_1230:hs1",1020
+ "unsigned": {}1021
+ }1022
+ },1023
+ "@alice_1243:hs1": {1024
+ "ALICEDEVICE1243": {1025
+ "algorithms": [1026
+ "m.olm.v1.curve25519-aes-sha2",1027
+ "m.megolm.v1.aes-sha2"1028
+ ],1029
+ "device_id": "ALICEDEVICE1243",1030
+ "keys": {1031
+ "curve25519:ALICEDEVICE1243": "goZ1kfewJORAnn7QIc77NDDtPnQnv1oThHmojZxmMAA",1032
+ "ed25519:ALICEDEVICE1243": "nUj9pAL3zSGij1HeOvD1RVxLEYoDw80QPsB0BbFVgZ4"1033
+ },1034
+ "signatures": {1035
+ "@alice_1243:hs1": {1036
+ "ed25519:ALICEDEVICE1243": "0CFFaBBHRSr/4cCU5CVONM0zRvxAw3TzUd5BwHK13gfu4myeS1mlKjwdEPysCKZjzHlwiuBLKJQnIPD4aFifAQ"1037
+ }1038
+ },1039
+ "user_id": "@alice_1243:hs1",1040
+ "unsigned": {}1041
+ }1042
+ },1043
+ "@alice_1244:hs1": {1044
+ "ALICEDEVICE1244": {1045
+ "algorithms": [1046
+ "m.olm.v1.curve25519-aes-sha2",1047
+ "m.megolm.v1.aes-sha2"1048
+ ],1049
+ "device_id": "ALICEDEVICE1244",1050
+ "keys": {1051
+ "curve25519:ALICEDEVICE1244": "iE1FViEsN7mrPeOAakWfdikDk4bvt2fHMvufLnE3czg",1052
+ "ed25519:ALICEDEVICE1244": "TzvxA9vyBoRm9ApHTjuFS+YXmG/YupsMwjH5/WBlGcY"1053
+ },1054
+ "signatures": {1055
+ "@alice_1244:hs1": {1056
+ "ed25519:ALICEDEVICE1244": "aT/cGDXiGx/R3Armqm4myGzaxZaUeVg9poF/OVTp9oUB+8CLFcTXxCACUHpipeMRsFxDebLr6hEjyeJCiHZ9CQ"1057
+ }1058
+ },1059
+ "user_id": "@alice_1244:hs1",1060
+ "unsigned": {}1061
+ }1062
+ },1063
+ "@alice_1264:hs1": {1064
+ "ALICEDEVICE1264": {1065
+ "algorithms": [1066
+ "m.olm.v1.curve25519-aes-sha2",1067
+ "m.megolm.v1.aes-sha2"1068
+ ],1069
+ "device_id": "ALICEDEVICE1264",1070
+ "keys": {1071
+ "curve25519:ALICEDEVICE1264": "mz/TAojoo7V/sbikUZqRXj2wyaAWihnYf8CNRbU1en0",1072
+ "ed25519:ALICEDEVICE1264": "GJkBRHXLVNenPA6r167UQnV6SLWclBjAxoBHbuLPq7U"1073
+ },1074
+ "signatures": {1075
+ "@alice_1264:hs1": {1076
+ "ed25519:ALICEDEVICE1264": "zmSvFW2gnTmWMld/A4eJj5WUN3RnxjMtj3et68ih51xHINT+qZQxImUITwpt5jzWbR3cs8L/1my93I5j/29TAg"1077
+ }1078
+ },1079
+ "user_id": "@alice_1264:hs1",1080
+ "unsigned": {}1081
+ }1082
+ },1083
+ "@alice_1267:hs1": {1084
+ "ALICEDEVICE1267": {1085
+ "algorithms": [1086
+ "m.olm.v1.curve25519-aes-sha2",1087
+ "m.megolm.v1.aes-sha2"1088
+ ],1089
+ "device_id": "ALICEDEVICE1267",1090
+ "keys": {1091
+ "curve25519:ALICEDEVICE1267": "jY1OF8D0MrXKO00Rqb1WPh5jO/RDPWj6VjI8iHqpIyI",1092
+ "ed25519:ALICEDEVICE1267": "8O5xn0cBSSSLegxWNDl2ZkgDjaOjJ3iBb1eTElDupUg"1093
+ },1094
+ "signatures": {1095
+ "@alice_1267:hs1": {1096
+ "ed25519:ALICEDEVICE1267": "etWZskPMkRkNN/BnlpYgsFCiYznUhrI3hvHIWPVCpfV5aKWqks0NFCxHhK9q48y+9kDgIe5e8EmBQr6GRVx/Cg"1097
+ }1098
+ },1099
+ "user_id": "@alice_1267:hs1",1100
+ "unsigned": {}1101
+ }1102
+ },1103
+ "@alice_1273:hs1": {1104
+ "ALICEDEVICE1273": {1105
+ "algorithms": [1106
+ "m.olm.v1.curve25519-aes-sha2",1107
+ "m.megolm.v1.aes-sha2"1108
+ ],1109
+ "device_id": "ALICEDEVICE1273",1110
+ "keys": {1111
+ "curve25519:ALICEDEVICE1273": "zKTP4YgJHOvYhqcGteDARI5OqmXMd3LXGsRHMLduBik",1112
+ "ed25519:ALICEDEVICE1273": "yq104TxJoxUcGjD5LSw0K+GZzHMoJ2e9QvYp+zF9uiI"1113
+ },1114
+ "signatures": {1115
+ "@alice_1273:hs1": {1116
+ "ed25519:ALICEDEVICE1273": "RJydQKSHttMwhuI2U5zSTmvbObIik2N5lliMIEMh2IHbxYVu3hpvcGxSdUiqONSjVmQ7nZPrIvDGEzbWEzmrDg"1117
+ }1118
+ },1119
+ "user_id": "@alice_1273:hs1",1120
+ "unsigned": {}1121
+ }1122
+ },1123
+ "@alice_1282:hs1": {1124
+ "ALICEDEVICE1282": {1125
+ "algorithms": [1126
+ "m.olm.v1.curve25519-aes-sha2",1127
+ "m.megolm.v1.aes-sha2"1128
+ ],1129
+ "device_id": "ALICEDEVICE1282",1130
+ "keys": {1131
+ "curve25519:ALICEDEVICE1282": "bBWdBF6cO1dXoLblRUum/RJOiunKtmWEajfBcJibPT8",1132
+ "ed25519:ALICEDEVICE1282": "QNV6DnvsNQ0HmkSBoCq/DEPVboG8v7KSJIJWDLvr3aY"1133
+ },1134
+ "signatures": {1135
+ "@alice_1282:hs1": {1136
+ "ed25519:ALICEDEVICE1282": "SnOmTfjdjuCgToOju3rjylaOTY4qcQYwkmo0M3gO+jtRr+XIqob74CPQRjHIg8TCAY6bWOIuKBf/9NECs38FBA"1137
+ }1138
+ },1139
+ "user_id": "@alice_1282:hs1",1140
+ "unsigned": {}1141
+ }1142
+ },1143
+ "@alice_1290:hs1": {1144
+ "ALICEDEVICE1290": {1145
+ "algorithms": [1146
+ "m.olm.v1.curve25519-aes-sha2",1147
+ "m.megolm.v1.aes-sha2"1148
+ ],1149
+ "device_id": "ALICEDEVICE1290",1150
+ "keys": {1151
+ "curve25519:ALICEDEVICE1290": "JSPF4Ckyzm416ZzzEzIqxFRfvKURzrrg1aBpHkWxkmk",1152
+ "ed25519:ALICEDEVICE1290": "QZDcHjZZGRUuvJ5edQyA7fu+cT8V2SDuAKPhBYEj9So"1153
+ },1154
+ "signatures": {1155
+ "@alice_1290:hs1": {1156
+ "ed25519:ALICEDEVICE1290": "JCHH8gTAciPYMr1YHKahIcZhsLqQGMCMbuuzzqSgj9X+z9ZAwkXJTTI39ybeDOi+BVgxid1oB2giEZgrS5v0Bg"1157
+ }1158
+ },1159
+ "user_id": "@alice_1290:hs1",1160
+ "unsigned": {}1161
+ }1162
+ },1163
+ "@alice_1294:hs1": {1164
+ "ALICEDEVICE1294": {1165
+ "algorithms": [1166
+ "m.olm.v1.curve25519-aes-sha2",1167
+ "m.megolm.v1.aes-sha2"1168
+ ],1169
+ "device_id": "ALICEDEVICE1294",1170
+ "keys": {1171
+ "curve25519:ALICEDEVICE1294": "d39Dr7Z7MEwtkuTuHIEWvQLVJCFcRz6+o8hXHK2RmSo",1172
+ "ed25519:ALICEDEVICE1294": "Z9q3LWsazCaSTWBM/seUu1yvkJ/PitOrPPYNTK+/dHQ"1173
+ },1174
+ "signatures": {1175
+ "@alice_1294:hs1": {1176
+ "ed25519:ALICEDEVICE1294": "x2PIe2fnOYktASp94gqW9+v+S9XagPBbGJKm85X2OffFpupzcLaEbno7fomApBZ11Atp07yub/2aZidlsd1sAA"1177
+ }1178
+ },1179
+ "user_id": "@alice_1294:hs1",1180
+ "unsigned": {}1181
+ }1182
+ },1183
+ "@alice_1296:hs1": {1184
+ "ALICEDEVICE1296": {1185
+ "algorithms": [1186
+ "m.olm.v1.curve25519-aes-sha2",1187
+ "m.megolm.v1.aes-sha2"1188
+ ],1189
+ "device_id": "ALICEDEVICE1296",1190
+ "keys": {1191
+ "curve25519:ALICEDEVICE1296": "y2YsnK0oZqLVfn1yYNvs991IlYkV9VWXTtOe5ZacjAg",1192
+ "ed25519:ALICEDEVICE1296": "kFz26bDNkt+xsSqdGMBkExYv7cxDYVmPaTQUEiikCc0"1193
+ },1194
+ "signatures": {1195
+ "@alice_1296:hs1": {1196
+ "ed25519:ALICEDEVICE1296": "e1/bSn79+C1oJnOpQ3jcnJO/yediXV4UA2L7+aYvA1D8AAoVGxsk4TaRGvI8HoalWQhOL4mjsfW2mAU85MSzBg"1197
+ }1198
+ },1199
+ "user_id": "@alice_1296:hs1",1200
+ "unsigned": {}1201
+ }1202
+ },1203
+ "@alice_1306:hs1": {1204
+ "ALICEDEVICE1306": {1205
+ "algorithms": [1206
+ "m.olm.v1.curve25519-aes-sha2",1207
+ "m.megolm.v1.aes-sha2"1208
+ ],1209
+ "device_id": "ALICEDEVICE1306",1210
+ "keys": {1211
+ "curve25519:ALICEDEVICE1306": "t9Djga1FYDALomon+CNbZcH1slkoOdgWdlTz7BZVUU8",1212
+ "ed25519:ALICEDEVICE1306": "rc8EIA5d/1opd/Ssgv0BlqRmRdHVSP0bBhpFVGhccx8"1213
+ },1214
+ "signatures": {1215
+ "@alice_1306:hs1": {1216
+ "ed25519:ALICEDEVICE1306": "AtmqToDKRWZ1PN3uNrq4nkuSmyKOpfjZnBh7K160bkFfVyp6WMmwl/8olBfuM45AJXCSlBSguyDC7Q5efjGOBQ"1217
+ }1218
+ },1219
+ "user_id": "@alice_1306:hs1",1220
+ "unsigned": {}1221
+ }1222
+ },1223
+ "@alice_130:hs1": {1224
+ "ALICEDEVICE130": {1225
+ "algorithms": [1226
+ "m.olm.v1.curve25519-aes-sha2",1227
+ "m.megolm.v1.aes-sha2"1228
+ ],1229
+ "device_id": "ALICEDEVICE130",1230
+ "keys": {1231
+ "curve25519:ALICEDEVICE130": "GZtrvz/ackM8PYGWZ7Yma43ZnDrHAS4HUlBai0FNvCo",1232
+ "ed25519:ALICEDEVICE130": "C1E91vDMqgPW6N3eGA+WFT0UKOfoR9oEZWZlD9Y5+T4"1233
+ },1234
+ "signatures": {1235
+ "@alice_130:hs1": {1236
+ "ed25519:ALICEDEVICE130": "f7TQPZC+ZDLTdWV8jRB+Li2r8GhEiyLNOUDdtCL3G+T9tKYugvZ7x845NIawNUk7lOIWdBfoAVE1h4nnb+TkAw"1237
+ }1238
+ },1239
+ "user_id": "@alice_130:hs1",1240
+ "unsigned": {}1241
+ }1242
+ },1243
+ "@alice_1318:hs1": {1244
+ "ALICEDEVICE1318": {1245
+ "algorithms": [1246
+ "m.olm.v1.curve25519-aes-sha2",1247
+ "m.megolm.v1.aes-sha2"1248
+ ],1249
+ "device_id": "ALICEDEVICE1318",1250
+ "keys": {1251
+ "curve25519:ALICEDEVICE1318": "m68pYakhYHF7nWcQFHkey4SqGiipgdK3S0T26Md1r0M",1252
+ "ed25519:ALICEDEVICE1318": "PiOBt0K257xgjZMX8Z6DNq3hFBA2nQh0G4na1QwBkL0"1253
+ },1254
+ "signatures": {1255
+ "@alice_1318:hs1": {1256
+ "ed25519:ALICEDEVICE1318": "7zm66zZlL4Ji2lruWnQfQW1zXECdh0In+IBTCEfXdpNlFdD8anTsS/vLQYcSkXIZYiex4KHr4CKPJ/SW7oCkCw"1257
+ }1258
+ },1259
+ "user_id": "@alice_1318:hs1",1260
+ "unsigned": {}1261
+ }1262
+ },1263
+ "@alice_1322:hs1": {1264
+ "ALICEDEVICE1322": {1265
+ "algorithms": [1266
+ "m.olm.v1.curve25519-aes-sha2",1267
+ "m.megolm.v1.aes-sha2"1268
+ ],1269
+ "device_id": "ALICEDEVICE1322",1270
+ "keys": {1271
+ "curve25519:ALICEDEVICE1322": "5x6fYa0E0wTcCnOwUdjumwGyObOO+JqS88JhOLpkm0o",1272
+ "ed25519:ALICEDEVICE1322": "iL7TOr0mLSTPC12Y+p3j2LDGOtCNlgt7Y8JtboNSYl0"1273
+ },1274
+ "signatures": {1275
+ "@alice_1322:hs1": {1276
+ "ed25519:ALICEDEVICE1322": "ysFfwVJd2sqAK4BYSxSl6mWIVqJkE7qz464tB2Iz/7x/kE/NHKxDDnoen/CYBKurjT/aZM3t5LGEFDwxAklIBA"1277
+ }1278
+ },1279
+ "user_id": "@alice_1322:hs1",1280
+ "unsigned": {}1281
+ }1282
+ },1283
+ "@alice_1332:hs1": {1284
+ "ALICEDEVICE1332": {1285
+ "algorithms": [1286
+ "m.olm.v1.curve25519-aes-sha2",1287
+ "m.megolm.v1.aes-sha2"1288
+ ],1289
+ "device_id": "ALICEDEVICE1332",1290
+ "keys": {1291
+ "curve25519:ALICEDEVICE1332": "2+SQ/UjWB5mZzCA0mbnc8X6eB0isEUz7SdYd3tBDXA4",1292
+ "ed25519:ALICEDEVICE1332": "jI6AaMsJXEB+P2gU9gAVXAIP9lMLi1cQWOhZs88XgiE"1293
+ },1294
+ "signatures": {1295
+ "@alice_1332:hs1": {1296
+ "ed25519:ALICEDEVICE1332": "f9vPu8wfj+s6y/2WzV9ghE5ZZvji27hbv53DLom9avgXOggmmgRsFcu73RPXtwTRtnKR2tk8EGP0acvZ4wWvDQ"1297
+ }1298
+ },1299
+ "user_id": "@alice_1332:hs1",1300
+ "unsigned": {}1301
+ }1302
+ },1303
+ "@alice_1333:hs1": {1304
+ "ALICEDEVICE1333": {1305
+ "algorithms": [1306
+ "m.olm.v1.curve25519-aes-sha2",1307
+ "m.megolm.v1.aes-sha2"1308
+ ],1309
+ "device_id": "ALICEDEVICE1333",1310
+ "keys": {1311
+ "curve25519:ALICEDEVICE1333": "xbctaM02r6lGvrFBJeZFTav0yltDegPuNrjRlDAe0ic",1312
+ "ed25519:ALICEDEVICE1333": "1UGr9lfCJz8smMRAtnN8fDnZu/8BzaDTFQfsG+ayAJQ"1313
+ },1314
+ "signatures": {1315
+ "@alice_1333:hs1": {1316
+ "ed25519:ALICEDEVICE1333": "gU5eNtA71kN2vmZ3pLETscKeoEC/NMxBUFLGm+DzGBZFq2RSnXmYWKkngM3s2WDVq2drkbH6uLi2SXd4BFnXDw"1317
+ }1318
+ },1319
+ "user_id": "@alice_1333:hs1",1320
+ "unsigned": {}1321
+ }1322
+ },1323
+ "@alice_1353:hs1": {1324
+ "ALICEDEVICE1353": {1325
+ "algorithms": [1326
+ "m.olm.v1.curve25519-aes-sha2",1327
+ "m.megolm.v1.aes-sha2"1328
+ ],1329
+ "device_id": "ALICEDEVICE1353",1330
+ "keys": {1331
+ "curve25519:ALICEDEVICE1353": "eef/4eEoMYWiBC+oSZz1SoEvXmM/hZDmU6YKlBw1SFE",1332
+ "ed25519:ALICEDEVICE1353": "tD0CZmRZZMEdQMUEmRMPEO8AW+kWuOHoVQtEgsn2r3k"1333
+ },1334
+ "signatures": {1335
+ "@alice_1353:hs1": {1336
+ "ed25519:ALICEDEVICE1353": "qP78mPlbFJeQHkBeNt4sycOuISuAV6THJv8BxK+cCsKj9GAU7YM+Od1SKvkvj/CVtGAUvYWqvHN7IxUaseJhDA"1337
+ }1338
+ },1339
+ "user_id": "@alice_1353:hs1",1340
+ "unsigned": {}1341
+ }1342
+ },1343
+ "@alice_1354:hs1": {1344
+ "ALICEDEVICE1354": {1345
+ "algorithms": [1346
+ "m.olm.v1.curve25519-aes-sha2",1347
+ "m.megolm.v1.aes-sha2"1348
+ ],1349
+ "device_id": "ALICEDEVICE1354",1350
+ "keys": {1351
+ "curve25519:ALICEDEVICE1354": "TSnM9SpaQIWRoIQExjgdzbk4vSrCr/gbBTS6xi0miFg",1352
+ "ed25519:ALICEDEVICE1354": "7yfmSnTC+uFh44YbrWB99zpXpakYHqIQRxNP+W8P/VE"1353
+ },1354
+ "signatures": {1355
+ "@alice_1354:hs1": {1356
+ "ed25519:ALICEDEVICE1354": "WB5fyd4ebaD59RvWenyeG+LiPZRCz901W6ITlF3MAKoHiYeBOCxN9850/G/TOTLvnQ0p0Wh7ybIN3DOVgbtLAQ"1357
+ }1358
+ },1359
+ "user_id": "@alice_1354:hs1",1360
+ "unsigned": {}1361
+ }1362
+ },1363
+ "@alice_1357:hs1": {1364
+ "ALICEDEVICE1357": {1365
+ "algorithms": [1366
+ "m.olm.v1.curve25519-aes-sha2",1367
+ "m.megolm.v1.aes-sha2"1368
+ ],1369
+ "device_id": "ALICEDEVICE1357",1370
+ "keys": {1371
+ "curve25519:ALICEDEVICE1357": "kuCPM7QXPi1SB46O6ehqBisUDCh01nwNHgKZM2XnLDc",1372
+ "ed25519:ALICEDEVICE1357": "PYxz8eTzwV97+U5jyh2DGesQnT1MIHw65eyzpfDe2fw"1373
+ },1374
+ "signatures": {1375
+ "@alice_1357:hs1": {1376
+ "ed25519:ALICEDEVICE1357": "hPvE1ibZsvjlGYq/U1MSs3TCC4Y6h9t/+ymjmHNA+MZXisnNqQsgrWL4NscssvasnSVU0GXCDspgPe2uJeieAA"1377
+ }1378
+ },1379
+ "user_id": "@alice_1357:hs1",1380
+ "unsigned": {}1381
+ }1382
+ },1383
+ "@alice_1368:hs1": {1384
+ "ALICEDEVICE1368": {1385
+ "algorithms": [1386
+ "m.olm.v1.curve25519-aes-sha2",1387
+ "m.megolm.v1.aes-sha2"1388
+ ],1389
+ "device_id": "ALICEDEVICE1368",1390
+ "keys": {1391
+ "curve25519:ALICEDEVICE1368": "3zKC/X7Ge7cwHH9LqbayqexvaYT9dvWX3AzfyVG4rR8",1392
+ "ed25519:ALICEDEVICE1368": "llgVNqhf0DpfVGQ1YgDGQxdxJTM+OsjqvVGDWQXvsUs"1393
+ },1394
+ "signatures": {1395
+ "@alice_1368:hs1": {1396
+ "ed25519:ALICEDEVICE1368": "pd/ov23uWspM3LQckdXDS3aXWUMPCFptgP+qEJeajuEdTwBEdpb8n7kfbdpVC7rfXyPMWPxQ5xB+Bh1vTmhTAA"1397
+ }1398
+ },1399
+ "user_id": "@alice_1368:hs1",1400
+ "unsigned": {}1401
+ }1402
+ },1403
+ "@alice_1369:hs1": {1404
+ "ALICEDEVICE1369": {1405
+ "algorithms": [1406
+ "m.olm.v1.curve25519-aes-sha2",1407
+ "m.megolm.v1.aes-sha2"1408
+ ],1409
+ "device_id": "ALICEDEVICE1369",1410
+ "keys": {1411
+ "curve25519:ALICEDEVICE1369": "ClSYIgW11NS1DdR1mtq7E2Te3LTilFCuupDSvDF6bCo",1412
+ "ed25519:ALICEDEVICE1369": "vvFLndm+ozX/4v86JrtUx++HXRA8HlOk+F5kSm2s3b4"1413
+ },1414
+ "signatures": {1415
+ "@alice_1369:hs1": {1416
+ "ed25519:ALICEDEVICE1369": "+rW4UGMrmrMVobcRTIKHKGTf3dDrLUBcY6ns+IgmHhywh01QQCz3nJmcR0SY2lCWjkcUa8KvFymQFZhg9FWvAQ"1417
+ }1418
+ },1419
+ "user_id": "@alice_1369:hs1",1420
+ "unsigned": {}1421
+ }1422
+ },1423
+ "@alice_1376:hs1": {1424
+ "ALICEDEVICE1376": {1425
+ "algorithms": [1426
+ "m.olm.v1.curve25519-aes-sha2",1427
+ "m.megolm.v1.aes-sha2"1428
+ ],1429
+ "device_id": "ALICEDEVICE1376",1430
+ "keys": {1431
+ "curve25519:ALICEDEVICE1376": "p/nhejj8yRNVsSIy5wJ0npYBJXJTuRsdbo21XznT5B8",1432
+ "ed25519:ALICEDEVICE1376": "/GNR689wPiM1EMDvmMZVgHcHErAQeIxo9dzZVCKlh6g"1433
+ },1434
+ "signatures": {1435
+ "@alice_1376:hs1": {1436
+ "ed25519:ALICEDEVICE1376": "EYWEkgIO2WZCaYBBxSzc4fCu+k3BPLYIbzUI4nRvCqJFaA2ymo9zMJoXGt/VsB6h+VLG4iD6wbTN/rDINAD9Bg"1437
+ }1438
+ },1439
+ "user_id": "@alice_1376:hs1",1440
+ "unsigned": {}1441
+ }1442
+ },1443
+ "@alice_137:hs1": {1444
+ "ALICEDEVICE137": {1445
+ "algorithms": [1446
+ "m.olm.v1.curve25519-aes-sha2",1447
+ "m.megolm.v1.aes-sha2"1448
+ ],1449
+ "device_id": "ALICEDEVICE137",1450
+ "keys": {1451
+ "curve25519:ALICEDEVICE137": "Ju6DLbA1NLx58QIR7cuIoiWcI+2u4jpeIsyBwyCODBo",1452
+ "ed25519:ALICEDEVICE137": "hYRAlO33gFby0D/tc0OzzKwfz3+gvWMbJuizIwLWzPc"1453
+ },1454
+ "signatures": {1455
+ "@alice_137:hs1": {1456
+ "ed25519:ALICEDEVICE137": "wg0TeyLksJoXaFfBq3Lal8HIP4jnQ8F3jw1R71kZ6CHqbrAbaGCSkqDBRJJAe0xDUgvRJ4wqkRLcIO0MUz23Dg"1457
+ }1458
+ },1459
+ "user_id": "@alice_137:hs1",1460
+ "unsigned": {}1461
+ }1462
+ },1463
+ "@alice_1392:hs1": {1464
+ "ALICEDEVICE1392": {1465
+ "algorithms": [1466
+ "m.olm.v1.curve25519-aes-sha2",1467
+ "m.megolm.v1.aes-sha2"1468
+ ],1469
+ "device_id": "ALICEDEVICE1392",1470
+ "keys": {1471
+ "curve25519:ALICEDEVICE1392": "pY41pK5PwGnS3zQ4u8ExLslJkyXAOcW02QIpQywLkgM",1472
+ "ed25519:ALICEDEVICE1392": "2KU371vbUm501/Ilio5rQdIT1us6cfWElkvr5Bbbw1Y"1473
+ },1474
+ "signatures": {1475
+ "@alice_1392:hs1": {1476
+ "ed25519:ALICEDEVICE1392": "d1NhsyNpUX8nmvp5QYoOsrboYxAPr7JIPr5O5wFA6UpKf3qIhAzt7LHpeBZaDQLQnieof7QDFNX92ScrqxPsCg"1477
+ }1478
+ },1479
+ "user_id": "@alice_1392:hs1",1480
+ "unsigned": {}1481
+ }1482
+ },1483
+ "@alice_1397:hs1": {1484
+ "ALICEDEVICE1397": {1485
+ "algorithms": [1486
+ "m.olm.v1.curve25519-aes-sha2",1487
+ "m.megolm.v1.aes-sha2"1488
+ ],1489
+ "device_id": "ALICEDEVICE1397",1490
+ "keys": {1491
+ "curve25519:ALICEDEVICE1397": "lkFAjik27pbQ+38cgxMxntNDF/26YzfJSP0h11ijwUw",1492
+ "ed25519:ALICEDEVICE1397": "2pHNQqcB/dMIFVnpYKHyScx8602vx4AfyVQayDpW7QQ"1493
+ },1494
+ "signatures": {1495
+ "@alice_1397:hs1": {1496
+ "ed25519:ALICEDEVICE1397": "+AWf+oWMNt20AmYRipLTCaF8UvMWjAdGHXF+hvnXMVNt2lClu1TbqbO+aCNjRBjZkyCfbWiqU+WVPiR7sR3iCA"1497
+ }1498
+ },1499
+ "user_id": "@alice_1397:hs1",1500
+ "unsigned": {}1501
+ }1502
+ },1503
+ "@alice_1398:hs1": {1504
+ "ALICEDEVICE1398": {1505
+ "algorithms": [1506
+ "m.olm.v1.curve25519-aes-sha2",1507
+ "m.megolm.v1.aes-sha2"1508
+ ],1509
+ "device_id": "ALICEDEVICE1398",1510
+ "keys": {1511
+ "curve25519:ALICEDEVICE1398": "oBMVOUm0IWPweXFhIStfMaEgFQjwRViYuSXxZyYPp24",1512
+ "ed25519:ALICEDEVICE1398": "eftT48/DANZn12l6EtLU1OtCW3V8WsTHEGrtV9cUdkE"1513
+ },1514
+ "signatures": {1515
+ "@alice_1398:hs1": {1516
+ "ed25519:ALICEDEVICE1398": "FKAT3Z5WUSKgyhrpN57YJpoeqe7eDSA+rlH4VsbREAWVSKg3KuIDq4Vs45GeTcW2ND5QDrcd6b5iMf1FuUjmCg"1517
+ }1518
+ },1519
+ "user_id": "@alice_1398:hs1",1520
+ "unsigned": {}1521
+ }1522
+ },1523
+ "@alice_1399:hs1": {1524
+ "ALICEDEVICE1399": {1525
+ "algorithms": [1526
+ "m.olm.v1.curve25519-aes-sha2",1527
+ "m.megolm.v1.aes-sha2"1528
+ ],1529
+ "device_id": "ALICEDEVICE1399",1530
+ "keys": {1531
+ "curve25519:ALICEDEVICE1399": "cFtEfw5NaRxojqhfZKdmiTZtcZ5IVLbdoqtp/3H5kyY",1532
+ "ed25519:ALICEDEVICE1399": "XWxlgUi4/xVYXW/n0jGKaqLyssJRhGTlPeUiLSRWRG0"1533
+ },1534
+ "signatures": {1535
+ "@alice_1399:hs1": {1536
+ "ed25519:ALICEDEVICE1399": "xFkEcFJ9/UyYC1syZff3HkTSCc7/JVWBQy+9NF+WzZjYVSfW4TrfaSYIRnlZu+uTtquSbaRZIjLkQay3g90+AA"1537
+ }1538
+ },1539
+ "user_id": "@alice_1399:hs1",1540
+ "unsigned": {}1541
+ }1542
+ },1543
+ "@alice_13:hs1": {1544
+ "ALICEDEVICE13": {1545
+ "algorithms": [1546
+ "m.olm.v1.curve25519-aes-sha2",1547
+ "m.megolm.v1.aes-sha2"1548
+ ],1549
+ "device_id": "ALICEDEVICE13",1550
+ "keys": {1551
+ "curve25519:ALICEDEVICE13": "ir7Xs1Y1AZZRdkCzFOwapglMuKWKOQtdanwVGNHUihQ",1552
+ "ed25519:ALICEDEVICE13": "vEUz6+Gyrn8nFY1uD7FZefc5Hhpph27p0UYYWC+GcWc"1553
+ },1554
+ "signatures": {1555
+ "@alice_13:hs1": {1556
+ "ed25519:ALICEDEVICE13": "QdSC4Pl6S5L2Cw7ahodKzamo1mPPa73n/x5X5To2YFazxSw8LG83rXs+QVXeCgb8IqLgP3Hke9qtSc04+1qfAw"1557
+ }1558
+ },1559
+ "user_id": "@alice_13:hs1",1560
+ "unsigned": {}1561
+ }1562
+ },1563
+ "@alice_1400:hs1": {1564
+ "ALICEDEVICE1400": {1565
+ "algorithms": [1566
+ "m.olm.v1.curve25519-aes-sha2",1567
+ "m.megolm.v1.aes-sha2"1568
+ ],1569
+ "device_id": "ALICEDEVICE1400",1570
+ "keys": {1571
+ "curve25519:ALICEDEVICE1400": "PEiXnDfWc5pco5i34LpiTYtQsAzN3csUTj9I8AjmMyY",1572
+ "ed25519:ALICEDEVICE1400": "loy3tmN7OseMUEEPlq5cq07FBhO3zN069OdzNVuVymg"1573
+ },1574
+ "signatures": {1575
+ "@alice_1400:hs1": {1576
+ "ed25519:ALICEDEVICE1400": "d9WR42iWlipdctbxV/TQdxNTP0vlkRKhbgdbqIxzj9vp5mqk4w37JQUUrlivu2P90S+y+usJ5zPQlUAQo+DyCQ"1577
+ }1578
+ },1579
+ "user_id": "@alice_1400:hs1",1580
+ "unsigned": {}1581
+ }1582
+ },1583
+ "@alice_1405:hs1": {1584
+ "ALICEDEVICE1405": {1585
+ "algorithms": [1586
+ "m.olm.v1.curve25519-aes-sha2",1587
+ "m.megolm.v1.aes-sha2"1588
+ ],1589
+ "device_id": "ALICEDEVICE1405",1590
+ "keys": {1591
+ "curve25519:ALICEDEVICE1405": "7ycekIOzZcx/2U21840j1HUyURkgXavP55jRNLy8UTk",1592
+ "ed25519:ALICEDEVICE1405": "L3uCuYqFSC+xfngscmkyXj9F1mfb+XdOKvPOxDKLc+E"1593
+ },1594
+ "signatures": {1595
+ "@alice_1405:hs1": {1596
+ "ed25519:ALICEDEVICE1405": "6vD4UVbQFLFIY6jnkqdJaxJn/2GqjrbEX7/2YMSRpO4mwVw4IdYVMrSIv12fGV2Jf4+iHJLfDCjGbhL4Aua7AQ"1597
+ }1598
+ },1599
+ "user_id": "@alice_1405:hs1",1600
+ "unsigned": {}1601
+ }1602
+ },1603
+ "@alice_1410:hs1": {1604
+ "ALICEDEVICE1410": {1605
+ "algorithms": [1606
+ "m.olm.v1.curve25519-aes-sha2",1607
+ "m.megolm.v1.aes-sha2"1608
+ ],1609
+ "device_id": "ALICEDEVICE1410",1610
+ "keys": {1611
+ "curve25519:ALICEDEVICE1410": "b6t7relZMiBSjBi0BXFal2e5kcv09E1BcHfv+ewruFk",1612
+ "ed25519:ALICEDEVICE1410": "Lzwnme0e0MFmsQynGL8SR/6NUVTmfOfXy34DoIaMze4"1613
+ },1614
+ "signatures": {1615
+ "@alice_1410:hs1": {1616
+ "ed25519:ALICEDEVICE1410": "ZNdSaCpf0viE03hPja6Td7rMXDA+Y+cwsOT54LL9wVBBE2tZCF4OcVrSZ3t6OF87jYksflMV11AA+r+EQlbzBg"1617
+ }1618
+ },1619
+ "user_id": "@alice_1410:hs1",1620
+ "unsigned": {}1621
+ }1622
+ },1623
+ "@alice_1413:hs1": {1624
+ "ALICEDEVICE1413": {1625
+ "algorithms": [1626
+ "m.olm.v1.curve25519-aes-sha2",1627
+ "m.megolm.v1.aes-sha2"1628
+ ],1629
+ "device_id": "ALICEDEVICE1413",1630
+ "keys": {1631
+ "curve25519:ALICEDEVICE1413": "J4XhC3EKz1pWPk4GUJA1SFmai6yvZ3KZ48GR+0tKblE",1632
+ "ed25519:ALICEDEVICE1413": "SCsF/QO2WnpadX/OIRzfrzeBAqCm1QOCM5z5/ie7ing"1633
+ },1634
+ "signatures": {1635
+ "@alice_1413:hs1": {1636
+ "ed25519:ALICEDEVICE1413": "6qcr2383lihJFImAJBFD6PiqAI8KF2k8mqHcs36XhHxpCequ/xJ7dSjUCOj6B6H/ToRGW/aWWFXsQ1J+FNwYBg"1637
+ }1638
+ },1639
+ "user_id": "@alice_1413:hs1",1640
+ "unsigned": {}1641
+ }1642
+ },1643
+ "@alice_1420:hs1": {1644
+ "ALICEDEVICE1420": {1645
+ "algorithms": [1646
+ "m.olm.v1.curve25519-aes-sha2",1647
+ "m.megolm.v1.aes-sha2"1648
+ ],1649
+ "device_id": "ALICEDEVICE1420",1650
+ "keys": {1651
+ "curve25519:ALICEDEVICE1420": "sK3pAGuJp6u27WBXSCRbNS4pgsa1qWM8a1SCt0iAfFk",1652
+ "ed25519:ALICEDEVICE1420": "0kCrfE5tQTUdtdOlkownx+D/wpL8ZNAMQGl/MmIg3p4"1653
+ },1654
+ "signatures": {1655
+ "@alice_1420:hs1": {1656
+ "ed25519:ALICEDEVICE1420": "ARt75WEb6KQDLJX2wmDLbZPHh754UhS4L9rRQosDLwSoT9qu7QE1Eou8cIPRE+RGFqFFEpDWM1rhasfP4CN1DA"1657
+ }1658
+ },1659
+ "user_id": "@alice_1420:hs1",1660
+ "unsigned": {}1661
+ }1662
+ },1663
+ "@alice_1422:hs1": {1664
+ "ALICEDEVICE1422": {1665
+ "algorithms": [1666
+ "m.olm.v1.curve25519-aes-sha2",1667
+ "m.megolm.v1.aes-sha2"1668
+ ],1669
+ "device_id": "ALICEDEVICE1422",1670
+ "keys": {1671
+ "curve25519:ALICEDEVICE1422": "xTNqqF5jV1VXh/Ndr/mamsCJiVxD+M0UANjnKWpKSGQ",1672
+ "ed25519:ALICEDEVICE1422": "zyIi2uj1XDuIou0RYKHTavIbsMt4eExemtolRUTzeLY"1673
+ },1674
+ "signatures": {1675
+ "@alice_1422:hs1": {1676
+ "ed25519:ALICEDEVICE1422": "TcnuDD2sBE4unzEOWxq82X6ntyayfF0KUcfkXjSh0VVGCc9xduqpZe0v5ncf+Ufnrip76/3k0hedVehKp+cWAg"1677
+ }1678
+ },1679
+ "user_id": "@alice_1422:hs1",1680
+ "unsigned": {}1681
+ }1682
+ },1683
+ "@alice_1426:hs1": {1684
+ "ALICEDEVICE1426": {1685
+ "algorithms": [1686
+ "m.olm.v1.curve25519-aes-sha2",1687
+ "m.megolm.v1.aes-sha2"1688
+ ],1689
+ "device_id": "ALICEDEVICE1426",1690
+ "keys": {1691
+ "curve25519:ALICEDEVICE1426": "KjL4H9YhMbxsDqx9xU3kDaZ86hbh5+8mJseJbrAiNgk",1692
+ "ed25519:ALICEDEVICE1426": "hTkG4Y/KreyDaQbhYRzDA5ub9IENat4tvJ7bnwkXnRg"1693
+ },1694
+ "signatures": {1695
+ "@alice_1426:hs1": {1696
+ "ed25519:ALICEDEVICE1426": "hgsB//4l3Qztp6w3ixFUIRiyeE+XD53yBKs4FmH+aI3iGUafjjkEfJgxF7UPhS9xTqdyf6Aywh15eNTKTrUaDA"1697
+ }1698
+ },1699
+ "user_id": "@alice_1426:hs1",1700
+ "unsigned": {}1701
+ }1702
+ },1703
+ "@alice_1434:hs1": {1704
+ "ALICEDEVICE1434": {1705
+ "algorithms": [1706
+ "m.olm.v1.curve25519-aes-sha2",1707
+ "m.megolm.v1.aes-sha2"1708
+ ],1709
+ "device_id": "ALICEDEVICE1434",1710
+ "keys": {1711
+ "curve25519:ALICEDEVICE1434": "Febt2mfNAtRTw4DV7V0zDlbtcLcE/jlhAgZVwSEReQ0",1712
+ "ed25519:ALICEDEVICE1434": "TNaKPWbemTXfmfmKTw7hQ9j1ynP5R3jOdEl2YaG7Ubg"1713
+ },1714
+ "signatures": {1715
+ "@alice_1434:hs1": {1716
+ "ed25519:ALICEDEVICE1434": "YF3lz6Rm3cfdhU4HtntSgsPJL/DDDeEtma63EgWO5vmeQUDUf0F9IsLpxaxdcCLty8r/dDc/f8YjSeSAgbtQDA"1717
+ }1718
+ },1719
+ "user_id": "@alice_1434:hs1",1720
+ "unsigned": {}1721
+ }1722
+ },1723
+ "@alice_1438:hs1": {1724
+ "ALICEDEVICE1438": {1725
+ "algorithms": [1726
+ "m.olm.v1.curve25519-aes-sha2",1727
+ "m.megolm.v1.aes-sha2"1728
+ ],1729
+ "device_id": "ALICEDEVICE1438",1730
+ "keys": {1731
+ "curve25519:ALICEDEVICE1438": "e8hFQLOjFHbYa/aRgm/k9QmiU6om9KoqIW+3wB/YyXs",1732
+ "ed25519:ALICEDEVICE1438": "qRDSpPMjE94ZOExrtg8KFk5mVhyLovhXgKm+DjN6SBc"1733
+ },1734
+ "signatures": {1735
+ "@alice_1438:hs1": {1736
+ "ed25519:ALICEDEVICE1438": "auYrFIUmorjtW4Z+S23Y1fxY9R8tkgtBNpxSXIXBzJ5pjD5AlXiBls795fHqUsrzo6f1d6NfGh3S3TTVIf7pAA"1737
+ }1738
+ },1739
+ "user_id": "@alice_1438:hs1",1740
+ "unsigned": {}1741
+ }1742
+ },1743
+ "@alice_1452:hs1": {1744
+ "ALICEDEVICE1452": {1745
+ "algorithms": [1746
+ "m.olm.v1.curve25519-aes-sha2",1747
+ "m.megolm.v1.aes-sha2"1748
+ ],1749
+ "device_id": "ALICEDEVICE1452",1750
+ "keys": {1751
+ "curve25519:ALICEDEVICE1452": "ufOI8l9rfL0nxZ6V5SQebbr3LXdWA4XBSCn8VPfD5Sc",1752
+ "ed25519:ALICEDEVICE1452": "zoP2+nGgx6ZTMi3jWXLCr1inddfIPqYcRBLEmllx+4o"1753
+ },1754
+ "signatures": {1755
+ "@alice_1452:hs1": {1756
+ "ed25519:ALICEDEVICE1452": "3lAk4qqsB/BcArkc2leRYnXWDlMXwM7m5R7DPKqlsPvSpCQPNeONKKDDtTlZ7il+TUlQIgbgwd3UpxkqLtsvAg"1757
+ }1758
+ },1759
+ "user_id": "@alice_1452:hs1",1760
+ "unsigned": {}1761
+ }1762
+ },1763
+ "@alice_1459:hs1": {1764
+ "ALICEDEVICE1459": {1765
+ "algorithms": [1766
+ "m.olm.v1.curve25519-aes-sha2",1767
+ "m.megolm.v1.aes-sha2"1768
+ ],1769
+ "device_id": "ALICEDEVICE1459",1770
+ "keys": {1771
+ "curve25519:ALICEDEVICE1459": "V5IsYSl8cmD9Nxqfz4OU9PDErqkc1zWoJzH0bv1glzg",1772
+ "ed25519:ALICEDEVICE1459": "ng7RTuGut9pv6jbBTpQgONb7H0w4cUXemrgG0e4hzVc"1773
+ },1774
+ "signatures": {1775
+ "@alice_1459:hs1": {1776
+ "ed25519:ALICEDEVICE1459": "Vi/omcByu5+DAGmfPH8JD7pPWkglEDLL5gPo3B0/yNS1rMhPlUX7BmZW6fCHqtruyx5uBIawgCxym+MsHaTaAg"1777
+ }1778
+ },1779
+ "user_id": "@alice_1459:hs1",1780
+ "unsigned": {}1781
+ }1782
+ },1783
+ "@alice_145:hs1": {1784
+ "ALICEDEVICE145": {1785
+ "algorithms": [1786
+ "m.olm.v1.curve25519-aes-sha2",1787
+ "m.megolm.v1.aes-sha2"1788
+ ],1789
+ "device_id": "ALICEDEVICE145",1790
+ "keys": {1791
+ "curve25519:ALICEDEVICE145": "25JTz0MSyb5VSO+llFewFr5RazrGcwnIBgwSUgb8jl4",1792
+ "ed25519:ALICEDEVICE145": "bfw75oOOsKcwPj5P/zotnF1EkJJKK/S5W4g7kRTXw0U"1793
+ },1794
+ "signatures": {1795
+ "@alice_145:hs1": {1796
+ "ed25519:ALICEDEVICE145": "ofH4NdFRhD32aH4LlckDJVM9ZXA3TUGngMvmIUE2x916fInQG02kEtJGvnnI0gv+ls/PWYe9bcqDP94e3yrLDw"1797
+ }1798
+ },1799
+ "user_id": "@alice_145:hs1",1800
+ "unsigned": {}1801
+ }1802
+ },1803
+ "@alice_1462:hs1": {1804
+ "ALICEDEVICE1462": {1805
+ "algorithms": [1806
+ "m.olm.v1.curve25519-aes-sha2",1807
+ "m.megolm.v1.aes-sha2"1808
+ ],1809
+ "device_id": "ALICEDEVICE1462",1810
+ "keys": {1811
+ "curve25519:ALICEDEVICE1462": "8/cUN0cQIJwP9bX45jV8s7Hq8BTx11KCE9rB01puTys",1812
+ "ed25519:ALICEDEVICE1462": "LoHdaXrIDru373MNTXwXTPPYwuwFZHJ4ikwfd3+pFPA"1813
+ },1814
+ "signatures": {1815
+ "@alice_1462:hs1": {1816
+ "ed25519:ALICEDEVICE1462": "Q+/hkB4K/WOnIZkY+slXUSi5ElKm/MtLsPyEXbEwjztacY8dkTSdhL30WSAc6DQeHjanE0vplhxbrZ4Rs0xIDQ"1817
+ }1818
+ },1819
+ "user_id": "@alice_1462:hs1",1820
+ "unsigned": {}1821
+ }1822
+ },1823
+ "@alice_1475:hs1": {1824
+ "ALICEDEVICE1475": {1825
+ "algorithms": [1826
+ "m.olm.v1.curve25519-aes-sha2",1827
+ "m.megolm.v1.aes-sha2"1828
+ ],1829
+ "device_id": "ALICEDEVICE1475",1830
+ "keys": {1831
+ "curve25519:ALICEDEVICE1475": "VeMmf3xToidAqIBgjQgV29XNjeL9Fnk3JD/0qGSNpjI",1832
+ "ed25519:ALICEDEVICE1475": "gR34ATByZnH3OBP8+mY9Yc0glWRofLw1sdTTvxQ+qwU"1833
+ },1834
+ "signatures": {1835
+ "@alice_1475:hs1": {1836
+ "ed25519:ALICEDEVICE1475": "sV+vSo27CldvtJtEs4HqhU95Cfk//5gCrtnq7OKSjxdTQlhyevZQ1cW+WFrJglGAQ5mevlmAkmHwHF/8QiRiBg"1837
+ }1838
+ },1839
+ "user_id": "@alice_1475:hs1",1840
+ "unsigned": {}1841
+ }1842
+ },1843
+ "@alice_1484:hs1": {1844
+ "ALICEDEVICE1484": {1845
+ "algorithms": [1846
+ "m.olm.v1.curve25519-aes-sha2",1847
+ "m.megolm.v1.aes-sha2"1848
+ ],1849
+ "device_id": "ALICEDEVICE1484",1850
+ "keys": {1851
+ "curve25519:ALICEDEVICE1484": "YzEFBOBfteV2reZRB6MDS3FoS4u2czfdeWVQNituimE",1852
+ "ed25519:ALICEDEVICE1484": "kMNABPFzDb1hTOBFaY/34EjeIeaQnFl4R0BLKFQk2qw"1853
+ },1854
+ "signatures": {1855
+ "@alice_1484:hs1": {1856
+ "ed25519:ALICEDEVICE1484": "dGC9f8T8VaJAUIOphG7dwWkMsNJ/t7tsWUdFEBWMX4PBzsrhMZF6W3MNh5NfS89+XTAOWrTQ+bdHOEj0eKozBw"1857
+ }1858
+ },1859
+ "user_id": "@alice_1484:hs1",1860
+ "unsigned": {}1861
+ }1862
+ },1863
+ "@alice_1492:hs1": {1864
+ "ALICEDEVICE1492": {1865
+ "algorithms": [1866
+ "m.olm.v1.curve25519-aes-sha2",1867
+ "m.megolm.v1.aes-sha2"1868
+ ],1869
+ "device_id": "ALICEDEVICE1492",1870
+ "keys": {1871
+ "curve25519:ALICEDEVICE1492": "SkBKTxT3F/IzYLmaEYuHq9v+0bwuaJ7LWTlGbCWlYw8",1872
+ "ed25519:ALICEDEVICE1492": "N6OC6SOMr0fvHxFX8zoUE400CCsSxajHTwO3L1YEx38"1873
+ },1874
+ "signatures": {1875
+ "@alice_1492:hs1": {1876
+ "ed25519:ALICEDEVICE1492": "hD8dlnj4oVAyy9I3PTYEgK62/HhlEo32Uf0tE0hUNp6uJz84vGuTZPb7u/n9gQAw70aFgLRcKuiEk32vNLmDCw"1877
+ }1878
+ },1879
+ "user_id": "@alice_1492:hs1",1880
+ "unsigned": {}1881
+ }1882
+ },1883
+ "@alice_1503:hs1": {1884
+ "ALICEDEVICE1503": {1885
+ "algorithms": [1886
+ "m.olm.v1.curve25519-aes-sha2",1887
+ "m.megolm.v1.aes-sha2"1888
+ ],1889
+ "device_id": "ALICEDEVICE1503",1890
+ "keys": {1891
+ "curve25519:ALICEDEVICE1503": "nQ9Kzd6XAJ5tBStSjuO3uHjn2Cj+7Fyk4wP4IbicelU",1892
+ "ed25519:ALICEDEVICE1503": "6Gg6uFI9d3iH6e06gWCDFXMqaD+ujO4Y2ef7y4iWHQA"1893
+ },1894
+ "signatures": {1895
+ "@alice_1503:hs1": {1896
+ "ed25519:ALICEDEVICE1503": "jZt8FUY7v2VvSxHFh/Bmi1BmsmeZyAHfREjzrOh3zfI0uO/NE3AymhuWIvQFOVZtoPIDSJbiOAUs/V/ExdQAAw"1897
+ }1898
+ },1899
+ "user_id": "@alice_1503:hs1",1900
+ "unsigned": {}1901
+ }1902
+ },1903
+ "@alice_1504:hs1": {1904
+ "ALICEDEVICE1504": {1905
+ "algorithms": [1906
+ "m.olm.v1.curve25519-aes-sha2",1907
+ "m.megolm.v1.aes-sha2"1908
+ ],1909
+ "device_id": "ALICEDEVICE1504",1910
+ "keys": {1911
+ "curve25519:ALICEDEVICE1504": "3WwgcIfFNBFOWitJAEn4oK7FSF6NgRuW0xc9M5Tzo2E",1912
+ "ed25519:ALICEDEVICE1504": "N4aE3OyCCblBGk0P63rARuJ9P/jAm9iGsvb3wMCPOaQ"1913
+ },1914
+ "signatures": {1915
+ "@alice_1504:hs1": {1916
+ "ed25519:ALICEDEVICE1504": "evBdW5V0QXcOZek+oKRnTD8TKEl/u4ACsCjfg+uOo7x2LohvVhB89ti/UHgP92NQ92bCSJF6Osoql4iwOIBTBg"1917
+ }1918
+ },1919
+ "user_id": "@alice_1504:hs1",1920
+ "unsigned": {}1921
+ }1922
+ },1923
+ "@alice_1507:hs1": {1924
+ "ALICEDEVICE1507": {1925
+ "algorithms": [1926
+ "m.olm.v1.curve25519-aes-sha2",1927
+ "m.megolm.v1.aes-sha2"1928
+ ],1929
+ "device_id": "ALICEDEVICE1507",1930
+ "keys": {1931
+ "curve25519:ALICEDEVICE1507": "JSArJDUbVVZgDvyl1cqhzFXJIg13CeJWW7jaNKlUsmE",1932
+ "ed25519:ALICEDEVICE1507": "8BXrjlCq7OvTvP3Td4DA/oi1QRgejGZgDTJklNU7b64"1933
+ },1934
+ "signatures": {1935
+ "@alice_1507:hs1": {1936
+ "ed25519:ALICEDEVICE1507": "8j3jU1pv0t5Ggys6rY76Bx7+N4qA2cuehhLJx0JXfAkyhx6MC0v7CeniVNs/OB9gACIN1KQY2/OPlcJRccqPDg"1937
+ }1938
+ },1939
+ "user_id": "@alice_1507:hs1",1940
+ "unsigned": {}1941
+ }1942
+ },1943
+ "@alice_1510:hs1": {1944
+ "ALICEDEVICE1510": {1945
+ "algorithms": [1946
+ "m.olm.v1.curve25519-aes-sha2",1947
+ "m.megolm.v1.aes-sha2"1948
+ ],1949
+ "device_id": "ALICEDEVICE1510",1950
+ "keys": {1951
+ "curve25519:ALICEDEVICE1510": "ldYo7zeIvCDVjsub4Edl/MtiCw0mWjGGYZtOX0/iH3E",1952
+ "ed25519:ALICEDEVICE1510": "NZUZOnQ5Sj0UHbnqML0yK8hiD96ikpm/l79RJxwzIH8"1953
+ },1954
+ "signatures": {1955
+ "@alice_1510:hs1": {1956
+ "ed25519:ALICEDEVICE1510": "JGASyipNV7dYFU5/q2H/XBvS2QzIyMu/hpZgKKHVe4asmj5bEj4PKeyS/KV0LMwQNEdO1quqidfN1Zp0chiSAw"1957
+ }1958
+ },1959
+ "user_id": "@alice_1510:hs1",1960
+ "unsigned": {}1961
+ }1962
+ },1963
+ "@alice_1540:hs1": {1964
+ "ALICEDEVICE1540": {1965
+ "algorithms": [1966
+ "m.olm.v1.curve25519-aes-sha2",1967
+ "m.megolm.v1.aes-sha2"1968
+ ],1969
+ "device_id": "ALICEDEVICE1540",1970
+ "keys": {1971
+ "curve25519:ALICEDEVICE1540": "S4t0eJ1/HsiR50uvmsU24udX6WsX5kGPvmxLMUDwzTA",1972
+ "ed25519:ALICEDEVICE1540": "rhMUZOA4yH8SXUH91hnwm9Bubyv/GXpSLB4xNc/9SXs"1973
+ },1974
+ "signatures": {1975
+ "@alice_1540:hs1": {1976
+ "ed25519:ALICEDEVICE1540": "ILjeViEkEIMCi0ooHsnAHBV6s9dAlJTQnawrgTXkrkRR27bCV2pqTUQv2bMNZtyMY8KImDhNYCjsBRF+gIqbBQ"1977
+ }1978
+ },1979
+ "user_id": "@alice_1540:hs1",1980
+ "unsigned": {}1981
+ }1982
+ },1983
+ "@alice_1564:hs1": {1984
+ "ALICEDEVICE1564": {1985
+ "algorithms": [1986
+ "m.olm.v1.curve25519-aes-sha2",1987
+ "m.megolm.v1.aes-sha2"1988
+ ],1989
+ "device_id": "ALICEDEVICE1564",1990
+ "keys": {1991
+ "curve25519:ALICEDEVICE1564": "CIfKnQSbtfy00QbnqofyU+yRPgRm2BZdxniqjsfHWiM",1992
+ "ed25519:ALICEDEVICE1564": "Jy34O7PcXgsTKFeeZcWGEN9HzOWPY8z1rfgRExQMecU"1993
+ },1994
+ "signatures": {1995
+ "@alice_1564:hs1": {1996
+ "ed25519:ALICEDEVICE1564": "3kWEe9XX+xKPQ4otMf06XNucByNrIEBjQ4oXIeyq5PLI9O1Lcux5ITm1y2dfapiI6v3nRFY+0Ft54HOSGGlLCw"1997
+ }1998
+ },1999
+ "user_id": "@alice_1564:hs1",2000
+ "unsigned": {}2001
+ }2002
+ },2003
+ "@alice_1577:hs1": {2004
+ "ALICEDEVICE1577": {2005
+ "algorithms": [2006
+ "m.olm.v1.curve25519-aes-sha2",2007
+ "m.megolm.v1.aes-sha2"2008
+ ],2009
+ "device_id": "ALICEDEVICE1577",2010
+ "keys": {2011
+ "curve25519:ALICEDEVICE1577": "bPlMIYVBd0Ihpf+kt+dckJkssCb71WY/y49h6BxJgwc",2012
+ "ed25519:ALICEDEVICE1577": "DQr0UiUvX2Cnx5oBMYRhEMyndjNvYr9XEVIDwfqclo4"2013
+ },2014
+ "signatures": {2015
+ "@alice_1577:hs1": {2016
+ "ed25519:ALICEDEVICE1577": "xvZs3+ct3QD3rE0y/VJSrYV0R6+uAXhPHh0Q+5dpxwmmzQytHgrxVnoIMyhf4fkDvZNm372LhPBZAj91qoGACg"2017
+ }2018
+ },2019
+ "user_id": "@alice_1577:hs1",2020
+ "unsigned": {}2021
+ }2022
+ },2023
+ "@alice_1580:hs1": {2024
+ "ALICEDEVICE1580": {2025
+ "algorithms": [2026
+ "m.olm.v1.curve25519-aes-sha2",2027
+ "m.megolm.v1.aes-sha2"2028
+ ],2029
+ "device_id": "ALICEDEVICE1580",2030
+ "keys": {2031
+ "curve25519:ALICEDEVICE1580": "j4K1gFuTVoAAyAE95tGK8eVbyfy6/Hz7PixgWQHzhAE",2032
+ "ed25519:ALICEDEVICE1580": "IzpYQsjKwmIxASJm1Y44CDYQZvCiSW19okjBSPE7Nio"2033
+ },2034
+ "signatures": {2035
+ "@alice_1580:hs1": {2036
+ "ed25519:ALICEDEVICE1580": "mY0ba0lKMwubl7PlobfmojtZ049cEc9iH7BG4nOwNL0+YXnA41kIdp4ug3XGIp/5sEcTl6B58McnzDEGVEJJAA"2037
+ }2038
+ },2039
+ "user_id": "@alice_1580:hs1",2040
+ "unsigned": {}2041
+ }2042
+ },2043
+ "@alice_1582:hs1": {2044
+ "ALICEDEVICE1582": {2045
+ "algorithms": [2046
+ "m.olm.v1.curve25519-aes-sha2",2047
+ "m.megolm.v1.aes-sha2"2048
+ ],2049
+ "device_id": "ALICEDEVICE1582",2050
+ "keys": {2051
+ "curve25519:ALICEDEVICE1582": "wNlqBEvmYyM6NN78n8JZrd+m6bJjdCJM29dWlJ/Fvz0",2052
+ "ed25519:ALICEDEVICE1582": "p6oO+HWzu+GIIo+lg5RqNvcwZsFS7kJbONgWn+0dh18"2053
+ },2054
+ "signatures": {2055
+ "@alice_1582:hs1": {2056
+ "ed25519:ALICEDEVICE1582": "w44pdNiBs83KIH57OFGgNY403UHaefWIj6RycynmkKgfyTI+QaQ8eLoU+BeVRrC8u8gKAO1A8FUqXF3tChLqBQ"2057
+ }2058
+ },2059
+ "user_id": "@alice_1582:hs1",2060
+ "unsigned": {}2061
+ }2062
+ },2063
+ "@alice_1596:hs1": {2064
+ "ALICEDEVICE1596": {2065
+ "algorithms": [2066
+ "m.olm.v1.curve25519-aes-sha2",2067
+ "m.megolm.v1.aes-sha2"2068
+ ],2069
+ "device_id": "ALICEDEVICE1596",2070
+ "keys": {2071
+ "curve25519:ALICEDEVICE1596": "xRusV44xnaBSKUYyyBZKXfBw5PhcnpVggLovOK9NUDU",2072
+ "ed25519:ALICEDEVICE1596": "Cz+7Y2CM049O+m2uNBSnsgDg102gZynA4ZZ21bqwrn8"2073
+ },2074
+ "signatures": {2075
+ "@alice_1596:hs1": {2076
+ "ed25519:ALICEDEVICE1596": "eF27kWT1KOz2wlwLlKDuPo676qwrFR9Wh+ve0jCwInF7pcp76TYOYmk4TPmF1/ndves9tL8SL2cPhoFit8AaCw"2077
+ }2078
+ },2079
+ "user_id": "@alice_1596:hs1",2080
+ "unsigned": {}2081
+ }2082
+ },2083
+ "@alice_1597:hs1": {2084
+ "ALICEDEVICE1597": {2085
+ "algorithms": [2086
+ "m.olm.v1.curve25519-aes-sha2",2087
+ "m.megolm.v1.aes-sha2"2088
+ ],2089
+ "device_id": "ALICEDEVICE1597",2090
+ "keys": {2091
+ "curve25519:ALICEDEVICE1597": "sDcHZzwkic/kDSNX71M48xny9GZ684BH63PMzgrEPDk",2092
+ "ed25519:ALICEDEVICE1597": "EwUdkLZAnhjK13nV1+RYzE0EFkfnoiO3maBNJH039pk"2093
+ },2094
+ "signatures": {2095
+ "@alice_1597:hs1": {2096
+ "ed25519:ALICEDEVICE1597": "8HRRAq1Ia7Y6UUjeX68gLPDyJhomv99GgniIbcvNtI6G8Ll+kSQYfuNus+9ZJwbaq5SCyeC0Gdi1BiyZ1UamDw"2097
+ }2098
+ },2099
+ "user_id": "@alice_1597:hs1",2100
+ "unsigned": {}2101
+ }2102
+ },2103
+ "@alice_1601:hs1": {2104
+ "ALICEDEVICE1601": {2105
+ "algorithms": [2106
+ "m.olm.v1.curve25519-aes-sha2",2107
+ "m.megolm.v1.aes-sha2"2108
+ ],2109
+ "device_id": "ALICEDEVICE1601",2110
+ "keys": {2111
+ "curve25519:ALICEDEVICE1601": "HNbvuKpXdDLnL7HtpDRT6zZPq4jv6D58gXz9nxjfUhY",2112
+ "ed25519:ALICEDEVICE1601": "frDsUAlTVX2q9dKHsVoipJAn4ZIYEmKYoxXCRlg/tnw"2113
+ },2114
+ "signatures": {2115
+ "@alice_1601:hs1": {2116
+ "ed25519:ALICEDEVICE1601": "P9GbomsyMJTNavM+vLrlGXn6FQep+79f8Lg7aBy93FFgwqzt3EHOTxDh0MgdN2OJOHRz8AEKZmJdhqjpWmI1AQ"2117
+ }2118
+ },2119
+ "user_id": "@alice_1601:hs1",2120
+ "unsigned": {}2121
+ }2122
+ },2123
+ "@alice_1602:hs1": {2124
+ "ALICEDEVICE1602": {2125
+ "algorithms": [2126
+ "m.olm.v1.curve25519-aes-sha2",2127
+ "m.megolm.v1.aes-sha2"2128
+ ],2129
+ "device_id": "ALICEDEVICE1602",2130
+ "keys": {2131
+ "curve25519:ALICEDEVICE1602": "oUQuxA1vodPLr/EjD2a26qmpC6TWbWZamoDuBJWhPjY",2132
+ "ed25519:ALICEDEVICE1602": "Ed00aOz+gg3Ck5gDtIwnixnIC3Bk4MnjDravqLp/viU"2133
+ },2134
+ "signatures": {2135
+ "@alice_1602:hs1": {2136
+ "ed25519:ALICEDEVICE1602": "WvXyq0L99jtENxDGZ7QV5MGpgbXb70hOw70OHk9xmStNBMaIbFz4JTySVRy7zxXEOlvstCPctxAGvN96QGW5BA"2137
+ }2138
+ },2139
+ "user_id": "@alice_1602:hs1",2140
+ "unsigned": {}2141
+ }2142
+ },2143
+ "@alice_1609:hs1": {2144
+ "ALICEDEVICE1609": {2145
+ "algorithms": [2146
+ "m.olm.v1.curve25519-aes-sha2",2147
+ "m.megolm.v1.aes-sha2"2148
+ ],2149
+ "device_id": "ALICEDEVICE1609",2150
+ "keys": {2151
+ "curve25519:ALICEDEVICE1609": "rZM1P9NZpxC7TopafFnRcixjUwM7MWdeBIY1sRJetH0",2152
+ "ed25519:ALICEDEVICE1609": "yx9WRE9EImDBE4Hu/qjK4jOhjqu9LeTsM3sdIVyb4ZI"2153
+ },2154
+ "signatures": {2155
+ "@alice_1609:hs1": {2156
+ "ed25519:ALICEDEVICE1609": "ldNE1uXzHhTX2FlrIbf3/LGsX5vhnIts2sAa8cZrfWbKNRe6lFiuVDHDMPlT84/U3Pq8JYrBpBzlYdngqhJcDQ"2157
+ }2158
+ },2159
+ "user_id": "@alice_1609:hs1",2160
+ "unsigned": {}2161
+ }2162
+ },2163
+ "@alice_160:hs1": {2164
+ "ALICEDEVICE160": {2165
+ "algorithms": [2166
+ "m.olm.v1.curve25519-aes-sha2",2167
+ "m.megolm.v1.aes-sha2"2168
+ ],2169
+ "device_id": "ALICEDEVICE160",2170
+ "keys": {2171
+ "curve25519:ALICEDEVICE160": "UGQGAW6dTLKYz39WsgvUhB5VeML19Jq+/q1YT/DixSo",2172
+ "ed25519:ALICEDEVICE160": "tj2rSB9+6vgVNhALjqqYL/xUrJf9ivNaz3i5RF0aUUQ"2173
+ },2174
+ "signatures": {2175
+ "@alice_160:hs1": {2176
+ "ed25519:ALICEDEVICE160": "bcOSXag5SL2qKNYDo4HapG/19zjiGo249IsIf5uOlPxQRKSLh5UD/39EkLamgYZSatDVIAW4LFdZRdej2y38CQ"2177
+ }2178
+ },2179
+ "user_id": "@alice_160:hs1",2180
+ "unsigned": {}2181
+ }2182
+ },2183
+ "@alice_1610:hs1": {2184
+ "ALICEDEVICE1610": {2185
+ "algorithms": [2186
+ "m.olm.v1.curve25519-aes-sha2",2187
+ "m.megolm.v1.aes-sha2"2188
+ ],2189
+ "device_id": "ALICEDEVICE1610",2190
+ "keys": {2191
+ "curve25519:ALICEDEVICE1610": "SgWOKpFZpz86+vJUW5CYWM7VToYCUxiiLVbLjk4AgCk",2192
+ "ed25519:ALICEDEVICE1610": "BAA7ulxMOx2pFkdNcl5jp4f4gumlYIylJtN2q0rmJ7c"2193
+ },2194
+ "signatures": {2195
+ "@alice_1610:hs1": {2196
+ "ed25519:ALICEDEVICE1610": "JwjI1NCXuRBB7m1ccmyb6hMCCEtH2CZTWynfCwoj6R0HeDtom23kl2rQTZSmCthex/UhgDxuvCvvSnH8hFfhBg"2197
+ }2198
+ },2199
+ "user_id": "@alice_1610:hs1",2200
+ "unsigned": {}2201
+ }2202
+ },2203
+ "@alice_1624:hs1": {2204
+ "ALICEDEVICE1624": {2205
+ "algorithms": [2206
+ "m.olm.v1.curve25519-aes-sha2",2207
+ "m.megolm.v1.aes-sha2"2208
+ ],2209
+ "device_id": "ALICEDEVICE1624",2210
+ "keys": {2211
+ "curve25519:ALICEDEVICE1624": "J8yAgS/172AVYgeYORkgi5b8ePkhG1GTGOgyRXDX61U",2212
+ "ed25519:ALICEDEVICE1624": "kjV7k5T8MG9oTQFdtJd5ALUc79D3Iy3/HmipNzMbN+Q"2213
+ },2214
+ "signatures": {2215
+ "@alice_1624:hs1": {2216
+ "ed25519:ALICEDEVICE1624": "EMij5wyYNz/e8XO+3APLlf2CIahpufzHodd7p38qUYHabKL8sn/zi02oJHzrnql/AsCaCW/YD346A+d2sc7pCg"2217
+ }2218
+ },2219
+ "user_id": "@alice_1624:hs1",2220
+ "unsigned": {}2221
+ }2222
+ },2223
+ "@alice_1636:hs1": {2224
+ "ALICEDEVICE1636": {2225
+ "algorithms": [2226
+ "m.olm.v1.curve25519-aes-sha2",2227
+ "m.megolm.v1.aes-sha2"2228
+ ],2229
+ "device_id": "ALICEDEVICE1636",2230
+ "keys": {2231
+ "curve25519:ALICEDEVICE1636": "Ce8fp2k0Y7HemCV7/sP8gimB16NkorSOlIJ3mx67O38",2232
+ "ed25519:ALICEDEVICE1636": "hLLMNfCxRQ642DJX3aobpZ/wipRj/egdYw8LIt8z/CI"2233
+ },2234
+ "signatures": {2235
+ "@alice_1636:hs1": {2236
+ "ed25519:ALICEDEVICE1636": "QUv21qB1CO1AaCcl+Zarr8bbJN+Xk6nmg211th0KEu1f1B2x8w5DQ33GKnwWuDUmG4/DFHoxPYZca/Vdv2W5CA"2237
+ }2238
+ },2239
+ "user_id": "@alice_1636:hs1",2240
+ "unsigned": {}2241
+ }2242
+ },2243
+ "@alice_163:hs1": {2244
+ "ALICEDEVICE163": {2245
+ "algorithms": [2246
+ "m.olm.v1.curve25519-aes-sha2",2247
+ "m.megolm.v1.aes-sha2"2248
+ ],2249
+ "device_id": "ALICEDEVICE163",2250
+ "keys": {2251
+ "curve25519:ALICEDEVICE163": "JOUxOhgPoyWs93RFeRgrGppQvLk+qu+5xM0MhWCPxWo",2252
+ "ed25519:ALICEDEVICE163": "hbZWJqs7ScEL31Dg07MBZ81aiiRMdP0keQUI7H7UZeE"2253
+ },2254
+ "signatures": {2255
+ "@alice_163:hs1": {2256
+ "ed25519:ALICEDEVICE163": "CbINJ8Vggo/wtWW9JYMj2F6QXp1hM7pVjeXttrTU12JSSzyLteqwragaiCpt8phsAB26Rfv7UUVr29/+s89dAg"2257
+ }2258
+ },2259
+ "user_id": "@alice_163:hs1",2260
+ "unsigned": {}2261
+ }2262
+ },2263
+ "@alice_1664:hs1": {2264
+ "ALICEDEVICE1664": {2265
+ "algorithms": [2266
+ "m.olm.v1.curve25519-aes-sha2",2267
+ "m.megolm.v1.aes-sha2"2268
+ ],2269
+ "device_id": "ALICEDEVICE1664",2270
+ "keys": {2271
+ "curve25519:ALICEDEVICE1664": "3KEdNZpaGc3aYrbrKhMRhxHtpS5jz9XW9qJEMz8YZ3E",2272
+ "ed25519:ALICEDEVICE1664": "FwN5hqX9JqigqfXBu49NHqh8UqMJ6miM3uveTL1lm1A"2273
+ },2274
+ "signatures": {2275
+ "@alice_1664:hs1": {2276
+ "ed25519:ALICEDEVICE1664": "qwSBB/aHULSU5QGD5JwycWBmfdn9ZFk+/UQ4rMY8EbIYFycQCMBr0Jv5F2pd5KNTo2LmaN06uvsL+bDkhZsoAA"2277
+ }2278
+ },2279
+ "user_id": "@alice_1664:hs1",2280
+ "unsigned": {}2281
+ }2282
+ },2283
+ "@alice_1672:hs1": {2284
+ "ALICEDEVICE1672": {2285
+ "algorithms": [2286
+ "m.olm.v1.curve25519-aes-sha2",2287
+ "m.megolm.v1.aes-sha2"2288
+ ],2289
+ "device_id": "ALICEDEVICE1672",2290
+ "keys": {2291
+ "curve25519:ALICEDEVICE1672": "NohKSRzWweVZftDu4btwB3sHD3UK/DjNbcNRuQwQGDw",2292
+ "ed25519:ALICEDEVICE1672": "jf/Ev0KGVXs+/9D2kSPkcm3aVgP65RNC1sczSqWhLC4"2293
+ },2294
+ "signatures": {2295
+ "@alice_1672:hs1": {2296
+ "ed25519:ALICEDEVICE1672": "LtMYi0s0WBYJ61wU+cNGKBS0nuL1ZhRSL3v5ApeA7C+9PXBT1eSGBJdIWlp4lQha7oA+c5M0rNjmOEwpXeI5BQ"2297
+ }2298
+ },2299
+ "user_id": "@alice_1672:hs1",2300
+ "unsigned": {}2301
+ }2302
+ },2303
+ "@alice_1699:hs1": {2304
+ "ALICEDEVICE1699": {2305
+ "algorithms": [2306
+ "m.olm.v1.curve25519-aes-sha2",2307
+ "m.megolm.v1.aes-sha2"2308
+ ],2309
+ "device_id": "ALICEDEVICE1699",2310
+ "keys": {2311
+ "curve25519:ALICEDEVICE1699": "ItIcImEebIGjqNXAbBJpsOr529OijaOW4M1o0ABkfyQ",2312
+ "ed25519:ALICEDEVICE1699": "YqIM1PWgKIvLPh2/Qp/u3qiQEkQwaHdA3/ptTmNQ26E"2313
+ },2314
+ "signatures": {2315
+ "@alice_1699:hs1": {2316
+ "ed25519:ALICEDEVICE1699": "upDwEJHs5OsuntWonRcjM8G0YhC2ZNEpaC98iVv4wtZYz6Sr+qg5tGoA8o0Ym4s1zgs+kCD9Z9/UaLyDDRqkDA"2317
+ }2318
+ },2319
+ "user_id": "@alice_1699:hs1",2320
+ "unsigned": {}2321
+ }2322
+ },2323
+ "@alice_1702:hs1": {2324
+ "ALICEDEVICE1702": {2325
+ "algorithms": [2326
+ "m.olm.v1.curve25519-aes-sha2",2327
+ "m.megolm.v1.aes-sha2"2328
+ ],2329
+ "device_id": "ALICEDEVICE1702",2330
+ "keys": {2331
+ "curve25519:ALICEDEVICE1702": "ZLROZXxtOmXIm1B9VKrWfAszDdfnYSxZ4CqVjvlRjBo",2332
+ "ed25519:ALICEDEVICE1702": "PjnSCLiMhv/7sFPFFPt3uc+d5lYnEyqQ1xDADMlQzZo"2333
+ },2334
+ "signatures": {2335
+ "@alice_1702:hs1": {2336
+ "ed25519:ALICEDEVICE1702": "/GSehr0790X2eKaVfRq7m+H5GXFJiVoF1GGBayx7kdperG38BQEI3fgdE0jJCxcV/qw8v9JDHX4Ojdft3NaSBg"2337
+ }2338
+ },2339
+ "user_id": "@alice_1702:hs1",2340
+ "unsigned": {}2341
+ }2342
+ },2343
+ "@alice_1703:hs1": {2344
+ "ALICEDEVICE1703": {2345
+ "algorithms": [2346
+ "m.olm.v1.curve25519-aes-sha2",2347
+ "m.megolm.v1.aes-sha2"2348
+ ],2349
+ "device_id": "ALICEDEVICE1703",2350
+ "keys": {2351
+ "curve25519:ALICEDEVICE1703": "+kbRG9B0CbxlVb9HTKVgIo19/pKUG8tPz5qZ4cGBbRU",2352
+ "ed25519:ALICEDEVICE1703": "CEFGUNbxY3wTCx/azSxrnyO5HKFKfHcRwvbN0oyjCl4"2353
+ },2354
+ "signatures": {2355
+ "@alice_1703:hs1": {2356
+ "ed25519:ALICEDEVICE1703": "9tcIQcrwD7DDZnpeSawxj65EJoOsF1K7IBUQyWQAo8XtD1JSQ95glWZCEzx6C8Msck/iQ6GWFjQacDGsxh+sCw"2357
+ }2358
+ },2359
+ "user_id": "@alice_1703:hs1",2360
+ "unsigned": {}2361
+ }2362
+ },2363
+ "@alice_1708:hs1": {2364
+ "ALICEDEVICE1708": {2365
+ "algorithms": [2366
+ "m.olm.v1.curve25519-aes-sha2",2367
+ "m.megolm.v1.aes-sha2"2368
+ ],2369
+ "device_id": "ALICEDEVICE1708",2370
+ "keys": {2371
+ "curve25519:ALICEDEVICE1708": "fi5MU2h8iCjTjkgGuVOy8PdEfOP9+K9emKo5fVmLpUA",2372
+ "ed25519:ALICEDEVICE1708": "B6IzQYL2/eocai6PtYwo2yibo5cXw8R+yD1dovTUEGQ"2373
+ },2374
+ "signatures": {2375
+ "@alice_1708:hs1": {2376
+ "ed25519:ALICEDEVICE1708": "eHmsWBpaCU42SZ0eirZQCbcgSXQiYtTjzmE1ziyVBbC75wY/DGk4Yt5f7tarxCpVtvwQ/cOm+JsMQ1LMeQKxAg"2377
+ }2378
+ },2379
+ "user_id": "@alice_1708:hs1",2380
+ "unsigned": {}2381
+ }2382
+ },2383
+ "@alice_170:hs1": {2384
+ "ALICEDEVICE170": {2385
+ "algorithms": [2386
+ "m.olm.v1.curve25519-aes-sha2",2387
+ "m.megolm.v1.aes-sha2"2388
+ ],2389
+ "device_id": "ALICEDEVICE170",2390
+ "keys": {2391
+ "curve25519:ALICEDEVICE170": "BAf5MQoBvJ2Vcy+oZh6iHFAwOWU7DeiWm/rAPquPVWQ",2392
+ "ed25519:ALICEDEVICE170": "9iJlp3uRzON6yXXrGfySs3tkuKMef+uogab1FufZN/Y"2393
+ },2394
+ "signatures": {2395
+ "@alice_170:hs1": {2396
+ "ed25519:ALICEDEVICE170": "mzm/Ofj6raMmiQOvMdO/wOppGSQgT/RkhcrAKhykhf3fyNmjfSuba5T4RgHARlZGM2KPR+0/HTzi7azg+Wr5Dg"2397
+ }2398
+ },2399
+ "user_id": "@alice_170:hs1",2400
+ "unsigned": {}2401
+ }2402
+ },2403
+ "@alice_1712:hs1": {2404
+ "ALICEDEVICE1712": {2405
+ "algorithms": [2406
+ "m.olm.v1.curve25519-aes-sha2",2407
+ "m.megolm.v1.aes-sha2"2408
+ ],2409
+ "device_id": "ALICEDEVICE1712",2410
+ "keys": {2411
+ "curve25519:ALICEDEVICE1712": "iet2hSBV8i8D1PBWwJVWnhcMy1i65F0rGqHy7DGt7TA",2412
+ "ed25519:ALICEDEVICE1712": "/I8pzRSDsCOQNun3AX0pBSd8c2lpJzFnp7zMUomU6ts"2413
+ },2414
+ "signatures": {2415
+ "@alice_1712:hs1": {2416
+ "ed25519:ALICEDEVICE1712": "400skLO1NEnoD3j3xehgGFXaxSgQUnVh+EowqjwrJVPUPwGZbHI6jwCJD787a71sXMNMLwtAraNd7GafnYhMBQ"2417
+ }2418
+ },2419
+ "user_id": "@alice_1712:hs1",2420
+ "unsigned": {}2421
+ }2422
+ },2423
+ "@alice_1740:hs1": {2424
+ "ALICEDEVICE1740": {2425
+ "algorithms": [2426
+ "m.olm.v1.curve25519-aes-sha2",2427
+ "m.megolm.v1.aes-sha2"2428
+ ],2429
+ "device_id": "ALICEDEVICE1740",2430
+ "keys": {2431
+ "curve25519:ALICEDEVICE1740": "X9vrX44gutVmZWKGR79VZ/p+VdC+uIVs+AdNafFIPCg",2432
+ "ed25519:ALICEDEVICE1740": "RRCqd4VvzRVgsHprBRaeXtOGNdKmXABTX2RPUjeucp8"2433
+ },2434
+ "signatures": {2435
+ "@alice_1740:hs1": {2436
+ "ed25519:ALICEDEVICE1740": "o48goWJyAvCT1beg2PisfOBvnQD4lEFRKv8i2GF8DMx7gAcIKUAdQgJePhp1GFQ2AY03DWfXU4deuFmbfbOgAg"2437
+ }2438
+ },2439
+ "user_id": "@alice_1740:hs1",2440
+ "unsigned": {}2441
+ }2442
+ },2443
+ "@alice_1741:hs1": {2444
+ "ALICEDEVICE1741": {2445
+ "algorithms": [2446
+ "m.olm.v1.curve25519-aes-sha2",2447
+ "m.megolm.v1.aes-sha2"2448
+ ],2449
+ "device_id": "ALICEDEVICE1741",2450
+ "keys": {2451
+ "curve25519:ALICEDEVICE1741": "QvVYcFZ6M5rsMSzlQl1XJzZUWoB1RaCUFoX7ZzGZpTI",2452
+ "ed25519:ALICEDEVICE1741": "AaDUzW4i5NkUIJm3OQ71W85K5gbVd7HYFpept6vxiC4"2453
+ },2454
+ "signatures": {2455
+ "@alice_1741:hs1": {2456
+ "ed25519:ALICEDEVICE1741": "9LEs68e0iOfilB2BFtF+fjyLqu8GUBEhAm7uuK8+3esP1Fu/d/OscuCfBFWcGbpPPAq9X7VdR8fr5i+8vvV3Bg"2457
+ }2458
+ },2459
+ "user_id": "@alice_1741:hs1",2460
+ "unsigned": {}2461
+ }2462
+ },2463
+ "@alice_1746:hs1": {2464
+ "ALICEDEVICE1746": {2465
+ "algorithms": [2466
+ "m.olm.v1.curve25519-aes-sha2",2467
+ "m.megolm.v1.aes-sha2"2468
+ ],2469
+ "device_id": "ALICEDEVICE1746",2470
+ "keys": {2471
+ "curve25519:ALICEDEVICE1746": "JU6K2Dy1Y3tEVsPgXexAbZUKtj/FT9LFRUKQsCPCOH4",2472
+ "ed25519:ALICEDEVICE1746": "V6xtiBsqQgSttmN+JAqYFbtkX01VWpMfvZ5OEvdYwjs"2473
+ },2474
+ "signatures": {2475
+ "@alice_1746:hs1": {2476
+ "ed25519:ALICEDEVICE1746": "gm1/cc9pAFk7Tltrd50AsIFMh5AxorJu08vddQmIfRP85j6hUwq02XQtuY6rGzxHe2zbOujO4VaYZM9BR2B8BA"2477
+ }2478
+ },2479
+ "user_id": "@alice_1746:hs1",2480
+ "unsigned": {}2481
+ }2482
+ },2483
+ "@alice_1751:hs1": {2484
+ "ALICEDEVICE1751": {2485
+ "algorithms": [2486
+ "m.olm.v1.curve25519-aes-sha2",2487
+ "m.megolm.v1.aes-sha2"2488
+ ],2489
+ "device_id": "ALICEDEVICE1751",2490
+ "keys": {2491
+ "curve25519:ALICEDEVICE1751": "9I0apO7R9ADa2CTk3iOEjKfoDy4bc8sjjZV7/jlYCA0",2492
+ "ed25519:ALICEDEVICE1751": "PEushL7ijzi4hkfL0MN0TnloOfcd93VKMp4X+LU+frw"2493
+ },2494
+ "signatures": {2495
+ "@alice_1751:hs1": {2496
+ "ed25519:ALICEDEVICE1751": "ifrno0+HkcPKbacyZuPB9wSHOXh+oiQUpie9CpnP3EwbxxA+TMfgHgfcb1EgE+TlmFjRMrYNqEgg/zCC+6DIBQ"2497
+ }2498
+ },2499
+ "user_id": "@alice_1751:hs1",2500
+ "unsigned": {}2501
+ }2502
+ },2503
+ "@alice_1755:hs1": {2504
+ "ALICEDEVICE1755": {2505
+ "algorithms": [2506
+ "m.olm.v1.curve25519-aes-sha2",2507
+ "m.megolm.v1.aes-sha2"2508
+ ],2509
+ "device_id": "ALICEDEVICE1755",2510
+ "keys": {2511
+ "curve25519:ALICEDEVICE1755": "VIF5NjXxCBAWLU7E96aKg8G9BmlNOVydv/6nUqDQ6yA",2512
+ "ed25519:ALICEDEVICE1755": "K/ilTCqbh64VHH+/9sQ1BvT3G6beqB9uExrdxLoWc9g"2513
+ },2514
+ "signatures": {2515
+ "@alice_1755:hs1": {2516
+ "ed25519:ALICEDEVICE1755": "jhXLkdV7PAVHcbz0rKqUBLfxJR2RmUwHk56N7L+gJIwxwawT6xXrf663a2npgCZtmh1TxpW2Z6n8fXggPPdKCw"2517
+ }2518
+ },2519
+ "user_id": "@alice_1755:hs1",2520
+ "unsigned": {}2521
+ }2522
+ },2523
+ "@alice_1758:hs1": {2524
+ "ALICEDEVICE1758": {2525
+ "algorithms": [2526
+ "m.olm.v1.curve25519-aes-sha2",2527
+ "m.megolm.v1.aes-sha2"2528
+ ],2529
+ "device_id": "ALICEDEVICE1758",2530
+ "keys": {2531
+ "curve25519:ALICEDEVICE1758": "c1VRZQSKrRj9j7J7o/fY0f1XfSaIiLSvSK/KYo26PwM",2532
+ "ed25519:ALICEDEVICE1758": "I3lOkUB8VeCUMfu0i4fci9xaCCIXd2wi1nIdGTMA40E"2533
+ },2534
+ "signatures": {2535
+ "@alice_1758:hs1": {2536
+ "ed25519:ALICEDEVICE1758": "SrTmnUUcYyOvbPVT7k77Ypnn166/aqtvGt4RMsTrbvlQOhqAeFaiVSKJJAhKFs+b6ptedBkC6pF+eIJj64AaDw"2537
+ }2538
+ },2539
+ "user_id": "@alice_1758:hs1",2540
+ "unsigned": {}2541
+ }2542
+ },2543
+ "@alice_1761:hs1": {2544
+ "ALICEDEVICE1761": {2545
+ "algorithms": [2546
+ "m.olm.v1.curve25519-aes-sha2",2547
+ "m.megolm.v1.aes-sha2"2548
+ ],2549
+ "device_id": "ALICEDEVICE1761",2550
+ "keys": {2551
+ "curve25519:ALICEDEVICE1761": "AJJTU2d0c011FGQ76Eiz3WRtBmx6gSt++3T70WZmtAc",2552
+ "ed25519:ALICEDEVICE1761": "kfJzC9OyQCfNfQ6XUqth8s8QsHsR1kRffb7XFwoekDo"2553
+ },2554
+ "signatures": {2555
+ "@alice_1761:hs1": {2556
+ "ed25519:ALICEDEVICE1761": "xC8qT5TS3q4HxECEohwDcC+34mxXIETRi8iAkeuVlEtOMjfxVubEl73SAjvz0tw7t8ESMyZ2l8CGsQKof90QDQ"2557
+ }2558
+ },2559
+ "user_id": "@alice_1761:hs1",2560
+ "unsigned": {}2561
+ }2562
+ },2563
+ "@alice_1777:hs1": {2564
+ "ALICEDEVICE1777": {2565
+ "algorithms": [2566
+ "m.olm.v1.curve25519-aes-sha2",2567
+ "m.megolm.v1.aes-sha2"2568
+ ],2569
+ "device_id": "ALICEDEVICE1777",2570
+ "keys": {2571
+ "curve25519:ALICEDEVICE1777": "GkYo+NNawCossp25+CJ+Zh6Ejmu/+D5ixqTpyIPbwQM",2572
+ "ed25519:ALICEDEVICE1777": "ihC/x13bNXXjajfxRDb63NnShim6vQN45zHx7UzEWdY"2573
+ },2574
+ "signatures": {2575
+ "@alice_1777:hs1": {2576
+ "ed25519:ALICEDEVICE1777": "nFsisIpt392qGfdPe7xjsHpJSLbFohFZnEvaY4gKH2eOS+osAXmIrYEC73u3yzsQRTU5cXV3YQ0/dNF8McPBBA"2577
+ }2578
+ },2579
+ "user_id": "@alice_1777:hs1",2580
+ "unsigned": {}2581
+ }2582
+ },2583
+ "@alice_1784:hs1": {2584
+ "ALICEDEVICE1784": {2585
+ "algorithms": [2586
+ "m.olm.v1.curve25519-aes-sha2",2587
+ "m.megolm.v1.aes-sha2"2588
+ ],2589
+ "device_id": "ALICEDEVICE1784",2590
+ "keys": {2591
+ "curve25519:ALICEDEVICE1784": "byBX+pKCkuGIysHEmQVFkj9O8lOdgjzfLFzM9mGZX0M",2592
+ "ed25519:ALICEDEVICE1784": "hE8vGQJXYZcZ9wHCqEextTMsrONcSoU0L1XJE6Nr2Ec"2593
+ },2594
+ "signatures": {2595
+ "@alice_1784:hs1": {2596
+ "ed25519:ALICEDEVICE1784": "ZqqQgBgBkQiUwOgcwYS5Ryy7LmZ/YsvNl4RXcTMHvdV9mj01tgCi8S1uKS5VzsHq4PgIUEWF93aSe9DD+PkRCQ"2597
+ }2598
+ },2599
+ "user_id": "@alice_1784:hs1",2600
+ "unsigned": {}2601
+ }2602
+ },2603
+ "@alice_1791:hs1": {2604
+ "ALICEDEVICE1791": {2605
+ "algorithms": [2606
+ "m.olm.v1.curve25519-aes-sha2",2607
+ "m.megolm.v1.aes-sha2"2608
+ ],2609
+ "device_id": "ALICEDEVICE1791",2610
+ "keys": {2611
+ "curve25519:ALICEDEVICE1791": "3XzD5Njk+19R/+L0rd59VB+NZALrDiVf0v9U54VN1Cw",2612
+ "ed25519:ALICEDEVICE1791": "FtbgnhlV7obM9QgPY8472sFjsccENiQ8FH92a1QH0Zg"2613
+ },2614
+ "signatures": {2615
+ "@alice_1791:hs1": {2616
+ "ed25519:ALICEDEVICE1791": "JPQxx63yxP1z5DbgZi4+ZyvO7ccepXt41PQxGFZ1UFdqz3q7YOHZiKUAl1AtM42qDUFsRBahUgK04s26XZdSAA"2617
+ }2618
+ },2619
+ "user_id": "@alice_1791:hs1",2620
+ "unsigned": {}2621
+ }2622
+ },2623
+ "@alice_1793:hs1": {2624
+ "ALICEDEVICE1793": {2625
+ "algorithms": [2626
+ "m.olm.v1.curve25519-aes-sha2",2627
+ "m.megolm.v1.aes-sha2"2628
+ ],2629
+ "device_id": "ALICEDEVICE1793",2630
+ "keys": {2631
+ "curve25519:ALICEDEVICE1793": "ROkuzyKUO4htuba5I27BtJGOLvhc8KdbSqxM1JVfvAk",2632
+ "ed25519:ALICEDEVICE1793": "irgNjQzYcu5IQFsfvsGFOesmw5lm/FDUjWJhxIkD51k"2633
+ },2634
+ "signatures": {2635
+ "@alice_1793:hs1": {2636
+ "ed25519:ALICEDEVICE1793": "u0Rn9s2uDpNM+jb5QSw1pN2UNFsdTHPyi1EVFkIeZE5xV0KJVd2AwiDbXjdoM5fgyodd2WZqDZPOKeg3iSpLCg"2637
+ }2638
+ },2639
+ "user_id": "@alice_1793:hs1",2640
+ "unsigned": {}2641
+ }2642
+ },2643
+ "@alice_1800:hs1": {2644
+ "ALICEDEVICE1800": {2645
+ "algorithms": [2646
+ "m.olm.v1.curve25519-aes-sha2",2647
+ "m.megolm.v1.aes-sha2"2648
+ ],2649
+ "device_id": "ALICEDEVICE1800",2650
+ "keys": {2651
+ "curve25519:ALICEDEVICE1800": "WXOA582n+enRTtS+Zm6KaKB42CL/ssP7y9ECVHgk+UI",2652
+ "ed25519:ALICEDEVICE1800": "hGBwyfvYdwk7PBlC6lBTevOs7gc0tdnq1Rep+qOuqgA"2653
+ },2654
+ "signatures": {2655
+ "@alice_1800:hs1": {2656
+ "ed25519:ALICEDEVICE1800": "qPiS04Wzv8J0twSXQp442GI0nkI+Cd+7f9d835WRJQ1A4G3Bzh7/HfjMU9ShI3c1P554PJVE5V8rzTl0S9D5BQ"2657
+ }2658
+ },2659
+ "user_id": "@alice_1800:hs1",2660
+ "unsigned": {}2661
+ }2662
+ },2663
+ "@alice_1810:hs1": {2664
+ "ALICEDEVICE1810": {2665
+ "algorithms": [2666
+ "m.olm.v1.curve25519-aes-sha2",2667
+ "m.megolm.v1.aes-sha2"2668
+ ],2669
+ "device_id": "ALICEDEVICE1810",2670
+ "keys": {2671
+ "curve25519:ALICEDEVICE1810": "iGj7C+AZwo9Knx8ggvwX+cgAn28efCWYMRR/5ht55DE",2672
+ "ed25519:ALICEDEVICE1810": "aWjQILCyHG6WqyPuZJThq7X+w3YgKmQ7Tiz3HQ/Bw4U"2673
+ },2674
+ "signatures": {2675
+ "@alice_1810:hs1": {2676
+ "ed25519:ALICEDEVICE1810": "Sv0yGgj6r9ZZsH3MoYRDQDZbUra6ybKLfHPcie74Opl3Os6WeCFWzYIJs4+QgfUWg+aig1Y55BvlVEcuJhbhAA"2677
+ }2678
+ },2679
+ "user_id": "@alice_1810:hs1",2680
+ "unsigned": {}2681
+ }2682
+ },2683
+ "@alice_1816:hs1": {2684
+ "ALICEDEVICE1816": {2685
+ "algorithms": [2686
+ "m.olm.v1.curve25519-aes-sha2",2687
+ "m.megolm.v1.aes-sha2"2688
+ ],2689
+ "device_id": "ALICEDEVICE1816",2690
+ "keys": {2691
+ "curve25519:ALICEDEVICE1816": "8NeGD1DGs2q5v2pss16Gyvf3vsRIaVUbEUH43VEW0iY",2692
+ "ed25519:ALICEDEVICE1816": "myfAjrVFx2m0owML0L/VLDL28qp3nOr7vyxvxi5OnAg"2693
+ },2694
+ "signatures": {2695
+ "@alice_1816:hs1": {2696
+ "ed25519:ALICEDEVICE1816": "HRchtuUI52aGU5x98rcUMzfa/+mMmgTjFKGeWgI9x8jlPt52HHhtI8rwxZzyqL1u6MKEUQGP3tiZiZuAFqIzDA"2697
+ }2698
+ },2699
+ "user_id": "@alice_1816:hs1",2700
+ "unsigned": {}2701
+ }2702
+ },2703
+ "@alice_1823:hs1": {2704
+ "ALICEDEVICE1823": {2705
+ "algorithms": [2706
+ "m.olm.v1.curve25519-aes-sha2",2707
+ "m.megolm.v1.aes-sha2"2708
+ ],2709
+ "device_id": "ALICEDEVICE1823",2710
+ "keys": {2711
+ "curve25519:ALICEDEVICE1823": "uVkOVTQwgXuHbMi9XVQQ+nJyuCJzvJ4igNIBeZNyTnE",2712
+ "ed25519:ALICEDEVICE1823": "EpnAY9syxGhlJldhsqqaEtNGRjvqSV12L9KtZwhq/ks"2713
+ },2714
+ "signatures": {2715
+ "@alice_1823:hs1": {2716
+ "ed25519:ALICEDEVICE1823": "wKHJhhz/3CCqsBTGpj+WL3jaeHi8U0/Pfs37w6P+5HP0CBFi/JOmBsKl1m8qUMx/dAUvaELdHCkVp9paAmJSBQ"2717
+ }2718
+ },2719
+ "user_id": "@alice_1823:hs1",2720
+ "unsigned": {}2721
+ }2722
+ },2723
+ "@alice_1825:hs1": {2724
+ "ALICEDEVICE1825": {2725
+ "algorithms": [2726
+ "m.olm.v1.curve25519-aes-sha2",2727
+ "m.megolm.v1.aes-sha2"2728
+ ],2729
+ "device_id": "ALICEDEVICE1825",2730
+ "keys": {2731
+ "curve25519:ALICEDEVICE1825": "1NQQilRlk+2NZRPuz6EimRpt7EQ+Q2N3Tn68d3YBqnE",2732
+ "ed25519:ALICEDEVICE1825": "kB3mzI3dnhP9ERXWKPfu1aMCwrtnHX5h3PTqfd9rSBM"2733
+ },2734
+ "signatures": {2735
+ "@alice_1825:hs1": {2736
+ "ed25519:ALICEDEVICE1825": "zHJJD16QkwXtPCjFjv+CD+Ae/Lvf+Kq3bbRnmwIhM0j0yUFrDIR/Y+rJjDF2REB0U7t00YM+L7guqyzacSI+CQ"2737
+ }2738
+ },2739
+ "user_id": "@alice_1825:hs1",2740
+ "unsigned": {}2741
+ }2742
+ },2743
+ "@alice_1829:hs1": {2744
+ "ALICEDEVICE1829": {2745
+ "algorithms": [2746
+ "m.olm.v1.curve25519-aes-sha2",2747
+ "m.megolm.v1.aes-sha2"2748
+ ],2749
+ "device_id": "ALICEDEVICE1829",2750
+ "keys": {2751
+ "curve25519:ALICEDEVICE1829": "tvOLISoY85vos3ureHi2DzzB8ISQBDwvUF6Q1l9e9kA",2752
+ "ed25519:ALICEDEVICE1829": "h9SQdoDblBLHEXp95IWYWr3xfK4Fd2DLuhylnLEcXmA"2753
+ },2754
+ "signatures": {2755
+ "@alice_1829:hs1": {2756
+ "ed25519:ALICEDEVICE1829": "6URENAJfQCW60XT7KtubarP110W2yrPfW8MeX/wYtd04gmAOgCkndZNnRg2QYZ2+w3h4fvJDVDDkv7UQsNwgCw"2757
+ }2758
+ },2759
+ "user_id": "@alice_1829:hs1",2760
+ "unsigned": {}2761
+ }2762
+ },2763
+ "@alice_1832:hs1": {2764
+ "ALICEDEVICE1832": {2765
+ "algorithms": [2766
+ "m.olm.v1.curve25519-aes-sha2",2767
+ "m.megolm.v1.aes-sha2"2768
+ ],2769
+ "device_id": "ALICEDEVICE1832",2770
+ "keys": {2771
+ "curve25519:ALICEDEVICE1832": "ibmdaK/Bu1+8qjK4F6XtBmX9Myq8MTp4O69HfhgXfmI",2772
+ "ed25519:ALICEDEVICE1832": "oQ5at0FeS+Vvs3sVqM3iCD9HMcoWPqN8pnh/oqon0LY"2773
+ },2774
+ "signatures": {2775
+ "@alice_1832:hs1": {2776
+ "ed25519:ALICEDEVICE1832": "1Pspim77fFlGgFQGXuXfT4WyaiZpWABfpIWxec4E1H4/NvfDV3iG7+ymxqls0HwpgWz1vVb54e2zY15ldpEaAA"2777
+ }2778
+ },2779
+ "user_id": "@alice_1832:hs1",2780
+ "unsigned": {}2781
+ }2782
+ },2783
+ "@alice_1843:hs1": {2784
+ "ALICEDEVICE1843": {2785
+ "algorithms": [2786
+ "m.olm.v1.curve25519-aes-sha2",2787
+ "m.megolm.v1.aes-sha2"2788
+ ],2789
+ "device_id": "ALICEDEVICE1843",2790
+ "keys": {2791
+ "curve25519:ALICEDEVICE1843": "qqR1kvHnnS6TplyGFqYkWTGj6zxacMufhE3tcu+CLiQ",2792
+ "ed25519:ALICEDEVICE1843": "ROs+m50ZyrBdd0evf0xG8AeM9wrWZA5/prgQMg2uKWo"2793
+ },2794
+ "signatures": {2795
+ "@alice_1843:hs1": {2796
+ "ed25519:ALICEDEVICE1843": "8Ij1xFLDOCThGcPqlt1vYFv/XIRajUUCq+P7z5hux5FRsZgPLWP2Huv8U5I5R5VFSMSm2oNwABIGCOfbVsItBg"2797
+ }2798
+ },2799
+ "user_id": "@alice_1843:hs1",2800
+ "unsigned": {}2801
+ }2802
+ },2803
+ "@alice_1851:hs1": {2804
+ "ALICEDEVICE1851": {2805
+ "algorithms": [2806
+ "m.olm.v1.curve25519-aes-sha2",2807
+ "m.megolm.v1.aes-sha2"2808
+ ],2809
+ "device_id": "ALICEDEVICE1851",2810
+ "keys": {2811
+ "curve25519:ALICEDEVICE1851": "VoxogjH4GBL2qKpDKtge43kqAnRZxXnqiiGeJjYQMwY",2812
+ "ed25519:ALICEDEVICE1851": "9UYmIz7PSo7V3heeKzMNTkLybjFVoZLZOBWd97oPJCs"2813
+ },2814
+ "signatures": {2815
+ "@alice_1851:hs1": {2816
+ "ed25519:ALICEDEVICE1851": "BS2wyadBOp19ma/q4YrozZVJmQNua9xrPCchra5mHiG2m7uhTPE1SkCTL4CBsF/B1Xp0I6bEsQHpXN44zs8fCA"2817
+ }2818
+ },2819
+ "user_id": "@alice_1851:hs1",2820
+ "unsigned": {}2821
+ }2822
+ },2823
+ "@alice_1852:hs1": {2824
+ "ALICEDEVICE1852": {2825
+ "algorithms": [2826
+ "m.olm.v1.curve25519-aes-sha2",2827
+ "m.megolm.v1.aes-sha2"2828
+ ],2829
+ "device_id": "ALICEDEVICE1852",2830
+ "keys": {2831
+ "curve25519:ALICEDEVICE1852": "BRam+irtiNhCpR8vWubTKTYSd8dx4GURHtkmhUYrWSk",2832
+ "ed25519:ALICEDEVICE1852": "piTSMHaIQRaBVx+AurnjFGsfIK5H91L9usjwInBbYPE"2833
+ },2834
+ "signatures": {2835
+ "@alice_1852:hs1": {2836
+ "ed25519:ALICEDEVICE1852": "J9yLKJLiUTuDjvcts/dOYdux4rOVStJ+VqYsN/RZlMR7OgaQOjsyAmfnIJOvEmjiw5uPSHlhzFje7KBxlHtTBg"2837
+ }2838
+ },2839
+ "user_id": "@alice_1852:hs1",2840
+ "unsigned": {}2841
+ }2842
+ },2843
+ "@alice_1859:hs1": {2844
+ "ALICEDEVICE1859": {2845
+ "algorithms": [2846
+ "m.olm.v1.curve25519-aes-sha2",2847
+ "m.megolm.v1.aes-sha2"2848
+ ],2849
+ "device_id": "ALICEDEVICE1859",2850
+ "keys": {2851
+ "curve25519:ALICEDEVICE1859": "55PBGai6tIl3QQD50UIGvURkmeLMHfYc6+l64a3NgVk",2852
+ "ed25519:ALICEDEVICE1859": "DX62pgIdbAzvOxxn51/X9ZU+TvG09PgqF/RyVR/gZd0"2853
+ },2854
+ "signatures": {2855
+ "@alice_1859:hs1": {2856
+ "ed25519:ALICEDEVICE1859": "UfZl5yAokTdwhAQRl/mMEmvFmErUDcwkpVevY1yooq8eUrHo7XXuJbe4d1HZ9QAPG31+YQU51w5fvfc04TUKBA"2857
+ }2858
+ },2859
+ "user_id": "@alice_1859:hs1",2860
+ "unsigned": {}2861
+ }2862
+ },2863
+ "@alice_1867:hs1": {2864
+ "ALICEDEVICE1867": {2865
+ "algorithms": [2866
+ "m.olm.v1.curve25519-aes-sha2",2867
+ "m.megolm.v1.aes-sha2"2868
+ ],2869
+ "device_id": "ALICEDEVICE1867",2870
+ "keys": {2871
+ "curve25519:ALICEDEVICE1867": "jsveAtyOyNWSjqjHawp5QXO05L5ihJ+MuidgPtjUoi0",2872
+ "ed25519:ALICEDEVICE1867": "UM7QapiiqWYQWStfiP0DY3EaWX0TuDqIrIDlY2aDutc"2873
+ },2874
+ "signatures": {2875
+ "@alice_1867:hs1": {2876
+ "ed25519:ALICEDEVICE1867": "KcdKvzK6uhpFvuwbxE33vVGWqCrn+zH9VpQOJgj5HO4qcsgP/Ookm0PnjpQaZDcUIa32BwMmFyHW7IfJJL68AQ"2877
+ }2878
+ },2879
+ "user_id": "@alice_1867:hs1",2880
+ "unsigned": {}2881
+ }2882
+ },2883
+ "@alice_186:hs1": {2884
+ "ALICEDEVICE186": {2885
+ "algorithms": [2886
+ "m.olm.v1.curve25519-aes-sha2",2887
+ "m.megolm.v1.aes-sha2"2888
+ ],2889
+ "device_id": "ALICEDEVICE186",2890
+ "keys": {2891
+ "curve25519:ALICEDEVICE186": "+Q7wFUyp22QDXmIZZovCnFcU9vz9vapW8AeJDykcbRY",2892
+ "ed25519:ALICEDEVICE186": "U4McC0auIwb/LvmPi7MdrKagJdbLQbGovHWGWa45Bz8"2893
+ },2894
+ "signatures": {2895
+ "@alice_186:hs1": {2896
+ "ed25519:ALICEDEVICE186": "wAcNWX0yQkk/V5z3LHpBzFwjQvKJdBCTjhFXzCKAWgPRtMuJj+Y4373DkVS7Egyh38PeFrGv6G8IdRkXl6K7Aw"2897
+ }2898
+ },2899
+ "user_id": "@alice_186:hs1",2900
+ "unsigned": {}2901
+ }2902
+ },2903
+ "@alice_1885:hs1": {2904
+ "ALICEDEVICE1885": {2905
+ "algorithms": [2906
+ "m.olm.v1.curve25519-aes-sha2",2907
+ "m.megolm.v1.aes-sha2"2908
+ ],2909
+ "device_id": "ALICEDEVICE1885",2910
+ "keys": {2911
+ "curve25519:ALICEDEVICE1885": "uEwn8ARbXjzkQPl4eLgyExRvBtC2dCu87cTBxobuZCw",2912
+ "ed25519:ALICEDEVICE1885": "4k/HzDHE9UHY4QqQP1PiN3fLSuktkNiReusYICLiS+A"2913
+ },2914
+ "signatures": {2915
+ "@alice_1885:hs1": {2916
+ "ed25519:ALICEDEVICE1885": "IW8jd61P4LfFvK1bUMp2rbel+pWXWn6dsMfDawDv16yxL0Zm1LcstapYn5udApYUYmC5qWOGsJRwFx9JJvidAA"2917
+ }2918
+ },2919
+ "user_id": "@alice_1885:hs1",2920
+ "unsigned": {}2921
+ }2922
+ },2923
+ "@alice_1896:hs1": {2924
+ "ALICEDEVICE1896": {2925
+ "algorithms": [2926
+ "m.olm.v1.curve25519-aes-sha2",2927
+ "m.megolm.v1.aes-sha2"2928
+ ],2929
+ "device_id": "ALICEDEVICE1896",2930
+ "keys": {2931
+ "curve25519:ALICEDEVICE1896": "wk/LukbNVDqNP3acwb+OFcFmQ6bGRx8CKABGPAiyWk4",2932
+ "ed25519:ALICEDEVICE1896": "1+iyz6Z8qKLxZPZyN5E/uzpftios02wurtGDkMMOW3c"2933
+ },2934
+ "signatures": {2935
+ "@alice_1896:hs1": {2936
+ "ed25519:ALICEDEVICE1896": "Et5uCLH87Yk0R1UVngiF9ELIJyIWeWpY74GJYlpD9FWi9QWlYDhmMt9bdo2Q2khf9DFOUVq/CyfNUcCVcOkxAA"2937
+ }2938
+ },2939
+ "user_id": "@alice_1896:hs1",2940
+ "unsigned": {}2941
+ }2942
+ },2943
+ "@alice_1901:hs1": {2944
+ "ALICEDEVICE1901": {2945
+ "algorithms": [2946
+ "m.olm.v1.curve25519-aes-sha2",2947
+ "m.megolm.v1.aes-sha2"2948
+ ],2949
+ "device_id": "ALICEDEVICE1901",2950
+ "keys": {2951
+ "curve25519:ALICEDEVICE1901": "V8JV7MBu2Ioe/PNUtjaNdQ3nUUh0RB8DV3dXuFanLkI",2952
+ "ed25519:ALICEDEVICE1901": "fEGF8fx52odArDIg7rPhj5fmplCzaI/ILJUHjEkaUlU"2953
+ },2954
+ "signatures": {2955
+ "@alice_1901:hs1": {2956
+ "ed25519:ALICEDEVICE1901": "69Tb7kk6LdDuDvHQAmErFaH3bZzH59B54NpDj6ch7kdyEl+8aMT7Bhh++wgp0/65LtFYwIaUuNgtJt5U+I+VDw"2957
+ }2958
+ },2959
+ "user_id": "@alice_1901:hs1",2960
+ "unsigned": {}2961
+ }2962
+ },2963
+ "@alice_1915:hs1": {2964
+ "ALICEDEVICE1915": {2965
+ "algorithms": [2966
+ "m.olm.v1.curve25519-aes-sha2",2967
+ "m.megolm.v1.aes-sha2"2968
+ ],2969
+ "device_id": "ALICEDEVICE1915",2970
+ "keys": {2971
+ "curve25519:ALICEDEVICE1915": "1T+duNTAEae0hjK2IUochozTRrbvyRXEsubmUTITKgM",2972
+ "ed25519:ALICEDEVICE1915": "5LZTtH6NvlOG1iqFL0esbbOHpRofjJOdqIQRanm/+kc"2973
+ },2974
+ "signatures": {2975
+ "@alice_1915:hs1": {2976
+ "ed25519:ALICEDEVICE1915": "T8TcC8UwjRc0F1CXzMJXsVmCYlPP8LZs/FTYNnVkpIzRerfmOOMCW/id/XcZU4ygWeywl16FiKdURaa8EIwuBQ"2977
+ }2978
+ },2979
+ "user_id": "@alice_1915:hs1",2980
+ "unsigned": {}2981
+ }2982
+ },2983
+ "@alice_1922:hs1": {2984
+ "ALICEDEVICE1922": {2985
+ "algorithms": [2986
+ "m.olm.v1.curve25519-aes-sha2",2987
+ "m.megolm.v1.aes-sha2"2988
+ ],2989
+ "device_id": "ALICEDEVICE1922",2990
+ "keys": {2991
+ "curve25519:ALICEDEVICE1922": "kAMuu1PcsjxYIzgFnyAo/5DffpwbaafR9gV9zUeIbhY",2992
+ "ed25519:ALICEDEVICE1922": "nnqxP9ZAD04ZdhMuWqz/3gGzCUA3XEkoelur6u1Ounc"2993
+ },2994
+ "signatures": {2995
+ "@alice_1922:hs1": {2996
+ "ed25519:ALICEDEVICE1922": "jBsdx4CZZDSmnBwpu3dx0iA2i46yjxVXxoSsPkeN8UfSyE7xo6twIfgte+MN3t2blYgK+hvVWSf+n1zaKNqlBQ"2997
+ }2998
+ },2999
+ "user_id": "@alice_1922:hs1",3000
+ "unsigned": {}3001
+ }3002
+ },3003
+ "@alice_1933:hs1": {3004
+ "ALICEDEVICE1933": {3005
+ "algorithms": [3006
+ "m.olm.v1.curve25519-aes-sha2",3007
+ "m.megolm.v1.aes-sha2"3008
+ ],3009
+ "device_id": "ALICEDEVICE1933",3010
+ "keys": {3011
+ "curve25519:ALICEDEVICE1933": "l5LbH/dY9adgkqPbfR/tuvx3+7DDLB83IM/luxkOBTU",3012
+ "ed25519:ALICEDEVICE1933": "e0aPp9j0qRtFzAqp1GG9U5f+/D34u+RnEYY8SotazjU"3013
+ },3014
+ "signatures": {3015
+ "@alice_1933:hs1": {3016
+ "ed25519:ALICEDEVICE1933": "hlDksgzN7Nm600Gm86Y9ucUu0XizBaHbN9f/eJ9+FrJFAfCWJKyf5ASgwsQ5/OUjpqC/kpIqXBS0c2rc/sNTCg"3017
+ }3018
+ },3019
+ "user_id": "@alice_1933:hs1",3020
+ "unsigned": {}3021
+ }3022
+ },3023
+ "@alice_193:hs1": {3024
+ "ALICEDEVICE193": {3025
+ "algorithms": [3026
+ "m.olm.v1.curve25519-aes-sha2",3027
+ "m.megolm.v1.aes-sha2"3028
+ ],3029
+ "device_id": "ALICEDEVICE193",3030
+ "keys": {3031
+ "curve25519:ALICEDEVICE193": "EhGfWdOW4LtF+cmMgGBQl9vxx/Ir3mvy4Pv2MBj4Xjo",3032
+ "ed25519:ALICEDEVICE193": "SSr7m2my2lmYNSfPnB67NSEN5af9y1rHdfJAIto6Qs8"3033
+ },3034
+ "signatures": {3035
+ "@alice_193:hs1": {3036
+ "ed25519:ALICEDEVICE193": "X2xKAaJFqkhGln63DzObmh5PzNc0rnOh5DjiUvLvur7a3Tecsd0/eTIr/NKZMU9EKxO5vRjQDrMyvgG4tFy8Cw"3037
+ }3038
+ },3039
+ "user_id": "@alice_193:hs1",3040
+ "unsigned": {}3041
+ }3042
+ },3043
+ "@alice_1941:hs1": {3044
+ "ALICEDEVICE1941": {3045
+ "algorithms": [3046
+ "m.olm.v1.curve25519-aes-sha2",3047
+ "m.megolm.v1.aes-sha2"3048
+ ],3049
+ "device_id": "ALICEDEVICE1941",3050
+ "keys": {3051
+ "curve25519:ALICEDEVICE1941": "Wj85yrA7uxLWQ838u/eOHjtVGOcm478O2d4mKgprRh8",3052
+ "ed25519:ALICEDEVICE1941": "SBQiAF5fQaUf/CMOZnEX34hKg5wMOGYaI6xDr5dt2FE"3053
+ },3054
+ "signatures": {3055
+ "@alice_1941:hs1": {3056
+ "ed25519:ALICEDEVICE1941": "pKGonzdcxe6Fi660w84IIxUs4uGTyTY4C42t7MbILuXjuOipQueIdIR4xS2sKnRL7FlXYg6ok/K7Lvznv33TDQ"3057
+ }3058
+ },3059
+ "user_id": "@alice_1941:hs1",3060
+ "unsigned": {}3061
+ }3062
+ },3063
+ "@alice_1950:hs1": {3064
+ "ALICEDEVICE1950": {3065
+ "algorithms": [3066
+ "m.olm.v1.curve25519-aes-sha2",3067
+ "m.megolm.v1.aes-sha2"3068
+ ],3069
+ "device_id": "ALICEDEVICE1950",3070
+ "keys": {3071
+ "curve25519:ALICEDEVICE1950": "pHvTrV4gp5bP2YsgD+KJkbPseXHmdpOKfaHuneWmLzg",3072
+ "ed25519:ALICEDEVICE1950": "MF4hGcvQKZSHljHEEd85Qvdagni6GIAnXNzEtFLWSNM"3073
+ },3074
+ "signatures": {3075
+ "@alice_1950:hs1": {3076
+ "ed25519:ALICEDEVICE1950": "1eLkj60h40YY8shVhxgCHq1wO5GhFRxu6zl0g5af+FT+YzwnfDkg/3pq4GScKhdEiY+Yu1ec9rpHtBGQxQfHDw"3077
+ }3078
+ },3079
+ "user_id": "@alice_1950:hs1",3080
+ "unsigned": {}3081
+ }3082
+ },3083
+ "@alice_1962:hs1": {3084
+ "ALICEDEVICE1962": {3085
+ "algorithms": [3086
+ "m.olm.v1.curve25519-aes-sha2",3087
+ "m.megolm.v1.aes-sha2"3088
+ ],3089
+ "device_id": "ALICEDEVICE1962",3090
+ "keys": {3091
+ "curve25519:ALICEDEVICE1962": "CJzG5MCFLHO4DWLi/I7vgXJpWy5mQNhB4FXukk1kwT0",3092
+ "ed25519:ALICEDEVICE1962": "EvmHYlzMkIavAE3zswgPM2bGvY+rfopCnG1vfsKH3R0"3093
+ },3094
+ "signatures": {3095
+ "@alice_1962:hs1": {3096
+ "ed25519:ALICEDEVICE1962": "ZXkwr9lYhTjCxnxgIxvBz8FpBUFL+QV46LWntVlQxoRl/JePOpQALRI0Ul4KLXv2ApgjymosYh2IrHA8438yCA"3097
+ }3098
+ },3099
+ "user_id": "@alice_1962:hs1",3100
+ "unsigned": {}3101
+ }3102
+ },3103
+ "@alice_1963:hs1": {3104
+ "ALICEDEVICE1963": {3105
+ "algorithms": [3106
+ "m.olm.v1.curve25519-aes-sha2",3107
+ "m.megolm.v1.aes-sha2"3108
+ ],3109
+ "device_id": "ALICEDEVICE1963",3110
+ "keys": {3111
+ "curve25519:ALICEDEVICE1963": "ipeYj2iBidsa2RpI6qZiVN+xB/J3ZGMY1elq1WWg0mE",3112
+ "ed25519:ALICEDEVICE1963": "8WCs2mCwGomzIaPmJ+MbFeTYpffsq7nnoym8qQHv1vM"3113
+ },3114
+ "signatures": {3115
+ "@alice_1963:hs1": {3116
+ "ed25519:ALICEDEVICE1963": "2ADv5SUlpqm1SN63pHnXjw3EKL3ZF0FbrGBvSXoY59rE83T/If3AigfWhl3TJBCjyGv274Ko1z8Pkf1CEolLBA"3117
+ }3118
+ },3119
+ "user_id": "@alice_1963:hs1",3120
+ "unsigned": {}3121
+ }3122
+ },3123
+ "@alice_1964:hs1": {3124
+ "ALICEDEVICE1964": {3125
+ "algorithms": [3126
+ "m.olm.v1.curve25519-aes-sha2",3127
+ "m.megolm.v1.aes-sha2"3128
+ ],3129
+ "device_id": "ALICEDEVICE1964",3130
+ "keys": {3131
+ "curve25519:ALICEDEVICE1964": "cZT7TKlEG2ib9wV1zhsWXVGKOeTtRs1b2k9g1RLNLAk",3132
+ "ed25519:ALICEDEVICE1964": "majpRucwc2ZPXj4p96wGLV6a/EP6mf8EBHJIKca0JSk"3133
+ },3134
+ "signatures": {3135
+ "@alice_1964:hs1": {3136
+ "ed25519:ALICEDEVICE1964": "IdetM2yPxb54DZ+RRR5t9+Hz4/jWAxSt/zMn+LQJ+awGW9hKVExjqTVexfMU0nlLBLgduph0O/MeqwrHDpDiDw"3137
+ }3138
+ },3139
+ "user_id": "@alice_1964:hs1",3140
+ "unsigned": {}3141
+ }3142
+ },3143
+ "@alice_200:hs1": {3144
+ "ALICEDEVICE200": {3145
+ "algorithms": [3146
+ "m.olm.v1.curve25519-aes-sha2",3147
+ "m.megolm.v1.aes-sha2"3148
+ ],3149
+ "device_id": "ALICEDEVICE200",3150
+ "keys": {3151
+ "curve25519:ALICEDEVICE200": "swnob5HVrj1JEB4xKdp8oWqsGRRZQ0zN3Ws29BJ7yns",3152
+ "ed25519:ALICEDEVICE200": "kbYTRgbzN7qDcD85nyDkoNDbCs3pcOnEhv6s9Tc3v5Q"3153
+ },3154
+ "signatures": {3155
+ "@alice_200:hs1": {3156
+ "ed25519:ALICEDEVICE200": "WTk7Z/gcWjCQJApAjRkE5MciWpVxT2E6aMndy7xF0MqXzX0IpW7/VWfWoU0/IFpGbVWyz3dMZA7cNgjHqJKWBA"3157
+ }3158
+ },3159
+ "user_id": "@alice_200:hs1",3160
+ "unsigned": {}3161
+ }3162
+ },3163
+ "@alice_211:hs1": {3164
+ "ALICEDEVICE211": {3165
+ "algorithms": [3166
+ "m.olm.v1.curve25519-aes-sha2",3167
+ "m.megolm.v1.aes-sha2"3168
+ ],3169
+ "device_id": "ALICEDEVICE211",3170
+ "keys": {3171
+ "curve25519:ALICEDEVICE211": "NvkEU9YZFw9x+sICUgJ16UOw8TvQ4xj5hWYZxNF1G0Y",3172
+ "ed25519:ALICEDEVICE211": "A/qMeOW0kpwa547O66GuQ0yda3v+tpk7sD9C7fhQAHs"3173
+ },3174
+ "signatures": {3175
+ "@alice_211:hs1": {3176
+ "ed25519:ALICEDEVICE211": "zyFxjL53UdXA9cbxYqCLY4+zEIr1SxiWxU5pFZTh+ryWCWFp+Hx8Y7X5v45DpOU/zsaOyCxpdI2bLyGWRWptBQ"3177
+ }3178
+ },3179
+ "user_id": "@alice_211:hs1",3180
+ "unsigned": {}3181
+ }3182
+ },3183
+ "@alice_220:hs1": {3184
+ "ALICEDEVICE220": {3185
+ "algorithms": [3186
+ "m.olm.v1.curve25519-aes-sha2",3187
+ "m.megolm.v1.aes-sha2"3188
+ ],3189
+ "device_id": "ALICEDEVICE220",3190
+ "keys": {3191
+ "curve25519:ALICEDEVICE220": "k4Glyr/2fADMcjFhtxxM3oyRfkZ6L2M1vpBiV4O5kgw",3192
+ "ed25519:ALICEDEVICE220": "bMT+uylvJ8ezS6BAEANsbwWD/ruWiPa9xRVT7SKI0/Q"3193
+ },3194
+ "signatures": {3195
+ "@alice_220:hs1": {3196
+ "ed25519:ALICEDEVICE220": "Ixd3DOCoS4dK6d1ki/jxoNWwBL52R5v2ujgjbS0049U4YExcSI5aLaEUO4X9+b6azM6xdLCFxfFQnhDcvLAqDA"3197
+ }3198
+ },3199
+ "user_id": "@alice_220:hs1",3200
+ "unsigned": {}3201
+ }3202
+ },3203
+ "@alice_222:hs1": {3204
+ "ALICEDEVICE222": {3205
+ "algorithms": [3206
+ "m.olm.v1.curve25519-aes-sha2",3207
+ "m.megolm.v1.aes-sha2"3208
+ ],3209
+ "device_id": "ALICEDEVICE222",3210
+ "keys": {3211
+ "curve25519:ALICEDEVICE222": "Pah0TwBCfy9JKsKlqYbFHfZfSibHoP9EF237i6YbsX8",3212
+ "ed25519:ALICEDEVICE222": "SSxFWGr7kbJh+Uu/6GJjxjKmdptwDkg5RiYH4An8k14"3213
+ },3214
+ "signatures": {3215
+ "@alice_222:hs1": {3216
+ "ed25519:ALICEDEVICE222": "Cy74KhMNtEd8SbtbLQNkEeGRIIj8ORsFPZcWz2mHYHf0dh1crF3iILkeVU6XiGHQ7yjGt/HTcXsOo08oZ94ZBQ"3217
+ }3218
+ },3219
+ "user_id": "@alice_222:hs1",3220
+ "unsigned": {}3221
+ }3222
+ },3223
+ "@alice_226:hs1": {3224
+ "ALICEDEVICE226": {3225
+ "algorithms": [3226
+ "m.olm.v1.curve25519-aes-sha2",3227
+ "m.megolm.v1.aes-sha2"3228
+ ],3229
+ "device_id": "ALICEDEVICE226",3230
+ "keys": {3231
+ "curve25519:ALICEDEVICE226": "28op6dlZz0OzV5Otbct91oJ1ymIvY0OxRVz5V59YXiM",3232
+ "ed25519:ALICEDEVICE226": "BGV9Obf420tzYjjWYUx2qPyXi2+dqe5+I27R6zd6Rec"3233
+ },3234
+ "signatures": {3235
+ "@alice_226:hs1": {3236
+ "ed25519:ALICEDEVICE226": "GdhlKL8KpS0qT/blsj8iY3cjZhQeKsYkjjsA0gkLfy77fePU5tC+r4XxIPQZTaueaBu2Hzhnk5LHgDEzzwFFAQ"3237
+ }3238
+ },3239
+ "user_id": "@alice_226:hs1",3240
+ "unsigned": {}3241
+ }3242
+ },3243
+ "@alice_243:hs1": {3244
+ "ALICEDEVICE243": {3245
+ "algorithms": [3246
+ "m.olm.v1.curve25519-aes-sha2",3247
+ "m.megolm.v1.aes-sha2"3248
+ ],3249
+ "device_id": "ALICEDEVICE243",3250
+ "keys": {3251
+ "curve25519:ALICEDEVICE243": "I6fZbanxchOvEc5UTaGgwD9+nVp1wntO3I5MgqaZFgc",3252
+ "ed25519:ALICEDEVICE243": "5yWFl+YjaIHgG9Ezt0j3SuemjpFWic1nz2c3ImNJPDs"3253
+ },3254
+ "signatures": {3255
+ "@alice_243:hs1": {3256
+ "ed25519:ALICEDEVICE243": "PIkCGFMzlexgupDw2BWqovOodnzpvwX3ymbqR220Z0st3GF3A+OlqiwSrMdLZfAhTYK+BkNqTfaMPKH1JgWwCA"3257
+ }3258
+ },3259
+ "user_id": "@alice_243:hs1",3260
+ "unsigned": {}3261
+ }3262
+ },3263
+ "@alice_245:hs1": {3264
+ "ALICEDEVICE245": {3265
+ "algorithms": [3266
+ "m.olm.v1.curve25519-aes-sha2",3267
+ "m.megolm.v1.aes-sha2"3268
+ ],3269
+ "device_id": "ALICEDEVICE245",3270
+ "keys": {3271
+ "curve25519:ALICEDEVICE245": "kyMTS5d8ovFFlp2AX3d3sOCH95BggiuuGwH+SopH5jw",3272
+ "ed25519:ALICEDEVICE245": "XILZiG9+UBX/gfmJGZ48nOCRdV7GeRwwBbGye+W/iqw"3273
+ },3274
+ "signatures": {3275
+ "@alice_245:hs1": {3276
+ "ed25519:ALICEDEVICE245": "36GLh1FzrfsvG93zlMFeqmCRuEsyeUWiXK6wUnlMJd9t7VcKiShzkC8fZD28471COEcxedhC7/86BGA2GexOBw"3277
+ }3278
+ },3279
+ "user_id": "@alice_245:hs1",3280
+ "unsigned": {}3281
+ }3282
+ },3283
+ "@alice_251:hs1": {3284
+ "ALICEDEVICE251": {3285
+ "algorithms": [3286
+ "m.olm.v1.curve25519-aes-sha2",3287
+ "m.megolm.v1.aes-sha2"3288
+ ],3289
+ "device_id": "ALICEDEVICE251",3290
+ "keys": {3291
+ "curve25519:ALICEDEVICE251": "1daCKHYL+HbDGCinkrVPumHHrtFvadQb3391p7yZaA0",3292
+ "ed25519:ALICEDEVICE251": "wSWqsRnrnTIiQH4Ht8cn3lEfravJ3V9bAiS6hYPgfwI"3293
+ },3294
+ "signatures": {3295
+ "@alice_251:hs1": {3296
+ "ed25519:ALICEDEVICE251": "mhbj/RL8AqF+y6741VWdQs/J4jNJjG8nIguBIVa3rY0ItyhC/jcl7zxi3x/uE/gjWCupg0fXuX6gnnzfmxTLDw"3297
+ }3298
+ },3299
+ "user_id": "@alice_251:hs1",3300
+ "unsigned": {}3301
+ }3302
+ },3303
+ "@alice_257:hs1": {3304
+ "ALICEDEVICE257": {3305
+ "algorithms": [3306
+ "m.olm.v1.curve25519-aes-sha2",3307
+ "m.megolm.v1.aes-sha2"3308
+ ],3309
+ "device_id": "ALICEDEVICE257",3310
+ "keys": {3311
+ "curve25519:ALICEDEVICE257": "JuFoCRBIz9BAusFT1SPauZ07OitUX+HvSmEBe3JpuVk",3312
+ "ed25519:ALICEDEVICE257": "GtqwpXJjZyZ5wLGVBquWm91lLAHomhEJ5xqtzY2DSIs"3313
+ },3314
+ "signatures": {3315
+ "@alice_257:hs1": {3316
+ "ed25519:ALICEDEVICE257": "cAHH4sM80XxaPC3sATvG2gQtfOZoYbAHmkwwrykQyzz710JC9t4OEGiVmCscBYme8EdEUzEmtPW6WVyfMJHIAw"3317
+ }3318
+ },3319
+ "user_id": "@alice_257:hs1",3320
+ "unsigned": {}3321
+ }3322
+ },3323
+ "@alice_261:hs1": {3324
+ "ALICEDEVICE261": {3325
+ "algorithms": [3326
+ "m.olm.v1.curve25519-aes-sha2",3327
+ "m.megolm.v1.aes-sha2"3328
+ ],3329
+ "device_id": "ALICEDEVICE261",3330
+ "keys": {3331
+ "curve25519:ALICEDEVICE261": "kV6XpQm2GBSHj/UjBB2oS2aheRB5SoIG3+ULTy0S0XM",3332
+ "ed25519:ALICEDEVICE261": "Fech2GI6dtrgjJCcRlatD8BDNn+feESdftfDpA2BXg0"3333
+ },3334
+ "signatures": {3335
+ "@alice_261:hs1": {3336
+ "ed25519:ALICEDEVICE261": "dNRPuydvl9PMZF57jlny4x2IeMXK4V86THkRo8MwezYy2uCtf1GBW1gF6YnfAAVwJIOs9jpB+Fb1bNhD838iCg"3337
+ }3338
+ },3339
+ "user_id": "@alice_261:hs1",3340
+ "unsigned": {}3341
+ }3342
+ },3343
+ "@alice_262:hs1": {3344
+ "ALICEDEVICE262": {3345
+ "algorithms": [3346
+ "m.olm.v1.curve25519-aes-sha2",3347
+ "m.megolm.v1.aes-sha2"3348
+ ],3349
+ "device_id": "ALICEDEVICE262",3350
+ "keys": {3351
+ "curve25519:ALICEDEVICE262": "K+DBCpe8qoNKn0abQI0b36t8eEjJXvIoJ6XWz6AuY1A",3352
+ "ed25519:ALICEDEVICE262": "XiSTJluV3l6E3fZVaaJ/D/YmP+VvlW9PVo9T/e7Nsws"3353
+ },3354
+ "signatures": {3355
+ "@alice_262:hs1": {3356
+ "ed25519:ALICEDEVICE262": "Fm87Jb+Ug6CNKdJOXM29DiwQJ7yiaDpiLAIOBf8q5sxoUNjtEbOi/6PqWI0egRhLjkMjQsoFq6xfHX/+HKrDDg"3357
+ }3358
+ },3359
+ "user_id": "@alice_262:hs1",3360
+ "unsigned": {}3361
+ }3362
+ },3363
+ "@alice_273:hs1": {3364
+ "ALICEDEVICE273": {3365
+ "algorithms": [3366
+ "m.olm.v1.curve25519-aes-sha2",3367
+ "m.megolm.v1.aes-sha2"3368
+ ],3369
+ "device_id": "ALICEDEVICE273",3370
+ "keys": {3371
+ "curve25519:ALICEDEVICE273": "H/CsEKySoEYQVMq/Bgm1ncMDnxhelP2X784c9sJO+wc",3372
+ "ed25519:ALICEDEVICE273": "Fnr9cPrVNOs3QEpRwQyZXTXs2HxPuMMD/XLgJ0SdE38"3373
+ },3374
+ "signatures": {3375
+ "@alice_273:hs1": {3376
+ "ed25519:ALICEDEVICE273": "kk9PZpsBd9RlNfdSCRMMKoaWiCKqRSrkhaSKN2zMWylYgitCYKmdPU8GA9mzPxKy1DyqhJ7SwP/A7FenV7V6Aw"3377
+ }3378
+ },3379
+ "user_id": "@alice_273:hs1",3380
+ "unsigned": {}3381
+ }3382
+ },3383
+ "@alice_277:hs1": {3384
+ "ALICEDEVICE277": {3385
+ "algorithms": [3386
+ "m.olm.v1.curve25519-aes-sha2",3387
+ "m.megolm.v1.aes-sha2"3388
+ ],3389
+ "device_id": "ALICEDEVICE277",3390
+ "keys": {3391
+ "curve25519:ALICEDEVICE277": "EAL1uHwnblY1YTQmT5jzXWrgfo77+8Ju3tRrw58M7SI",3392
+ "ed25519:ALICEDEVICE277": "zvImWz/sEOvsA5cb8jo6vWxwoC2vLdUhoP2DDlSCTbE"3393
+ },3394
+ "signatures": {3395
+ "@alice_277:hs1": {3396
+ "ed25519:ALICEDEVICE277": "lwuNYq81+JjhjM1rk2XRtYBeLuaAt1p7ac5F/KpfVYxEAYvBTfSrxsPHnxOc9UB/AbV1GDDA9SJa6QS4AsqlAQ"3397
+ }3398
+ },3399
+ "user_id": "@alice_277:hs1",3400
+ "unsigned": {}3401
+ }3402
+ },3403
+ "@alice_27:hs1": {3404
+ "ALICEDEVICE27": {3405
+ "algorithms": [3406
+ "m.olm.v1.curve25519-aes-sha2",3407
+ "m.megolm.v1.aes-sha2"3408
+ ],3409
+ "device_id": "ALICEDEVICE27",3410
+ "keys": {3411
+ "curve25519:ALICEDEVICE27": "5VcrdkQouYNhezo+nrNNMQ+n83+PQKdCA8z7DO76DFE",3412
+ "ed25519:ALICEDEVICE27": "oY0c5y5pALtwVXSxuA+n/M4O9YE6QXwdlYCFfNTan8M"3413
+ },3414
+ "signatures": {3415
+ "@alice_27:hs1": {3416
+ "ed25519:ALICEDEVICE27": "TBMNFQL95XXGfewM3vJH3QGgY6W474BA2PHw088aHvJx4S+AwwsHFXQ+WTw2OZXWQPW3GSn9QA0jXZabkgbzDA"3417
+ }3418
+ },3419
+ "user_id": "@alice_27:hs1",3420
+ "unsigned": {}3421
+ }3422
+ },3423
+ "@alice_282:hs1": {3424
+ "ALICEDEVICE282": {3425
+ "algorithms": [3426
+ "m.olm.v1.curve25519-aes-sha2",3427
+ "m.megolm.v1.aes-sha2"3428
+ ],3429
+ "device_id": "ALICEDEVICE282",3430
+ "keys": {3431
+ "curve25519:ALICEDEVICE282": "RNNFl7v7WxjMkUxPpVVQpeFA/7dK6BjfON6Di7ZGURE",3432
+ "ed25519:ALICEDEVICE282": "HE/XdfoMum9quz8eqAE2MCRNhVGPMCubW2K4y39bl2M"3433
+ },3434
+ "signatures": {3435
+ "@alice_282:hs1": {3436
+ "ed25519:ALICEDEVICE282": "5oqY3sraWLAgUu0YLuV2YLtNEbaFApueb+y1BQQ50lOFhmJmciKAlSjzKzYLzjQYqJijXxkf+MDEmt8VRciTCg"3437
+ }3438
+ },3439
+ "user_id": "@alice_282:hs1",3440
+ "unsigned": {}3441
+ }3442
+ },3443
+ "@alice_286:hs1": {3444
+ "ALICEDEVICE286": {3445
+ "algorithms": [3446
+ "m.olm.v1.curve25519-aes-sha2",3447
+ "m.megolm.v1.aes-sha2"3448
+ ],3449
+ "device_id": "ALICEDEVICE286",3450
+ "keys": {3451
+ "curve25519:ALICEDEVICE286": "m1hL04BVrQu09D3EXMDMabco6l0Icyq3g4QHWf+KOh8",3452
+ "ed25519:ALICEDEVICE286": "XerpiZdSuPcboyoytUaWn9kmv6URN/PIUEbljAi2XqE"3453
+ },3454
+ "signatures": {3455
+ "@alice_286:hs1": {3456
+ "ed25519:ALICEDEVICE286": "bWej8JNlx95mGMMAypeEwWBAKoGAuQVKo8vLJQBuQO4BZX5ohuXcIm0KxBO6T98/MaScr06u1/zD906yUWH7BQ"3457
+ }3458
+ },3459
+ "user_id": "@alice_286:hs1",3460
+ "unsigned": {}3461
+ }3462
+ },3463
+ "@alice_292:hs1": {3464
+ "ALICEDEVICE292": {3465
+ "algorithms": [3466
+ "m.olm.v1.curve25519-aes-sha2",3467
+ "m.megolm.v1.aes-sha2"3468
+ ],3469
+ "device_id": "ALICEDEVICE292",3470
+ "keys": {3471
+ "curve25519:ALICEDEVICE292": "8KxHYSH1aC0n6QVOiDDvWKrPYeI6XkohzlYDVunMwAE",3472
+ "ed25519:ALICEDEVICE292": "dMk4zHuKfBFUF/RK3+EsvfnyKHBOJEFvsMy45puOiKo"3473
+ },3474
+ "signatures": {3475
+ "@alice_292:hs1": {3476
+ "ed25519:ALICEDEVICE292": "r4DHUyzRfz3DidtsYj2r2f8EhWkRq8Mn/BVlxLI09TmLRuJgLv4EFcaUzZl7EinXuxWSalynn5MhGmw5JPeaBw"3477
+ }3478
+ },3479
+ "user_id": "@alice_292:hs1",3480
+ "unsigned": {}3481
+ }3482
+ },3483
+ "@alice_300:hs1": {3484
+ "ALICEDEVICE300": {3485
+ "algorithms": [3486
+ "m.olm.v1.curve25519-aes-sha2",3487
+ "m.megolm.v1.aes-sha2"3488
+ ],3489
+ "device_id": "ALICEDEVICE300",3490
+ "keys": {3491
+ "curve25519:ALICEDEVICE300": "Eset7Lh0MSuLa5MiTbxXzYE5GMBPeUF9xSENFIDOD0M",3492
+ "ed25519:ALICEDEVICE300": "kSQvKlkZmM0dEvia1x+t8FPzZp5uT0yFL6PGAkE49d8"3493
+ },3494
+ "signatures": {3495
+ "@alice_300:hs1": {3496
+ "ed25519:ALICEDEVICE300": "SxwClQGzTuUunTeiy70tMJTJoNi0va/371whjnmeAiEFRbw2nf9PLaWOSlADa5W9bKMf9w+MARcsZX2HXLaLAQ"3497
+ }3498
+ },3499
+ "user_id": "@alice_300:hs1",3500
+ "unsigned": {}3501
+ }3502
+ },3503
+ "@alice_308:hs1": {3504
+ "ALICEDEVICE308": {3505
+ "algorithms": [3506
+ "m.olm.v1.curve25519-aes-sha2",3507
+ "m.megolm.v1.aes-sha2"3508
+ ],3509
+ "device_id": "ALICEDEVICE308",3510
+ "keys": {3511
+ "curve25519:ALICEDEVICE308": "6CiKySYRMeLjHrl7L32EOdHFyhhBPXf4wORuGTsBSiE",3512
+ "ed25519:ALICEDEVICE308": "bPbJGEo2fa6XlIWPoA0dDStC5RBwsqVURtibxEXXcFg"3513
+ },3514
+ "signatures": {3515
+ "@alice_308:hs1": {3516
+ "ed25519:ALICEDEVICE308": "keEnuafeFi4/Mtb8ctH1YDJJP4E3S5VEkUnM/aOEEaoXvQUDg59sY1jzrC+MLIxWQTQQn1c2EGR0JduLa9yDCQ"3517
+ }3518
+ },3519
+ "user_id": "@alice_308:hs1",3520
+ "unsigned": {}3521
+ }3522
+ },3523
+ "@alice_31:hs1": {3524
+ "ALICEDEVICE31": {3525
+ "algorithms": [3526
+ "m.olm.v1.curve25519-aes-sha2",3527
+ "m.megolm.v1.aes-sha2"3528
+ ],3529
+ "device_id": "ALICEDEVICE31",3530
+ "keys": {3531
+ "curve25519:ALICEDEVICE31": "YLTo12IEartkpn4fqtsGwGtENRCxj8R3meHSXuxS+VE",3532
+ "ed25519:ALICEDEVICE31": "y2vhGJyD7rhNGkkyQwZqv1aAMMVfXFkPH3UiaP/jA1g"3533
+ },3534
+ "signatures": {3535
+ "@alice_31:hs1": {3536
+ "ed25519:ALICEDEVICE31": "zOvy/QKc2Wxb2poktE+i18iIDrFlb3AiDJmab+ucBSeOsqtYB9usVRyTbgdhtRiMKXlvAMTIv6rW8nkFEOaQAw"3537
+ }3538
+ },3539
+ "user_id": "@alice_31:hs1",3540
+ "unsigned": {}3541
+ }3542
+ },3543
+ "@alice_321:hs1": {3544
+ "ALICEDEVICE321": {3545
+ "algorithms": [3546
+ "m.olm.v1.curve25519-aes-sha2",3547
+ "m.megolm.v1.aes-sha2"3548
+ ],3549
+ "device_id": "ALICEDEVICE321",3550
+ "keys": {3551
+ "curve25519:ALICEDEVICE321": "oRqubCiS6wPYZnDiVnu74ofvOa7dLIEGScAgjVT4dww",3552
+ "ed25519:ALICEDEVICE321": "ifBvN6zVd5egj0Cgw4b8r5Zofp7Kv97AmnGPdRgIrvQ"3553
+ },3554
+ "signatures": {3555
+ "@alice_321:hs1": {3556
+ "ed25519:ALICEDEVICE321": "JtBZ9ZbK6F8aIzJAseQuHN7PffS0CrMYst7WXom74TaibQdiVRcuVBXslCsUiI+RBGXqG+4I5mWcIDdF3EZcAA"3557
+ }3558
+ },3559
+ "user_id": "@alice_321:hs1",3560
+ "unsigned": {}3561
+ }3562
+ },3563
+ "@alice_322:hs1": {3564
+ "ALICEDEVICE322": {3565
+ "algorithms": [3566
+ "m.olm.v1.curve25519-aes-sha2",3567
+ "m.megolm.v1.aes-sha2"3568
+ ],3569
+ "device_id": "ALICEDEVICE322",3570
+ "keys": {3571
+ "curve25519:ALICEDEVICE322": "iO/qYt5hpS5KpxuDebjEf/Fz6EM4Dsv2DSOxxaBM9nc",3572
+ "ed25519:ALICEDEVICE322": "zSUSysAD7HR0v+tcr4l28z7KoFtXIO4s5SZWNZp8RNk"3573
+ },3574
+ "signatures": {3575
+ "@alice_322:hs1": {3576
+ "ed25519:ALICEDEVICE322": "Td6gTrysJuuhUO+hR3YY7iBZdyDsF1OQ2xtAUwZaeQIHgAXArc9pqS85R8irLgvD/mU7sbl9ckfcsz1BwzLPDw"3577
+ }3578
+ },3579
+ "user_id": "@alice_322:hs1",3580
+ "unsigned": {}3581
+ }3582
+ },3583
+ "@alice_327:hs1": {3584
+ "ALICEDEVICE327": {3585
+ "algorithms": [3586
+ "m.olm.v1.curve25519-aes-sha2",3587
+ "m.megolm.v1.aes-sha2"3588
+ ],3589
+ "device_id": "ALICEDEVICE327",3590
+ "keys": {3591
+ "curve25519:ALICEDEVICE327": "ooWjCnEHH9CQAl2LAZ5T8xFrxHbdEr45rnrUIdftuCI",3592
+ "ed25519:ALICEDEVICE327": "VlEA8iMnawxTyOl+qMjGxSmhLd353/m9etnEJFRryyg"3593
+ },3594
+ "signatures": {3595
+ "@alice_327:hs1": {3596
+ "ed25519:ALICEDEVICE327": "UcypyK+2QmzYT6oLFmmnnAWxvsiabQ0Hg3U1o/zY/N7nMXB2AzUauRw+HQ29ldf997DlcdchnA54x/Uq4Q4uAg"3597
+ }3598
+ },3599
+ "user_id": "@alice_327:hs1",3600
+ "unsigned": {}3601
+ }3602
+ },3603
+ "@alice_331:hs1": {3604
+ "ALICEDEVICE331": {3605
+ "algorithms": [3606
+ "m.olm.v1.curve25519-aes-sha2",3607
+ "m.megolm.v1.aes-sha2"3608
+ ],3609
+ "device_id": "ALICEDEVICE331",3610
+ "keys": {3611
+ "curve25519:ALICEDEVICE331": "WeU2lk8QJvkC/C18getqZFAi6Ktm4vkOAR5eWG5inE0",3612
+ "ed25519:ALICEDEVICE331": "CMc01eTo00R3RpMzggkzceu+0gNleOL8Tt4v8nzjIZM"3613
+ },3614
+ "signatures": {3615
+ "@alice_331:hs1": {3616
+ "ed25519:ALICEDEVICE331": "QZQCVMnxg9hwFcnUhBjinvmeMhbtzA+t2YyEJi/Roqz2N3c6EYRIWC7Hx+CN6F2UnMdl4OBbOJf7++OZmHHNDg"3617
+ }3618
+ },3619
+ "user_id": "@alice_331:hs1",3620
+ "unsigned": {}3621
+ }3622
+ },3623
+ "@alice_339:hs1": {3624
+ "ALICEDEVICE339": {3625
+ "algorithms": [3626
+ "m.olm.v1.curve25519-aes-sha2",3627
+ "m.megolm.v1.aes-sha2"3628
+ ],3629
+ "device_id": "ALICEDEVICE339",3630
+ "keys": {3631
+ "curve25519:ALICEDEVICE339": "IgWlZ1LV/Vlc8wgyUkNrgDAQVBF0p2dHKZ9vqd4ta3E",3632
+ "ed25519:ALICEDEVICE339": "XlH6TO/8V6JZ4EL6Ymgwyy6ySMnghCFO9G4eNXu7ZFY"3633
+ },3634
+ "signatures": {3635
+ "@alice_339:hs1": {3636
+ "ed25519:ALICEDEVICE339": "9/SqLAvOWj1QJWXP/FMU8wPJs+zndjPZEmBJk6zqu+/yFsspSI22gwRfkI73j+VePziyOeYdVSfSsF6WoM0/Cg"3637
+ }3638
+ },3639
+ "user_id": "@alice_339:hs1",3640
+ "unsigned": {}3641
+ }3642
+ },3643
+ "@alice_349:hs1": {3644
+ "ALICEDEVICE349": {3645
+ "algorithms": [3646
+ "m.olm.v1.curve25519-aes-sha2",3647
+ "m.megolm.v1.aes-sha2"3648
+ ],3649
+ "device_id": "ALICEDEVICE349",3650
+ "keys": {3651
+ "curve25519:ALICEDEVICE349": "oJFyVS7f35j+J2ExdaxAcBeH9Y5USyJdJUn0e+PEUWs",3652
+ "ed25519:ALICEDEVICE349": "X8GivrU5vIbb0aAa5weSgMoR4PygPCZX/zWMEdqPF2E"3653
+ },3654
+ "signatures": {3655
+ "@alice_349:hs1": {3656
+ "ed25519:ALICEDEVICE349": "zI5vDMVJO9/Z3JpWvPPTbNK2ZBHofs7yNk4lnnTROcrItaahaAuA7N1TN6g+ct3LHuJS2xXlyJOw7c2i6BE0Aw"3657
+ }3658
+ },3659
+ "user_id": "@alice_349:hs1",3660
+ "unsigned": {}3661
+ }3662
+ },3663
+ "@alice_354:hs1": {3664
+ "ALICEDEVICE354": {3665
+ "algorithms": [3666
+ "m.olm.v1.curve25519-aes-sha2",3667
+ "m.megolm.v1.aes-sha2"3668
+ ],3669
+ "device_id": "ALICEDEVICE354",3670
+ "keys": {3671
+ "curve25519:ALICEDEVICE354": "rE196KkDQmxaAz/s2e9U5p+etEf523kaLzKdrXyk7EI",3672
+ "ed25519:ALICEDEVICE354": "NRCQt+8cbrX8RLhuUdok5nsjZBV2vTw+joZqAn1bnOs"3673
+ },3674
+ "signatures": {3675
+ "@alice_354:hs1": {3676
+ "ed25519:ALICEDEVICE354": "GM3b8JZ2XZegvjDnyJdqX58lK4xB15TxWm1TZwvw5a3/ZZbor6TgFbu81BndDwxg2ZWDob1Bkwj8hpV7xXKqBg"3677
+ }3678
+ },3679
+ "user_id": "@alice_354:hs1",3680
+ "unsigned": {}3681
+ }3682
+ },3683
+ "@alice_372:hs1": {3684
+ "ALICEDEVICE372": {3685
+ "algorithms": [3686
+ "m.olm.v1.curve25519-aes-sha2",3687
+ "m.megolm.v1.aes-sha2"3688
+ ],3689
+ "device_id": "ALICEDEVICE372",3690
+ "keys": {3691
+ "curve25519:ALICEDEVICE372": "MQHM4p4WwoDozgdCfE1Zo7ZK6TDmssjwBXMZ/PmRIi4",3692
+ "ed25519:ALICEDEVICE372": "NvHIsp2z9II20eWGLPO7Hv8vhFwbIeJF1FFw0T932tI"3693
+ },3694
+ "signatures": {3695
+ "@alice_372:hs1": {3696
+ "ed25519:ALICEDEVICE372": "fM7z0kSgGiJZEHjocHcUBiTSjDgybIx9pk+HuIhQQxaO1Y+eUP7qYoK0LodsvZp3jr83rSmtz3SyfQGqgupADQ"3697
+ }3698
+ },3699
+ "user_id": "@alice_372:hs1",3700
+ "unsigned": {}3701
+ }3702
+ },3703
+ "@alice_374:hs1": {3704
+ "ALICEDEVICE374": {3705
+ "algorithms": [3706
+ "m.olm.v1.curve25519-aes-sha2",3707
+ "m.megolm.v1.aes-sha2"3708
+ ],3709
+ "device_id": "ALICEDEVICE374",3710
+ "keys": {3711
+ "curve25519:ALICEDEVICE374": "Xd81lbEQ56qhPGcQyTI8i8YrMSOVuATyro9epUf4aUk",3712
+ "ed25519:ALICEDEVICE374": "RcgH4bq3GRV7Eh7+lXeTSVz+Yiz10klbd5a1Ymbp6jo"3713
+ },3714
+ "signatures": {3715
+ "@alice_374:hs1": {3716
+ "ed25519:ALICEDEVICE374": "0Ce0BBPd+jJhgHk1hn6GfneYJwmZ1UJHcJpQmOfDFrpJjiY/lk9Pq1qMZVehkmC9q6Tm+Q7qXEz1dgkOSCT4Bw"3717
+ }3718
+ },3719
+ "user_id": "@alice_374:hs1",3720
+ "unsigned": {}3721
+ }3722
+ },3723
+ "@alice_378:hs1": {3724
+ "ALICEDEVICE378": {3725
+ "algorithms": [3726
+ "m.olm.v1.curve25519-aes-sha2",3727
+ "m.megolm.v1.aes-sha2"3728
+ ],3729
+ "device_id": "ALICEDEVICE378",3730
+ "keys": {3731
+ "curve25519:ALICEDEVICE378": "Fvegw2EXb1cIcoTIBkBkSMX73GsUilxS506HOwBffls",3732
+ "ed25519:ALICEDEVICE378": "tBZp0+lhr1KUCguG0yhWcplBygnV/w/7/DY06OWrftk"3733
+ },3734
+ "signatures": {3735
+ "@alice_378:hs1": {3736
+ "ed25519:ALICEDEVICE378": "cBnijX3H3/JOiJcNwkIsEmWd3OhSKgt0NsQLpY1eiEOUuzEblswGQvkQ/FncykwP5o+9VOeA6ydi5LXlHOo7CQ"3737
+ }3738
+ },3739
+ "user_id": "@alice_378:hs1",3740
+ "unsigned": {}3741
+ }3742
+ },3743
+ "@alice_37:hs1": {3744
+ "ALICEDEVICE37": {3745
+ "algorithms": [3746
+ "m.olm.v1.curve25519-aes-sha2",3747
+ "m.megolm.v1.aes-sha2"3748
+ ],3749
+ "device_id": "ALICEDEVICE37",3750
+ "keys": {3751
+ "curve25519:ALICEDEVICE37": "MadGg/g3w2siX0Y1Z/KmzzIfGR5rsxV30SAmUQB4i1c",3752
+ "ed25519:ALICEDEVICE37": "eW4TGVONxz6TXn/hvNik/N+kuxTYCbH/pX4LQpOzXJ8"3753
+ },3754
+ "signatures": {3755
+ "@alice_37:hs1": {3756
+ "ed25519:ALICEDEVICE37": "WcTipX3P1jKe828gxSzEjQVXO1dVnO+v5oLWGK3nmXT3Ef0P4cCRFrYkdgNYGKPsuRGQs6IktUIKKcLpXrtcAw"3757
+ }3758
+ },3759
+ "user_id": "@alice_37:hs1",3760
+ "unsigned": {}3761
+ }3762
+ },3763
+ "@alice_398:hs1": {3764
+ "ALICEDEVICE398": {3765
+ "algorithms": [3766
+ "m.olm.v1.curve25519-aes-sha2",3767
+ "m.megolm.v1.aes-sha2"3768
+ ],3769
+ "device_id": "ALICEDEVICE398",3770
+ "keys": {3771
+ "curve25519:ALICEDEVICE398": "fVUibLLcU/eRg0IilmGh1jQrJ/43FuCZd0IQMPp2Ekc",3772
+ "ed25519:ALICEDEVICE398": "0+51tt/i8EjJl2itE26clQ8s36qOP1UtWHvp7UflTCY"3773
+ },3774
+ "signatures": {3775
+ "@alice_398:hs1": {3776
+ "ed25519:ALICEDEVICE398": "ehsn5FVw8Ehl6NZrJfRmS4KFGcJ7gEpo19ZJ9Jr7mhF7C8pSolzuB6WrtYe+fxpXBedreaBPEjLbeZCq/IbqBg"3777
+ }3778
+ },3779
+ "user_id": "@alice_398:hs1",3780
+ "unsigned": {}3781
+ }3782
+ },3783
+ "@alice_404:hs1": {3784
+ "ALICEDEVICE404": {3785
+ "algorithms": [3786
+ "m.olm.v1.curve25519-aes-sha2",3787
+ "m.megolm.v1.aes-sha2"3788
+ ],3789
+ "device_id": "ALICEDEVICE404",3790
+ "keys": {3791
+ "curve25519:ALICEDEVICE404": "tEbVSrCjd7SEPHgzyX1kKcT+rgANX1acGNWK1X1HsTQ",3792
+ "ed25519:ALICEDEVICE404": "rpfbBGTNTjv0s+p8S1iB1zs9s9RwoyxWAmuki8MnQU0"3793
+ },3794
+ "signatures": {3795
+ "@alice_404:hs1": {3796
+ "ed25519:ALICEDEVICE404": "Ryp3NS/evVheqpwu581YR0S7XDIEQwyB6CP3Fc0HxmSncQTsv/PeXiNydPNIMIgs+d59GJ/qujPLh5m8yipxBg"3797
+ }3798
+ },3799
+ "user_id": "@alice_404:hs1",3800
+ "unsigned": {}3801
+ }3802
+ },3803
+ "@alice_412:hs1": {3804
+ "ALICEDEVICE412": {3805
+ "algorithms": [3806
+ "m.olm.v1.curve25519-aes-sha2",3807
+ "m.megolm.v1.aes-sha2"3808
+ ],3809
+ "device_id": "ALICEDEVICE412",3810
+ "keys": {3811
+ "curve25519:ALICEDEVICE412": "sUKh6kb1Uekgflz4QfbNIsmBe17ytnezhZysexxGYHs",3812
+ "ed25519:ALICEDEVICE412": "nWZc32vRW7jLHnB+btEEqk/POb5NjfAGEbIUrz/iWe0"3813
+ },3814
+ "signatures": {3815
+ "@alice_412:hs1": {3816
+ "ed25519:ALICEDEVICE412": "8IkHWvErjbCthVR/3IhUQ1+sq7JQBC1pXerpUQfhcMBHo502kYwKdF3ERYfZBqS/2C68BzH/rYJKCovcjCYqCQ"3817
+ }3818
+ },3819
+ "user_id": "@alice_412:hs1",3820
+ "unsigned": {}3821
+ }3822
+ },3823
+ "@alice_427:hs1": {3824
+ "ALICEDEVICE427": {3825
+ "algorithms": [3826
+ "m.olm.v1.curve25519-aes-sha2",3827
+ "m.megolm.v1.aes-sha2"3828
+ ],3829
+ "device_id": "ALICEDEVICE427",3830
+ "keys": {3831
+ "curve25519:ALICEDEVICE427": "6NQ9fvVucmgve3T935Xj3/VMserurkSlAck4v/6PdUw",3832
+ "ed25519:ALICEDEVICE427": "3G3zUQVX/GX9cFQ8lFUeHzsY9AaEeWpl2bLqwyBlvy0"3833
+ },3834
+ "signatures": {3835
+ "@alice_427:hs1": {3836
+ "ed25519:ALICEDEVICE427": "W5Ib/cqd1z9/AYLJpKymbd3hwGAjl9EP1FAKbPedKHec4Av3gWvtVQMmW63SYbzZpgDb0MZ9uhiTKsB46u4CAQ"3837
+ }3838
+ },3839
+ "user_id": "@alice_427:hs1",3840
+ "unsigned": {}3841
+ }3842
+ },3843
+ "@alice_436:hs1": {3844
+ "ALICEDEVICE436": {3845
+ "algorithms": [3846
+ "m.olm.v1.curve25519-aes-sha2",3847
+ "m.megolm.v1.aes-sha2"3848
+ ],3849
+ "device_id": "ALICEDEVICE436",3850
+ "keys": {3851
+ "curve25519:ALICEDEVICE436": "Q2RsAjT357YBa60OWARjRAO9YZuLvXVW5rhDLzK7MAo",3852
+ "ed25519:ALICEDEVICE436": "P2FSNkdP32AbR4HiwPvJ66ZBG+sytPQbyNoFCOavAgo"3853
+ },3854
+ "signatures": {3855
+ "@alice_436:hs1": {3856
+ "ed25519:ALICEDEVICE436": "vCPP2/Wr3IVCA/M1wrGi9WzzVOwEO6EuLlv0E5y9ii/qx2GQDJyCN9XLZ78rAI2QJiEEMGWy2wPDxmFr7ubNDQ"3857
+ }3858
+ },3859
+ "user_id": "@alice_436:hs1",3860
+ "unsigned": {}3861
+ }3862
+ },3863
+ "@alice_444:hs1": {3864
+ "ALICEDEVICE444": {3865
+ "algorithms": [3866
+ "m.olm.v1.curve25519-aes-sha2",3867
+ "m.megolm.v1.aes-sha2"3868
+ ],3869
+ "device_id": "ALICEDEVICE444",3870
+ "keys": {3871
+ "curve25519:ALICEDEVICE444": "m5Vxs5yiAOSQuRMM9D08KjxuUrffiHXS5MCLvET/TGk",3872
+ "ed25519:ALICEDEVICE444": "LjQ8JVoe/jKRPh2MVUKzkJw0OnZ46RJ00bNajPubaOg"3873
+ },3874
+ "signatures": {3875
+ "@alice_444:hs1": {3876
+ "ed25519:ALICEDEVICE444": "cX5dUOxd9kzUIk74zlzll57Rxp7O76hOKdlatGnn5hJ1c5OxlKgmY8OPIjEIOUvfugtoa30xlFUlM5ApOVLIAA"3877
+ }3878
+ },3879
+ "user_id": "@alice_444:hs1",3880
+ "unsigned": {}3881
+ }3882
+ },3883
+ "@alice_445:hs1": {3884
+ "ALICEDEVICE445": {3885
+ "algorithms": [3886
+ "m.olm.v1.curve25519-aes-sha2",3887
+ "m.megolm.v1.aes-sha2"3888
+ ],3889
+ "device_id": "ALICEDEVICE445",3890
+ "keys": {3891
+ "curve25519:ALICEDEVICE445": "ZQXjLBGI6ZUhyivYO1YoHu80x59aXCm9WJiv2ig2aA0",3892
+ "ed25519:ALICEDEVICE445": "1yjzoH75yUK63HKgaDT7N3uXGI2mXTMJV/eHMnIwXBM"3893
+ },3894
+ "signatures": {3895
+ "@alice_445:hs1": {3896
+ "ed25519:ALICEDEVICE445": "D20kAkPxb94e62qVSxJWu/w4ntaTGkDjTN6vvBDj9VbcMX7JghiVxJSiP0EHRBcJcyLCcmiPI0Gt02caU+UiAg"3897
+ }3898
+ },3899
+ "user_id": "@alice_445:hs1",3900
+ "unsigned": {}3901
+ }3902
+ },3903
+ "@alice_451:hs1": {3904
+ "ALICEDEVICE451": {3905
+ "algorithms": [3906
+ "m.olm.v1.curve25519-aes-sha2",3907
+ "m.megolm.v1.aes-sha2"3908
+ ],3909
+ "device_id": "ALICEDEVICE451",3910
+ "keys": {3911
+ "curve25519:ALICEDEVICE451": "O4+vjjW/1nD0PjeXQifl/ipjnhgzJM2fvFIO7NF0akU",3912
+ "ed25519:ALICEDEVICE451": "gBtMC1Y+eJSJhRdNk1wUh/2+zVCK1KeI82QR5nwEaHQ"3913
+ },3914
+ "signatures": {3915
+ "@alice_451:hs1": {3916
+ "ed25519:ALICEDEVICE451": "SJ7J+Tonm7lculQl26R4am5Hxr30phHAKfiiErduw5NcYb2fIpWnlO6wL75wW4rukMb28ePC+A18G2vdIMjlCg"3917
+ }3918
+ },3919
+ "user_id": "@alice_451:hs1",3920
+ "unsigned": {}3921
+ }3922
+ },3923
+ "@alice_452:hs1": {3924
+ "ALICEDEVICE452": {3925
+ "algorithms": [3926
+ "m.olm.v1.curve25519-aes-sha2",3927
+ "m.megolm.v1.aes-sha2"3928
+ ],3929
+ "device_id": "ALICEDEVICE452",3930
+ "keys": {3931
+ "curve25519:ALICEDEVICE452": "OWH1rznTwjeUzTc4tGj/8TJmLK8psRmUKE1IeD9r0HY",3932
+ "ed25519:ALICEDEVICE452": "sfy+RwzPAJ+UIDnRz49tyS7vg0zldJ91OO1bPSJo6yc"3933
+ },3934
+ "signatures": {3935
+ "@alice_452:hs1": {3936
+ "ed25519:ALICEDEVICE452": "i7B4CQGRV46qAKQ0UdINlCL7LuQ8r1VDV4az9ulMXe/aZirNAR9xXDixV6TuAGRkRM3ERyBtSYkaq3gxp+9UAw"3937
+ }3938
+ },3939
+ "user_id": "@alice_452:hs1",3940
+ "unsigned": {}3941
+ }3942
+ },3943
+ "@alice_461:hs1": {3944
+ "ALICEDEVICE461": {3945
+ "algorithms": [3946
+ "m.olm.v1.curve25519-aes-sha2",3947
+ "m.megolm.v1.aes-sha2"3948
+ ],3949
+ "device_id": "ALICEDEVICE461",3950
+ "keys": {3951
+ "curve25519:ALICEDEVICE461": "YhoqaTMsnxCfuXF9Nrl53/BnZyPKcoPOJe4KgxFmp0E",3952
+ "ed25519:ALICEDEVICE461": "N0NdCY89gDI5v6blFSLC8vtDRPBazaMciIHWjP/X5LA"3953
+ },3954
+ "signatures": {3955
+ "@alice_461:hs1": {3956
+ "ed25519:ALICEDEVICE461": "isJ9jMs7WYxu3aqNkxtJVVBvakNZ/vOFFvlgu1zIa6mkO1xawESEikhc9KnhmfR4G+2gtQf5I0hhDLxj63+xAw"3957
+ }3958
+ },3959
+ "user_id": "@alice_461:hs1",3960
+ "unsigned": {}3961
+ }3962
+ },3963
+ "@alice_46:hs1": {3964
+ "ALICEDEVICE46": {3965
+ "algorithms": [3966
+ "m.olm.v1.curve25519-aes-sha2",3967
+ "m.megolm.v1.aes-sha2"3968
+ ],3969
+ "device_id": "ALICEDEVICE46",3970
+ "keys": {3971
+ "curve25519:ALICEDEVICE46": "wfgTOrwf8Ri+OS+5GWCXD0MS3uqHhP1AxuGjto1StzU",3972
+ "ed25519:ALICEDEVICE46": "MfH+lQ0uZA+hd7ubXjEvqrmhnpQhDFX6NlBnREccz88"3973
+ },3974
+ "signatures": {3975
+ "@alice_46:hs1": {3976
+ "ed25519:ALICEDEVICE46": "FqIk2//Gzwk51sHPEe4VYYNiQ5hpHeS1qNldXHzK1Nvyz5W1g7NL2AiJljfNCZ8wfjN1xVTV4wixRqDrzVXSAA"3977
+ }3978
+ },3979
+ "user_id": "@alice_46:hs1",3980
+ "unsigned": {}3981
+ }3982
+ },3983
+ "@alice_472:hs1": {3984
+ "ALICEDEVICE472": {3985
+ "algorithms": [3986
+ "m.olm.v1.curve25519-aes-sha2",3987
+ "m.megolm.v1.aes-sha2"3988
+ ],3989
+ "device_id": "ALICEDEVICE472",3990
+ "keys": {3991
+ "curve25519:ALICEDEVICE472": "AzREzavP9UB2WeoX23h1okRCeHJ9OZPe7eOg+lDN+2w",3992
+ "ed25519:ALICEDEVICE472": "TsSX4tlkQlzcjitHft5zZBv7Y6OQ2mfmhe2rP2eDOnQ"3993
+ },3994
+ "signatures": {3995
+ "@alice_472:hs1": {3996
+ "ed25519:ALICEDEVICE472": "ASvjSsAi6QCscUukkYjB42FzkUaCFOxGQ74BoKaLslBFzI/Ff4cXTn8J48M7wElG/xVrtvMP49dpNG1ZinAXCQ"3997
+ }3998
+ },3999
+ "user_id": "@alice_472:hs1",4000
+ "unsigned": {}4001
+ }4002
+ },4003
+ "@alice_484:hs1": {4004
+ "ALICEDEVICE484": {4005
+ "algorithms": [4006
+ "m.olm.v1.curve25519-aes-sha2",4007
+ "m.megolm.v1.aes-sha2"4008
+ ],4009
+ "device_id": "ALICEDEVICE484",4010
+ "keys": {4011
+ "curve25519:ALICEDEVICE484": "SqCHnV8a3j62Vgpg9dD4xJ8Y8OHdljggX+pPcSjwkB8",4012
+ "ed25519:ALICEDEVICE484": "CmkQg3QaW/G4RyHFU4KIUdIQncOTB69RJLTuJOZKLzA"4013
+ },4014
+ "signatures": {4015
+ "@alice_484:hs1": {4016
+ "ed25519:ALICEDEVICE484": "B3XPgYGMMg05ZK8ZdLdGFI5DJrguz6c4JIjijdczp0i28kRUk9HgV6Fh3Tgp7WWp5uhES0wQPF03NuSoSg4ZAQ"4017
+ }4018
+ },4019
+ "user_id": "@alice_484:hs1",4020
+ "unsigned": {}4021
+ }4022
+ },4023
+ "@alice_493:hs1": {4024
+ "ALICEDEVICE493": {4025
+ "algorithms": [4026
+ "m.olm.v1.curve25519-aes-sha2",4027
+ "m.megolm.v1.aes-sha2"4028
+ ],4029
+ "device_id": "ALICEDEVICE493",4030
+ "keys": {4031
+ "curve25519:ALICEDEVICE493": "SnrFVW8BfoqrMfYDTbaoRIpTmgEZ+lEGveeM9j5coSw",4032
+ "ed25519:ALICEDEVICE493": "erSodxQcmHbjU/H3WF1sYPa4tWKgF+ORH8+QIy6rIqw"4033
+ },4034
+ "signatures": {4035
+ "@alice_493:hs1": {4036
+ "ed25519:ALICEDEVICE493": "UVn860eRPt2cBN9guF7XN+iUDcrEjzI3AsMHjuzJTtZVIOJ+5+l7oHaoNWWiwiWUFVq7GhosRmyGy0lqTyjtAg"4037
+ }4038
+ },4039
+ "user_id": "@alice_493:hs1",4040
+ "unsigned": {}4041
+ }4042
+ },4043
+ "@alice_495:hs1": {4044
+ "ALICEDEVICE495": {4045
+ "algorithms": [4046
+ "m.olm.v1.curve25519-aes-sha2",4047
+ "m.megolm.v1.aes-sha2"4048
+ ],4049
+ "device_id": "ALICEDEVICE495",4050
+ "keys": {4051
+ "curve25519:ALICEDEVICE495": "r+UwrU30Jggyfp4tkyKhXuPzw+QtGJutKcdPdjdLFCU",4052
+ "ed25519:ALICEDEVICE495": "dAsEZC/vVWAFjQtYHHdf17GUhDo9gNnpfPwsNp+LqS4"4053
+ },4054
+ "signatures": {4055
+ "@alice_495:hs1": {4056
+ "ed25519:ALICEDEVICE495": "tQsQ0Q4gMeLX9PKprTsad2hz65tY/FeYei4s98OSib7ARRYL+o4lsktZxggIyTGWAAPoznUp1h8e/xMZmEkuCg"4057
+ }4058
+ },4059
+ "user_id": "@alice_495:hs1",4060
+ "unsigned": {}4061
+ }4062
+ },4063
+ "@alice_496:hs1": {4064
+ "ALICEDEVICE496": {4065
+ "algorithms": [4066
+ "m.olm.v1.curve25519-aes-sha2",4067
+ "m.megolm.v1.aes-sha2"4068
+ ],4069
+ "device_id": "ALICEDEVICE496",4070
+ "keys": {4071
+ "curve25519:ALICEDEVICE496": "ycQ/Zun+jzmT05/yhAziNcaGZWV0ah38H/PAhWy/fnc",4072
+ "ed25519:ALICEDEVICE496": "3Ke7sTpWUnqWI7AcRyu/Q8ZVUKeiIwhdRUL0PDXZcrE"4073
+ },4074
+ "signatures": {4075
+ "@alice_496:hs1": {4076
+ "ed25519:ALICEDEVICE496": "+qdlS1bFxn9ap5EG6/t4/USBEG4WKUKoPJB9l+6IRAa0L/ow3Cw5seCLi4rsxbGKk3ubQ8jvSxMH6KRPD/iqAw"4077
+ }4078
+ },4079
+ "user_id": "@alice_496:hs1",4080
+ "unsigned": {}4081
+ }4082
+ },4083
+ "@alice_509:hs1": {4084
+ "ALICEDEVICE509": {4085
+ "algorithms": [4086
+ "m.olm.v1.curve25519-aes-sha2",4087
+ "m.megolm.v1.aes-sha2"4088
+ ],4089
+ "device_id": "ALICEDEVICE509",4090
+ "keys": {4091
+ "curve25519:ALICEDEVICE509": "NbYdv3BEjjWvTRP3WysE+7Rn2MhDZputZN365+vifH0",4092
+ "ed25519:ALICEDEVICE509": "x/pFbPzSgeRTEgfe6dMVQX5SaOf5xqwJGDU3lHkILFc"4093
+ },4094
+ "signatures": {4095
+ "@alice_509:hs1": {4096
+ "ed25519:ALICEDEVICE509": "lTj7M4MCkDF/ASkTQUGSCi8738m4s4twU1v/iwTjoeInwsnW3FjGADMqpAfHMchQ+Ee0Mi6DkDRjzLUQhI67AA"4097
+ }4098
+ },4099
+ "user_id": "@alice_509:hs1",4100
+ "unsigned": {}4101
+ }4102
+ },4103
+ "@alice_515:hs1": {4104
+ "ALICEDEVICE515": {4105
+ "algorithms": [4106
+ "m.olm.v1.curve25519-aes-sha2",4107
+ "m.megolm.v1.aes-sha2"4108
+ ],4109
+ "device_id": "ALICEDEVICE515",4110
+ "keys": {4111
+ "curve25519:ALICEDEVICE515": "+LPNw1ePrAPQ10zPv+flR32wUfmRAzDkyGoj/ZqNfj0",4112
+ "ed25519:ALICEDEVICE515": "SeCrEf8v4F8Q6QAETepPLmZYtm/EC4Mxg3zFrwaEO3s"4113
+ },4114
+ "signatures": {4115
+ "@alice_515:hs1": {4116
+ "ed25519:ALICEDEVICE515": "e9RsuyNky/hdIHWVE86By9BOUfUESNdk0vYOtlVBcfCvBknsK1dTzruh3RYyoFpXLn2XVBMLZ4mYBNQGIyb9DQ"4117
+ }4118
+ },4119
+ "user_id": "@alice_515:hs1",4120
+ "unsigned": {}4121
+ }4122
+ },4123
+ "@alice_518:hs1": {4124
+ "ALICEDEVICE518": {4125
+ "algorithms": [4126
+ "m.olm.v1.curve25519-aes-sha2",4127
+ "m.megolm.v1.aes-sha2"4128
+ ],4129
+ "device_id": "ALICEDEVICE518",4130
+ "keys": {4131
+ "curve25519:ALICEDEVICE518": "HjVMGIW7ZJq3kZPeKLErgcVeoNexuaGIGketZt8tAHc",4132
+ "ed25519:ALICEDEVICE518": "cW43Bdz5JOSiL32vR1LXXEcM/a369py+KQPHxN+4wBM"4133
+ },4134
+ "signatures": {4135
+ "@alice_518:hs1": {4136
+ "ed25519:ALICEDEVICE518": "SPFqh++BYYO5Vx/Dn5hIPEz3bND2eQcp7H8nZbWV3vAeUJOuErDZPamAL4HCE3lLRpdO9TW2TjIX3egDhZ29BA"4137
+ }4138
+ },4139
+ "user_id": "@alice_518:hs1",4140
+ "unsigned": {}4141
+ }4142
+ },4143
+ "@alice_532:hs1": {4144
+ "ALICEDEVICE532": {4145
+ "algorithms": [4146
+ "m.olm.v1.curve25519-aes-sha2",4147
+ "m.megolm.v1.aes-sha2"4148
+ ],4149
+ "device_id": "ALICEDEVICE532",4150
+ "keys": {4151
+ "curve25519:ALICEDEVICE532": "mCUobwaGEzmoHHu5aoCW8E06t3w/wwT6qGkEPIWENi4",4152
+ "ed25519:ALICEDEVICE532": "SYsUDdS/hy92QvWaF6Io89dw6Fy7shNourxTFPv61sc"4153
+ },4154
+ "signatures": {4155
+ "@alice_532:hs1": {4156
+ "ed25519:ALICEDEVICE532": "c3FKcu4AWLPvQprmJ7/otRHQ6bjAfU8whMnRqTWU6LCANK1QvfhPVKgtup5MA6VxdliTjkbHp9fPxWiMEiJcBQ"4157
+ }4158
+ },4159
+ "user_id": "@alice_532:hs1",4160
+ "unsigned": {}4161
+ }4162
+ },4163
+ "@alice_533:hs1": {4164
+ "ALICEDEVICE533": {4165
+ "algorithms": [4166
+ "m.olm.v1.curve25519-aes-sha2",4167
+ "m.megolm.v1.aes-sha2"4168
+ ],4169
+ "device_id": "ALICEDEVICE533",4170
+ "keys": {4171
+ "curve25519:ALICEDEVICE533": "ztLFzEFwtX2LZwjDF4z2ZfQ/DM7PJEwTrNZodb/WUFY",4172
+ "ed25519:ALICEDEVICE533": "rSosLL8vZE0F+RfaN2OtCqOsf4o5UgNWLYC8J1RaM1Q"4173
+ },4174
+ "signatures": {4175
+ "@alice_533:hs1": {4176
+ "ed25519:ALICEDEVICE533": "S7b1NWk1QPW8l6uObIBkdUOUGS1Pn8cng6UmZ1ogdP5DUmqdOsR/wn/b8OZDemXa/ke+f5SuFznfCnUPNO7WDw"4177
+ }4178
+ },4179
+ "user_id": "@alice_533:hs1",4180
+ "unsigned": {}4181
+ }4182
+ },4183
+ "@alice_54:hs1": {4184
+ "ALICEDEVICE54": {4185
+ "algorithms": [4186
+ "m.olm.v1.curve25519-aes-sha2",4187
+ "m.megolm.v1.aes-sha2"4188
+ ],4189
+ "device_id": "ALICEDEVICE54",4190
+ "keys": {4191
+ "curve25519:ALICEDEVICE54": "wJobexXcb1DESzuwyMnazGQz3iFUpFCio0E/L1YlLw8",4192
+ "ed25519:ALICEDEVICE54": "se2XiXeRHoxBuHa8niXOO9xNDA2IDJzSiGSK5paVhnE"4193
+ },4194
+ "signatures": {4195
+ "@alice_54:hs1": {4196
+ "ed25519:ALICEDEVICE54": "J84TsPlp7yhLHLN0jARuFq1qNfvkloJsihI+eu2ADztd+szY1uiIchFtN4hUzuHTLjlilXyFIIt1nshMu88fBA"4197
+ }4198
+ },4199
+ "user_id": "@alice_54:hs1",4200
+ "unsigned": {}4201
+ }4202
+ },4203
+ "@alice_567:hs1": {4204
+ "ALICEDEVICE567": {4205
+ "algorithms": [4206
+ "m.olm.v1.curve25519-aes-sha2",4207
+ "m.megolm.v1.aes-sha2"4208
+ ],4209
+ "device_id": "ALICEDEVICE567",4210
+ "keys": {4211
+ "curve25519:ALICEDEVICE567": "8crvH2QnlUyWACC7mBd3DET0ttNtgvJa9Qn5r3S3BSA",4212
+ "ed25519:ALICEDEVICE567": "3UPeEYzDACxhDO9WwxRGe8WHu2t0hxr5E0lkhvhCWiA"4213
+ },4214
+ "signatures": {4215
+ "@alice_567:hs1": {4216
+ "ed25519:ALICEDEVICE567": "1z0RlxEvxQn5w5Z5ypDydp3CbKxNA2ye+OiyEkaAzBWZE4F3R6S3SB6w9MGmuHM7dqk6P/1uJ3no8l+nDVojAg"4217
+ }4218
+ },4219
+ "user_id": "@alice_567:hs1",4220
+ "unsigned": {}4221
+ }4222
+ },4223
+ "@alice_56:hs1": {4224
+ "ALICEDEVICE56": {4225
+ "algorithms": [4226
+ "m.olm.v1.curve25519-aes-sha2",4227
+ "m.megolm.v1.aes-sha2"4228
+ ],4229
+ "device_id": "ALICEDEVICE56",4230
+ "keys": {4231
+ "curve25519:ALICEDEVICE56": "jOatW/G+3PKirPr5wDePGtbV5DBqyUXQgyxoZMNJrjo",4232
+ "ed25519:ALICEDEVICE56": "TCd/X2QxW4hJUME77SkDH/ir1m0V/NGMapbSY8uDONM"4233
+ },4234
+ "signatures": {4235
+ "@alice_56:hs1": {4236
+ "ed25519:ALICEDEVICE56": "w1suB8jT5dDjaNKIaj2gFF82X6/zbc3j35tngXkaN5bGvpUEc0XwnbUcdALtz2epwzvUFhdqJm/IauY4SP4oAA"4237
+ }4238
+ },4239
+ "user_id": "@alice_56:hs1",4240
+ "unsigned": {}4241
+ }4242
+ },4243
+ "@alice_576:hs1": {4244
+ "ALICEDEVICE576": {4245
+ "algorithms": [4246
+ "m.olm.v1.curve25519-aes-sha2",4247
+ "m.megolm.v1.aes-sha2"4248
+ ],4249
+ "device_id": "ALICEDEVICE576",4250
+ "keys": {4251
+ "curve25519:ALICEDEVICE576": "uqMYOAYUVNGoDa0th2WPduVim7eR6ML6gNXfU1KAngg",4252
+ "ed25519:ALICEDEVICE576": "pMx1BBKBAoD6jlA8X3N7+b+4tpuYH9e4jO0rtQvOWII"4253
+ },4254
+ "signatures": {4255
+ "@alice_576:hs1": {4256
+ "ed25519:ALICEDEVICE576": "o4y0p5nBjAKzFxqCyWLsVaAl/IDxm/nWPcIPyKB8qovpDaqtUCDfUEM7NTXlCoXUrZrPx2xiSYFeApig+g+2CQ"4257
+ }4258
+ },4259
+ "user_id": "@alice_576:hs1",4260
+ "unsigned": {}4261
+ }4262
+ },4263
+ "@alice_584:hs1": {4264
+ "ALICEDEVICE584": {4265
+ "algorithms": [4266
+ "m.olm.v1.curve25519-aes-sha2",4267
+ "m.megolm.v1.aes-sha2"4268
+ ],4269
+ "device_id": "ALICEDEVICE584",4270
+ "keys": {4271
+ "curve25519:ALICEDEVICE584": "hli6Pla620toHDtmZKKXsA8e4eU2eJYXekWm3AeL0AU",4272
+ "ed25519:ALICEDEVICE584": "nm9KL0hT1YbY5SSfxTjryHBkBd+agHit6rfMBMuTe7k"4273
+ },4274
+ "signatures": {4275
+ "@alice_584:hs1": {4276
+ "ed25519:ALICEDEVICE584": "IOCVUKEu4HYJDSEdRWs3gaLsZuZ59W1IKo5czD4pQkxTQeqwjYlqaRNDuQLbXA3j1n+Y9j0UNsGF3UZN1dvHCg"4277
+ }4278
+ },4279
+ "user_id": "@alice_584:hs1",4280
+ "unsigned": {}4281
+ }4282
+ },4283
+ "@alice_585:hs1": {4284
+ "ALICEDEVICE585": {4285
+ "algorithms": [4286
+ "m.olm.v1.curve25519-aes-sha2",4287
+ "m.megolm.v1.aes-sha2"4288
+ ],4289
+ "device_id": "ALICEDEVICE585",4290
+ "keys": {4291
+ "curve25519:ALICEDEVICE585": "X55aTuD8yDRJi3+SnXrma4M+GUzbzscef6K+OkUsCWY",4292
+ "ed25519:ALICEDEVICE585": "N0nn63AgueFslzD3nlsJK9o/ioiQvEteh1JittglNXM"4293
+ },4294
+ "signatures": {4295
+ "@alice_585:hs1": {4296
+ "ed25519:ALICEDEVICE585": "/rFrF7TvZXBGio4zzI/G4pow0Dl4BpnLYV4l2YNnsqQ/B9m4kusjS2cRNYh6qagmX2UVLTuys1vlMW45L72eBQ"4297
+ }4298
+ },4299
+ "user_id": "@alice_585:hs1",4300
+ "unsigned": {}4301
+ }4302
+ },4303
+ "@alice_591:hs1": {4304
+ "ALICEDEVICE591": {4305
+ "algorithms": [4306
+ "m.olm.v1.curve25519-aes-sha2",4307
+ "m.megolm.v1.aes-sha2"4308
+ ],4309
+ "device_id": "ALICEDEVICE591",4310
+ "keys": {4311
+ "curve25519:ALICEDEVICE591": "wfFl5sm6i/15guAuYpPQBUVVnLb6TH0FzKVjLJt2gyc",4312
+ "ed25519:ALICEDEVICE591": "tpDJoxad144VNGCUphayhKuS90iFP3fGymxBwiJFdp8"4313
+ },4314
+ "signatures": {4315
+ "@alice_591:hs1": {4316
+ "ed25519:ALICEDEVICE591": "Cg6odZlXQr6xVrWIVmJnZGIJpxO8NlVsfaoV5UBUozFRPuB4G9kckp9pu5/TLkeVhBKMPGSG/CL3yZtExgNJDQ"4317
+ }4318
+ },4319
+ "user_id": "@alice_591:hs1",4320
+ "unsigned": {}4321
+ }4322
+ },4323
+ "@alice_597:hs1": {4324
+ "ALICEDEVICE597": {4325
+ "algorithms": [4326
+ "m.olm.v1.curve25519-aes-sha2",4327
+ "m.megolm.v1.aes-sha2"4328
+ ],4329
+ "device_id": "ALICEDEVICE597",4330
+ "keys": {4331
+ "curve25519:ALICEDEVICE597": "YiUYuNuBHp4cDiu0uBhK3h7pEaDLSsxqJyUUH7rMrTc",4332
+ "ed25519:ALICEDEVICE597": "ABfbQ9qT0OGVI5YD52krrwkKtMEjkWVC+Ig/WmEiEqM"4333
+ },4334
+ "signatures": {4335
+ "@alice_597:hs1": {4336
+ "ed25519:ALICEDEVICE597": "k42MVUF/QdB20hIM6KeyQGj4YyCrBUmX5X7GfGj7U23TkzTsJplAtg411r+Td03884GKtlJkffELPxpSC1QZDw"4337
+ }4338
+ },4339
+ "user_id": "@alice_597:hs1",4340
+ "unsigned": {}4341
+ }4342
+ },4343
+ "@alice_607:hs1": {4344
+ "ALICEDEVICE607": {4345
+ "algorithms": [4346
+ "m.olm.v1.curve25519-aes-sha2",4347
+ "m.megolm.v1.aes-sha2"4348
+ ],4349
+ "device_id": "ALICEDEVICE607",4350
+ "keys": {4351
+ "curve25519:ALICEDEVICE607": "pgizDISLGn6Mdwc/oYBFuXKZYfWkT4P9SIe5jv7uDAQ",4352
+ "ed25519:ALICEDEVICE607": "cKhZtJHWnFzC+HsdkYkfxXKENYLJGRStfi+mFuDOiUA"4353
+ },4354
+ "signatures": {4355
+ "@alice_607:hs1": {4356
+ "ed25519:ALICEDEVICE607": "I7D8iue0AFiRyk/EBz/VwEjKa7YgpCqSMSyyw9rpAQIqdeiiDAjhILYTD1VquIJ4Nsaw/zFPOT3NN8LzVAmZBQ"4357
+ }4358
+ },4359
+ "user_id": "@alice_607:hs1",4360
+ "unsigned": {}4361
+ }4362
+ },4363
+ "@alice_615:hs1": {4364
+ "ALICEDEVICE615": {4365
+ "algorithms": [4366
+ "m.olm.v1.curve25519-aes-sha2",4367
+ "m.megolm.v1.aes-sha2"4368
+ ],4369
+ "device_id": "ALICEDEVICE615",4370
+ "keys": {4371
+ "curve25519:ALICEDEVICE615": "rAskgy77fb8tnW4cWyv0P66YitdXrTnQ30iT3hXLWX4",4372
+ "ed25519:ALICEDEVICE615": "DkT6Mr6++It/kfUj05dbSQJNja2CHkUKwNgYB4DY9Gs"4373
+ },4374
+ "signatures": {4375
+ "@alice_615:hs1": {4376
+ "ed25519:ALICEDEVICE615": "B0BOmoU1vDTjQBmQiQsN1eJrI9Oz40T48Ir4l6lLa9OhXuvjYowxqj0QaObN80tEZ2QOeYoHpcmxdPT/B0rsAQ"4377
+ }4378
+ },4379
+ "user_id": "@alice_615:hs1",4380
+ "unsigned": {}4381
+ }4382
+ },4383
+ "@alice_618:hs1": {4384
+ "ALICEDEVICE618": {4385
+ "algorithms": [4386
+ "m.olm.v1.curve25519-aes-sha2",4387
+ "m.megolm.v1.aes-sha2"4388
+ ],4389
+ "device_id": "ALICEDEVICE618",4390
+ "keys": {4391
+ "curve25519:ALICEDEVICE618": "oge2ytnBSTDPX4I+x5mIjgVSEp/oYieFovGncnpVV1I",4392
+ "ed25519:ALICEDEVICE618": "Q1K/Lr3uxmLedlg8nSusaR5g2cLYiZL9LZxFkp4J6hs"4393
+ },4394
+ "signatures": {4395
+ "@alice_618:hs1": {4396
+ "ed25519:ALICEDEVICE618": "3p6sLm+hGjWeEzf9XfaUxMKoqZZibk6ldW8uG67id+x4hjceM4430jgvbyUl2WLWOV8JCPwUzFfJYiZmtm0DDQ"4397
+ }4398
+ },4399
+ "user_id": "@alice_618:hs1",4400
+ "unsigned": {}4401
+ }4402
+ },4403
+ "@alice_622:hs1": {4404
+ "ALICEDEVICE622": {4405
+ "algorithms": [4406
+ "m.olm.v1.curve25519-aes-sha2",4407
+ "m.megolm.v1.aes-sha2"4408
+ ],4409
+ "device_id": "ALICEDEVICE622",4410
+ "keys": {4411
+ "curve25519:ALICEDEVICE622": "4Hx1Oxp6XwDAl8O4zSF1J4/oZX+8AphXki2gWBeadTc",4412
+ "ed25519:ALICEDEVICE622": "anLcxYZzWfj3+Y+iBkOOff9j8B901aUd4A8WC51X/3s"4413
+ },4414
+ "signatures": {4415
+ "@alice_622:hs1": {4416
+ "ed25519:ALICEDEVICE622": "TGGsU0Wf1jU2Hk/BT8x7XXwejaUKuJL6MEt3CrrCfevgEqmQcP7ZpDN+IXhYZMpD6sAHnF6tV7H3n7tPSYclBQ"4417
+ }4418
+ },4419
+ "user_id": "@alice_622:hs1",4420
+ "unsigned": {}4421
+ }4422
+ },4423
+ "@alice_625:hs1": {4424
+ "ALICEDEVICE625": {4425
+ "algorithms": [4426
+ "m.olm.v1.curve25519-aes-sha2",4427
+ "m.megolm.v1.aes-sha2"4428
+ ],4429
+ "device_id": "ALICEDEVICE625",4430
+ "keys": {4431
+ "curve25519:ALICEDEVICE625": "UVF1k8pnAyhEt/iCz0CN6DMeztWAzpnJR1em/v5+6Xg",4432
+ "ed25519:ALICEDEVICE625": "fSrYdZeECCwDQKBK3nrq97S6hXRQYCqQlfzZ48AvCZg"4433
+ },4434
+ "signatures": {4435
+ "@alice_625:hs1": {4436
+ "ed25519:ALICEDEVICE625": "F5fdh3UySPXB2PRMg1LE0iYEI2wwuO0n4yLH0OH/o5Vbgr5blsiyKfCW8e3X3Q9v4I05sKMQnrjO7j3cbsLFBA"4437
+ }4438
+ },4439
+ "user_id": "@alice_625:hs1",4440
+ "unsigned": {}4441
+ }4442
+ },4443
+ "@alice_634:hs1": {4444
+ "ALICEDEVICE634": {4445
+ "algorithms": [4446
+ "m.olm.v1.curve25519-aes-sha2",4447
+ "m.megolm.v1.aes-sha2"4448
+ ],4449
+ "device_id": "ALICEDEVICE634",4450
+ "keys": {4451
+ "curve25519:ALICEDEVICE634": "6eKvSdt1ZZE7JiP7QLzHQ+qbhEx+X6o44mB5su2/M1U",4452
+ "ed25519:ALICEDEVICE634": "Xq1jD2sNoBKWfRLcx/8PyNpD/4k6iHYjqB7r6rMDu5A"4453
+ },4454
+ "signatures": {4455
+ "@alice_634:hs1": {4456
+ "ed25519:ALICEDEVICE634": "edLqwQ8mCzRwJllq9caw5Ortl5gNdzGylsQHODvwQ+P8iIYOpxOwk7Q6ihYfBxs+bVOx5aLZjvrU5HIOAgQBCw"4457
+ }4458
+ },4459
+ "user_id": "@alice_634:hs1",4460
+ "unsigned": {}4461
+ }4462
+ },4463
+ "@alice_636:hs1": {4464
+ "ALICEDEVICE636": {4465
+ "algorithms": [4466
+ "m.olm.v1.curve25519-aes-sha2",4467
+ "m.megolm.v1.aes-sha2"4468
+ ],4469
+ "device_id": "ALICEDEVICE636",4470
+ "keys": {4471
+ "curve25519:ALICEDEVICE636": "WRVbx6QHeKHrASbQ1aSQqJoKAhaA8oT+GiXqaMi8khw",4472
+ "ed25519:ALICEDEVICE636": "tXYeuW2nDto+4M1ROyh3mM+kPMMK54L9DZD2wCcA6m4"4473
+ },4474
+ "signatures": {4475
+ "@alice_636:hs1": {4476
+ "ed25519:ALICEDEVICE636": "oidxsVI6rklm91FzwHaoRWL1nCc3xKUvPe7WL+hLP8FTP5qr9N6SFMpfu1Fv6OwA/cd3LdRLWk5XFj2PU+xvAw"4477
+ }4478
+ },4479
+ "user_id": "@alice_636:hs1",4480
+ "unsigned": {}4481
+ }4482
+ },4483
+ "@alice_646:hs1": {4484
+ "ALICEDEVICE646": {4485
+ "algorithms": [4486
+ "m.olm.v1.curve25519-aes-sha2",4487
+ "m.megolm.v1.aes-sha2"4488
+ ],4489
+ "device_id": "ALICEDEVICE646",4490
+ "keys": {4491
+ "curve25519:ALICEDEVICE646": "cyPft/qLu3RTpRHBW3A5KG/9wgbM/T2L6flNrR99kAI",4492
+ "ed25519:ALICEDEVICE646": "rN1FiUnoUet9Wttj1YwHDLCRNgfxAIcSqZVAigy5v/c"4493
+ },4494
+ "signatures": {4495
+ "@alice_646:hs1": {4496
+ "ed25519:ALICEDEVICE646": "o1ywtLlGGipY3sNQ6JMiW7yDVTMWea8DyXdE+ovSA0uW4QPSytgKiq22XjeSJnTSVxjmTsJ/jRit2TQRB1fcCQ"4497
+ }4498
+ },4499
+ "user_id": "@alice_646:hs1",4500
+ "unsigned": {}4501
+ }4502
+ },4503
+ "@alice_663:hs1": {4504
+ "ALICEDEVICE663": {4505
+ "algorithms": [4506
+ "m.olm.v1.curve25519-aes-sha2",4507
+ "m.megolm.v1.aes-sha2"4508
+ ],4509
+ "device_id": "ALICEDEVICE663",4510
+ "keys": {4511
+ "curve25519:ALICEDEVICE663": "vreJCQaEmh9H6YibffiUAmrrBJcLKbHP6/kLuhMVFyQ",4512
+ "ed25519:ALICEDEVICE663": "lg1SXhI2BX2sOoVscx5jtPHt1C6lH4R6EDl5gd5L774"4513
+ },4514
+ "signatures": {4515
+ "@alice_663:hs1": {4516
+ "ed25519:ALICEDEVICE663": "UKr4aUAasuOHOuAmnPMbAju6lHnBi3qzQIYw6VXJv3q5k5K1clBjFaIESL8cy65BAPihHPiVZqsMXk+MwobnBA"4517
+ }4518
+ },4519
+ "user_id": "@alice_663:hs1",4520
+ "unsigned": {}4521
+ }4522
+ },4523
+ "@alice_679:hs1": {4524
+ "ALICEDEVICE679": {4525
+ "algorithms": [4526
+ "m.olm.v1.curve25519-aes-sha2",4527
+ "m.megolm.v1.aes-sha2"4528
+ ],4529
+ "device_id": "ALICEDEVICE679",4530
+ "keys": {4531
+ "curve25519:ALICEDEVICE679": "mB4wcwzcGLnf8Dr1TJHNftVTJ7G73XGEfHxLrtg0qVg",4532
+ "ed25519:ALICEDEVICE679": "Oy8uqihCu83Kjef319ymPEZKs73pH0TmB4LTuc7EvQ8"4533
+ },4534
+ "signatures": {4535
+ "@alice_679:hs1": {4536
+ "ed25519:ALICEDEVICE679": "5K8fbmmrfgVAyLl0DDQV25p/XLWyLUB7ZcggJyelEB/teJOzoPk6SCIFqVJg1BRS3BGQRi94OvoVV2Jp0cpoAw"4537
+ }4538
+ },4539
+ "user_id": "@alice_679:hs1",4540
+ "unsigned": {}4541
+ }4542
+ },4543
+ "@alice_688:hs1": {4544
+ "ALICEDEVICE688": {4545
+ "algorithms": [4546
+ "m.olm.v1.curve25519-aes-sha2",4547
+ "m.megolm.v1.aes-sha2"4548
+ ],4549
+ "device_id": "ALICEDEVICE688",4550
+ "keys": {4551
+ "curve25519:ALICEDEVICE688": "sIzAHuboXgppwXLU819u9FHcQztE3skTjARjCz3PMAo",4552
+ "ed25519:ALICEDEVICE688": "Hst2qUcV+t1orOhBWUGgB+zX+9PBTYMDt0Cpg0eQ3tk"4553
+ },4554
+ "signatures": {4555
+ "@alice_688:hs1": {4556
+ "ed25519:ALICEDEVICE688": "7k/Ir66r9qL6k3CXcGxFdCebB8b+MD1HyyELKmxUzlJvrVBbVXAlp0e33HmBeTl2tqXDMXEX860HCvHAMd0iCA"4557
+ }4558
+ },4559
+ "user_id": "@alice_688:hs1",4560
+ "unsigned": {}4561
+ }4562
+ },4563
+ "@alice_697:hs1": {4564
+ "ALICEDEVICE697": {4565
+ "algorithms": [4566
+ "m.olm.v1.curve25519-aes-sha2",4567
+ "m.megolm.v1.aes-sha2"4568
+ ],4569
+ "device_id": "ALICEDEVICE697",4570
+ "keys": {4571
+ "curve25519:ALICEDEVICE697": "wcApHs8gsTVVIyzc1QeXPBfS5//IDu4Ofz9MSdj1qwk",4572
+ "ed25519:ALICEDEVICE697": "Vw0m/WFVPlM1SwrVzQ3a1dTENAtMbpZvYLhwIGfuRB8"4573
+ },4574
+ "signatures": {4575
+ "@alice_697:hs1": {4576
+ "ed25519:ALICEDEVICE697": "HPTJhNGg4A1wfJkkv6Y/PBTojWgzXiE1D28flRE3/FccH655DcYTJbxOEoVATHzpNkIdsvhgD7+fcRFljTBSDQ"4577
+ }4578
+ },4579
+ "user_id": "@alice_697:hs1",4580
+ "unsigned": {}4581
+ }4582
+ },4583
+ "@alice_698:hs1": {4584
+ "ALICEDEVICE698": {4585
+ "algorithms": [4586
+ "m.olm.v1.curve25519-aes-sha2",4587
+ "m.megolm.v1.aes-sha2"4588
+ ],4589
+ "device_id": "ALICEDEVICE698",4590
+ "keys": {4591
+ "curve25519:ALICEDEVICE698": "rI1kqG4LUfIxk7jFi6JBdcjTUTgUYrIiMDeX22uU9gw",4592
+ "ed25519:ALICEDEVICE698": "skNX2eD+HKSt2j6UdjdHvm3bLJ95esTCLeXlfng5IOw"4593
+ },4594
+ "signatures": {4595
+ "@alice_698:hs1": {4596
+ "ed25519:ALICEDEVICE698": "KZgQqRDg+ATK7IiTpYollEbnZaZXdNg1kbg2aaUw/9LG7qrsccu/b0TEdwHPISrV6RU+O7iJY6A6Tqer7kQGBg"4597
+ }4598
+ },4599
+ "user_id": "@alice_698:hs1",4600
+ "unsigned": {}4601
+ }4602
+ },4603
+ "@alice_6:hs1": {4604
+ "ALICEDEVICE6": {4605
+ "algorithms": [4606
+ "m.olm.v1.curve25519-aes-sha2",4607
+ "m.megolm.v1.aes-sha2"4608
+ ],4609
+ "device_id": "ALICEDEVICE6",4610
+ "keys": {4611
+ "curve25519:ALICEDEVICE6": "1L4RoePM3BZjyrLsjlIVP0zY+ljd67HcCqyW5J+wciE",4612
+ "ed25519:ALICEDEVICE6": "2aK689O/vAHI2P4ggnSqt6ozzG85ugDXynsdwukAUFc"4613
+ },4614
+ "signatures": {4615
+ "@alice_6:hs1": {4616
+ "ed25519:ALICEDEVICE6": "uAKrTTJOxMfrK2dYIwLvQXXVgDGrQ6Wk6LpTh/nqC8oMFUqTrf4P1Ljpcf5hIOrq0gkoTpEebRO5SxGFX+qzBg"4617
+ }4618
+ },4619
+ "user_id": "@alice_6:hs1",4620
+ "unsigned": {}4621
+ }4622
+ },4623
+ "@alice_711:hs1": {4624
+ "ALICEDEVICE711": {4625
+ "algorithms": [4626
+ "m.olm.v1.curve25519-aes-sha2",4627
+ "m.megolm.v1.aes-sha2"4628
+ ],4629
+ "device_id": "ALICEDEVICE711",4630
+ "keys": {4631
+ "curve25519:ALICEDEVICE711": "KNAyn0IxqIi8A9wdhjpZ8/tia/1TOIqZvzOefRnuLgs",4632
+ "ed25519:ALICEDEVICE711": "LLEpCjiztOUBUO0/NNhB+nF2EekOshGmYQOXj39sRMk"4633
+ },4634
+ "signatures": {4635
+ "@alice_711:hs1": {4636
+ "ed25519:ALICEDEVICE711": "KnJaBDUyVubof/NU1jjLYs4GK1XnVRiLvVsDwhHn9umdWmdbF0JB4mbngj0kBsUJbbCmQVIaIAH7vWCay344BA"4637
+ }4638
+ },4639
+ "user_id": "@alice_711:hs1",4640
+ "unsigned": {}4641
+ }4642
+ },4643
+ "@alice_717:hs1": {4644
+ "ALICEDEVICE717": {4645
+ "algorithms": [4646
+ "m.olm.v1.curve25519-aes-sha2",4647
+ "m.megolm.v1.aes-sha2"4648
+ ],4649
+ "device_id": "ALICEDEVICE717",4650
+ "keys": {4651
+ "curve25519:ALICEDEVICE717": "9K1BF04ymlkzmwou5WMN3dGR/iLyew7E8Uw+oNNncyc",4652
+ "ed25519:ALICEDEVICE717": "aTJwMWPoELIg7xOvRZLbB0sfMLUJLHR3zCJg6pqYTrw"4653
+ },4654
+ "signatures": {4655
+ "@alice_717:hs1": {4656
+ "ed25519:ALICEDEVICE717": "P/ZNtVKvclEJWZjKh7xDGXCsdH2Z7/Cn8EeWX3En592urjatWf+lqJ5h27FXzyJ7lLXMp5s7HcowNuRxMu6CAg"4657
+ }4658
+ },4659
+ "user_id": "@alice_717:hs1",4660
+ "unsigned": {}4661
+ }4662
+ },4663
+ "@alice_720:hs1": {4664
+ "ALICEDEVICE720": {4665
+ "algorithms": [4666
+ "m.olm.v1.curve25519-aes-sha2",4667
+ "m.megolm.v1.aes-sha2"4668
+ ],4669
+ "device_id": "ALICEDEVICE720",4670
+ "keys": {4671
+ "curve25519:ALICEDEVICE720": "cJrxFKNCb3G/YMJnKOONLcrSL8T3InBTvY3RqTCDhlA",4672
+ "ed25519:ALICEDEVICE720": "DOrAH4OPYkKobz44e1YaNlcmUASpAqK9oSlOOyFXKvc"4673
+ },4674
+ "signatures": {4675
+ "@alice_720:hs1": {4676
+ "ed25519:ALICEDEVICE720": "m1Eld0yvU7zpWHsB7G2JB3WkLxwxpdxTAr2lysMRZQu9TyiEmYv9u/ewFlbdEgcPV6qSwVpros0Nz4B03SdQDQ"4677
+ }4678
+ },4679
+ "user_id": "@alice_720:hs1",4680
+ "unsigned": {}4681
+ }4682
+ },4683
+ "@alice_724:hs1": {4684
+ "ALICEDEVICE724": {4685
+ "algorithms": [4686
+ "m.olm.v1.curve25519-aes-sha2",4687
+ "m.megolm.v1.aes-sha2"4688
+ ],4689
+ "device_id": "ALICEDEVICE724",4690
+ "keys": {4691
+ "curve25519:ALICEDEVICE724": "LnU759E6uw1fKso3bIjqzfU0OzZHP35wTjqx8oZXcmY",4692
+ "ed25519:ALICEDEVICE724": "+/e9fhR+ar5Cb7HXrasHAoTKmlchAF1YCyQHRmWOfy8"4693
+ },4694
+ "signatures": {4695
+ "@alice_724:hs1": {4696
+ "ed25519:ALICEDEVICE724": "KLHwBN952yIHHmlS8MchHUWZIRDqJIIbhUzLOxk/fbsACYXciLAutWeqm+znHCyv4noJhW6fxxZ51z0qO3msCA"4697
+ }4698
+ },4699
+ "user_id": "@alice_724:hs1",4700
+ "unsigned": {}4701
+ }4702
+ },4703
+ "@alice_748:hs1": {4704
+ "ALICEDEVICE748": {4705
+ "algorithms": [4706
+ "m.olm.v1.curve25519-aes-sha2",4707
+ "m.megolm.v1.aes-sha2"4708
+ ],4709
+ "device_id": "ALICEDEVICE748",4710
+ "keys": {4711
+ "curve25519:ALICEDEVICE748": "pUOf0UFRfWfOwjmleFyzVs+IZX6SXEzkV0PC4xiVzxs",4712
+ "ed25519:ALICEDEVICE748": "w72hDGTAfWgVZ89y/QtTg8ZFwCNQKF8MfwaBjR3bPkY"4713
+ },4714
+ "signatures": {4715
+ "@alice_748:hs1": {4716
+ "ed25519:ALICEDEVICE748": "+ClSTMBdD1mjjkfcaIuSaXD7wCopcak5o9S5AGoHwNYIJk7jfRCDfZnCq6QSPe1CL4IE7cJ0MK2Av84+vmCiBQ"4717
+ }4718
+ },4719
+ "user_id": "@alice_748:hs1",4720
+ "unsigned": {}4721
+ }4722
+ },4723
+ "@alice_755:hs1": {4724
+ "ALICEDEVICE755": {4725
+ "algorithms": [4726
+ "m.olm.v1.curve25519-aes-sha2",4727
+ "m.megolm.v1.aes-sha2"4728
+ ],4729
+ "device_id": "ALICEDEVICE755",4730
+ "keys": {4731
+ "curve25519:ALICEDEVICE755": "gkwr8ebYlhP6gYGqZaOotIceo1qdIqbZtEQQBthRVks",4732
+ "ed25519:ALICEDEVICE755": "qXeQ3aFVnBf89hLSJQFSXiRLeAmrE5hbenFV7XcoyUg"4733
+ },4734
+ "signatures": {4735
+ "@alice_755:hs1": {4736
+ "ed25519:ALICEDEVICE755": "dOYt/s82oV4sK0+qmJ+qustURAW1D3Gye2hHfroyAMdRNmkiisvixhRoF8ZhQ2Aw3WWdl9a8xJjJcV4S1a7ICA"4737
+ }4738
+ },4739
+ "user_id": "@alice_755:hs1",4740
+ "unsigned": {}4741
+ }4742
+ },4743
+ "@alice_763:hs1": {4744
+ "ALICEDEVICE763": {4745
+ "algorithms": [4746
+ "m.olm.v1.curve25519-aes-sha2",4747
+ "m.megolm.v1.aes-sha2"4748
+ ],4749
+ "device_id": "ALICEDEVICE763",4750
+ "keys": {4751
+ "curve25519:ALICEDEVICE763": "QmE2UmGpveBDcOMW4Ne1ZqDAINIkjuqak+psAHUcr0Q",4752
+ "ed25519:ALICEDEVICE763": "k+M6/Quz6x/XxRIGzFgApapykstfCoyKETsJDvPSFtQ"4753
+ },4754
+ "signatures": {4755
+ "@alice_763:hs1": {4756
+ "ed25519:ALICEDEVICE763": "W1f/93s+UAwGglkuBjaCqI8cEP1SIa67axF2d1IE54tu6f3ccQPRbFrErduQO7QwcJF0OPYhmEteUB/ZqbLTDg"4757
+ }4758
+ },4759
+ "user_id": "@alice_763:hs1",4760
+ "unsigned": {}4761
+ }4762
+ },4763
+ "@alice_764:hs1": {4764
+ "ALICEDEVICE764": {4765
+ "algorithms": [4766
+ "m.olm.v1.curve25519-aes-sha2",4767
+ "m.megolm.v1.aes-sha2"4768
+ ],4769
+ "device_id": "ALICEDEVICE764",4770
+ "keys": {4771
+ "curve25519:ALICEDEVICE764": "wG76WhNgutdly4H5JjCRbCHBKp+W2qN8wmJOmdgkLWA",4772
+ "ed25519:ALICEDEVICE764": "NlL9OU36jOtOxz09yAHxTryu0Wapr3hVLhamuq9DKpY"4773
+ },4774
+ "signatures": {4775
+ "@alice_764:hs1": {4776
+ "ed25519:ALICEDEVICE764": "Su/y237zlx1zcfUGrMjaFtHZH48rr7M/AV3lEB2BpBc9Unhn5GxOaq2KnNT3KIx8kaYQ+7Hh726ofaXXb0OqBA"4777
+ }4778
+ },4779
+ "user_id": "@alice_764:hs1",4780
+ "unsigned": {}4781
+ }4782
+ },4783
+ "@alice_77:hs1": {4784
+ "ALICEDEVICE77": {4785
+ "algorithms": [4786
+ "m.olm.v1.curve25519-aes-sha2",4787
+ "m.megolm.v1.aes-sha2"4788
+ ],4789
+ "device_id": "ALICEDEVICE77",4790
+ "keys": {4791
+ "curve25519:ALICEDEVICE77": "eVnpxF1EgaVZgQLIJJMFbjsXTpcPNJPW8Z2XIqgL+0M",4792
+ "ed25519:ALICEDEVICE77": "VkHr4T/w72C20cvTzvvaWzSPZegLT+8wR1B+G4RH534"4793
+ },4794
+ "signatures": {4795
+ "@alice_77:hs1": {4796
+ "ed25519:ALICEDEVICE77": "tKrTAZpBxdSUOpbY2b5PH56mVoBvY57P0uAZxLze+zfK63h6OH80iA2+j3metVNVsfKPwWwLOh4mm3MQQccECQ"4797
+ }4798
+ },4799
+ "user_id": "@alice_77:hs1",4800
+ "unsigned": {}4801
+ }4802
+ },4803
+ "@alice_792:hs1": {4804
+ "ALICEDEVICE792": {4805
+ "algorithms": [4806
+ "m.olm.v1.curve25519-aes-sha2",4807
+ "m.megolm.v1.aes-sha2"4808
+ ],4809
+ "device_id": "ALICEDEVICE792",4810
+ "keys": {4811
+ "curve25519:ALICEDEVICE792": "2isPoWeog+3QdeWHxZMTpzCwrVA13kQjYwE5ADRsH2U",4812
+ "ed25519:ALICEDEVICE792": "eLKiTEGYuwNfuoDie4871aKMm4oCgkKqkQgQDdByO5M"4813
+ },4814
+ "signatures": {4815
+ "@alice_792:hs1": {4816
+ "ed25519:ALICEDEVICE792": "6XwViye2SEH9wIW1v4QnokCrZJIZd9sFg3J2D80bIUk/+/Et6yUxPO/yMcZSL/eA5PAfyKSeuktiSZnTMO7kBQ"4817
+ }4818
+ },4819
+ "user_id": "@alice_792:hs1",4820
+ "unsigned": {}4821
+ }4822
+ },4823
+ "@alice_7:hs1": {4824
+ "ALICEDEVICE7": {4825
+ "algorithms": [4826
+ "m.olm.v1.curve25519-aes-sha2",4827
+ "m.megolm.v1.aes-sha2"4828
+ ],4829
+ "device_id": "ALICEDEVICE7",4830
+ "keys": {4831
+ "curve25519:ALICEDEVICE7": "cn1DDhjfsXm96uUW1kKMrMTF05jUnCbfnPcwjGHvqUQ",4832
+ "ed25519:ALICEDEVICE7": "M983QwStJZtgT+NeE1+yM010zxMISBYeqRS4J0jv6Qo"4833
+ },4834
+ "signatures": {4835
+ "@alice_7:hs1": {4836
+ "ed25519:ALICEDEVICE7": "KrrMVi1WVQ8Q7kcU4bD92KIENPUI6k0COmGHBnLPYlC7C8siCkiKdGX9NBLe7pjNd04YXlJW24IN9HS04cHgDA"4837
+ }4838
+ },4839
+ "user_id": "@alice_7:hs1",4840
+ "unsigned": {}4841
+ }4842
+ },4843
+ "@alice_805:hs1": {4844
+ "ALICEDEVICE805": {4845
+ "algorithms": [4846
+ "m.olm.v1.curve25519-aes-sha2",4847
+ "m.megolm.v1.aes-sha2"4848
+ ],4849
+ "device_id": "ALICEDEVICE805",4850
+ "keys": {4851
+ "curve25519:ALICEDEVICE805": "mCTalF+uc3Ea4lip2BCbfyGBhlASnLBIOVNedDQsnxA",4852
+ "ed25519:ALICEDEVICE805": "9UZ1dpWBb5lFWYDZj1X0MbFEzLts2jlBrNSjkv7CZIs"4853
+ },4854
+ "signatures": {4855
+ "@alice_805:hs1": {4856
+ "ed25519:ALICEDEVICE805": "1FFxXrGI+8bj98dqAH5nLuH0LtcFSZoDn7lOOSJMdZ+2djYoKZuuEU9DXGMZ4uAcOkd5nJbsgt4F6cegNtaqAw"4857
+ }4858
+ },4859
+ "user_id": "@alice_805:hs1",4860
+ "unsigned": {}4861
+ }4862
+ },4863
+ "@alice_815:hs1": {4864
+ "ALICEDEVICE815": {4865
+ "algorithms": [4866
+ "m.olm.v1.curve25519-aes-sha2",4867
+ "m.megolm.v1.aes-sha2"4868
+ ],4869
+ "device_id": "ALICEDEVICE815",4870
+ "keys": {4871
+ "curve25519:ALICEDEVICE815": "Xtge11F+NFb6Ryz0fDXkXizdsVD+vjAXOoCmZEJeYQs",4872
+ "ed25519:ALICEDEVICE815": "nRAzqTREGIROptvXAnt+NNWRE2jkSwAGKJzq2WY5rLo"4873
+ },4874
+ "signatures": {4875
+ "@alice_815:hs1": {4876
+ "ed25519:ALICEDEVICE815": "yRV2mKU+dPn1VtDsjHGMqLpJewC4CavzNZ2YrUxl4KTVPzRsr7ie7ttNqKBlY9KTATO8nj82JfBEqRMy/H4HDg"4877
+ }4878
+ },4879
+ "user_id": "@alice_815:hs1",4880
+ "unsigned": {}4881
+ }4882
+ },4883
+ "@alice_817:hs1": {4884
+ "ALICEDEVICE817": {4885
+ "algorithms": [4886
+ "m.olm.v1.curve25519-aes-sha2",4887
+ "m.megolm.v1.aes-sha2"4888
+ ],4889
+ "device_id": "ALICEDEVICE817",4890
+ "keys": {4891
+ "curve25519:ALICEDEVICE817": "UOn1aIFoFR6RUOPeBFu4oxnDIyp8CgM8kqvsLxBx+D8",4892
+ "ed25519:ALICEDEVICE817": "nOGYNYTCSXqrlxI7J82ueHveIDqUBHPYc/GSTwAlrek"4893
+ },4894
+ "signatures": {4895
+ "@alice_817:hs1": {4896
+ "ed25519:ALICEDEVICE817": "LfAOnln1badP31i46m7foOOmRhVO6p93xygIWFA4EHiHWwtN6qyDRj0TGdSo3xUSdFE3W5/2lshOu/dfrTJ3Cg"4897
+ }4898
+ },4899
+ "user_id": "@alice_817:hs1",4900
+ "unsigned": {}4901
+ }4902
+ },4903
+ "@alice_834:hs1": {4904
+ "ALICEDEVICE834": {4905
+ "algorithms": [4906
+ "m.olm.v1.curve25519-aes-sha2",4907
+ "m.megolm.v1.aes-sha2"4908
+ ],4909
+ "device_id": "ALICEDEVICE834",4910
+ "keys": {4911
+ "curve25519:ALICEDEVICE834": "K6wBVQEzlDuAoWvnS4b2N14wA8cY1QgbdM0e0OwGthI",4912
+ "ed25519:ALICEDEVICE834": "slG/zyGSAIYVHnyclNi3XIFWeOQOenbhuZpa1maj2kI"4913
+ },4914
+ "signatures": {4915
+ "@alice_834:hs1": {4916
+ "ed25519:ALICEDEVICE834": "8wvvkBuyBAJVogA9H8UH/89wmV6AAW/dPGeRAZ5tCNsFZd9rAU4km4rspCfFfvZdfC60qne7TuJO22y8I/A5Dg"4917
+ }4918
+ },4919
+ "user_id": "@alice_834:hs1",4920
+ "unsigned": {}4921
+ }4922
+ },4923
+ "@alice_836:hs1": {4924
+ "ALICEDEVICE836": {4925
+ "algorithms": [4926
+ "m.olm.v1.curve25519-aes-sha2",4927
+ "m.megolm.v1.aes-sha2"4928
+ ],4929
+ "device_id": "ALICEDEVICE836",4930
+ "keys": {4931
+ "curve25519:ALICEDEVICE836": "0zQvw4h0z/tijXYJJmDFpNNUoKq6Vzan5FepX4BE4Sg",4932
+ "ed25519:ALICEDEVICE836": "Aaf0R2TwOWAdpKtO3Q4Ky8SX8ZbEWVuVAfCq8ZLBM2Q"4933
+ },4934
+ "signatures": {4935
+ "@alice_836:hs1": {4936
+ "ed25519:ALICEDEVICE836": "r9Xo5eS9IfVRQ75buJyvtd7lqWPbL0LL61OOnvyZBflrSRveL0plKanF3+nB23GYUg2NIGKNVgMel8eoNFa2Aw"4937
+ }4938
+ },4939
+ "user_id": "@alice_836:hs1",4940
+ "unsigned": {}4941
+ }4942
+ },4943
+ "@alice_861:hs1": {4944
+ "ALICEDEVICE861": {4945
+ "algorithms": [4946
+ "m.olm.v1.curve25519-aes-sha2",4947
+ "m.megolm.v1.aes-sha2"4948
+ ],4949
+ "device_id": "ALICEDEVICE861",4950
+ "keys": {4951
+ "curve25519:ALICEDEVICE861": "FruRHbl5EYxmP0ktO8p/utBS/94dpFa1LS6YbfZAwXU",4952
+ "ed25519:ALICEDEVICE861": "g+4TWi0sm51bCKcQlPha7vQW1vUJinDqa80PpMjuiic"4953
+ },4954
+ "signatures": {4955
+ "@alice_861:hs1": {4956
+ "ed25519:ALICEDEVICE861": "5IKN15Xk6pmSLzf4kYkk1Wyy/GeHy0PEa2tGLaVVSYfvPb5/IVLmL5ZsgtNEjhZj+myO4lz8RxFa5i+GKNl5Dw"4957
+ }4958
+ },4959
+ "user_id": "@alice_861:hs1",4960
+ "unsigned": {}4961
+ }4962
+ },4963
+ "@alice_872:hs1": {4964
+ "ALICEDEVICE872": {4965
+ "algorithms": [4966
+ "m.olm.v1.curve25519-aes-sha2",4967
+ "m.megolm.v1.aes-sha2"4968
+ ],4969
+ "device_id": "ALICEDEVICE872",4970
+ "keys": {4971
+ "curve25519:ALICEDEVICE872": "4e3MlYKVs1wHjkFvhAIWQlb0Kg6QFQ3eAojep59g5U4",4972
+ "ed25519:ALICEDEVICE872": "glowm2tG6uiL6Wm4ZD3qaoZrXDCQRdkH8GHY0Cxj8zk"4973
+ },4974
+ "signatures": {4975
+ "@alice_872:hs1": {4976
+ "ed25519:ALICEDEVICE872": "p7MKv/C4JZFgEdMJnFkkGZq4Pieo80V/4ep2uCXFkZMHAViEWfgZsBbzpvfvtATEdj3PxagFjuPIrgdZl7d9Bg"4977
+ }4978
+ },4979
+ "user_id": "@alice_872:hs1",4980
+ "unsigned": {}4981
+ }4982
+ },4983
+ "@alice_873:hs1": {4984
+ "ALICEDEVICE873": {4985
+ "algorithms": [4986
+ "m.olm.v1.curve25519-aes-sha2",4987
+ "m.megolm.v1.aes-sha2"4988
+ ],4989
+ "device_id": "ALICEDEVICE873",4990
+ "keys": {4991
+ "curve25519:ALICEDEVICE873": "IaGrzEZ9pqHgEpvMd64M+wa+29tZ7nYfygAo7/auK2s",4992
+ "ed25519:ALICEDEVICE873": "kv9RG/MnVY2i956vPKYcW4739tEWK1sBC6L20S3wkFI"4993
+ },4994
+ "signatures": {4995
+ "@alice_873:hs1": {4996
+ "ed25519:ALICEDEVICE873": "tpzS+bgI4rD9B0yiMZoxnYb/HvXn3TWSZliuXH5AVr80UmDocZa+a7agEmv5QvGFdETmw+h4wPh4ss6YxM1dBQ"4997
+ }4998
+ },4999
+ "user_id": "@alice_873:hs1",5000
+ "unsigned": {}5001
+ }5002
+ },5003
+ "@alice_883:hs1": {5004
+ "ALICEDEVICE883": {5005
+ "algorithms": [5006
+ "m.olm.v1.curve25519-aes-sha2",5007
+ "m.megolm.v1.aes-sha2"5008
+ ],5009
+ "device_id": "ALICEDEVICE883",5010
+ "keys": {5011
+ "curve25519:ALICEDEVICE883": "JEvnHLE+Z4FANe/gWF6PGSeV4pwCuDzbiNnobk6g50Q",5012
+ "ed25519:ALICEDEVICE883": "9IxoPuVE4osJb5s1yn7ec3ej4Xe+AoLQWH2zNAiSaLY"5013
+ },5014
+ "signatures": {5015
+ "@alice_883:hs1": {5016
+ "ed25519:ALICEDEVICE883": "jNx3Aa/nNGKbYJnsn7+zGAH/8hu0Tn/ytQ3FtX47/vWfUWJ6kHLL3qCl6vy4g+S+PMbb8ndO67JiUFtEofAlBA"5017
+ }5018
+ },5019
+ "user_id": "@alice_883:hs1",5020
+ "unsigned": {}5021
+ }5022
+ },5023
+ "@alice_891:hs1": {5024
+ "ALICEDEVICE891": {5025
+ "algorithms": [5026
+ "m.olm.v1.curve25519-aes-sha2",5027
+ "m.megolm.v1.aes-sha2"5028
+ ],5029
+ "device_id": "ALICEDEVICE891",5030
+ "keys": {5031
+ "curve25519:ALICEDEVICE891": "XFasHeHng7wWF61gfGqEdyzNHRBzOcAEGL2gt6C8sAA",5032
+ "ed25519:ALICEDEVICE891": "ZBjvRys+OW8n9XhjEn2sjGXUM7HxmMmEveynK5r5WwM"5033
+ },5034
+ "signatures": {5035
+ "@alice_891:hs1": {5036
+ "ed25519:ALICEDEVICE891": "04Gk1/ypYrT0dUMKUxnVPBdrvZqPft1+FZNmzvf50Tx6BMWxHlmI00gqI2sbL0MhH8xCOL5QER5UWuoAzJNfDg"5037
+ }5038
+ },5039
+ "user_id": "@alice_891:hs1",5040
+ "unsigned": {}5041
+ }5042
+ },5043
+ "@alice_894:hs1": {5044
+ "ALICEDEVICE894": {5045
+ "algorithms": [5046
+ "m.olm.v1.curve25519-aes-sha2",5047
+ "m.megolm.v1.aes-sha2"5048
+ ],5049
+ "device_id": "ALICEDEVICE894",5050
+ "keys": {5051
+ "curve25519:ALICEDEVICE894": "q+fp4z0gyH0UsUfmAVlaqjLjORfYoWdsLG7+whr/+l4",5052
+ "ed25519:ALICEDEVICE894": "QAQop7gjW9GkB4z3FAR5PuuK6KmMLIZOjTJlc7Qhp3M"5053
+ },5054
+ "signatures": {5055
+ "@alice_894:hs1": {5056
+ "ed25519:ALICEDEVICE894": "ybvPWRxHJqm5V7zSE3L1n+Xf9q07+FTQnhc50H29PqhxwrYXQOp5AdmC0Or4JnIhpYVOsVNv9/WSXp++yp2aBg"5057
+ }5058
+ },5059
+ "user_id": "@alice_894:hs1",5060
+ "unsigned": {}5061
+ }5062
+ },5063
+ "@alice_895:hs1": {5064
+ "ALICEDEVICE895": {5065
+ "algorithms": [5066
+ "m.olm.v1.curve25519-aes-sha2",5067
+ "m.megolm.v1.aes-sha2"5068
+ ],5069
+ "device_id": "ALICEDEVICE895",5070
+ "keys": {5071
+ "curve25519:ALICEDEVICE895": "ndqfeyuBVFgxJnDnGQY4m9uNbNJAs2iizzgVBz+mgTM",5072
+ "ed25519:ALICEDEVICE895": "z4vfwDZhzQ/Gw5HQnENkgr0cadRNM7CP6yHx4olVFd4"5073
+ },5074
+ "signatures": {5075
+ "@alice_895:hs1": {5076
+ "ed25519:ALICEDEVICE895": "zGxpF/oVs6pD39JHdop5OQTXZxpXTdspnO5wJEdRcTN/UCs3WlCp8ed8uEvGtipNhN4WZxA0sHIlTUqr6uc3CQ"5077
+ }5078
+ },5079
+ "user_id": "@alice_895:hs1",5080
+ "unsigned": {}5081
+ }5082
+ },5083
+ "@alice_89:hs1": {5084
+ "ALICEDEVICE89": {5085
+ "algorithms": [5086
+ "m.olm.v1.curve25519-aes-sha2",5087
+ "m.megolm.v1.aes-sha2"5088
+ ],5089
+ "device_id": "ALICEDEVICE89",5090
+ "keys": {5091
+ "curve25519:ALICEDEVICE89": "1cuqwzwF510QSGtA8cVxhiV1E0XlY6+yZDYYqGBFvD8",5092
+ "ed25519:ALICEDEVICE89": "1WspQTZa9el4hr+20NOFDU1VBnFkP6fPcMnsnr1ojxU"5093
+ },5094
+ "signatures": {5095
+ "@alice_89:hs1": {5096
+ "ed25519:ALICEDEVICE89": "oowKCRSnDO/kpTDMJqEMe+XyDhdEPCI9Pmgjhi+30cZtDutlzgzKB9ugMOnPl4iks8tGQUdo0uGC62V3bM94BQ"5097
+ }5098
+ },5099
+ "user_id": "@alice_89:hs1",5100
+ "unsigned": {}5101
+ }5102
+ },5103
+ "@alice_902:hs1": {5104
+ "ALICEDEVICE902": {5105
+ "algorithms": [5106
+ "m.olm.v1.curve25519-aes-sha2",5107
+ "m.megolm.v1.aes-sha2"5108
+ ],5109
+ "device_id": "ALICEDEVICE902",5110
+ "keys": {5111
+ "curve25519:ALICEDEVICE902": "PCGHXvP9xBjyaetsU+yUosh0q/OxmYT1s0xBspfB8CM",5112
+ "ed25519:ALICEDEVICE902": "cqU3vjDqXppf7slO3JvbyZqkt31T/2zU3X20xrlk+Co"5113
+ },5114
+ "signatures": {5115
+ "@alice_902:hs1": {5116
+ "ed25519:ALICEDEVICE902": "MVdfwFjhTN0aOG+MVjHDKi1GoaTfuc2O8whqXqtXEDXxH9ttUpcw4/ZTf6+1Se3CCYPJNHLSsBDZGLGXOYOnDw"5117
+ }5118
+ },5119
+ "user_id": "@alice_902:hs1",5120
+ "unsigned": {}5121
+ }5122
+ },5123
+ "@alice_911:hs1": {5124
+ "ALICEDEVICE911": {5125
+ "algorithms": [5126
+ "m.olm.v1.curve25519-aes-sha2",5127
+ "m.megolm.v1.aes-sha2"5128
+ ],5129
+ "device_id": "ALICEDEVICE911",5130
+ "keys": {5131
+ "curve25519:ALICEDEVICE911": "VC2AMBA5KBmcEZStepohYRGMPugi0RBQrk9jt/fRbCE",5132
+ "ed25519:ALICEDEVICE911": "nagVMIlDN2wLIV0173fupDJgwBurBfE8mpRvEebeprE"5133
+ },5134
+ "signatures": {5135
+ "@alice_911:hs1": {5136
+ "ed25519:ALICEDEVICE911": "4mL++5Y8/Hr8DMnAStGL7pRZxYx9vJAOWFQk09VkekUotIVcV0y7p3WXZ4S4VVdUpiZdRZsVratsqjIPLptuAA"5137
+ }5138
+ },5139
+ "user_id": "@alice_911:hs1",5140
+ "unsigned": {}5141
+ }5142
+ },5143
+ "@alice_935:hs1": {5144
+ "ALICEDEVICE935": {5145
+ "algorithms": [5146
+ "m.olm.v1.curve25519-aes-sha2",5147
+ "m.megolm.v1.aes-sha2"5148
+ ],5149
+ "device_id": "ALICEDEVICE935",5150
+ "keys": {5151
+ "curve25519:ALICEDEVICE935": "GxSEgHsdkbZZ564YS0I2nsKbO/NizBI+69jgh5VS0TA",5152
+ "ed25519:ALICEDEVICE935": "zMBkeWbunUaxN2uYeJD82QHWSR+EY4foWl17N1D7444"5153
+ },5154
+ "signatures": {5155
+ "@alice_935:hs1": {5156
+ "ed25519:ALICEDEVICE935": "Ov1OpOu2YCaPqxrNEgl2i5ARNfJJNRlQF+fw8QPzwth53DTJgBoX8eRLflN1zDJQQRw1rHI41fxUKZO6t37nAg"5157
+ }5158
+ },5159
+ "user_id": "@alice_935:hs1",5160
+ "unsigned": {}5161
+ }5162
+ },5163
+ "@alice_95:hs1": {5164
+ "ALICEDEVICE95": {5165
+ "algorithms": [5166
+ "m.olm.v1.curve25519-aes-sha2",5167
+ "m.megolm.v1.aes-sha2"5168
+ ],5169
+ "device_id": "ALICEDEVICE95",5170
+ "keys": {5171
+ "curve25519:ALICEDEVICE95": "OzSG0SW13F8G/MHL7DV7Kgpeb7tI1hPB407htSlMTmE",5172
+ "ed25519:ALICEDEVICE95": "RogcNaRlE4XMmqpJYgHbBLUIUdQalXTNry3YObcTbJk"5173
+ },5174
+ "signatures": {5175
+ "@alice_95:hs1": {5176
+ "ed25519:ALICEDEVICE95": "60tetnSaWll21lJxe3Xvbr330Edufg6mYj99byMVrNadh8wYJLxzuIpZpbTd2NUX8nKiAFLO+y5pTzRUULZ+Aw"5177
+ }5178
+ },5179
+ "user_id": "@alice_95:hs1",5180
+ "unsigned": {}5181
+ }5182
+ },5183
+ "@alice_971:hs1": {5184
+ "ALICEDEVICE971": {5185
+ "algorithms": [5186
+ "m.olm.v1.curve25519-aes-sha2",5187
+ "m.megolm.v1.aes-sha2"5188
+ ],5189
+ "device_id": "ALICEDEVICE971",5190
+ "keys": {5191
+ "curve25519:ALICEDEVICE971": "8C2Dz6E9WE+qKJTGe9JRjev37RJ+/q9sBK0bMruUWkY",5192
+ "ed25519:ALICEDEVICE971": "oyiNSyyryuIYZ/T5SkwWNE9SJdsy/LtnDpHqHuz3iqU"5193
+ },5194
+ "signatures": {5195
+ "@alice_971:hs1": {5196
+ "ed25519:ALICEDEVICE971": "wpP8MUz8N0751/1B7wYq9gqfantLpks+kBBefpb/ZGd3Hgb/PkqqYqRkIRY3jLHQcRRqn1IGAZA/gpOZbxEZDA"5197
+ }5198
+ },5199
+ "user_id": "@alice_971:hs1",5200
+ "unsigned": {}5201
+ }5202
+ },5203
+ "@alice_973:hs1": {5204
+ "ALICEDEVICE973": {5205
+ "algorithms": [5206
+ "m.olm.v1.curve25519-aes-sha2",5207
+ "m.megolm.v1.aes-sha2"5208
+ ],5209
+ "device_id": "ALICEDEVICE973",5210
+ "keys": {5211
+ "curve25519:ALICEDEVICE973": "0NZ74sfz0fhreUr7pCBplFqbh4XBGPXPXtLD09ST4HM",5212
+ "ed25519:ALICEDEVICE973": "y8A89mBNg9Bnj6V6mwbcw5KMlVcLERkQVPvEnt+IS/Y"5213
+ },5214
+ "signatures": {5215
+ "@alice_973:hs1": {5216
+ "ed25519:ALICEDEVICE973": "EstrD5b77nYZk1YA51UZDFEteHYO9AXJyGT/XjMp0x2JYXnr+9X5/O1y8TmZd/cuwGd7+zxxBgLDVurz8JpFCg"5217
+ }5218
+ },5219
+ "user_id": "@alice_973:hs1",5220
+ "unsigned": {}5221
+ }5222
+ },5223
+ "@alice_978:hs1": {5224
+ "ALICEDEVICE978": {5225
+ "algorithms": [5226
+ "m.olm.v1.curve25519-aes-sha2",5227
+ "m.megolm.v1.aes-sha2"5228
+ ],5229
+ "device_id": "ALICEDEVICE978",5230
+ "keys": {5231
+ "curve25519:ALICEDEVICE978": "9p5GX2XbVw7aSLAgRLXVUVT608mmHOP+72JH32qmnlc",5232
+ "ed25519:ALICEDEVICE978": "kLUP6jEjHk18ohyjTah3nQkrwGSCwvXtrMz6MiLiqX4"5233
+ },5234
+ "signatures": {5235
+ "@alice_978:hs1": {5236
+ "ed25519:ALICEDEVICE978": "L1ufDKESBh/5t03OE5DFeW6RwRC6PU1CeCm/anTdxV4sqNoHa5GCmLdMJePQ6xoHJEN1ihZBDOsQfSnlOrGTAQ"5237
+ }5238
+ },5239
+ "user_id": "@alice_978:hs1",5240
+ "unsigned": {}5241
+ }5242
+ },5243
+ "@alice_981:hs1": {5244
+ "ALICEDEVICE981": {5245
+ "algorithms": [5246
+ "m.olm.v1.curve25519-aes-sha2",5247
+ "m.megolm.v1.aes-sha2"5248
+ ],5249
+ "device_id": "ALICEDEVICE981",5250
+ "keys": {5251
+ "curve25519:ALICEDEVICE981": "HAJVGQOUuua/7kQN16PZHux5ld+VuDYEXBiD+3edwF8",5252
+ "ed25519:ALICEDEVICE981": "8d/2DypveYkKDUE58uUM0SYG6mxoPM1mX3OuAJKX9KI"5253
+ },5254
+ "signatures": {5255
+ "@alice_981:hs1": {5256
+ "ed25519:ALICEDEVICE981": "gXhI3BK7acwKKKcwpgRKW314fJlKgoyC7vkwr1iyTX3arVnfdKWm+/4EQhBm/lL1zYPyJXdxT7ykhIYaDKJKCw"5257
+ }5258
+ },5259
+ "user_id": "@alice_981:hs1",5260
+ "unsigned": {}5261
+ }5262
+ },5263
+ "@alice_997:hs1": {5264
+ "ALICEDEVICE997": {5265
+ "algorithms": [5266
+ "m.olm.v1.curve25519-aes-sha2",5267
+ "m.megolm.v1.aes-sha2"5268
+ ],5269
+ "device_id": "ALICEDEVICE997",5270
+ "keys": {5271
+ "curve25519:ALICEDEVICE997": "X14MecNOw27cSu4HHlXP22+tp2z5sakR+n0K/RI5OSw",5272
+ "ed25519:ALICEDEVICE997": "4JrgyHMVR3OY27Ljam36jbeKTKDe46CNKOFao4nCTkI"5273
+ },5274
+ "signatures": {5275
+ "@alice_997:hs1": {5276
+ "ed25519:ALICEDEVICE997": "Amfp8GvEKORWhv6anHst8J/h2BuZWvwz+qXnArItJodN7vEPo7U7ziEvTnKKLd0g5puJ72v5QronFliIfS4GBw"5277
+ }5278
+ },5279
+ "user_id": "@alice_997:hs1",5280
+ "unsigned": {}5281
+ }5282
+ },5283
+ "@alice_99:hs1": {5284
+ "ALICEDEVICE99": {5285
+ "algorithms": [5286
+ "m.olm.v1.curve25519-aes-sha2",5287
+ "m.megolm.v1.aes-sha2"5288
+ ],5289
+ "device_id": "ALICEDEVICE99",5290
+ "keys": {5291
+ "curve25519:ALICEDEVICE99": "Ii2pM15YTvc1YadWspFopC4VmW+/4lYqHThKIP/esy8",5292
+ "ed25519:ALICEDEVICE99": "yXF1TPDkBnmj/GNfBFDs7rW3gk4uvuXMzsZuIBwyyUc"5293
+ },5294
+ "signatures": {5295
+ "@alice_99:hs1": {5296
+ "ed25519:ALICEDEVICE99": "PhxLwBmF67H4EtfzcdyQRE0AmSnaGsT/o8mgD+9NM62VZxA03hAfE40MWYW2J4BbHWAwOetCIGZnqIMxDt4nAQ"5297
+ }5298
+ },5299
+ "user_id": "@alice_99:hs1",5300
+ "unsigned": {}5301
+ }5302
+ },5303
+ "@alice_102:hs1": {5304
+ "ALICEDEVICE102": {5305
+ "algorithms": [5306
+ "m.olm.v1.curve25519-aes-sha2",5307
+ "m.megolm.v1.aes-sha2"5308
+ ],5309
+ "device_id": "ALICEDEVICE102",5310
+ "keys": {5311
+ "curve25519:ALICEDEVICE102": "YJ/4kA84G0aO/o2T7IdAYD3KOOT1irflBP+pHIEvw3s",5312
+ "ed25519:ALICEDEVICE102": "2WSu2iCWMvJHPxkxYGbbr7w6DZZFIszYJ/nCjJCVWjA"5313
+ },5314
+ "signatures": {5315
+ "@alice_102:hs1": {5316
+ "ed25519:ALICEDEVICE102": "5BXLNgBHz2yCVEu6DB931Rr8m0BDiS7Ga0J1tEMZrGhAlyCsSQXmhFtOW+axzx7Qhukz5BVOXNzYGNp6TmI/Bg"5317
+ }5318
+ },5319
+ "user_id": "@alice_102:hs1",5320
+ "unsigned": {}5321
+ }5322
+ },5323
+ "@alice_1038:hs1": {5324
+ "ALICEDEVICE1038": {5325
+ "algorithms": [5326
+ "m.olm.v1.curve25519-aes-sha2",5327
+ "m.megolm.v1.aes-sha2"5328
+ ],5329
+ "device_id": "ALICEDEVICE1038",5330
+ "keys": {5331
+ "curve25519:ALICEDEVICE1038": "fTvK13W/rPekYUfd/WQ3HntfVuEZXQOcmp7FnL05wFk",5332
+ "ed25519:ALICEDEVICE1038": "Y+QMEJZ58As/TU/hXOPrAbNWuXKnwVQvxhUhfbKmQHU"5333
+ },5334
+ "signatures": {5335
+ "@alice_1038:hs1": {5336
+ "ed25519:ALICEDEVICE1038": "/34Fo0ElJdDKWxb3LKZJM5jsK4LXF64oWhYM/iA1XkXLhc1PM6roJoMx87hsPtqjreJI979rk5n/j34IK38RDA"5337
+ }5338
+ },5339
+ "user_id": "@alice_1038:hs1",5340
+ "unsigned": {}5341
+ }5342
+ },5343
+ "@alice_1049:hs1": {5344
+ "ALICEDEVICE1049": {5345
+ "algorithms": [5346
+ "m.olm.v1.curve25519-aes-sha2",5347
+ "m.megolm.v1.aes-sha2"5348
+ ],5349
+ "device_id": "ALICEDEVICE1049",5350
+ "keys": {5351
+ "curve25519:ALICEDEVICE1049": "bXwhTRH7z6DpAkmGYkSCUi3TMHggDPXX2vhmJYZxXHs",5352
+ "ed25519:ALICEDEVICE1049": "EQkEg50izxJ/r/cWnQGJuDY21Ni0agpp6OgjCweQ9Co"5353
+ },5354
+ "signatures": {5355
+ "@alice_1049:hs1": {5356
+ "ed25519:ALICEDEVICE1049": "C0QrEbiak+H01BEyKK0QGlfmJNKqy/Bbsex2ACIU1APvFaU+tpF0+RjLWOQe5CXu5eraUr91WaCzEIn9hJeyCw"5357
+ }5358
+ },5359
+ "user_id": "@alice_1049:hs1",5360
+ "unsigned": {}5361
+ }5362
+ },5363
+ "@alice_1055:hs1": {5364
+ "ALICEDEVICE1055": {5365
+ "algorithms": [5366
+ "m.olm.v1.curve25519-aes-sha2",5367
+ "m.megolm.v1.aes-sha2"5368
+ ],5369
+ "device_id": "ALICEDEVICE1055",5370
+ "keys": {5371
+ "curve25519:ALICEDEVICE1055": "eN1v+GqNrSfARNpj48PXwjJ/BcdsopTv/cY0CXiLYVg",5372
+ "ed25519:ALICEDEVICE1055": "sKsPTmcAmE49z0m71ozliDpU7o9XZ2/h1PQTOPoaSoI"5373
+ },5374
+ "signatures": {5375
+ "@alice_1055:hs1": {5376
+ "ed25519:ALICEDEVICE1055": "AK5JSb0ru653SJHT0bSPSQh9P+mu3e4f5btCSBdegRq2fQTSjISAvObc31Mp326e9qtCW+79X+09tqmKbFF+BA"5377
+ }5378
+ },5379
+ "user_id": "@alice_1055:hs1",5380
+ "unsigned": {}5381
+ }5382
+ },5383
+ "@alice_1060:hs1": {5384
+ "ALICEDEVICE1060": {5385
+ "algorithms": [5386
+ "m.olm.v1.curve25519-aes-sha2",5387
+ "m.megolm.v1.aes-sha2"5388
+ ],5389
+ "device_id": "ALICEDEVICE1060",5390
+ "keys": {5391
+ "curve25519:ALICEDEVICE1060": "+5Ctk8E0FElWQMq0/O9s/cOreEpOG9cMFYYlJauTZnw",5392
+ "ed25519:ALICEDEVICE1060": "07NpOzQFiiGrub1LM2iSBRs9PtQ/bwoIPBxXJV4DPfQ"5393
+ },5394
+ "signatures": {5395
+ "@alice_1060:hs1": {5396
+ "ed25519:ALICEDEVICE1060": "+39ON16cBs2gSVzwu0QfgfAwrX73FYtcC+jBN5RIb+4s/1BAZfH1xSdd+Efff+9FOdEcp3wr4S/0P2rKWktxCw"5397
+ }5398
+ },5399
+ "user_id": "@alice_1060:hs1",5400
+ "unsigned": {}5401
+ }5402
+ },5403
+ "@alice_1078:hs1": {5404
+ "ALICEDEVICE1078": {5405
+ "algorithms": [5406
+ "m.olm.v1.curve25519-aes-sha2",5407
+ "m.megolm.v1.aes-sha2"5408
+ ],5409
+ "device_id": "ALICEDEVICE1078",5410
+ "keys": {5411
+ "curve25519:ALICEDEVICE1078": "hfPumISPPz3Yq5O7gfXt4adPlcRFeT/pU68bb584diM",5412
+ "ed25519:ALICEDEVICE1078": "nlhA8GfqNTSsa8LN74WGOOTMOTOcZTHsVs01t8mUdPQ"5413
+ },5414
+ "signatures": {5415
+ "@alice_1078:hs1": {5416
+ "ed25519:ALICEDEVICE1078": "VS4u7RFfYUqsxwKLXV1jU101pDnv4NcTitgy0SXvetJEaJ4tpF5CJbjMORqk63JR0uBWzNOerlUrfE2BrxqxAA"5417
+ }5418
+ },5419
+ "user_id": "@alice_1078:hs1",5420
+ "unsigned": {}5421
+ }5422
+ },5423
+ "@alice_1082:hs1": {5424
+ "ALICEDEVICE1082": {5425
+ "algorithms": [5426
+ "m.olm.v1.curve25519-aes-sha2",5427
+ "m.megolm.v1.aes-sha2"5428
+ ],5429
+ "device_id": "ALICEDEVICE1082",5430
+ "keys": {5431
+ "curve25519:ALICEDEVICE1082": "GUTHOehQckHmWwUTmRUoCQmLeYUScxtTg4VOJGkgL1Q",5432
+ "ed25519:ALICEDEVICE1082": "SJRw1xMysFeJ3j3C1l6Ae17JgZlldxKxccJlhMjg9Wk"5433
+ },5434
+ "signatures": {5435
+ "@alice_1082:hs1": {5436
+ "ed25519:ALICEDEVICE1082": "wc/bPgp5Q0gVG95XPUmjr9dHK4wsbwzDGb2KywAQvKKPCpkiTpDmfJfgqsu/2ezxexhEemXC3Z4l325RSHTnDg"5437
+ }5438
+ },5439
+ "user_id": "@alice_1082:hs1",5440
+ "unsigned": {}5441
+ }5442
+ },5443
+ "@alice_1094:hs1": {5444
+ "ALICEDEVICE1094": {5445
+ "algorithms": [5446
+ "m.olm.v1.curve25519-aes-sha2",5447
+ "m.megolm.v1.aes-sha2"5448
+ ],5449
+ "device_id": "ALICEDEVICE1094",5450
+ "keys": {5451
+ "curve25519:ALICEDEVICE1094": "GtpBe3hz4I/nZIH4KA03XQIqg7A9/qqO5BfKEZgIxC4",5452
+ "ed25519:ALICEDEVICE1094": "/pAodhxYyZluIeWkyJjexiM2KG5HogMpg4+ni6ASrRs"5453
+ },5454
+ "signatures": {5455
+ "@alice_1094:hs1": {5456
+ "ed25519:ALICEDEVICE1094": "m9p0NRpPA+N8L+pI1OLOKAhDjd5YWAcg406LwfhGBWQMhBy9wN7Vp/277byJvtHF5pSv5plI1nuFicEv5AGDAA"5457
+ }5458
+ },5459
+ "user_id": "@alice_1094:hs1",5460
+ "unsigned": {}5461
+ }5462
+ },5463
+ "@alice_1111:hs1": {5464
+ "ALICEDEVICE1111": {5465
+ "algorithms": [5466
+ "m.olm.v1.curve25519-aes-sha2",5467
+ "m.megolm.v1.aes-sha2"5468
+ ],5469
+ "device_id": "ALICEDEVICE1111",5470
+ "keys": {5471
+ "curve25519:ALICEDEVICE1111": "mQnfa/FhUi9kvKI5nOKejj/QuPoP9U29zTJZDiihbGU",5472
+ "ed25519:ALICEDEVICE1111": "qrcNGGGB/NhPQQfyE6+dq5pSbjMEImkuYi1IyGaylK0"5473
+ },5474
+ "signatures": {5475
+ "@alice_1111:hs1": {5476
+ "ed25519:ALICEDEVICE1111": "ynOhTpWUMGNL74iqezcgdkV4dDdY6z0zkrL1yR7RkGRCUd8Q4LplxC+QtO70kvWLCw7rROW79w3NSUMhbarWBA"5477
+ }5478
+ },5479
+ "user_id": "@alice_1111:hs1",5480
+ "unsigned": {}5481
+ }5482
+ },5483
+ "@alice_1115:hs1": {5484
+ "ALICEDEVICE1115": {5485
+ "algorithms": [5486
+ "m.olm.v1.curve25519-aes-sha2",5487
+ "m.megolm.v1.aes-sha2"5488
+ ],5489
+ "device_id": "ALICEDEVICE1115",5490
+ "keys": {5491
+ "curve25519:ALICEDEVICE1115": "uqFY30Q2xIgBX3zXhdpT8mDA668sleTGNr03mhEky1M",5492
+ "ed25519:ALICEDEVICE1115": "Li3/ipSMeWDQligjasZs4G14XWo8vXRAromv3puHH8c"5493
+ },5494
+ "signatures": {5495
+ "@alice_1115:hs1": {5496
+ "ed25519:ALICEDEVICE1115": "DAHG1iLPGWJSJF/C5L868FO88iGXKnuZ0oTInlziT/xD1abUiKcNqYA7zdNkkxcVQO0B8Oza1g7po0r8cyoGAg"5497
+ }5498
+ },5499
+ "user_id": "@alice_1115:hs1",5500
+ "unsigned": {}5501
+ }5502
+ },5503
+ "@alice_1128:hs1": {5504
+ "ALICEDEVICE1128": {5505
+ "algorithms": [5506
+ "m.olm.v1.curve25519-aes-sha2",5507
+ "m.megolm.v1.aes-sha2"5508
+ ],5509
+ "device_id": "ALICEDEVICE1128",5510
+ "keys": {5511
+ "curve25519:ALICEDEVICE1128": "LyOWJnfrJldRm5LiRFhwadSfglqduazArHGFHgIoqAc",5512
+ "ed25519:ALICEDEVICE1128": "rJ1CahSU8+SRa5nkXqSk1FvMbwRGiKl2d3JTCS28zFw"5513
+ },5514
+ "signatures": {5515
+ "@alice_1128:hs1": {5516
+ "ed25519:ALICEDEVICE1128": "BuX8TgAu7aU28j4nObqu2OQWnLWmcySRA8OHRH09d35Z15Bx6gd7gH8jhyfSr2fvIrdGODKBvMSc3aZU1x8sDA"5517
+ }5518
+ },5519
+ "user_id": "@alice_1128:hs1",5520
+ "unsigned": {}5521
+ }5522
+ },5523
+ "@alice_112:hs1": {5524
+ "ALICEDEVICE112": {5525
+ "algorithms": [5526
+ "m.olm.v1.curve25519-aes-sha2",5527
+ "m.megolm.v1.aes-sha2"5528
+ ],5529
+ "device_id": "ALICEDEVICE112",5530
+ "keys": {5531
+ "curve25519:ALICEDEVICE112": "rkWPutYaY9gFmSF4MkPq22Ksb+FXxXYM4mKw25W5dEg",5532
+ "ed25519:ALICEDEVICE112": "3fzluRQgnUDdULxeJpeU3tYgjZHqY+R36kImAj7acqw"5533
+ },5534
+ "signatures": {5535
+ "@alice_112:hs1": {5536
+ "ed25519:ALICEDEVICE112": "YgTE4r6h230/yexTkFwTMbiV5eURZXa2DLvGR2EdBURvjGfP4DqDzlnZzSb/vv3LsuRcwYMDg20UmvoiiGxwCA"5537
+ }5538
+ },5539
+ "user_id": "@alice_112:hs1",5540
+ "unsigned": {}5541
+ }5542
+ },5543
+ "@alice_113:hs1": {5544
+ "ALICEDEVICE113": {5545
+ "algorithms": [5546
+ "m.olm.v1.curve25519-aes-sha2",5547
+ "m.megolm.v1.aes-sha2"5548
+ ],5549
+ "device_id": "ALICEDEVICE113",5550
+ "keys": {5551
+ "curve25519:ALICEDEVICE113": "U3FCr558s6Do+yDFWcLeESj8zXxT5pcjbh+nyh0HxVE",5552
+ "ed25519:ALICEDEVICE113": "Y56EjXNFx6da6MDXVVZsj1CAJJnQJdU8SYoP8l+YxxU"5553
+ },5554
+ "signatures": {5555
+ "@alice_113:hs1": {5556
+ "ed25519:ALICEDEVICE113": "3U/9Dd6RSP9eQfz7t+1AAeRwYRlizR0kUWorGOX+sCpMeqtzVHPXh0RKg7YBGhZKFRzvJsM3MXb9Cu26tVyrDg"5557
+ }5558
+ },5559
+ "user_id": "@alice_113:hs1",5560
+ "unsigned": {}5561
+ }5562
+ },5563
+ "@alice_1143:hs1": {5564
+ "ALICEDEVICE1143": {5565
+ "algorithms": [5566
+ "m.olm.v1.curve25519-aes-sha2",5567
+ "m.megolm.v1.aes-sha2"5568
+ ],5569
+ "device_id": "ALICEDEVICE1143",5570
+ "keys": {5571
+ "curve25519:ALICEDEVICE1143": "DQWx9Uvqq1i9bhEAFr/ji6CZ0NAo8YK87VMUSCdXzzg",5572
+ "ed25519:ALICEDEVICE1143": "4Q18naqoOneu8G4XB+dwWHWSl5WdONl9335dFpZO0vU"5573
+ },5574
+ "signatures": {5575
+ "@alice_1143:hs1": {5576
+ "ed25519:ALICEDEVICE1143": "1sCJf4HJWjsYdUhGWKihP2GDH28uTdTLuEHDSy0e/2ubsPyq+81SvOTx+KVPA55PbJ5PEKbnycNBUB4zMI1FAw"5577
+ }5578
+ },5579
+ "user_id": "@alice_1143:hs1",5580
+ "unsigned": {}5581
+ }5582
+ },5583
+ "@alice_1144:hs1": {5584
+ "ALICEDEVICE1144": {5585
+ "algorithms": [5586
+ "m.olm.v1.curve25519-aes-sha2",5587
+ "m.megolm.v1.aes-sha2"5588
+ ],5589
+ "device_id": "ALICEDEVICE1144",5590
+ "keys": {5591
+ "curve25519:ALICEDEVICE1144": "zjtyU4x7r/qMtX/OjlM6T8Zvr1ZhJfA6N43KCfZ+CiE",5592
+ "ed25519:ALICEDEVICE1144": "T2d6/pTB8B1I0oXRs2uGr0ufWebVRcy08Ntnl+rsGeo"5593
+ },5594
+ "signatures": {5595
+ "@alice_1144:hs1": {5596
+ "ed25519:ALICEDEVICE1144": "Nwjps1EjfZ8Qk/Mra3VOQgIoC/pf0a/wxMdQm70WJ9uytxUg0T4XRhREExG89YGYHF0vHuxNOdv7BitsBcLkBw"5597
+ }5598
+ },5599
+ "user_id": "@alice_1144:hs1",5600
+ "unsigned": {}5601
+ }5602
+ },5603
+ "@alice_1156:hs1": {5604
+ "ALICEDEVICE1156": {5605
+ "algorithms": [5606
+ "m.olm.v1.curve25519-aes-sha2",5607
+ "m.megolm.v1.aes-sha2"5608
+ ],5609
+ "device_id": "ALICEDEVICE1156",5610
+ "keys": {5611
+ "curve25519:ALICEDEVICE1156": "DQ+FzDojrM2UzdXgLVC4tQYk7GE+FLw5pgLF/tZ38Vg",5612
+ "ed25519:ALICEDEVICE1156": "NEdjKlU55821+TA+kqlIzf/3qD+i5JthmsDzsNO+K3Y"5613
+ },5614
+ "signatures": {5615
+ "@alice_1156:hs1": {5616
+ "ed25519:ALICEDEVICE1156": "AfyK7njRtSYFQsBfSdNRAdaqy9Xkfon6XczIfTKWZoV0RbYSj/+IU9hyGSd3+2wc5O5hyl4B0zDd0O88jrLICQ"5617
+ }5618
+ },5619
+ "user_id": "@alice_1156:hs1",5620
+ "unsigned": {}5621
+ }5622
+ },5623
+ "@alice_1178:hs1": {5624
+ "ALICEDEVICE1178": {5625
+ "algorithms": [5626
+ "m.olm.v1.curve25519-aes-sha2",5627
+ "m.megolm.v1.aes-sha2"5628
+ ],5629
+ "device_id": "ALICEDEVICE1178",5630
+ "keys": {5631
+ "curve25519:ALICEDEVICE1178": "/tiUL+QbG1N5nETD19GYggKhUTYcg7Kk8HVUqeV1fzY",5632
+ "ed25519:ALICEDEVICE1178": "Zyn5dA9/AXp0J8Qn+rRJEWDZhBXFqkUu2D5uP+EcRvY"5633
+ },5634
+ "signatures": {5635
+ "@alice_1178:hs1": {5636
+ "ed25519:ALICEDEVICE1178": "t41dT8sXSjxIZeM+lGKTgizCyYvOg9eseYTVSP6FXZcZqtlOWFFm/hgXO07yrhWGEVC4e0LLZ/5ZTg+R3950AQ"5637
+ }5638
+ },5639
+ "user_id": "@alice_1178:hs1",5640
+ "unsigned": {}5641
+ }5642
+ },5643
+ "@alice_1181:hs1": {5644
+ "ALICEDEVICE1181": {5645
+ "algorithms": [5646
+ "m.olm.v1.curve25519-aes-sha2",5647
+ "m.megolm.v1.aes-sha2"5648
+ ],5649
+ "device_id": "ALICEDEVICE1181",5650
+ "keys": {5651
+ "curve25519:ALICEDEVICE1181": "D1rWD1tjSDB4OXmo5MhZg0fF1qNJG+hRmGBsbUMcuBk",5652
+ "ed25519:ALICEDEVICE1181": "xsDBwOgLYpPThc15wICpokxqobPsjvZlBxS/a1TpcSE"5653
+ },5654
+ "signatures": {5655
+ "@alice_1181:hs1": {5656
+ "ed25519:ALICEDEVICE1181": "Ezr63o0XyANwAUtw1j3//xlEYbbwmsTTNjIASmel36bMeczOj0tl2qJCeFlNaUP8ysLmSUM9wCSCZBKW7egHBw"5657
+ }5658
+ },5659
+ "user_id": "@alice_1181:hs1",5660
+ "unsigned": {}5661
+ }5662
+ },5663
+ "@alice_1182:hs1": {5664
+ "ALICEDEVICE1182": {5665
+ "algorithms": [5666
+ "m.olm.v1.curve25519-aes-sha2",5667
+ "m.megolm.v1.aes-sha2"5668
+ ],5669
+ "device_id": "ALICEDEVICE1182",5670
+ "keys": {5671
+ "curve25519:ALICEDEVICE1182": "KKJamkgC6bui6vcarj6T1fVzgXj3LMxtM5tstKf0GEY",5672
+ "ed25519:ALICEDEVICE1182": "1/jg8WONRoNHsjRMVA5LzjNHdYeYLnMtSBXND31TPys"5673
+ },5674
+ "signatures": {5675
+ "@alice_1182:hs1": {5676
+ "ed25519:ALICEDEVICE1182": "h/VXxJKwXWiFA+XdfvM9QMiVTUZSQY31liOf1nCybS/A6Vu6zhIP3xYPpM5QPtTFzbGlZDGiP9olfDtzmQkHCQ"5677
+ }5678
+ },5679
+ "user_id": "@alice_1182:hs1",5680
+ "unsigned": {}5681
+ }5682
+ },5683
+ "@alice_1184:hs1": {5684
+ "ALICEDEVICE1184": {5685
+ "algorithms": [5686
+ "m.olm.v1.curve25519-aes-sha2",5687
+ "m.megolm.v1.aes-sha2"5688
+ ],5689
+ "device_id": "ALICEDEVICE1184",5690
+ "keys": {5691
+ "curve25519:ALICEDEVICE1184": "pqmbUTwPua8aslZbuG07ag6jMvNWLzk7FtupwK8guw4",5692
+ "ed25519:ALICEDEVICE1184": "bwWdOc/L1Ntj+H6KObRx7R54EFV8Hwnf49DhrmVahUE"5693
+ },5694
+ "signatures": {5695
+ "@alice_1184:hs1": {5696
+ "ed25519:ALICEDEVICE1184": "afQ1csH5g2QPAZGKm69hb5JS33tCaiLOyHaxdI3d4aervvisKI+hUcThckj0S/2b3i/w3HBr0XEchuA1kbkbCA"5697
+ }5698
+ },5699
+ "user_id": "@alice_1184:hs1",5700
+ "unsigned": {}5701
+ }5702
+ },5703
+ "@alice_1187:hs1": {5704
+ "ALICEDEVICE1187": {5705
+ "algorithms": [5706
+ "m.olm.v1.curve25519-aes-sha2",5707
+ "m.megolm.v1.aes-sha2"5708
+ ],5709
+ "device_id": "ALICEDEVICE1187",5710
+ "keys": {5711
+ "curve25519:ALICEDEVICE1187": "J3OVs6SlBx048ANQApHUotbBrN1W1CujAtEE8TEMXGU",5712
+ "ed25519:ALICEDEVICE1187": "TfMXkppqjgukz6/CnoUB6cspIorVG74iGfp9zLZJmkE"5713
+ },5714
+ "signatures": {5715
+ "@alice_1187:hs1": {5716
+ "ed25519:ALICEDEVICE1187": "j8epCL/uyl0nFy57CGKT5os3pF2A1fuXnqPGrtWJhsU53PYF2H/65aCm3IeFuTV+2obLIwNlquDr1UMYYSGFBQ"5717
+ }5718
+ },5719
+ "user_id": "@alice_1187:hs1",5720
+ "unsigned": {}5721
+ }5722
+ },5723
+ "@alice_1192:hs1": {5724
+ "ALICEDEVICE1192": {5725
+ "algorithms": [5726
+ "m.olm.v1.curve25519-aes-sha2",5727
+ "m.megolm.v1.aes-sha2"5728
+ ],5729
+ "device_id": "ALICEDEVICE1192",5730
+ "keys": {5731
+ "curve25519:ALICEDEVICE1192": "3J8nqUTs6Ho9H6o4Lm7oFQaYC2BH+XKqr0pQsuPRaCU",5732
+ "ed25519:ALICEDEVICE1192": "ajYDKyzHeNua5R3t05eREg4WCNndCIMPNTckakm7tHQ"5733
+ },5734
+ "signatures": {5735
+ "@alice_1192:hs1": {5736
+ "ed25519:ALICEDEVICE1192": "38tpzv+rGk9D4jhF10O7qC/flIDxF3Q0EjOsgUKNvzaIiBr02odICdzS64T3fWWKo2/Ct+fqNikPGWZTa8rJAA"5737
+ }5738
+ },5739
+ "user_id": "@alice_1192:hs1",5740
+ "unsigned": {}5741
+ }5742
+ },5743
+ "@alice_119:hs1": {5744
+ "ALICEDEVICE119": {5745
+ "algorithms": [5746
+ "m.olm.v1.curve25519-aes-sha2",5747
+ "m.megolm.v1.aes-sha2"5748
+ ],5749
+ "device_id": "ALICEDEVICE119",5750
+ "keys": {5751
+ "curve25519:ALICEDEVICE119": "O6nG1HN4LKQmkITI/vcoUfn7i30zXxpZBXdnWkA4oWc",5752
+ "ed25519:ALICEDEVICE119": "jCCKS1DirAM3ktZutcJK75dk51IJ7bugPnN/BRFCVL8"5753
+ },5754
+ "signatures": {5755
+ "@alice_119:hs1": {5756
+ "ed25519:ALICEDEVICE119": "xE9AftJfJlvv2obNB2hGNDeOnkDi22qE3wDtAZUMnaRvpunyt8jigaGvfpDDscty2guSBIDMoKXt6A2lkW7dBA"5757
+ }5758
+ },5759
+ "user_id": "@alice_119:hs1",5760
+ "unsigned": {}5761
+ }5762
+ },5763
+ "@alice_1205:hs1": {5764
+ "ALICEDEVICE1205": {5765
+ "algorithms": [5766
+ "m.olm.v1.curve25519-aes-sha2",5767
+ "m.megolm.v1.aes-sha2"5768
+ ],5769
+ "device_id": "ALICEDEVICE1205",5770
+ "keys": {5771
+ "curve25519:ALICEDEVICE1205": "M4VWm/irhHl+SPYRfzO/6rFHnKjOZ2gZjNs3cjvdPFM",5772
+ "ed25519:ALICEDEVICE1205": "AA4kiiUlaIX9UGsCmIBb0VpPngdL+rji+fIno40A9qM"5773
+ },5774
+ "signatures": {5775
+ "@alice_1205:hs1": {5776
+ "ed25519:ALICEDEVICE1205": "7oJkV+74GC+OKwDbIVbythpMbjUsz8qfbiwIIX5ujlCA13zYZzILri5gE4oPbFlXZPNSLxQy4IV+f372EYDKCw"5777
+ }5778
+ },5779
+ "user_id": "@alice_1205:hs1",5780
+ "unsigned": {}5781
+ }5782
+ },5783
+ "@alice_1209:hs1": {5784
+ "ALICEDEVICE1209": {5785
+ "algorithms": [5786
+ "m.olm.v1.curve25519-aes-sha2",5787
+ "m.megolm.v1.aes-sha2"5788
+ ],5789
+ "device_id": "ALICEDEVICE1209",5790
+ "keys": {5791
+ "curve25519:ALICEDEVICE1209": "7+7XpchnMIbeFwlCRR06XAAirUQAZYdIHrbQhmyXWg4",5792
+ "ed25519:ALICEDEVICE1209": "C4lRrAUj2q/rnhB1bDiP5gx00GeqCB48xgae8XEb20Y"5793
+ },5794
+ "signatures": {5795
+ "@alice_1209:hs1": {5796
+ "ed25519:ALICEDEVICE1209": "e6BF7MAdr0ZklxFe6jEXJwKDEPdqZp9vkOWNX5JItZvOYroeKq+RzFie+s/DMf6ml1jeVwx9f2bhe9R15GcCBw"5797
+ }5798
+ },5799
+ "user_id": "@alice_1209:hs1",5800
+ "unsigned": {}5801
+ }5802
+ },5803
+ "@alice_1211:hs1": {5804
+ "ALICEDEVICE1211": {5805
+ "algorithms": [5806
+ "m.olm.v1.curve25519-aes-sha2",5807
+ "m.megolm.v1.aes-sha2"5808
+ ],5809
+ "device_id": "ALICEDEVICE1211",5810
+ "keys": {5811
+ "curve25519:ALICEDEVICE1211": "Y3dLyhmu5Mqh7WbOySr+Z6RQFt9cpWtSBZ8vO5uRM2E",5812
+ "ed25519:ALICEDEVICE1211": "+ja10oxuXX481WA/uwwFSTd28lGj2L0wLCPZrarydLo"5813
+ },5814
+ "signatures": {5815
+ "@alice_1211:hs1": {5816
+ "ed25519:ALICEDEVICE1211": "7pSp9rBVpTvKmo/0SlviJmUDKmADf/wCRCU/A36ya/ABqz5bok64JWcyfSbinTB1G4nc6g5z3csNK2UaITDBBw"5817
+ }5818
+ },5819
+ "user_id": "@alice_1211:hs1",5820
+ "unsigned": {}5821
+ }5822
+ },5823
+ "@alice_1214:hs1": {5824
+ "ALICEDEVICE1214": {5825
+ "algorithms": [5826
+ "m.olm.v1.curve25519-aes-sha2",5827
+ "m.megolm.v1.aes-sha2"5828
+ ],5829
+ "device_id": "ALICEDEVICE1214",5830
+ "keys": {5831
+ "curve25519:ALICEDEVICE1214": "ipUc6rj+zxgaU9e2ZOmvGMPuSQo1nWowoZ5456X8s2o",5832
+ "ed25519:ALICEDEVICE1214": "YDGfstN/8+eXXnv+KwH+5NC1NLgNLxhVgZcBpwuw+Ds"5833
+ },5834
+ "signatures": {5835
+ "@alice_1214:hs1": {5836
+ "ed25519:ALICEDEVICE1214": "u0ma6U4feTfDa6AzDCZRT+8ELoa2l9JhuvI9MupzURupIRWwZRb1Weff6iX6UHpd9H4vh5/9V8i3LSYwSXbuDA"5837
+ }5838
+ },5839
+ "user_id": "@alice_1214:hs1",5840
+ "unsigned": {}5841
+ }5842
+ },5843
+ "@alice_1217:hs1": {5844
+ "ALICEDEVICE1217": {5845
+ "algorithms": [5846
+ "m.olm.v1.curve25519-aes-sha2",5847
+ "m.megolm.v1.aes-sha2"5848
+ ],5849
+ "device_id": "ALICEDEVICE1217",5850
+ "keys": {5851
+ "curve25519:ALICEDEVICE1217": "tzsqCgl905BpYkpuW4YyEaCtwCGjC3SXHS3k0PzmLWo",5852
+ "ed25519:ALICEDEVICE1217": "PfMBrQIWRUjtkdSaRBxgxTG7zLIgD+NTZav3ePrPCR4"5853
+ },5854
+ "signatures": {5855
+ "@alice_1217:hs1": {5856
+ "ed25519:ALICEDEVICE1217": "vapRGHB/YSn6O2Qn7nW59LDl4fpghd+0O0OXpKQZw7WLeRnUF2+ivjgbyXbYCOZ2HtiU0ibSYj0hUifaEFYHDg"5857
+ }5858
+ },5859
+ "user_id": "@alice_1217:hs1",5860
+ "unsigned": {}5861
+ }5862
+ },5863
+ "@alice_1231:hs1": {5864
+ "ALICEDEVICE1231": {5865
+ "algorithms": [5866
+ "m.olm.v1.curve25519-aes-sha2",5867
+ "m.megolm.v1.aes-sha2"5868
+ ],5869
+ "device_id": "ALICEDEVICE1231",5870
+ "keys": {5871
+ "curve25519:ALICEDEVICE1231": "BXcuvLHJrgQXMFDgiSk47Oq4a3+N3wvgtB1IetPqjQk",5872
+ "ed25519:ALICEDEVICE1231": "4FzkrwKjVaSHqcv7eFJPj0DO3bg4Zqy1xpgf/OcZmq4"5873
+ },5874
+ "signatures": {5875
+ "@alice_1231:hs1": {5876
+ "ed25519:ALICEDEVICE1231": "f7EpmYgIehkGbi870u68xz9mHcPR7tuNkDaUb/nUyrCw6WDOxLU5VstNxD5y2yMVcHNg+JKvxkOSj3PmqJFgAQ"5877
+ }5878
+ },5879
+ "user_id": "@alice_1231:hs1",5880
+ "unsigned": {}5881
+ }5882
+ },5883
+ "@alice_1235:hs1": {5884
+ "ALICEDEVICE1235": {5885
+ "algorithms": [5886
+ "m.olm.v1.curve25519-aes-sha2",5887
+ "m.megolm.v1.aes-sha2"5888
+ ],5889
+ "device_id": "ALICEDEVICE1235",5890
+ "keys": {5891
+ "curve25519:ALICEDEVICE1235": "EBBSexZjEVCFECUYZ6zw0OOOgmUofocCDUG5yb09KzA",5892
+ "ed25519:ALICEDEVICE1235": "XX/5/VaGPKBW8CrgLnjBZTOI69naCAN45XoEf+fNIkA"5893
+ },5894
+ "signatures": {5895
+ "@alice_1235:hs1": {5896
+ "ed25519:ALICEDEVICE1235": "p7C3O9aTyqaJrkEVby4O6xeTVGLcwtnNJM9qZnQraH23Uv4hiDR/49hgk7RF3AEjU67I+ESQiZuGyXDrxmyfAA"5897
+ }5898
+ },5899
+ "user_id": "@alice_1235:hs1",5900
+ "unsigned": {}5901
+ }5902
+ },5903
+ "@alice_1248:hs1": {5904
+ "ALICEDEVICE1248": {5905
+ "algorithms": [5906
+ "m.olm.v1.curve25519-aes-sha2",5907
+ "m.megolm.v1.aes-sha2"5908
+ ],5909
+ "device_id": "ALICEDEVICE1248",5910
+ "keys": {5911
+ "curve25519:ALICEDEVICE1248": "/GIVSp4x64Oxx6HWGyGTfmL+jn4AcOSMqIlGEL3rtQY",5912
+ "ed25519:ALICEDEVICE1248": "pwaOOh1myIgLfBb8ZfQaQaEUhG/IIm30fIsTWD4zyjw"5913
+ },5914
+ "signatures": {5915
+ "@alice_1248:hs1": {5916
+ "ed25519:ALICEDEVICE1248": "srmMWxMCbTILHBDtA9NqqclqHquoS4xkM2Qbdt7LSxvB2rX5p0UXAGHrfliFSn6Uen7GAk6rcpV70q3plvOLDg"5917
+ }5918
+ },5919
+ "user_id": "@alice_1248:hs1",5920
+ "unsigned": {}5921
+ }5922
+ },5923
+ "@alice_1249:hs1": {5924
+ "ALICEDEVICE1249": {5925
+ "algorithms": [5926
+ "m.olm.v1.curve25519-aes-sha2",5927
+ "m.megolm.v1.aes-sha2"5928
+ ],5929
+ "device_id": "ALICEDEVICE1249",5930
+ "keys": {5931
+ "curve25519:ALICEDEVICE1249": "lGNAXxFFDsZTlbpFA9VaAxuAzH6l1GO67i6HubX70Ro",5932
+ "ed25519:ALICEDEVICE1249": "LGyYx+oIZz4lTpUIfKnyTAokQT0m6oYARzaDBXLoCo0"5933
+ },5934
+ "signatures": {5935
+ "@alice_1249:hs1": {5936
+ "ed25519:ALICEDEVICE1249": "YyMAyoVkiyb0GmXjdWIFc7QzYKPZG5KV0bh0CyDqKGlay586j4Uotf/poGsZ2/Ogzm3i33ARSo8BQl32ufl0Cw"5937
+ }5938
+ },5939
+ "user_id": "@alice_1249:hs1",5940
+ "unsigned": {}5941
+ }5942
+ },5943
+ "@alice_1250:hs1": {5944
+ "ALICEDEVICE1250": {5945
+ "algorithms": [5946
+ "m.olm.v1.curve25519-aes-sha2",5947
+ "m.megolm.v1.aes-sha2"5948
+ ],5949
+ "device_id": "ALICEDEVICE1250",5950
+ "keys": {5951
+ "curve25519:ALICEDEVICE1250": "EMhYmfAfQMUyhyIOsKDYplrLeuJlPJNmJa+ml5JWIyc",5952
+ "ed25519:ALICEDEVICE1250": "Eginy7ShGopfDTUpc+Fgmveq/W1YwvXwBFp8FJXqycc"5953
+ },5954
+ "signatures": {5955
+ "@alice_1250:hs1": {5956
+ "ed25519:ALICEDEVICE1250": "dZY5jF6E64MljxHZxhXzKwHxX912ZRA3hAAmvUfOTGpXi/xp++Q2WZGDSl/2cyfBlTqtPMvs1odO173au74+Cw"5957
+ }5958
+ },5959
+ "user_id": "@alice_1250:hs1",5960
+ "unsigned": {}5961
+ }5962
+ },5963
+ "@alice_1257:hs1": {5964
+ "ALICEDEVICE1257": {5965
+ "algorithms": [5966
+ "m.olm.v1.curve25519-aes-sha2",5967
+ "m.megolm.v1.aes-sha2"5968
+ ],5969
+ "device_id": "ALICEDEVICE1257",5970
+ "keys": {5971
+ "curve25519:ALICEDEVICE1257": "hrpj4GCBjw60RKWMgn5yP4nFwnyi/eW13BcVSD8BpmM",5972
+ "ed25519:ALICEDEVICE1257": "Xt4rLzEWhiGpaPKK8peuzoSHAHzZ2xdUCeUuPZ4fbjg"5973
+ },5974
+ "signatures": {5975
+ "@alice_1257:hs1": {5976
+ "ed25519:ALICEDEVICE1257": "x81szkKu/9rxefhYmiT7+ApChMyE4pOsNIWtunrjPwwZ/8/ApmiXWSXImuDNKck8hC1CGIJkGrfzSNLyMiaiAg"5977
+ }5978
+ },5979
+ "user_id": "@alice_1257:hs1",5980
+ "unsigned": {}5981
+ }5982
+ },5983
+ "@alice_1261:hs1": {5984
+ "ALICEDEVICE1261": {5985
+ "algorithms": [5986
+ "m.olm.v1.curve25519-aes-sha2",5987
+ "m.megolm.v1.aes-sha2"5988
+ ],5989
+ "device_id": "ALICEDEVICE1261",5990
+ "keys": {5991
+ "curve25519:ALICEDEVICE1261": "jYcME7geCxe4yL1Z+G4XpCHQDZognZ4kSKLdbo3kDQc",5992
+ "ed25519:ALICEDEVICE1261": "ZsQedmqXx+mZrA0rONU32ZVVd1iDEHQfh2nFz4XAdeg"5993
+ },5994
+ "signatures": {5995
+ "@alice_1261:hs1": {5996
+ "ed25519:ALICEDEVICE1261": "Fx8WvsrKvKuDviuDLKecddNICF4qmIinpiz+3jKaeTbCxypmOkTJt0w1/3bxrGjeedZdXmQW/n1E83mS2WaMAw"5997
+ }5998
+ },5999
+ "user_id": "@alice_1261:hs1",6000
+ "unsigned": {}6001
+ }6002
+ },6003
+ "@alice_126:hs1": {6004
+ "ALICEDEVICE126": {6005
+ "algorithms": [6006
+ "m.olm.v1.curve25519-aes-sha2",6007
+ "m.megolm.v1.aes-sha2"6008
+ ],6009
+ "device_id": "ALICEDEVICE126",6010
+ "keys": {6011
+ "curve25519:ALICEDEVICE126": "ju40rFiYA2YLj2CKSsoIjiuMOTlz6agXenXjKcAXIiA",6012
+ "ed25519:ALICEDEVICE126": "nXywmk+xM7Hq7pD41B11cjokeCOweapRCHgTS5EHKI0"6013
+ },6014
+ "signatures": {6015
+ "@alice_126:hs1": {6016
+ "ed25519:ALICEDEVICE126": "vtwoJ8/gCGc+z7KVEw4CE/5ySvonbTWgBW85pJx9XUEABIunpCxfG/b870wo/eux55tZy+HRwvFF3FuA/JbqDg"6017
+ }6018
+ },6019
+ "user_id": "@alice_126:hs1",6020
+ "unsigned": {}6021
+ }6022
+ },6023
+ "@alice_1284:hs1": {6024
+ "ALICEDEVICE1284": {6025
+ "algorithms": [6026
+ "m.olm.v1.curve25519-aes-sha2",6027
+ "m.megolm.v1.aes-sha2"6028
+ ],6029
+ "device_id": "ALICEDEVICE1284",6030
+ "keys": {6031
+ "curve25519:ALICEDEVICE1284": "pJCkOnw1eCMaxfhPw5SzmVj//qAJH+gxgBphRjK8Lzc",6032
+ "ed25519:ALICEDEVICE1284": "Df8IXhWpWraD6gx0K4EzIKTytqCxaG7PuewZp2gU7Fw"6033
+ },6034
+ "signatures": {6035
+ "@alice_1284:hs1": {6036
+ "ed25519:ALICEDEVICE1284": "LFRqj9/pLOuWFHBetZDVYy5ifYT6AAOH/z+Io7xDZU8ClUSls1FOxHME+xq1CGA42mRiVUHN73VGlvyiT0glAQ"6037
+ }6038
+ },6039
+ "user_id": "@alice_1284:hs1",6040
+ "unsigned": {}6041
+ }6042
+ },6043
+ "@alice_1287:hs1": {6044
+ "ALICEDEVICE1287": {6045
+ "algorithms": [6046
+ "m.olm.v1.curve25519-aes-sha2",6047
+ "m.megolm.v1.aes-sha2"6048
+ ],6049
+ "device_id": "ALICEDEVICE1287",6050
+ "keys": {6051
+ "curve25519:ALICEDEVICE1287": "r4KDuJSDSeIikPWsMyz/C4QbHKLQAjCXcOEP6HqYngs",6052
+ "ed25519:ALICEDEVICE1287": "lMx1jUNotxU/18SkCYG2NV/znEDzWYBzNj7abehBLfs"6053
+ },6054
+ "signatures": {6055
+ "@alice_1287:hs1": {6056
+ "ed25519:ALICEDEVICE1287": "/jjpO+UAs5TvsG7B8+jeRT/DNPA5pqqg6Aqz5JCg+mIR1NqxrV0MNSybvLq5Zxm1j+K96jkD/+8wAqgT50GeBQ"6057
+ }6058
+ },6059
+ "user_id": "@alice_1287:hs1",6060
+ "unsigned": {}6061
+ }6062
+ },6063
+ "@alice_1288:hs1": {6064
+ "ALICEDEVICE1288": {6065
+ "algorithms": [6066
+ "m.olm.v1.curve25519-aes-sha2",6067
+ "m.megolm.v1.aes-sha2"6068
+ ],6069
+ "device_id": "ALICEDEVICE1288",6070
+ "keys": {6071
+ "curve25519:ALICEDEVICE1288": "JgO7A91Zvm+ia8tWkxiOKHr8wZUB/zXN96aawoi5ax4",6072
+ "ed25519:ALICEDEVICE1288": "xO4Ve1BVLv2oGOK3VBoGKSfNBtxFGbgEConTrp0k8Zo"6073
+ },6074
+ "signatures": {6075
+ "@alice_1288:hs1": {6076
+ "ed25519:ALICEDEVICE1288": "oQqYf5Z9RIHMkRxvO0ngcSTNhRGW7uTLElyLDrFiv/2hvNkrbHX1Ri+Ek+df9xcvlYhpiQg/OYawNSO/txQ2Aw"6077
+ }6078
+ },6079
+ "user_id": "@alice_1288:hs1",6080
+ "unsigned": {}6081
+ }6082
+ },6083
+ "@alice_1289:hs1": {6084
+ "ALICEDEVICE1289": {6085
+ "algorithms": [6086
+ "m.olm.v1.curve25519-aes-sha2",6087
+ "m.megolm.v1.aes-sha2"6088
+ ],6089
+ "device_id": "ALICEDEVICE1289",6090
+ "keys": {6091
+ "curve25519:ALICEDEVICE1289": "S2Es71LtCF2mOWEKUuUaiSyyg8l2dnXwn0IL73YZGwU",6092
+ "ed25519:ALICEDEVICE1289": "fqVxlD7/by/XPuvLwPvvwmxyMsWrM0JEmPl33eXSXNw"6093
+ },6094
+ "signatures": {6095
+ "@alice_1289:hs1": {6096
+ "ed25519:ALICEDEVICE1289": "iVIUaZcD0WO5C8zc0DO00XwLBV94Hx85NxQOHm/X9UgeR7NMHPsH9eMSONcECKfmr6iMv7VqNdNdeTXrVm3eCA"6097
+ }6098
+ },6099
+ "user_id": "@alice_1289:hs1",6100
+ "unsigned": {}6101
+ }6102
+ },6103
+ "@alice_1291:hs1": {6104
+ "ALICEDEVICE1291": {6105
+ "algorithms": [6106
+ "m.olm.v1.curve25519-aes-sha2",6107
+ "m.megolm.v1.aes-sha2"6108
+ ],6109
+ "device_id": "ALICEDEVICE1291",6110
+ "keys": {6111
+ "curve25519:ALICEDEVICE1291": "E/ac3GCiOC8nHvwHAiXJN3CrYOsI1ntBbgDLImFtKVs",6112
+ "ed25519:ALICEDEVICE1291": "9JaQo8it8JjStM5i9auWPHYv3op2SFTEC+LB4HNkgeU"6113
+ },6114
+ "signatures": {6115
+ "@alice_1291:hs1": {6116
+ "ed25519:ALICEDEVICE1291": "ZRsjHgoG5PuxE2Lfk59X2qQdCoGFtsHt2ymNDucMIgdCezG7eeBu97dDs5PjlHxqS+EGGDa8/r6X9RMSpf9vDw"6117
+ }6118
+ },6119
+ "user_id": "@alice_1291:hs1",6120
+ "unsigned": {}6121
+ }6122
+ },6123
+ "@alice_1292:hs1": {6124
+ "ALICEDEVICE1292": {6125
+ "algorithms": [6126
+ "m.olm.v1.curve25519-aes-sha2",6127
+ "m.megolm.v1.aes-sha2"6128
+ ],6129
+ "device_id": "ALICEDEVICE1292",6130
+ "keys": {6131
+ "curve25519:ALICEDEVICE1292": "HE5hyRJdRB0Baw57IuUkVihm3OMuWEbVAsDsj5C16U8",6132
+ "ed25519:ALICEDEVICE1292": "J3maWOSQu8rrso9rOJiNxcecciIm8srzucw5+l3pcp8"6133
+ },6134
+ "signatures": {6135
+ "@alice_1292:hs1": {6136
+ "ed25519:ALICEDEVICE1292": "FYN1DnfsSLTFd4fAR5pwsNhWuMTTKLeZCvoMJzfiW14Rwv6mV3LHSC5JoZdTMwvxS1W4pw09O/oY6XlKHJ7rDA"6137
+ }6138
+ },6139
+ "user_id": "@alice_1292:hs1",6140
+ "unsigned": {}6141
+ }6142
+ },6143
+ "@alice_1297:hs1": {6144
+ "ALICEDEVICE1297": {6145
+ "algorithms": [6146
+ "m.olm.v1.curve25519-aes-sha2",6147
+ "m.megolm.v1.aes-sha2"6148
+ ],6149
+ "device_id": "ALICEDEVICE1297",6150
+ "keys": {6151
+ "curve25519:ALICEDEVICE1297": "Uw10CJe1IRiqlWqiPrvky5e7+nuU+fDBHSVrIUhrOA8",6152
+ "ed25519:ALICEDEVICE1297": "g2qbseDDEncqM+YQO9HVZsFgQc5PeZ+xt74LWBAJwv8"6153
+ },6154
+ "signatures": {6155
+ "@alice_1297:hs1": {6156
+ "ed25519:ALICEDEVICE1297": "v9WL8eMkSX8EF6JHYs3nx/KT05SmsgOO1Putf0vc45Lvg43ttVAW/o81V+ZDHXci5QXeFEtrGf5OE4jDZFjiBQ"6157
+ }6158
+ },6159
+ "user_id": "@alice_1297:hs1",6160
+ "unsigned": {}6161
+ }6162
+ },6163
+ "@alice_129:hs1": {6164
+ "ALICEDEVICE129": {6165
+ "algorithms": [6166
+ "m.olm.v1.curve25519-aes-sha2",6167
+ "m.megolm.v1.aes-sha2"6168
+ ],6169
+ "device_id": "ALICEDEVICE129",6170
+ "keys": {6171
+ "curve25519:ALICEDEVICE129": "Kt9uIoDSoxvvMAfNVMqdVIOOaWLfnzEcO0i7am+i42Q",6172
+ "ed25519:ALICEDEVICE129": "u8x/1Eny3Aod7n7hiU7mmdk0TXFVonFzeWX6rMxuMog"6173
+ },6174
+ "signatures": {6175
+ "@alice_129:hs1": {6176
+ "ed25519:ALICEDEVICE129": "lKTggH6aIP35sqgp6t/MPBjYGY/BEkVYWZmRE4GH0/xx5ilnCAsIffTDQpNtXGB0m5IIA5kNROZMfUiQxE2JDA"6177
+ }6178
+ },6179
+ "user_id": "@alice_129:hs1",6180
+ "unsigned": {}6181
+ }6182
+ },6183
+ "@alice_12:hs1": {6184
+ "ALICEDEVICE12": {6185
+ "algorithms": [6186
+ "m.olm.v1.curve25519-aes-sha2",6187
+ "m.megolm.v1.aes-sha2"6188
+ ],6189
+ "device_id": "ALICEDEVICE12",6190
+ "keys": {6191
+ "curve25519:ALICEDEVICE12": "conlXFKqiMeYrqH0ZSYBqNYsTyBLPwWc35F2VgFTt3w",6192
+ "ed25519:ALICEDEVICE12": "tBJzKBPnLNy8M0KS5hyNkTPPfMQcr2qTnAzsCRDIVQA"6193
+ },6194
+ "signatures": {6195
+ "@alice_12:hs1": {6196
+ "ed25519:ALICEDEVICE12": "P6Vu1pZXQvL1FMs7Ib8qelOU3XWHhXI6MasGSV3MVDjCptBvwtSQC4uiPwsmWN664MStlq0HCsk0WpIhpeKfDA"6197
+ }6198
+ },6199
+ "user_id": "@alice_12:hs1",6200
+ "unsigned": {}6201
+ }6202
+ },6203
+ "@alice_1312:hs1": {6204
+ "ALICEDEVICE1312": {6205
+ "algorithms": [6206
+ "m.olm.v1.curve25519-aes-sha2",6207
+ "m.megolm.v1.aes-sha2"6208
+ ],6209
+ "device_id": "ALICEDEVICE1312",6210
+ "keys": {6211
+ "curve25519:ALICEDEVICE1312": "Wcb9lOzexCrUW4N++vczq+YGWHalGNEwcxmAt3riWRE",6212
+ "ed25519:ALICEDEVICE1312": "Ecz4Yp9eHkIPSc1fP/UKbnaewo8a5q6iEFEA1PuXHqc"6213
+ },6214
+ "signatures": {6215
+ "@alice_1312:hs1": {6216
+ "ed25519:ALICEDEVICE1312": "yuuCksxvQjt/wctmMnnefhh6Sq906rbJNqlGW72k/Gy4ONOw8QcDgzupFifVdOZNavKja3DH/FgUcIio0196BQ"6217
+ }6218
+ },6219
+ "user_id": "@alice_1312:hs1",6220
+ "unsigned": {}6221
+ }6222
+ },6223
+ "@alice_1327:hs1": {6224
+ "ALICEDEVICE1327": {6225
+ "algorithms": [6226
+ "m.olm.v1.curve25519-aes-sha2",6227
+ "m.megolm.v1.aes-sha2"6228
+ ],6229
+ "device_id": "ALICEDEVICE1327",6230
+ "keys": {6231
+ "curve25519:ALICEDEVICE1327": "VhcFrQfO6pFGvOPqdQVGQcljvI96InhZwly34RLxqUQ",6232
+ "ed25519:ALICEDEVICE1327": "xqBYl5QDzXY7unApzVPmhK9sIXpxn+q6VMcs1LwF7p4"6233
+ },6234
+ "signatures": {6235
+ "@alice_1327:hs1": {6236
+ "ed25519:ALICEDEVICE1327": "+ftL3WRzSJS/BqkBGsxaCHgGxVVlzf1/63xF3xJXzVlAPvxz6SwkweVUo35XPBkAoZsdyNW/swAKv+y4PswpDg"6237
+ }6238
+ },6239
+ "user_id": "@alice_1327:hs1",6240
+ "unsigned": {}6241
+ }6242
+ },6243
+ "@alice_1335:hs1": {6244
+ "ALICEDEVICE1335": {6245
+ "algorithms": [6246
+ "m.olm.v1.curve25519-aes-sha2",6247
+ "m.megolm.v1.aes-sha2"6248
+ ],6249
+ "device_id": "ALICEDEVICE1335",6250
+ "keys": {6251
+ "curve25519:ALICEDEVICE1335": "MlAfxQ/FQ/NhefFuGRjCFQ3rWNnWjn4oWzaEsLAWl08",6252
+ "ed25519:ALICEDEVICE1335": "VQP8BeTRjz/8xrb/J0TDVQtdZnI9fhYt6goTEsNiAik"6253
+ },6254
+ "signatures": {6255
+ "@alice_1335:hs1": {6256
+ "ed25519:ALICEDEVICE1335": "dflKHPt1hg2KNE66T4579k/tNb6EyGsMLOIWVsuJm+vOOexdtN1Ey9ybpekVUKay+Uv3jBWmGEyr7g8KlSSPAA"6257
+ }6258
+ },6259
+ "user_id": "@alice_1335:hs1",6260
+ "unsigned": {}6261
+ }6262
+ },6263
+ "@alice_1340:hs1": {6264
+ "ALICEDEVICE1340": {6265
+ "algorithms": [6266
+ "m.olm.v1.curve25519-aes-sha2",6267
+ "m.megolm.v1.aes-sha2"6268
+ ],6269
+ "device_id": "ALICEDEVICE1340",6270
+ "keys": {6271
+ "curve25519:ALICEDEVICE1340": "ZwwfhltVM1IMawCoHgd6rv/Gw6y/js/4IfjJEl8LZQU",6272
+ "ed25519:ALICEDEVICE1340": "iNQR6T6g8iTxK3KUJIp2dAwH+u5do0nIdsjl63U/THc"6273
+ },6274
+ "signatures": {6275
+ "@alice_1340:hs1": {6276
+ "ed25519:ALICEDEVICE1340": "KzTgOYHUtcwe2SuQNcJTf76VS9YeFg/b6Y5S1P+4RB6igrsMGNcyAUK9RgaGi97sOjqvhklL1zwM/2ONguM0BA"6277
+ }6278
+ },6279
+ "user_id": "@alice_1340:hs1",6280
+ "unsigned": {}6281
+ }6282
+ },6283
+ "@alice_1341:hs1": {6284
+ "ALICEDEVICE1341": {6285
+ "algorithms": [6286
+ "m.olm.v1.curve25519-aes-sha2",6287
+ "m.megolm.v1.aes-sha2"6288
+ ],6289
+ "device_id": "ALICEDEVICE1341",6290
+ "keys": {6291
+ "curve25519:ALICEDEVICE1341": "l8+Pmxz/HOGr2fpJbvgzHQGDSUaw8Qs+ewQihyeWNVU",6292
+ "ed25519:ALICEDEVICE1341": "xxjll0baoMQK/ZPEtys5tSxYrbq8Lr/5yBNNXI1Yq5k"6293
+ },6294
+ "signatures": {6295
+ "@alice_1341:hs1": {6296
+ "ed25519:ALICEDEVICE1341": "JGcrVtmYXHiEs3+b3a0H+hpqbZilOEWyS+oeFtApob2j6wlejxfoOtzMzquMe4oVw47tLuvy5aJc4CVT4oG7Dw"6297
+ }6298
+ },6299
+ "user_id": "@alice_1341:hs1",6300
+ "unsigned": {}6301
+ }6302
+ },6303
+ "@alice_1345:hs1": {6304
+ "ALICEDEVICE1345": {6305
+ "algorithms": [6306
+ "m.olm.v1.curve25519-aes-sha2",6307
+ "m.megolm.v1.aes-sha2"6308
+ ],6309
+ "device_id": "ALICEDEVICE1345",6310
+ "keys": {6311
+ "curve25519:ALICEDEVICE1345": "jIEc0+/xKIJ6TSwKr95+o54PPuyxrUJ9o71m9F0etgg",6312
+ "ed25519:ALICEDEVICE1345": "r1hf71VYTAlK9vmLI7jLdWwDOnScULokggVx+gwKlYo"6313
+ },6314
+ "signatures": {6315
+ "@alice_1345:hs1": {6316
+ "ed25519:ALICEDEVICE1345": "CVqkSUEY3VrpCCWQmWc94cI7LqEa8uWKKftAmtPEHqt1zv8iHR+2sdkiVySwGr+dCauPf60WFeyLyvRTrcZ1Dw"6317
+ }6318
+ },6319
+ "user_id": "@alice_1345:hs1",6320
+ "unsigned": {}6321
+ }6322
+ },6323
+ "@alice_1360:hs1": {6324
+ "ALICEDEVICE1360": {6325
+ "algorithms": [6326
+ "m.olm.v1.curve25519-aes-sha2",6327
+ "m.megolm.v1.aes-sha2"6328
+ ],6329
+ "device_id": "ALICEDEVICE1360",6330
+ "keys": {6331
+ "curve25519:ALICEDEVICE1360": "19S2Le7ROEVFSfQVBd15p+B/IRRyZBq6WxScr+DTV1g",6332
+ "ed25519:ALICEDEVICE1360": "hA9qbwtN6VxZq7pfuFri9VjLSNoVvCCn42zQ2S4pouI"6333
+ },6334
+ "signatures": {6335
+ "@alice_1360:hs1": {6336
+ "ed25519:ALICEDEVICE1360": "ROjYVkyLuNnr7c5jf0gP3ocGT4CJ2XMITg97fk17ntwGXDHcslRicRKI9jYEzWYCbognZjywnCTTk7XvpLu5Bg"6337
+ }6338
+ },6339
+ "user_id": "@alice_1360:hs1",6340
+ "unsigned": {}6341
+ }6342
+ },6343
+ "@alice_1361:hs1": {6344
+ "ALICEDEVICE1361": {6345
+ "algorithms": [6346
+ "m.olm.v1.curve25519-aes-sha2",6347
+ "m.megolm.v1.aes-sha2"6348
+ ],6349
+ "device_id": "ALICEDEVICE1361",6350
+ "keys": {6351
+ "curve25519:ALICEDEVICE1361": "sq/JHzw4n93y8M/ZKqxCdaaGHyNCpxarpXdY+dMuAEw",6352
+ "ed25519:ALICEDEVICE1361": "Y92YZSsX56ATieEN4Bwb73gVe4aS0ag+vvIgcaj94Go"6353
+ },6354
+ "signatures": {6355
+ "@alice_1361:hs1": {6356
+ "ed25519:ALICEDEVICE1361": "1hzVbzNxRffz+8hpxj3EKDK8a9dwYEP+NaMY8bWMBVjAgU/e4cGyYC6mmtqI5bLFCrZL1Xt6HJrSN0mBOJ4KBQ"6357
+ }6358
+ },6359
+ "user_id": "@alice_1361:hs1",6360
+ "unsigned": {}6361
+ }6362
+ },6363
+ "@alice_1378:hs1": {6364
+ "ALICEDEVICE1378": {6365
+ "algorithms": [6366
+ "m.olm.v1.curve25519-aes-sha2",6367
+ "m.megolm.v1.aes-sha2"6368
+ ],6369
+ "device_id": "ALICEDEVICE1378",6370
+ "keys": {6371
+ "curve25519:ALICEDEVICE1378": "I3T5zqAoRrCyOvfSrj55Sd93vsmtamDhisv3d4vUugI",6372
+ "ed25519:ALICEDEVICE1378": "JGCCW8Rmfd4J9g4EGHxrpzSBlh+8bAybNmxCHgmPfXg"6373
+ },6374
+ "signatures": {6375
+ "@alice_1378:hs1": {6376
+ "ed25519:ALICEDEVICE1378": "lnXdOKd7Y6f9gBWwwp98+v2iVt6RQJPnCmROoXLGMsa32wDEg9ai9tZd3JXt0/ZSuo+q0MQZzm3voN+4ECNUBg"6377
+ }6378
+ },6379
+ "user_id": "@alice_1378:hs1",6380
+ "unsigned": {}6381
+ }6382
+ },6383
+ "@alice_1403:hs1": {6384
+ "ALICEDEVICE1403": {6385
+ "algorithms": [6386
+ "m.olm.v1.curve25519-aes-sha2",6387
+ "m.megolm.v1.aes-sha2"6388
+ ],6389
+ "device_id": "ALICEDEVICE1403",6390
+ "keys": {6391
+ "curve25519:ALICEDEVICE1403": "WZP9B4yqp9vqa7C8JVic2QFGvABNY0w/TkdC0d45e0A",6392
+ "ed25519:ALICEDEVICE1403": "Y+LpZLvYFieb7w7fHcofOsJ7xqP+58bOYaaKU0SMTuE"6393
+ },6394
+ "signatures": {6395
+ "@alice_1403:hs1": {6396
+ "ed25519:ALICEDEVICE1403": "I5SaqR/Q7DxpsKEngtDCi11UFsKyDkvWw5Inda4QSV1cN5BHCmmfiqLG9LAjmIO+sLbX8DJ81TW5gKmRRqeLCQ"6397
+ }6398
+ },6399
+ "user_id": "@alice_1403:hs1",6400
+ "unsigned": {}6401
+ }6402
+ },6403
+ "@alice_1424:hs1": {6404
+ "ALICEDEVICE1424": {6405
+ "algorithms": [6406
+ "m.olm.v1.curve25519-aes-sha2",6407
+ "m.megolm.v1.aes-sha2"6408
+ ],6409
+ "device_id": "ALICEDEVICE1424",6410
+ "keys": {6411
+ "curve25519:ALICEDEVICE1424": "1xuLZCSX3lN1BOJbQ5zl5G79Uk2XP1UG56FBZSliIVg",6412
+ "ed25519:ALICEDEVICE1424": "3063vz+fexB65XCEUGR7XaMVS/fHxgGKYoampzXilSo"6413
+ },6414
+ "signatures": {6415
+ "@alice_1424:hs1": {6416
+ "ed25519:ALICEDEVICE1424": "nTJxWl/Q8Bzit5GqhaR1u4ERqmyX5bZPUbMMjG+fBcZdsxeQwemDZPEQkvAUa4OOl/R4wyD3t3ouK16C4/n4BQ"6417
+ }6418
+ },6419
+ "user_id": "@alice_1424:hs1",6420
+ "unsigned": {}6421
+ }6422
+ },6423
+ "@alice_1433:hs1": {6424
+ "ALICEDEVICE1433": {6425
+ "algorithms": [6426
+ "m.olm.v1.curve25519-aes-sha2",6427
+ "m.megolm.v1.aes-sha2"6428
+ ],6429
+ "device_id": "ALICEDEVICE1433",6430
+ "keys": {6431
+ "curve25519:ALICEDEVICE1433": "1PBNz19MfWynfU/35yznUPDH2cLExyzVPQgPz5dCKAg",6432
+ "ed25519:ALICEDEVICE1433": "Ry7nyIXbq25jMyDiiAGlmLfquIyIwSe0T2WqYD0bDdE"6433
+ },6434
+ "signatures": {6435
+ "@alice_1433:hs1": {6436
+ "ed25519:ALICEDEVICE1433": "dooVGAvP5nINxfSZmlogOAWGNFAFYcbKWm8H9Ucx0Iz4lzHEWPiXCqXW/1Zv23oGD4xR1VmyutuBS/aU2Vx+Ag"6437
+ }6438
+ },6439
+ "user_id": "@alice_1433:hs1",6440
+ "unsigned": {}6441
+ }6442
+ },6443
+ "@alice_1440:hs1": {6444
+ "ALICEDEVICE1440": {6445
+ "algorithms": [6446
+ "m.olm.v1.curve25519-aes-sha2",6447
+ "m.megolm.v1.aes-sha2"6448
+ ],6449
+ "device_id": "ALICEDEVICE1440",6450
+ "keys": {6451
+ "curve25519:ALICEDEVICE1440": "JFjqyLlLYdQ6dsOfauPlwty1aTn4wE7NPNdYKyRgKhQ",6452
+ "ed25519:ALICEDEVICE1440": "jMWawwpZhSlj7Mw5V/7pT8RTutLxEnlXOs2SJoq6KcY"6453
+ },6454
+ "signatures": {6455
+ "@alice_1440:hs1": {6456
+ "ed25519:ALICEDEVICE1440": "0AiKr6OCtcR5mJ/t9h/9sGoBGlDd2rYt2iCMcvPGH6mXjGuaIGE1h4MB+GeNfntnyvJSiHL29BqOEg+/6IXFCA"6457
+ }6458
+ },6459
+ "user_id": "@alice_1440:hs1",6460
+ "unsigned": {}6461
+ }6462
+ },6463
+ "@alice_1446:hs1": {6464
+ "ALICEDEVICE1446": {6465
+ "algorithms": [6466
+ "m.olm.v1.curve25519-aes-sha2",6467
+ "m.megolm.v1.aes-sha2"6468
+ ],6469
+ "device_id": "ALICEDEVICE1446",6470
+ "keys": {6471
+ "curve25519:ALICEDEVICE1446": "ARYnQ/yii5rxg2YyBFo9fQJ2G9Ns7usKcNZQ+JnjoBE",6472
+ "ed25519:ALICEDEVICE1446": "VNN+yrxE5fXYyvqxGpoSzIKjNuqBIe918AqohIciemE"6473
+ },6474
+ "signatures": {6475
+ "@alice_1446:hs1": {6476
+ "ed25519:ALICEDEVICE1446": "KUqbM1h39tvh7oi2RhoC1+aFOXha9CloH/A1vVFy1FO9My0icJATJDaEHU8iNwNV2R1XzITUMMTnt81sSZANDQ"6477
+ }6478
+ },6479
+ "user_id": "@alice_1446:hs1",6480
+ "unsigned": {}6481
+ }6482
+ },6483
+ "@alice_1454:hs1": {6484
+ "ALICEDEVICE1454": {6485
+ "algorithms": [6486
+ "m.olm.v1.curve25519-aes-sha2",6487
+ "m.megolm.v1.aes-sha2"6488
+ ],6489
+ "device_id": "ALICEDEVICE1454",6490
+ "keys": {6491
+ "curve25519:ALICEDEVICE1454": "oIwU3ydCjrzLcu8tZbF9cy9LhzuCR40fT9d9CTaLtSE",6492
+ "ed25519:ALICEDEVICE1454": "Ena+no5ziqKyTu7XAwyee/AqXe6yO0RmfO2T52gUQ1g"6493
+ },6494
+ "signatures": {6495
+ "@alice_1454:hs1": {6496
+ "ed25519:ALICEDEVICE1454": "c8L4+hP1Cv9jJ3W4qsP54vV/KW8glujASeRFwEom5V/sEzZykPE5Qm7uPPQPy+MZIRyDKw7eJbr+RGY3sXmsBw"6497
+ }6498
+ },6499
+ "user_id": "@alice_1454:hs1",6500
+ "unsigned": {}6501
+ }6502
+ },6503
+ "@alice_1464:hs1": {6504
+ "ALICEDEVICE1464": {6505
+ "algorithms": [6506
+ "m.olm.v1.curve25519-aes-sha2",6507
+ "m.megolm.v1.aes-sha2"6508
+ ],6509
+ "device_id": "ALICEDEVICE1464",6510
+ "keys": {6511
+ "curve25519:ALICEDEVICE1464": "+q+38kGDPbBUkCM2GJzGw7usBKpk02ADCvQnRsBuImI",6512
+ "ed25519:ALICEDEVICE1464": "oWR2TV1USZd6P0qVm/svxguwfH2dOP+t3EZqcCAHt0c"6513
+ },6514
+ "signatures": {6515
+ "@alice_1464:hs1": {6516
+ "ed25519:ALICEDEVICE1464": "bJTpCDrPtLfEO3Wu1HYShVTyP+aX8W4tGaNQjKQYygIPIR63P7GosoVk0HDgNXivcUdxY4dVRbVw8LOd1dGwDg"6517
+ }6518
+ },6519
+ "user_id": "@alice_1464:hs1",6520
+ "unsigned": {}6521
+ }6522
+ },6523
+ "@alice_1466:hs1": {6524
+ "ALICEDEVICE1466": {6525
+ "algorithms": [6526
+ "m.olm.v1.curve25519-aes-sha2",6527
+ "m.megolm.v1.aes-sha2"6528
+ ],6529
+ "device_id": "ALICEDEVICE1466",6530
+ "keys": {6531
+ "curve25519:ALICEDEVICE1466": "QuoGhW2u0NOc9Xh5Pnw2Fs2pXpqI7BB1L9+J7IbTuG4",6532
+ "ed25519:ALICEDEVICE1466": "u3iVa8JNvJS0tYM87/x2mKzECumw6Ai3aQdESUDeVgM"6533
+ },6534
+ "signatures": {6535
+ "@alice_1466:hs1": {6536
+ "ed25519:ALICEDEVICE1466": "H1COVo/m5vchqwP81YDAQE12MEdF+muk8RBYUVZvgHdWhO6RYMmiE3aKR+kpP0mpX56FWLR9Qo8ObA0ekrs4Bg"6537
+ }6538
+ },6539
+ "user_id": "@alice_1466:hs1",6540
+ "unsigned": {}6541
+ }6542
+ },6543
+ "@alice_14:hs1": {6544
+ "ALICEDEVICE14": {6545
+ "algorithms": [6546
+ "m.olm.v1.curve25519-aes-sha2",6547
+ "m.megolm.v1.aes-sha2"6548
+ ],6549
+ "device_id": "ALICEDEVICE14",6550
+ "keys": {6551
+ "curve25519:ALICEDEVICE14": "ZG834n9CBdTPkKQjKy7Bs43Dn1++KTSVd4XpX8dFWyo",6552
+ "ed25519:ALICEDEVICE14": "KEkoJ4UOCxJvEb1GPP0KgFBb/oUOAJqMlHKE1kZvbog"6553
+ },6554
+ "signatures": {6555
+ "@alice_14:hs1": {6556
+ "ed25519:ALICEDEVICE14": "F4hbILWTsW/ig6wmz0JCRQl2LafvQDSgfhkg8X+oGJUiC1febzRsqnKFLEMqom7Hvwv+c+qghCTnyb7SeoXwDQ"6557
+ }6558
+ },6559
+ "user_id": "@alice_14:hs1",6560
+ "unsigned": {}6561
+ }6562
+ },6563
+ "@alice_1506:hs1": {6564
+ "ALICEDEVICE1506": {6565
+ "algorithms": [6566
+ "m.olm.v1.curve25519-aes-sha2",6567
+ "m.megolm.v1.aes-sha2"6568
+ ],6569
+ "device_id": "ALICEDEVICE1506",6570
+ "keys": {6571
+ "curve25519:ALICEDEVICE1506": "vGp6n+H874RVxFfz1m8qFmGficuwTOKpjsottJIFzCs",6572
+ "ed25519:ALICEDEVICE1506": "VyhqyY4DsKdb+pnYYgRP0/uLdgwFIy7ZYGwZ2ICDTlY"6573
+ },6574
+ "signatures": {6575
+ "@alice_1506:hs1": {6576
+ "ed25519:ALICEDEVICE1506": "TxJ/Er+bNqxofUKtDdxj6QYS93pXuT6mEcURtQG0hWT77OBDX4beqs33SbCRPIrQ5TOMr9CWNRiKHweTbrpeDg"6577
+ }6578
+ },6579
+ "user_id": "@alice_1506:hs1",6580
+ "unsigned": {}6581
+ }6582
+ },6583
+ "@alice_1526:hs1": {6584
+ "ALICEDEVICE1526": {6585
+ "algorithms": [6586
+ "m.olm.v1.curve25519-aes-sha2",6587
+ "m.megolm.v1.aes-sha2"6588
+ ],6589
+ "device_id": "ALICEDEVICE1526",6590
+ "keys": {6591
+ "curve25519:ALICEDEVICE1526": "X7ijRfneImfARTjQkEFYpjmVvqgfmSRK89vK3XX6jWQ",6592
+ "ed25519:ALICEDEVICE1526": "gnSMbZ1M5I/SJ5wuGFi/NPmkogs8g/3y1xaTWFpA91o"6593
+ },6594
+ "signatures": {6595
+ "@alice_1526:hs1": {6596
+ "ed25519:ALICEDEVICE1526": "bBlTNDOnZE147sql8XahwJ46wt2UkQpWxIkJSN/pJSQEQAD1i6ToGxggmV/N2Tk2KnHaut6VxX9cIw+mSQlzDg"6597
+ }6598
+ },6599
+ "user_id": "@alice_1526:hs1",6600
+ "unsigned": {}6601
+ }6602
+ },6603
+ "@alice_152:hs1": {6604
+ "ALICEDEVICE152": {6605
+ "algorithms": [6606
+ "m.olm.v1.curve25519-aes-sha2",6607
+ "m.megolm.v1.aes-sha2"6608
+ ],6609
+ "device_id": "ALICEDEVICE152",6610
+ "keys": {6611
+ "curve25519:ALICEDEVICE152": "yTKUAg2ty94TTpocWw99oNHfW1eFIKngR2D/xB8FJSw",6612
+ "ed25519:ALICEDEVICE152": "fzvHZROLvIekirRU6nPHnds3zh4Xy0KJTL+ICnPiuAk"6613
+ },6614
+ "signatures": {6615
+ "@alice_152:hs1": {6616
+ "ed25519:ALICEDEVICE152": "/VAutFhjV+boe3wZ5J4FFXZ3NULwSgyUXyYaQxx8zVyK4U0+jBUAOy13E/uFnM5NoOB6pErE3SRHeQrFHrgDDg"6617
+ }6618
+ },6619
+ "user_id": "@alice_152:hs1",6620
+ "unsigned": {}6621
+ }6622
+ },6623
+ "@alice_1532:hs1": {6624
+ "ALICEDEVICE1532": {6625
+ "algorithms": [6626
+ "m.olm.v1.curve25519-aes-sha2",6627
+ "m.megolm.v1.aes-sha2"6628
+ ],6629
+ "device_id": "ALICEDEVICE1532",6630
+ "keys": {6631
+ "curve25519:ALICEDEVICE1532": "AG03xCzDULx5+qgY8HiG20/rOSQEOzOLPNyJ9IRccTw",6632
+ "ed25519:ALICEDEVICE1532": "oNNgcmmy9eys1YU29hqpQM0NYHnGkQ1ESqLfGsnIPoQ"6633
+ },6634
+ "signatures": {6635
+ "@alice_1532:hs1": {6636
+ "ed25519:ALICEDEVICE1532": "QElUexMAifj1kljNBABTTgSd11g/4YfRvCnWPuPszk2VBCg+PVamyp23xi/liwRNeTsCrSG2CS68ggr8z4DyBw"6637
+ }6638
+ },6639
+ "user_id": "@alice_1532:hs1",6640
+ "unsigned": {}6641
+ }6642
+ },6643
+ "@alice_1533:hs1": {6644
+ "ALICEDEVICE1533": {6645
+ "algorithms": [6646
+ "m.olm.v1.curve25519-aes-sha2",6647
+ "m.megolm.v1.aes-sha2"6648
+ ],6649
+ "device_id": "ALICEDEVICE1533",6650
+ "keys": {6651
+ "curve25519:ALICEDEVICE1533": "ICG42Ud9tIy+mQLSY+hHUJrSIhbag6aiquY2CloqHFs",6652
+ "ed25519:ALICEDEVICE1533": "XdKhsDdRaa+oK+z1+0gEK9VJsMjZJRyRVyT0NkESJGs"6653
+ },6654
+ "signatures": {6655
+ "@alice_1533:hs1": {6656
+ "ed25519:ALICEDEVICE1533": "hHliX9iBmYzV3IEjs0bv7W+Mqb6D7kqD24iNwBIATGqH004lwg/HBJgOAXPlNM1tnbj7szRksf5wbQSffdF6Cw"6657
+ }6658
+ },6659
+ "user_id": "@alice_1533:hs1",6660
+ "unsigned": {}6661
+ }6662
+ },6663
+ "@alice_1534:hs1": {6664
+ "ALICEDEVICE1534": {6665
+ "algorithms": [6666
+ "m.olm.v1.curve25519-aes-sha2",6667
+ "m.megolm.v1.aes-sha2"6668
+ ],6669
+ "device_id": "ALICEDEVICE1534",6670
+ "keys": {6671
+ "curve25519:ALICEDEVICE1534": "aYTVUF0KBB1EUGBpxYMpVG9JrhG0Oq5JJWGhTiaas1Y",6672
+ "ed25519:ALICEDEVICE1534": "YjZaxZ5FQ+95pBOQSmVUUj6sUHa4xAmT6ldHMJOiNU0"6673
+ },6674
+ "signatures": {6675
+ "@alice_1534:hs1": {6676
+ "ed25519:ALICEDEVICE1534": "SvN2aip12e/DZQyNatQeqNKyuhqFG1ULZ6mVIXZVndI9Pzi3qe+b7JS81qv/D/wyWhQ6sHYMxnURv20Kwf8qAQ"6677
+ }6678
+ },6679
+ "user_id": "@alice_1534:hs1",6680
+ "unsigned": {}6681
+ }6682
+ },6683
+ "@alice_1535:hs1": {6684
+ "ALICEDEVICE1535": {6685
+ "algorithms": [6686
+ "m.olm.v1.curve25519-aes-sha2",6687
+ "m.megolm.v1.aes-sha2"6688
+ ],6689
+ "device_id": "ALICEDEVICE1535",6690
+ "keys": {6691
+ "curve25519:ALICEDEVICE1535": "ik0yjvGq4Book0LdDfPZM/o9voMcQlp3zDyQfdylois",6692
+ "ed25519:ALICEDEVICE1535": "rwIVYP4ZbjryOBBGP6IVUj+3CCW9sdUUisEB0ktA27c"6693
+ },6694
+ "signatures": {6695
+ "@alice_1535:hs1": {6696
+ "ed25519:ALICEDEVICE1535": "7GC59N7vXhe9TEhG8G6ZocCmnr8RxFrn+LGe2tyqkapvSB/y4j2VZozr7dQkhIdZXOUq/oCcy7OtYzG8YpV4Bg"6697
+ }6698
+ },6699
+ "user_id": "@alice_1535:hs1",6700
+ "unsigned": {}6701
+ }6702
+ },6703
+ "@alice_1546:hs1": {6704
+ "ALICEDEVICE1546": {6705
+ "algorithms": [6706
+ "m.olm.v1.curve25519-aes-sha2",6707
+ "m.megolm.v1.aes-sha2"6708
+ ],6709
+ "device_id": "ALICEDEVICE1546",6710
+ "keys": {6711
+ "curve25519:ALICEDEVICE1546": "26e2+klBdXcJzZEe0p+DpPbKAVq4PisP6m/j0YW60z4",6712
+ "ed25519:ALICEDEVICE1546": "lBOTrOj1Di2FPy/tVBvWt15zqqdqWqNcn1ynmZmbHDk"6713
+ },6714
+ "signatures": {6715
+ "@alice_1546:hs1": {6716
+ "ed25519:ALICEDEVICE1546": "D2dYoLbzKAA7AfNev4ktJYlBj+xD78xzQwtw/LlqhA96o2TjnmcaCI3SakQDZYbR5UVniVMlLLQDgoj8C67NAQ"6717
+ }6718
+ },6719
+ "user_id": "@alice_1546:hs1",6720
+ "unsigned": {}6721
+ }6722
+ },6723
+ "@alice_1548:hs1": {6724
+ "ALICEDEVICE1548": {6725
+ "algorithms": [6726
+ "m.olm.v1.curve25519-aes-sha2",6727
+ "m.megolm.v1.aes-sha2"6728
+ ],6729
+ "device_id": "ALICEDEVICE1548",6730
+ "keys": {6731
+ "curve25519:ALICEDEVICE1548": "Y04/XsKatMk5JPI7YcqW4SBBVGQL1lG04cYy9O0yIjc",6732
+ "ed25519:ALICEDEVICE1548": "ItCGg1KnMH4Q3jvLoF9H295txMyMdyKPqMhiwY38dQU"6733
+ },6734
+ "signatures": {6735
+ "@alice_1548:hs1": {6736
+ "ed25519:ALICEDEVICE1548": "0JVBt3OBASYXNkZSVtsk/ha1LYUz+CHiUo5yVB0Tl3qePfja8s8MPIByLpMMq79EPfLOFCgfSf3WAWnJwNv/Aw"6737
+ }6738
+ },6739
+ "user_id": "@alice_1548:hs1",6740
+ "unsigned": {}6741
+ }6742
+ },6743
+ "@alice_1551:hs1": {6744
+ "ALICEDEVICE1551": {6745
+ "algorithms": [6746
+ "m.olm.v1.curve25519-aes-sha2",6747
+ "m.megolm.v1.aes-sha2"6748
+ ],6749
+ "device_id": "ALICEDEVICE1551",6750
+ "keys": {6751
+ "curve25519:ALICEDEVICE1551": "pTWhfcPguy4jtr84HhjSWcoOelKaiXw1STcH01xrhWg",6752
+ "ed25519:ALICEDEVICE1551": "KqS0TMkfJvjpO/mCz+DoQmaX/oJztQt4DFTwUb5c3r8"6753
+ },6754
+ "signatures": {6755
+ "@alice_1551:hs1": {6756
+ "ed25519:ALICEDEVICE1551": "q/MbEyMvYWFsxEXXipnMLcRimPPKoib3hH5Y+4v0/RchSyX6CdFPBoyVoNZD6guMqaV2SfYc+vFQu8o0dhE2Bg"6757
+ }6758
+ },6759
+ "user_id": "@alice_1551:hs1",6760
+ "unsigned": {}6761
+ }6762
+ },6763
+ "@alice_1555:hs1": {6764
+ "ALICEDEVICE1555": {6765
+ "algorithms": [6766
+ "m.olm.v1.curve25519-aes-sha2",6767
+ "m.megolm.v1.aes-sha2"6768
+ ],6769
+ "device_id": "ALICEDEVICE1555",6770
+ "keys": {6771
+ "curve25519:ALICEDEVICE1555": "v2niosa88aGTymfXWH7rfan6S898gB9FsmhVksU6Amg",6772
+ "ed25519:ALICEDEVICE1555": "D0GwYFcOBmTdmvUymSCxvhaEnQZrqxhAlHLojJ7UhjU"6773
+ },6774
+ "signatures": {6775
+ "@alice_1555:hs1": {6776
+ "ed25519:ALICEDEVICE1555": "VefL6fibeX9YI/PyW1N4IVMzzlvGTyjzj6QjNp+k+aBZ90fMSzZ7WDtVecZhS5mVBa0X9md6YhyLNHRmI688Aw"6777
+ }6778
+ },6779
+ "user_id": "@alice_1555:hs1",6780
+ "unsigned": {}6781
+ }6782
+ },6783
+ "@alice_1559:hs1": {6784
+ "ALICEDEVICE1559": {6785
+ "algorithms": [6786
+ "m.olm.v1.curve25519-aes-sha2",6787
+ "m.megolm.v1.aes-sha2"6788
+ ],6789
+ "device_id": "ALICEDEVICE1559",6790
+ "keys": {6791
+ "curve25519:ALICEDEVICE1559": "5NWzHz1IrWg9GpHsqCGkpwJ4+SGo2j4WRluhuN1G7gA",6792
+ "ed25519:ALICEDEVICE1559": "q5lTrSzlQ3TW+/7Xg2rDEHkHW7aP7M+drmv4iCGLdpo"6793
+ },6794
+ "signatures": {6795
+ "@alice_1559:hs1": {6796
+ "ed25519:ALICEDEVICE1559": "gb6aJR1ywHBj+a4KBuE1ukRBwXvDQjj1uEmAT2FTON/kSeCEW4Egc9cv0fV6XBFs+EyQpQd1lBSjB1t7c0xrAw"6797
+ }6798
+ },6799
+ "user_id": "@alice_1559:hs1",6800
+ "unsigned": {}6801
+ }6802
+ },6803
+ "@alice_1571:hs1": {6804
+ "ALICEDEVICE1571": {6805
+ "algorithms": [6806
+ "m.olm.v1.curve25519-aes-sha2",6807
+ "m.megolm.v1.aes-sha2"6808
+ ],6809
+ "device_id": "ALICEDEVICE1571",6810
+ "keys": {6811
+ "curve25519:ALICEDEVICE1571": "bmb+zTm47k2LWtavuv9nFscPFIxHjdNh7iVE3BWwZTY",6812
+ "ed25519:ALICEDEVICE1571": "p+B5Yru9xm1XPrpkbw4zGfT96oxpjBTHM6Wb4tS4tdg"6813
+ },6814
+ "signatures": {6815
+ "@alice_1571:hs1": {6816
+ "ed25519:ALICEDEVICE1571": "p2FwcydxwLQFh3fiVtGy2Wz2VCO0yKgdpOHuvElBYmpan+WBLsm0XaNndMCbgp3GLPkRUTrNYkyGs4RYIS/hBQ"6817
+ }6818
+ },6819
+ "user_id": "@alice_1571:hs1",6820
+ "unsigned": {}6821
+ }6822
+ },6823
+ "@alice_1585:hs1": {6824
+ "ALICEDEVICE1585": {6825
+ "algorithms": [6826
+ "m.olm.v1.curve25519-aes-sha2",6827
+ "m.megolm.v1.aes-sha2"6828
+ ],6829
+ "device_id": "ALICEDEVICE1585",6830
+ "keys": {6831
+ "curve25519:ALICEDEVICE1585": "JoWpfGtW83+PT5uiiRE56rYid/NDXRWxfapVvoryigA",6832
+ "ed25519:ALICEDEVICE1585": "ybf7snSZrBVQav+Yx0qVcJ6WMOwOFBfVRs8UxsWWqmQ"6833
+ },6834
+ "signatures": {6835
+ "@alice_1585:hs1": {6836
+ "ed25519:ALICEDEVICE1585": "0R7j2cEWgYKuRUB6uTORL/NbOTNZQFhAMO2EToh+taPmmT9P0YPSTomtnLvnXqDLoQoj7b3mJG+e+dcU0VIWDA"6837
+ }6838
+ },6839
+ "user_id": "@alice_1585:hs1",6840
+ "unsigned": {}6841
+ }6842
+ },6843
+ "@alice_1586:hs1": {6844
+ "ALICEDEVICE1586": {6845
+ "algorithms": [6846
+ "m.olm.v1.curve25519-aes-sha2",6847
+ "m.megolm.v1.aes-sha2"6848
+ ],6849
+ "device_id": "ALICEDEVICE1586",6850
+ "keys": {6851
+ "curve25519:ALICEDEVICE1586": "bIT9IQMWiUwWvrjltQNMxeglK+enUiqN49Q1QUGiM34",6852
+ "ed25519:ALICEDEVICE1586": "i0mQmk6twCHZMnGh22eAxETVv9BZlZFwMOrm5Ketm6E"6853
+ },6854
+ "signatures": {6855
+ "@alice_1586:hs1": {6856
+ "ed25519:ALICEDEVICE1586": "/bTrbyPG8kLHEEyWyKA/QJi19rA2tPknxg8iI6DRNkfIPF2NwQV2jCW1SV8mLzOXLqhKVWQBwC7kvTyVUFFUBA"6857
+ }6858
+ },6859
+ "user_id": "@alice_1586:hs1",6860
+ "unsigned": {}6861
+ }6862
+ },6863
+ "@alice_159:hs1": {6864
+ "ALICEDEVICE159": {6865
+ "algorithms": [6866
+ "m.olm.v1.curve25519-aes-sha2",6867
+ "m.megolm.v1.aes-sha2"6868
+ ],6869
+ "device_id": "ALICEDEVICE159",6870
+ "keys": {6871
+ "curve25519:ALICEDEVICE159": "FvW4/8ScIqWiS7oFZUcGAYEsBXUvP17jFEfyPeqvCVk",6872
+ "ed25519:ALICEDEVICE159": "Wzb6W4IGgigeIaAfX5j89xYtey/m9nSF7YqFxtDH8AQ"6873
+ },6874
+ "signatures": {6875
+ "@alice_159:hs1": {6876
+ "ed25519:ALICEDEVICE159": "IZ/3cI8+muXgJnwmiVeFu3s8TU7BuSXboyc7/QdRiZ6K7maeme6cKGM+HG0F2nlx9tEqzE/Pe8yj3Nv9dA9+Dw"6877
+ }6878
+ },6879
+ "user_id": "@alice_159:hs1",6880
+ "unsigned": {}6881
+ }6882
+ },6883
+ "@alice_15:hs1": {6884
+ "ALICEDEVICE15": {6885
+ "algorithms": [6886
+ "m.olm.v1.curve25519-aes-sha2",6887
+ "m.megolm.v1.aes-sha2"6888
+ ],6889
+ "device_id": "ALICEDEVICE15",6890
+ "keys": {6891
+ "curve25519:ALICEDEVICE15": "gtg4tgRJtzY9n3ifxOgc4krEpgoZc4QNj8lJLGe3+lc",6892
+ "ed25519:ALICEDEVICE15": "k6riL+S821WuiMHKltsuQoQ2q8gzG0JZ2VN7PI7zPb4"6893
+ },6894
+ "signatures": {6895
+ "@alice_15:hs1": {6896
+ "ed25519:ALICEDEVICE15": "9Egq7JVEw9PcDzwAAaNuZFEhcZj/OBWC0vp1QO5mESMRJBNvxCRcTYqdOEmZ3hI4JgYnSekcKeBvPMCN9FZQDA"6897
+ }6898
+ },6899
+ "user_id": "@alice_15:hs1",6900
+ "unsigned": {}6901
+ }6902
+ },6903
+ "@alice_1603:hs1": {6904
+ "ALICEDEVICE1603": {6905
+ "algorithms": [6906
+ "m.olm.v1.curve25519-aes-sha2",6907
+ "m.megolm.v1.aes-sha2"6908
+ ],6909
+ "device_id": "ALICEDEVICE1603",6910
+ "keys": {6911
+ "curve25519:ALICEDEVICE1603": "G5VU+QveZ/QwGSGK0KLIII3RaqSLNpFgXtK3MeGvYn8",6912
+ "ed25519:ALICEDEVICE1603": "ZFeAoGJeK8khF0rh7zuFIliqh9ZUQA4xVzoiGFtC8ZU"6913
+ },6914
+ "signatures": {6915
+ "@alice_1603:hs1": {6916
+ "ed25519:ALICEDEVICE1603": "ezhdcJZHHITRTrUjLOJHJ81ILzW8PxWmv05nOTM5KKjjC4GdEldxUfEFRBLlD43kyxIc5LacNN7oHKl8b2mcCA"6917
+ }6918
+ },6919
+ "user_id": "@alice_1603:hs1",6920
+ "unsigned": {}6921
+ }6922
+ },6923
+ "@alice_1621:hs1": {6924
+ "ALICEDEVICE1621": {6925
+ "algorithms": [6926
+ "m.olm.v1.curve25519-aes-sha2",6927
+ "m.megolm.v1.aes-sha2"6928
+ ],6929
+ "device_id": "ALICEDEVICE1621",6930
+ "keys": {6931
+ "curve25519:ALICEDEVICE1621": "K1WO/9zLAETt67f5syYg2LkwJTgCCcJjx93+msFTFzw",6932
+ "ed25519:ALICEDEVICE1621": "PDazTaupv2ovNAK1nHU+jp33NT8GT0smLfNKZVZqUAs"6933
+ },6934
+ "signatures": {6935
+ "@alice_1621:hs1": {6936
+ "ed25519:ALICEDEVICE1621": "j1C8KWVKlQkZZ8xwd1hOkUpUSjQ1sT5r8GjfUT0WvZt+FQW9pAhbCI2G+5Rpdc4nsDY20uDt3wbP9dyFOoGtDA"6937
+ }6938
+ },6939
+ "user_id": "@alice_1621:hs1",6940
+ "unsigned": {}6941
+ }6942
+ },6943
+ "@alice_1627:hs1": {6944
+ "ALICEDEVICE1627": {6945
+ "algorithms": [6946
+ "m.olm.v1.curve25519-aes-sha2",6947
+ "m.megolm.v1.aes-sha2"6948
+ ],6949
+ "device_id": "ALICEDEVICE1627",6950
+ "keys": {6951
+ "curve25519:ALICEDEVICE1627": "WK4zSz0d4a2FrQk3GXUWi2F4nRJyJ/7f8XeqzjaZJRc",6952
+ "ed25519:ALICEDEVICE1627": "qVZpUr5BhcyDiZ0mzSbRkGDFrJkbmh+1ovMB/nInI+o"6953
+ },6954
+ "signatures": {6955
+ "@alice_1627:hs1": {6956
+ "ed25519:ALICEDEVICE1627": "JyoTvMuRLKsu0A8RCVMiSCZoQFyqf7yVrrrpz03CO7Rsv1Cjeu4ZVDbLDiN0BIsyazjvpaQCrwwRVy+QeubMAA"6957
+ }6958
+ },6959
+ "user_id": "@alice_1627:hs1",6960
+ "unsigned": {}6961
+ }6962
+ },6963
+ "@alice_1642:hs1": {6964
+ "ALICEDEVICE1642": {6965
+ "algorithms": [6966
+ "m.olm.v1.curve25519-aes-sha2",6967
+ "m.megolm.v1.aes-sha2"6968
+ ],6969
+ "device_id": "ALICEDEVICE1642",6970
+ "keys": {6971
+ "curve25519:ALICEDEVICE1642": "ooCgF2UrKEvIbZowDpIWVgfqyaiP/8u32xsXa9ce+1Y",6972
+ "ed25519:ALICEDEVICE1642": "lAoAPKatrYT3MUBJejRMtQhGv/Pat4SMCw6t1sqMKp0"6973
+ },6974
+ "signatures": {6975
+ "@alice_1642:hs1": {6976
+ "ed25519:ALICEDEVICE1642": "UYTEtJkQnjEooPyz0R2lbswkQuPXyK3DNsT+pNKhDTg1l6JAjYpAgXtc7eOoAylgzPrMvTALr7goAIbSxg1cAQ"6977
+ }6978
+ },6979
+ "user_id": "@alice_1642:hs1",6980
+ "unsigned": {}6981
+ }6982
+ },6983
+ "@alice_1643:hs1": {6984
+ "ALICEDEVICE1643": {6985
+ "algorithms": [6986
+ "m.olm.v1.curve25519-aes-sha2",6987
+ "m.megolm.v1.aes-sha2"6988
+ ],6989
+ "device_id": "ALICEDEVICE1643",6990
+ "keys": {6991
+ "curve25519:ALICEDEVICE1643": "Mr7y9hQLRgtHBnVgejlfeh0lPcWeTa27kgTu+hBbRFQ",6992
+ "ed25519:ALICEDEVICE1643": "XxlTr4QVKMWMATbSzqZq8LHyxoyEwyx6kPKmtkfnJUE"6993
+ },6994
+ "signatures": {6995
+ "@alice_1643:hs1": {6996
+ "ed25519:ALICEDEVICE1643": "XydMZm+JQDBJbrde2WVZnPk6pnB41EjtFE4P3Uqea1KaTljKt1fhsfHMXNxFj+XAirot8cZLMS9RP5JK27WGCA"6997
+ }6998
+ },6999
+ "user_id": "@alice_1643:hs1",7000
+ "unsigned": {}7001
+ }7002
+ },7003
+ "@alice_164:hs1": {7004
+ "ALICEDEVICE164": {7005
+ "algorithms": [7006
+ "m.olm.v1.curve25519-aes-sha2",7007
+ "m.megolm.v1.aes-sha2"7008
+ ],7009
+ "device_id": "ALICEDEVICE164",7010
+ "keys": {7011
+ "curve25519:ALICEDEVICE164": "CiyCLLRWKFCZXXXQjMVOhF7idmaK7NbOmAOBYK7FwS0",7012
+ "ed25519:ALICEDEVICE164": "AOZ8tnycdxDAUeJFwj2CIGaibMmrjUpVS3jM/Usui7o"7013
+ },7014
+ "signatures": {7015
+ "@alice_164:hs1": {7016
+ "ed25519:ALICEDEVICE164": "xPA021/51awg2hhSFIxyw27isaZRfTb0QYsXg6rSrPF8N81zo7VqtcHHK/2A+Vqr79peqrrNIfcaZ/WRhO8WDA"7017
+ }7018
+ },7019
+ "user_id": "@alice_164:hs1",7020
+ "unsigned": {}7021
+ }7022
+ },7023
+ "@alice_1652:hs1": {7024
+ "ALICEDEVICE1652": {7025
+ "algorithms": [7026
+ "m.olm.v1.curve25519-aes-sha2",7027
+ "m.megolm.v1.aes-sha2"7028
+ ],7029
+ "device_id": "ALICEDEVICE1652",7030
+ "keys": {7031
+ "curve25519:ALICEDEVICE1652": "nXUhNDGtj+rjbl1C8izX90F/PnYPZh47bcjN4DZZhhs",7032
+ "ed25519:ALICEDEVICE1652": "hqyBGu3wmrzWzJY+HPRQgVkhUOPpXUP+R+QcptWrGEc"7033
+ },7034
+ "signatures": {7035
+ "@alice_1652:hs1": {7036
+ "ed25519:ALICEDEVICE1652": "oG/JtRwkPqMgftsrbJSY5QYt+ogreKtAXkfyF0969It0E97t11t8oO/wKZzpYDX2kKcIJNusE+S3Oyt5EsVIDw"7037
+ }7038
+ },7039
+ "user_id": "@alice_1652:hs1",7040
+ "unsigned": {}7041
+ }7042
+ },7043
+ "@alice_1658:hs1": {7044
+ "ALICEDEVICE1658": {7045
+ "algorithms": [7046
+ "m.olm.v1.curve25519-aes-sha2",7047
+ "m.megolm.v1.aes-sha2"7048
+ ],7049
+ "device_id": "ALICEDEVICE1658",7050
+ "keys": {7051
+ "curve25519:ALICEDEVICE1658": "1gRuaS0MQO01JyWV9ipgdqiNbdZK15w5g5vYXCbbTl4",7052
+ "ed25519:ALICEDEVICE1658": "i8/ITb1nZgMtUBK2i2tYPk/AA0XZoAP4jb6ZTHsrC1w"7053
+ },7054
+ "signatures": {7055
+ "@alice_1658:hs1": {7056
+ "ed25519:ALICEDEVICE1658": "KNlT/JOCka/zx5hYC5HHJcS3IEz1Ikg4+4FiYOu16K2KUHtx8GfZJywUccxQbwfD2WC1EDK+tnbwroZpjKf+AQ"7057
+ }7058
+ },7059
+ "user_id": "@alice_1658:hs1",7060
+ "unsigned": {}7061
+ }7062
+ },7063
+ "@alice_1660:hs1": {7064
+ "ALICEDEVICE1660": {7065
+ "algorithms": [7066
+ "m.olm.v1.curve25519-aes-sha2",7067
+ "m.megolm.v1.aes-sha2"7068
+ ],7069
+ "device_id": "ALICEDEVICE1660",7070
+ "keys": {7071
+ "curve25519:ALICEDEVICE1660": "y8pUCtxsTJBZLZU/ARKd6at40EOC+uLZd6cBnAJF8SI",7072
+ "ed25519:ALICEDEVICE1660": "TEnnZM3IGSK+QziziMKTYRqwg2da1UXLF+LUlWrila4"7073
+ },7074
+ "signatures": {7075
+ "@alice_1660:hs1": {7076
+ "ed25519:ALICEDEVICE1660": "egVWMzzFE7ZTXNA6zLQ3M3pZCzTf6mgwrXwjUTOyF+RpVNEHUP6Onh410Im3mUU8mGSwxHydZib9OQAzHXCPBw"7077
+ }7078
+ },7079
+ "user_id": "@alice_1660:hs1",7080
+ "unsigned": {}7081
+ }7082
+ },7083
+ "@alice_1667:hs1": {7084
+ "ALICEDEVICE1667": {7085
+ "algorithms": [7086
+ "m.olm.v1.curve25519-aes-sha2",7087
+ "m.megolm.v1.aes-sha2"7088
+ ],7089
+ "device_id": "ALICEDEVICE1667",7090
+ "keys": {7091
+ "curve25519:ALICEDEVICE1667": "J/c1Z7wiVHB/BD1I5Jyr+/TcbMI6HGqb86cPULOOWxw",7092
+ "ed25519:ALICEDEVICE1667": "ctO8sX7CJdfyYoDF9SEfqMwTlg8GbZ2qGNhJ/WS/o3M"7093
+ },7094
+ "signatures": {7095
+ "@alice_1667:hs1": {7096
+ "ed25519:ALICEDEVICE1667": "KndqPMgkliUTYf8J1514aiPrjcWPwPUCf+VvnqjHSdKS698Qe4USMoplAWFq/aIVR53XK+8Zw3G9mNTXF77qCA"7097
+ }7098
+ },7099
+ "user_id": "@alice_1667:hs1",7100
+ "unsigned": {}7101
+ }7102
+ },7103
+ "@alice_1677:hs1": {7104
+ "ALICEDEVICE1677": {7105
+ "algorithms": [7106
+ "m.olm.v1.curve25519-aes-sha2",7107
+ "m.megolm.v1.aes-sha2"7108
+ ],7109
+ "device_id": "ALICEDEVICE1677",7110
+ "keys": {7111
+ "curve25519:ALICEDEVICE1677": "NCo9OP6NjDRuUQAZ3hjWUvaBUu2+VOWRdWlMEYG6vRM",7112
+ "ed25519:ALICEDEVICE1677": "OQUs9sOplQVaVtrsfXD3CAzSlpvIJCNoLFdQXhkNfZI"7113
+ },7114
+ "signatures": {7115
+ "@alice_1677:hs1": {7116
+ "ed25519:ALICEDEVICE1677": "Af5O+Zv0IpjWk0iqUTgYTeSiJFzmaAlVEsy5WMXX9Eg5Xb8EtCem7bcNpI8r8J25STMIm8PeTFmQm96S+ds5BA"7117
+ }7118
+ },7119
+ "user_id": "@alice_1677:hs1",7120
+ "unsigned": {}7121
+ }7122
+ },7123
+ "@alice_1686:hs1": {7124
+ "ALICEDEVICE1686": {7125
+ "algorithms": [7126
+ "m.olm.v1.curve25519-aes-sha2",7127
+ "m.megolm.v1.aes-sha2"7128
+ ],7129
+ "device_id": "ALICEDEVICE1686",7130
+ "keys": {7131
+ "curve25519:ALICEDEVICE1686": "uhVbcZpfyDFrEXgvC64qtbfWHz+Ujq9kw3zvtvM66mc",7132
+ "ed25519:ALICEDEVICE1686": "kVjsGwH1bit2ffRoFHUi0F0xIUWpAc2g/NYkeoU6YVQ"7133
+ },7134
+ "signatures": {7135
+ "@alice_1686:hs1": {7136
+ "ed25519:ALICEDEVICE1686": "StNpEJ4Un7dg/mmff6Z9Etc9AJQ8nJlykXy65p/iPxLnn5mIp9I2IhA4dO0ePwhWee+hLaZb7ZbnKfU0GA1sBA"7137
+ }7138
+ },7139
+ "user_id": "@alice_1686:hs1",7140
+ "unsigned": {}7141
+ }7142
+ },7143
+ "@alice_1688:hs1": {7144
+ "ALICEDEVICE1688": {7145
+ "algorithms": [7146
+ "m.olm.v1.curve25519-aes-sha2",7147
+ "m.megolm.v1.aes-sha2"7148
+ ],7149
+ "device_id": "ALICEDEVICE1688",7150
+ "keys": {7151
+ "curve25519:ALICEDEVICE1688": "BgfalxguiirDWgDfv17L8o7owLyLshv8ML8XkXHpcFc",7152
+ "ed25519:ALICEDEVICE1688": "b7a0sqxZo5sPh+e3yDo7mPeZkGsSKuc/UfLNzzxvNPw"7153
+ },7154
+ "signatures": {7155
+ "@alice_1688:hs1": {7156
+ "ed25519:ALICEDEVICE1688": "DQRQH7hHBrWuirXNsqEJRxbsnkMqZMRqAErQdrSmMJoRKAPsCMThWk58ikf+BEwZz3MsnZiFssb0emK8ZPuNCA"7157
+ }7158
+ },7159
+ "user_id": "@alice_1688:hs1",7160
+ "unsigned": {}7161
+ }7162
+ },7163
+ "@alice_1697:hs1": {7164
+ "ALICEDEVICE1697": {7165
+ "algorithms": [7166
+ "m.olm.v1.curve25519-aes-sha2",7167
+ "m.megolm.v1.aes-sha2"7168
+ ],7169
+ "device_id": "ALICEDEVICE1697",7170
+ "keys": {7171
+ "curve25519:ALICEDEVICE1697": "nWR1fN87z9ht76PmNsYexj6eK7YhVR3k4nDdsPJqshc",7172
+ "ed25519:ALICEDEVICE1697": "s5lzLpbTmRCgCEOa9sm95jV63WchXjhtXu3SRgK79RE"7173
+ },7174
+ "signatures": {7175
+ "@alice_1697:hs1": {7176
+ "ed25519:ALICEDEVICE1697": "mHY1waGvk/xWGe47/8Zo1sqFy5YGMmioLLPQR8ktmQSD3oTPDUSM7yCNJrHDhHDR4bTwAUQuKpnUPrPrEVOECA"7177
+ }7178
+ },7179
+ "user_id": "@alice_1697:hs1",7180
+ "unsigned": {}7181
+ }7182
+ },7183
+ "@alice_1710:hs1": {7184
+ "ALICEDEVICE1710": {7185
+ "algorithms": [7186
+ "m.olm.v1.curve25519-aes-sha2",7187
+ "m.megolm.v1.aes-sha2"7188
+ ],7189
+ "device_id": "ALICEDEVICE1710",7190
+ "keys": {7191
+ "curve25519:ALICEDEVICE1710": "r/CKod68YACXYSafmS1dBKkYVKaT5VNpLqzLkiBlKQE",7192
+ "ed25519:ALICEDEVICE1710": "YLqvAENRYFSWOmri0efoj2Uf9aUCf8ku4kcdI3Ztqxk"7193
+ },7194
+ "signatures": {7195
+ "@alice_1710:hs1": {7196
+ "ed25519:ALICEDEVICE1710": "PlR8RIQTcFob7E3O7JmVgyd4sA+Em01s8CbyoMyDvgDEE/r0iQWTpMnr9fohJ/r7fvuX3m4q7hpNmYAHl8IEAw"7197
+ }7198
+ },7199
+ "user_id": "@alice_1710:hs1",7200
+ "unsigned": {}7201
+ }7202
+ },7203
+ "@alice_1719:hs1": {7204
+ "ALICEDEVICE1719": {7205
+ "algorithms": [7206
+ "m.olm.v1.curve25519-aes-sha2",7207
+ "m.megolm.v1.aes-sha2"7208
+ ],7209
+ "device_id": "ALICEDEVICE1719",7210
+ "keys": {7211
+ "curve25519:ALICEDEVICE1719": "7S8VAl35uyTv9rXG3z03jqONHuK6CDmi9wYAWk/1m3A",7212
+ "ed25519:ALICEDEVICE1719": "7HjoxQA2gPCKO5jBPZapPgD2/oxTx0VVOpSsfRDJYPc"7213
+ },7214
+ "signatures": {7215
+ "@alice_1719:hs1": {7216
+ "ed25519:ALICEDEVICE1719": "YnDBoZGsYG8X9zVd4C9aua23bIdyp3JbOCWdlxqlEo09/nuoPoy42e7yf9A9pbqmpeFX7pfJAxPYHryM2cPRCA"7217
+ }7218
+ },7219
+ "user_id": "@alice_1719:hs1",7220
+ "unsigned": {}7221
+ }7222
+ },7223
+ "@alice_1720:hs1": {7224
+ "ALICEDEVICE1720": {7225
+ "algorithms": [7226
+ "m.olm.v1.curve25519-aes-sha2",7227
+ "m.megolm.v1.aes-sha2"7228
+ ],7229
+ "device_id": "ALICEDEVICE1720",7230
+ "keys": {7231
+ "curve25519:ALICEDEVICE1720": "mhU3/MbiNHAPXIgWDrYrJ8vSA5ou03RGnexFpBqKLng",7232
+ "ed25519:ALICEDEVICE1720": "2COFkcdCoP/F/3Lb7w6JsZ+WMgru0hM5EHevNSeYITc"7233
+ },7234
+ "signatures": {7235
+ "@alice_1720:hs1": {7236
+ "ed25519:ALICEDEVICE1720": "jMy53cmIimwv14O38CNZR67LO3LnZFdg78lqHFQspsgWNrMX/T+4pzlXfD1RoCakDNNQkL0W14r4/7h59vykAg"7237
+ }7238
+ },7239
+ "user_id": "@alice_1720:hs1",7240
+ "unsigned": {}7241
+ }7242
+ },7243
+ "@alice_1729:hs1": {7244
+ "ALICEDEVICE1729": {7245
+ "algorithms": [7246
+ "m.olm.v1.curve25519-aes-sha2",7247
+ "m.megolm.v1.aes-sha2"7248
+ ],7249
+ "device_id": "ALICEDEVICE1729",7250
+ "keys": {7251
+ "curve25519:ALICEDEVICE1729": "RRGfnFniMFdZe3C5mR52OTX+vTP+WxMM4wcSe3nCbk8",7252
+ "ed25519:ALICEDEVICE1729": "Tt9lwIU3rJx7z3+G2ahhDQkJ8qseEpJQAKhtVlVh0s8"7253
+ },7254
+ "signatures": {7255
+ "@alice_1729:hs1": {7256
+ "ed25519:ALICEDEVICE1729": "hlFgJmMzM4cgPhmUKlyxxp+NtGpeak6i0cbxbnqrQFdK7n6blfICKAJbo+fbWA00miSF6nIbSjQxCUNakroLAg"7257
+ }7258
+ },7259
+ "user_id": "@alice_1729:hs1",7260
+ "unsigned": {}7261
+ }7262
+ },7263
+ "@alice_1737:hs1": {7264
+ "ALICEDEVICE1737": {7265
+ "algorithms": [7266
+ "m.olm.v1.curve25519-aes-sha2",7267
+ "m.megolm.v1.aes-sha2"7268
+ ],7269
+ "device_id": "ALICEDEVICE1737",7270
+ "keys": {7271
+ "curve25519:ALICEDEVICE1737": "vCamEGeigxWk9PxDaZYfjmrrzQ9PK+CzuXPt+d1Q9xI",7272
+ "ed25519:ALICEDEVICE1737": "x6355ppm7qr1KM7JPcPpyDMKcWJwKgMIO+e5Y38XUFk"7273
+ },7274
+ "signatures": {7275
+ "@alice_1737:hs1": {7276
+ "ed25519:ALICEDEVICE1737": "QkHbhwNVorsz1/zP5gKtab8/sTeb/rO5pnwJqyc+IRjKYJH+ZTk8SHlApU0cwvGsKPqRwwcDKm2Bj388OaEqAw"7277
+ }7278
+ },7279
+ "user_id": "@alice_1737:hs1",7280
+ "unsigned": {}7281
+ }7282
+ },7283
+ "@alice_1752:hs1": {7284
+ "ALICEDEVICE1752": {7285
+ "algorithms": [7286
+ "m.olm.v1.curve25519-aes-sha2",7287
+ "m.megolm.v1.aes-sha2"7288
+ ],7289
+ "device_id": "ALICEDEVICE1752",7290
+ "keys": {7291
+ "curve25519:ALICEDEVICE1752": "I7YyF66F79GLk1lh8RkZzJetehoV0uEM2DyoLWNas3w",7292
+ "ed25519:ALICEDEVICE1752": "jR3+ZmKoembvLmMfAUJloUS8m/RYIYFcmCqb/9mNwnQ"7293
+ },7294
+ "signatures": {7295
+ "@alice_1752:hs1": {7296
+ "ed25519:ALICEDEVICE1752": "5KSs/YGYgUJDeuyKzJUorYgg3axjl8NBgCjrFIEX4n+kLY7DPHjHLa4nHYUILSu77e0inRa1nVx3Jt3B0FTJDg"7297
+ }7298
+ },7299
+ "user_id": "@alice_1752:hs1",7300
+ "unsigned": {}7301
+ }7302
+ },7303
+ "@alice_1770:hs1": {7304
+ "ALICEDEVICE1770": {7305
+ "algorithms": [7306
+ "m.olm.v1.curve25519-aes-sha2",7307
+ "m.megolm.v1.aes-sha2"7308
+ ],7309
+ "device_id": "ALICEDEVICE1770",7310
+ "keys": {7311
+ "curve25519:ALICEDEVICE1770": "/E3yZnTzsvjMSeWfpCtBP74H1M2gEQlf7X+dMlB+wDI",7312
+ "ed25519:ALICEDEVICE1770": "+242sWkMgoU/P5UFxfq2dmqILgZJfEYPDrpydNl+R0o"7313
+ },7314
+ "signatures": {7315
+ "@alice_1770:hs1": {7316
+ "ed25519:ALICEDEVICE1770": "/cOw2U+lP41esRUTcC/RvZekVps14RL9a1mpILY+tGhG/mxH+WlnefjTfsLVH7bDzK7rhbbMe4blb9LkwJ4WBA"7317
+ }7318
+ },7319
+ "user_id": "@alice_1770:hs1",7320
+ "unsigned": {}7321
+ }7322
+ },7323
+ "@alice_1774:hs1": {7324
+ "ALICEDEVICE1774": {7325
+ "algorithms": [7326
+ "m.olm.v1.curve25519-aes-sha2",7327
+ "m.megolm.v1.aes-sha2"7328
+ ],7329
+ "device_id": "ALICEDEVICE1774",7330
+ "keys": {7331
+ "curve25519:ALICEDEVICE1774": "K11tLwuV6UtkFqexYoknBRYJRT4odWoU4DRUMly4cEI",7332
+ "ed25519:ALICEDEVICE1774": "Gk48oIWQ1TBJP8YbmVb7c8NiQqpmNNYBdN342l3d4G0"7333
+ },7334
+ "signatures": {7335
+ "@alice_1774:hs1": {7336
+ "ed25519:ALICEDEVICE1774": "+M5hBZuNROtqmu0Oajn+sMgPxam3/5dasl8XAhxcDeKmBks5q0GEmPvZCRJJxeD/fMHFvWJWT9kS2mCbne8bBg"7337
+ }7338
+ },7339
+ "user_id": "@alice_1774:hs1",7340
+ "unsigned": {}7341
+ }7342
+ },7343
+ "@alice_1776:hs1": {7344
+ "ALICEDEVICE1776": {7345
+ "algorithms": [7346
+ "m.olm.v1.curve25519-aes-sha2",7347
+ "m.megolm.v1.aes-sha2"7348
+ ],7349
+ "device_id": "ALICEDEVICE1776",7350
+ "keys": {7351
+ "curve25519:ALICEDEVICE1776": "kA1dJro1TcMsxvCHluLw6rXCJmErwt93zjqKw0TF8B8",7352
+ "ed25519:ALICEDEVICE1776": "Ach04mKuaayLBzoOTb1ABsN0w38e27di7Ft0SupzFBE"7353
+ },7354
+ "signatures": {7355
+ "@alice_1776:hs1": {7356
+ "ed25519:ALICEDEVICE1776": "3rS6MbVw0sc3cx0u11MwjFA9V0BS2K1OxNXOR/35kdBYWtOSJYprkHCRL9z/lWxhe7VmaPzMNcDN2ZDZiuj1Dg"7357
+ }7358
+ },7359
+ "user_id": "@alice_1776:hs1",7360
+ "unsigned": {}7361
+ }7362
+ },7363
+ "@alice_1779:hs1": {7364
+ "ALICEDEVICE1779": {7365
+ "algorithms": [7366
+ "m.olm.v1.curve25519-aes-sha2",7367
+ "m.megolm.v1.aes-sha2"7368
+ ],7369
+ "device_id": "ALICEDEVICE1779",7370
+ "keys": {7371
+ "curve25519:ALICEDEVICE1779": "kgZwVbQts0VUPo8F+jFL5rPchPVDcKs6GbhKGY8Arns",7372
+ "ed25519:ALICEDEVICE1779": "HE5S3GivmJj+HuPudw0iT26hrIDtjND1P/dpJ4VSFoA"7373
+ },7374
+ "signatures": {7375
+ "@alice_1779:hs1": {7376
+ "ed25519:ALICEDEVICE1779": "mGA1ZBpEUFJej8g1M4QyY9LjACtYEcNDkthj5P/XkooIkdtr5o4B9YGnoi80n/Hmr4F7pbYQqRIkdzSK63e+DA"7377
+ }7378
+ },7379
+ "user_id": "@alice_1779:hs1",7380
+ "unsigned": {}7381
+ }7382
+ },7383
+ "@alice_1807:hs1": {7384
+ "ALICEDEVICE1807": {7385
+ "algorithms": [7386
+ "m.olm.v1.curve25519-aes-sha2",7387
+ "m.megolm.v1.aes-sha2"7388
+ ],7389
+ "device_id": "ALICEDEVICE1807",7390
+ "keys": {7391
+ "curve25519:ALICEDEVICE1807": "q6IYD5cUlf2LahcqRqqgAaXlwGF9WW6CrZpr/OlHSXE",7392
+ "ed25519:ALICEDEVICE1807": "8caJv7xJcjqPhoMprs5xhMZIRnfxMNpCkKOdcDY243s"7393
+ },7394
+ "signatures": {7395
+ "@alice_1807:hs1": {7396
+ "ed25519:ALICEDEVICE1807": "KIgVisahpo75X0clFG1mbUAJWz722HGjONDdgceLVHNyoJWdJgMjZMB9Fx+OiBxSFzEtkg1vGoM+wqUeBuZpBQ"7397
+ }7398
+ },7399
+ "user_id": "@alice_1807:hs1",7400
+ "unsigned": {}7401
+ }7402
+ },7403
+ "@alice_1814:hs1": {7404
+ "ALICEDEVICE1814": {7405
+ "algorithms": [7406
+ "m.olm.v1.curve25519-aes-sha2",7407
+ "m.megolm.v1.aes-sha2"7408
+ ],7409
+ "device_id": "ALICEDEVICE1814",7410
+ "keys": {7411
+ "curve25519:ALICEDEVICE1814": "iG6liAQHyKPpzCwrA4A9oZw8xRKL2mQkswD+IF0ozTc",7412
+ "ed25519:ALICEDEVICE1814": "02kFl9P02NYEalKWtm4zg/3amepOWlm90gM09Wq7gCE"7413
+ },7414
+ "signatures": {7415
+ "@alice_1814:hs1": {7416
+ "ed25519:ALICEDEVICE1814": "SK+S6S4ZqMgNjXjVJcY90lm00k8sEDogRwAPLMPlcAvlsua8S66Lm97dQYRxcdq3QaFkTzX8r4oKOO8KnpbpBw"7417
+ }7418
+ },7419
+ "user_id": "@alice_1814:hs1",7420
+ "unsigned": {}7421
+ }7422
+ },7423
+ "@alice_181:hs1": {7424
+ "ALICEDEVICE181": {7425
+ "algorithms": [7426
+ "m.olm.v1.curve25519-aes-sha2",7427
+ "m.megolm.v1.aes-sha2"7428
+ ],7429
+ "device_id": "ALICEDEVICE181",7430
+ "keys": {7431
+ "curve25519:ALICEDEVICE181": "Nvhg/gZCBjJXn0PGOTsGo7ZGfiFhybKv0NkS1BcIHyk",7432
+ "ed25519:ALICEDEVICE181": "jLRo3h7CEewBLuV81v4xdoxR4lZmm0bEqBdTUSNZThA"7433
+ },7434
+ "signatures": {7435
+ "@alice_181:hs1": {7436
+ "ed25519:ALICEDEVICE181": "LMmuGylAqmR2Ax0y/NXklSZub01b0UfFugDnqZqNVB7PkBf0l1c9Qiu9Dk0FYaW0b7oLP5YqTKNjEj8A+NcKBw"7437
+ }7438
+ },7439
+ "user_id": "@alice_181:hs1",7440
+ "unsigned": {}7441
+ }7442
+ },7443
+ "@alice_1826:hs1": {7444
+ "ALICEDEVICE1826": {7445
+ "algorithms": [7446
+ "m.olm.v1.curve25519-aes-sha2",7447
+ "m.megolm.v1.aes-sha2"7448
+ ],7449
+ "device_id": "ALICEDEVICE1826",7450
+ "keys": {7451
+ "curve25519:ALICEDEVICE1826": "/0R29QLOI2pZPzyyMq+R3bAbe86rUwhMdszaPYJr2Dk",7452
+ "ed25519:ALICEDEVICE1826": "uPvGQrcILY8+vFYtclKwz/LE5JDYnZHfSZ9z1GjBqpo"7453
+ },7454
+ "signatures": {7455
+ "@alice_1826:hs1": {7456
+ "ed25519:ALICEDEVICE1826": "/H5ny8d43GCPBPrs9SVhrZmbxiBuehPyt2V0VfVYptQrNY/wUYS17rsDodRM2f2hTxQ6DVqsX9iLyz9FW1VxDw"7457
+ }7458
+ },7459
+ "user_id": "@alice_1826:hs1",7460
+ "unsigned": {}7461
+ }7462
+ },7463
+ "@alice_1827:hs1": {7464
+ "ALICEDEVICE1827": {7465
+ "algorithms": [7466
+ "m.olm.v1.curve25519-aes-sha2",7467
+ "m.megolm.v1.aes-sha2"7468
+ ],7469
+ "device_id": "ALICEDEVICE1827",7470
+ "keys": {7471
+ "curve25519:ALICEDEVICE1827": "wblTWD2lCVD/18rx02sfg0txb0J3I0Jyob8HnkAZvGQ",7472
+ "ed25519:ALICEDEVICE1827": "eUGqThBY7OFMl6ViXKK8kHTQH0K1w/Pqh4sP/UoIURg"7473
+ },7474
+ "signatures": {7475
+ "@alice_1827:hs1": {7476
+ "ed25519:ALICEDEVICE1827": "AR6O8kbWbTK9JAiDQlrkQcin6LjkBOK6tFfZrlhlvM8QBhc82IIRU0y7SQfDnmEjsvSwJny0vSjcmnPFMMyHAQ"7477
+ }7478
+ },7479
+ "user_id": "@alice_1827:hs1",7480
+ "unsigned": {}7481
+ }7482
+ },7483
+ "@alice_1838:hs1": {7484
+ "ALICEDEVICE1838": {7485
+ "algorithms": [7486
+ "m.olm.v1.curve25519-aes-sha2",7487
+ "m.megolm.v1.aes-sha2"7488
+ ],7489
+ "device_id": "ALICEDEVICE1838",7490
+ "keys": {7491
+ "curve25519:ALICEDEVICE1838": "L2IqP2/KrVpyclypw/F3XjFeDk/hP0IBMQCqtzNjKCs",7492
+ "ed25519:ALICEDEVICE1838": "O/4R8ltK4ek1QjDka8HaGXTUA6A45NlSc8DoUPhRKzY"7493
+ },7494
+ "signatures": {7495
+ "@alice_1838:hs1": {7496
+ "ed25519:ALICEDEVICE1838": "NAKBw2FdDoBjnX+EBppF8brr6drq2RFtYgLid+pum1qyiKl+mEpSCrKE6eG0s8VuKuNIfQ7FIFhpEpoWtaQZCg"7497
+ }7498
+ },7499
+ "user_id": "@alice_1838:hs1",7500
+ "unsigned": {}7501
+ }7502
+ },7503
+ "@alice_1840:hs1": {7504
+ "ALICEDEVICE1840": {7505
+ "algorithms": [7506
+ "m.olm.v1.curve25519-aes-sha2",7507
+ "m.megolm.v1.aes-sha2"7508
+ ],7509
+ "device_id": "ALICEDEVICE1840",7510
+ "keys": {7511
+ "curve25519:ALICEDEVICE1840": "eiAI41HBt9ldIq1bkrEnPIn+c8z4Vb0XxvEDbdH4sz4",7512
+ "ed25519:ALICEDEVICE1840": "VLV7CidlDFeVdpjRNsanCFowmMEnVd32hLaWXzFyIlE"7513
+ },7514
+ "signatures": {7515
+ "@alice_1840:hs1": {7516
+ "ed25519:ALICEDEVICE1840": "j8ddvZ5h0oNB6qarROJPfYz2XkOKUdPB3UkyQFbXxEokqC1ErpiJfhqGytM11uKRCHyXCCvdSk4DjycDbAVSAA"7517
+ }7518
+ },7519
+ "user_id": "@alice_1840:hs1",7520
+ "unsigned": {}7521
+ }7522
+ },7523
+ "@alice_1848:hs1": {7524
+ "ALICEDEVICE1848": {7525
+ "algorithms": [7526
+ "m.olm.v1.curve25519-aes-sha2",7527
+ "m.megolm.v1.aes-sha2"7528
+ ],7529
+ "device_id": "ALICEDEVICE1848",7530
+ "keys": {7531
+ "curve25519:ALICEDEVICE1848": "Jy/556AfosOnDaFxWq1YhFxXwbbc4ZFx4vjK7ABTgVo",7532
+ "ed25519:ALICEDEVICE1848": "od0sBcRnLKdRxzBeBmlTbvjJVkOqsiatNewOEtcnmqc"7533
+ },7534
+ "signatures": {7535
+ "@alice_1848:hs1": {7536
+ "ed25519:ALICEDEVICE1848": "WMWqq1O7brMuWg6/ED1nkEf9ncF+vsmz7CHyn+OyOuvCzDy2zfrmtIxuFVfR+OoycZzRgqcURTzHNkiH+fKdBQ"7537
+ }7538
+ },7539
+ "user_id": "@alice_1848:hs1",7540
+ "unsigned": {}7541
+ }7542
+ },7543
+ "@alice_184:hs1": {7544
+ "ALICEDEVICE184": {7545
+ "algorithms": [7546
+ "m.olm.v1.curve25519-aes-sha2",7547
+ "m.megolm.v1.aes-sha2"7548
+ ],7549
+ "device_id": "ALICEDEVICE184",7550
+ "keys": {7551
+ "curve25519:ALICEDEVICE184": "JVrNZ8wGn2zsev/Qsy+04UjDBVMycGqTQIwZ9uOgGGI",7552
+ "ed25519:ALICEDEVICE184": "LfjEsW3aqX9Tejzobt2FCFGi6SrMswdIPO62eQ7/+FU"7553
+ },7554
+ "signatures": {7555
+ "@alice_184:hs1": {7556
+ "ed25519:ALICEDEVICE184": "FCNBTRbI51OTe+vGrlANmxTApCsU4qCWW8gaxDGBUP57NJh7nUUHvh1M9iSnUfIRaRv6gWpNQ2vTMHYYSFV3Cg"7557
+ }7558
+ },7559
+ "user_id": "@alice_184:hs1",7560
+ "unsigned": {}7561
+ }7562
+ },7563
+ "@alice_1855:hs1": {7564
+ "ALICEDEVICE1855": {7565
+ "algorithms": [7566
+ "m.olm.v1.curve25519-aes-sha2",7567
+ "m.megolm.v1.aes-sha2"7568
+ ],7569
+ "device_id": "ALICEDEVICE1855",7570
+ "keys": {7571
+ "curve25519:ALICEDEVICE1855": "obHjvYpPY9AKl0HcZQxQchis7Jy/NKmZhq3LkQHDLXU",7572
+ "ed25519:ALICEDEVICE1855": "otpUi/QMVgCfJ5YjdAgVr9x6p993N5uK4cnreptjMZE"7573
+ },7574
+ "signatures": {7575
+ "@alice_1855:hs1": {7576
+ "ed25519:ALICEDEVICE1855": "CM2b8qdTLfB3x85985cNofy6jTlQPuaNqDh3yKY4/T7f9Qhc3NCJKEvZkQfOjwTmwXf4+JrgnWSZUnOAZgZ1Bg"7577
+ }7578
+ },7579
+ "user_id": "@alice_1855:hs1",7580
+ "unsigned": {}7581
+ }7582
+ },7583
+ "@alice_1857:hs1": {7584
+ "ALICEDEVICE1857": {7585
+ "algorithms": [7586
+ "m.olm.v1.curve25519-aes-sha2",7587
+ "m.megolm.v1.aes-sha2"7588
+ ],7589
+ "device_id": "ALICEDEVICE1857",7590
+ "keys": {7591
+ "curve25519:ALICEDEVICE1857": "YmC8tmkTRHrBgWGKtHUxgnI1aO1FhQzLh9RBKU7SJXU",7592
+ "ed25519:ALICEDEVICE1857": "2/rd4IkiLBx6Cq6ANKkrQvmFhpuxcdA7xbecxiv7B4M"7593
+ },7594
+ "signatures": {7595
+ "@alice_1857:hs1": {7596
+ "ed25519:ALICEDEVICE1857": "p9C2096gzHM8w42fy4V4FCxDfJS5tL/ugRM0ysg4D2ffVXx3H5PJkNqo41JvWS+RK2GzyEN8vBfN/ZpGAO1cBg"7597
+ }7598
+ },7599
+ "user_id": "@alice_1857:hs1",7600
+ "unsigned": {}7601
+ }7602
+ },7603
+ "@alice_1865:hs1": {7604
+ "ALICEDEVICE1865": {7605
+ "algorithms": [7606
+ "m.olm.v1.curve25519-aes-sha2",7607
+ "m.megolm.v1.aes-sha2"7608
+ ],7609
+ "device_id": "ALICEDEVICE1865",7610
+ "keys": {7611
+ "curve25519:ALICEDEVICE1865": "4i0sQ9K3BRkdC+vxdplHsM4vFsiFjOlTM8zSSs6LbTM",7612
+ "ed25519:ALICEDEVICE1865": "AeZhHpAM2mXR3bRbPoUk0Ho0vPdemdUtW5HzlvCGRAk"7613
+ },7614
+ "signatures": {7615
+ "@alice_1865:hs1": {7616
+ "ed25519:ALICEDEVICE1865": "TFPrG9daAkxpr7tukLnDGJcWbUsoZtlpt39uT+srezKKNnpGqlp8Fk7aTiJbN6MWcOROQHxElAUqqis+t3uxAQ"7617
+ }7618
+ },7619
+ "user_id": "@alice_1865:hs1",7620
+ "unsigned": {}7621
+ }7622
+ },7623
+ "@alice_1869:hs1": {7624
+ "ALICEDEVICE1869": {7625
+ "algorithms": [7626
+ "m.olm.v1.curve25519-aes-sha2",7627
+ "m.megolm.v1.aes-sha2"7628
+ ],7629
+ "device_id": "ALICEDEVICE1869",7630
+ "keys": {7631
+ "curve25519:ALICEDEVICE1869": "trNJUUmKX02nVqOldWz1dgpVpq1c34S89thiodNiw18",7632
+ "ed25519:ALICEDEVICE1869": "7eNZiAIUkujf2ekPsxO3uj6JyLt5L7dOeQSmGkzWXF4"7633
+ },7634
+ "signatures": {7635
+ "@alice_1869:hs1": {7636
+ "ed25519:ALICEDEVICE1869": "rcHOo5lJ+atqosOv1X6quTseBkURl7UIva2KyPlPkAp0Y1t7REYEXeriOQk/6pMgis6F3yNELWpD9q5xwF7sBg"7637
+ }7638
+ },7639
+ "user_id": "@alice_1869:hs1",7640
+ "unsigned": {}7641
+ }7642
+ },7643
+ "@alice_1871:hs1": {7644
+ "ALICEDEVICE1871": {7645
+ "algorithms": [7646
+ "m.olm.v1.curve25519-aes-sha2",7647
+ "m.megolm.v1.aes-sha2"7648
+ ],7649
+ "device_id": "ALICEDEVICE1871",7650
+ "keys": {7651
+ "curve25519:ALICEDEVICE1871": "qd69yA8sh/puQDJjcwH7wPNA0CQI0Pw7D82jgKsrams",7652
+ "ed25519:ALICEDEVICE1871": "nXwwmFR4Yf4n8xdjBnNJO2Uqi6Sptrz6moQooRDb7F0"7653
+ },7654
+ "signatures": {7655
+ "@alice_1871:hs1": {7656
+ "ed25519:ALICEDEVICE1871": "8Y5d6dJcW/SbHUnEfeqrmgmBm545KYitQuqh9dYrojX7ZqzkK++Lm3gU7M935nbmMJCJe4gyskntD4/UIFbcDw"7657
+ }7658
+ },7659
+ "user_id": "@alice_1871:hs1",7660
+ "unsigned": {}7661
+ }7662
+ },7663
+ "@alice_1875:hs1": {7664
+ "ALICEDEVICE1875": {7665
+ "algorithms": [7666
+ "m.olm.v1.curve25519-aes-sha2",7667
+ "m.megolm.v1.aes-sha2"7668
+ ],7669
+ "device_id": "ALICEDEVICE1875",7670
+ "keys": {7671
+ "curve25519:ALICEDEVICE1875": "EfCW856cD0UPwJYGEzX7kZHJJuimg1YfIEjYRBSPGGY",7672
+ "ed25519:ALICEDEVICE1875": "gNxDWvFLuR/4lfLgyWlKjssLASKfMWXaLtQqL8H/v+M"7673
+ },7674
+ "signatures": {7675
+ "@alice_1875:hs1": {7676
+ "ed25519:ALICEDEVICE1875": "1b9O3LSD2z5uhnFWHrJmQsurpl+ltbVuXCzV4fuT7b1e7akLTKmrPVo9dTwBG67xyTMzFEjnyBEd1AoJe+KECg"7677
+ }7678
+ },7679
+ "user_id": "@alice_1875:hs1",7680
+ "unsigned": {}7681
+ }7682
+ },7683
+ "@alice_1877:hs1": {7684
+ "ALICEDEVICE1877": {7685
+ "algorithms": [7686
+ "m.olm.v1.curve25519-aes-sha2",7687
+ "m.megolm.v1.aes-sha2"7688
+ ],7689
+ "device_id": "ALICEDEVICE1877",7690
+ "keys": {7691
+ "curve25519:ALICEDEVICE1877": "PPMtc9pQqNCSd8lzdBKISyCNgjLlrQz6Y4CXeqNL9go",7692
+ "ed25519:ALICEDEVICE1877": "ZghH3HS8hwoyipkMihVuAqlXzrsfQWLQzk35xDeLemI"7693
+ },7694
+ "signatures": {7695
+ "@alice_1877:hs1": {7696
+ "ed25519:ALICEDEVICE1877": "/u1fbPeNgWoLKxgSQZhBNSkLMZyHt5bMycZne8S4eolHwlDZRCIBfQ1PaBtRvO2kCujtYtVqc03pcnfwxhBNDA"7697
+ }7698
+ },7699
+ "user_id": "@alice_1877:hs1",7700
+ "unsigned": {}7701
+ }7702
+ },7703
+ "@alice_1880:hs1": {7704
+ "ALICEDEVICE1880": {7705
+ "algorithms": [7706
+ "m.olm.v1.curve25519-aes-sha2",7707
+ "m.megolm.v1.aes-sha2"7708
+ ],7709
+ "device_id": "ALICEDEVICE1880",7710
+ "keys": {7711
+ "curve25519:ALICEDEVICE1880": "NEcqGSw+/AcSyZXtXLmHVjuT9aXy+zVEVNOEibtR7mg",7712
+ "ed25519:ALICEDEVICE1880": "2vKfPW0P78e0G2PvX+L7sCO16YqHlIpWwQDTdwUWUQY"7713
+ },7714
+ "signatures": {7715
+ "@alice_1880:hs1": {7716
+ "ed25519:ALICEDEVICE1880": "2+ujY6AI9snyNRr/v6hYxkzDtQhi/X+8KiGxLUOWBwbnAxhT402BF8vgqcjGT3dfRsgzME3EZrBC+B9TijZKCg"7717
+ }7718
+ },7719
+ "user_id": "@alice_1880:hs1",7720
+ "unsigned": {}7721
+ }7722
+ },7723
+ "@alice_1884:hs1": {7724
+ "ALICEDEVICE1884": {7725
+ "algorithms": [7726
+ "m.olm.v1.curve25519-aes-sha2",7727
+ "m.megolm.v1.aes-sha2"7728
+ ],7729
+ "device_id": "ALICEDEVICE1884",7730
+ "keys": {7731
+ "curve25519:ALICEDEVICE1884": "t0d3CZHEzebIG1bE7QhSC2ZhOTxQOQ/HQ7KgWpWTskQ",7732
+ "ed25519:ALICEDEVICE1884": "rS8qJTUkLDYj7sbxSMh77/3sQSVBuZdi5vqna1RkLw8"7733
+ },7734
+ "signatures": {7735
+ "@alice_1884:hs1": {7736
+ "ed25519:ALICEDEVICE1884": "xrx4YuLRAHHevLp0yWnPVO2oKnK7MkBGZdV2on7/WrIStF+FbGF25j/oUOfbHetR/k8xwzEALRkDAHw4eDasBQ"7737
+ }7738
+ },7739
+ "user_id": "@alice_1884:hs1",7740
+ "unsigned": {}7741
+ }7742
+ },7743
+ "@alice_1886:hs1": {7744
+ "ALICEDEVICE1886": {7745
+ "algorithms": [7746
+ "m.olm.v1.curve25519-aes-sha2",7747
+ "m.megolm.v1.aes-sha2"7748
+ ],7749
+ "device_id": "ALICEDEVICE1886",7750
+ "keys": {7751
+ "curve25519:ALICEDEVICE1886": "Jgy4TNv1QIoZJBa+S+xd8MJJ5fIqo5sp//4keirC8wE",7752
+ "ed25519:ALICEDEVICE1886": "jLg1lhIaxDxIC2yfVyj+1HyM5m3p0sLh3Hp4qBAeUfk"7753
+ },7754
+ "signatures": {7755
+ "@alice_1886:hs1": {7756
+ "ed25519:ALICEDEVICE1886": "0gUpnxWcyFK+2d7CXjSq6RZ/C5fP3Z6l5BZYcf4MRIiu2D3JW9c+RMP5knG+1YVak2fWQP3aqtcrIfujQXeGBg"7757
+ }7758
+ },7759
+ "user_id": "@alice_1886:hs1",7760
+ "unsigned": {}7761
+ }7762
+ },7763
+ "@alice_1889:hs1": {7764
+ "ALICEDEVICE1889": {7765
+ "algorithms": [7766
+ "m.olm.v1.curve25519-aes-sha2",7767
+ "m.megolm.v1.aes-sha2"7768
+ ],7769
+ "device_id": "ALICEDEVICE1889",7770
+ "keys": {7771
+ "curve25519:ALICEDEVICE1889": "gj1P3Ox2ap8c6QnIys/LgbDOB++3gAwYyr7xpCT8Vw0",7772
+ "ed25519:ALICEDEVICE1889": "71BqJYif4G8q3qPsDFAOWhgSPqfWogWUSuRJStniNQg"7773
+ },7774
+ "signatures": {7775
+ "@alice_1889:hs1": {7776
+ "ed25519:ALICEDEVICE1889": "H98eTTE9SC2BLUNG3R6Wz5Gm7kyk1xF4a0V9yUFHFBy958JaHZ6H7yj71h2yVoK694kQEMcEsfi3lkthybxpDQ"7777
+ }7778
+ },7779
+ "user_id": "@alice_1889:hs1",7780
+ "unsigned": {}7781
+ }7782
+ },7783
+ "@alice_1891:hs1": {7784
+ "ALICEDEVICE1891": {7785
+ "algorithms": [7786
+ "m.olm.v1.curve25519-aes-sha2",7787
+ "m.megolm.v1.aes-sha2"7788
+ ],7789
+ "device_id": "ALICEDEVICE1891",7790
+ "keys": {7791
+ "curve25519:ALICEDEVICE1891": "52DQvssiRUimEE13c3xtfBkrLkOp7CqlnHBQSth5E2c",7792
+ "ed25519:ALICEDEVICE1891": "K+V5qNmW0htxGpMpdOnGXDuFL87oSZEsHbeIc0yHts8"7793
+ },7794
+ "signatures": {7795
+ "@alice_1891:hs1": {7796
+ "ed25519:ALICEDEVICE1891": "1KJiPhxPFA2O5RnpuofKY3iRWrjSkFdkymGfCHJlPnlwNPJ2ygeJB8ubVyCFZUDGsXYt/hcKzJmxHu6i+KSOAA"7797
+ }7798
+ },7799
+ "user_id": "@alice_1891:hs1",7800
+ "unsigned": {}7801
+ }7802
+ },7803
+ "@alice_1892:hs1": {7804
+ "ALICEDEVICE1892": {7805
+ "algorithms": [7806
+ "m.olm.v1.curve25519-aes-sha2",7807
+ "m.megolm.v1.aes-sha2"7808
+ ],7809
+ "device_id": "ALICEDEVICE1892",7810
+ "keys": {7811
+ "curve25519:ALICEDEVICE1892": "xi1Gp5q4ghi+Hd6vHJWkIg91xCKAYHrxoHS+nx0BR24",7812
+ "ed25519:ALICEDEVICE1892": "xtpeep3+pEjEUcevJEYhNonw/2JQ1VopnfjEZSmWmFE"7813
+ },7814
+ "signatures": {7815
+ "@alice_1892:hs1": {7816
+ "ed25519:ALICEDEVICE1892": "EDV2C3NVBC2awrcSczWZxy7BB3PRWzT3+fS/7K+9J5X8iLn3hrFAiJbFWY//SnxzPPpcu/j0jF2YOIFt0marAQ"7817
+ }7818
+ },7819
+ "user_id": "@alice_1892:hs1",7820
+ "unsigned": {}7821
+ }7822
+ },7823
+ "@alice_1905:hs1": {7824
+ "ALICEDEVICE1905": {7825
+ "algorithms": [7826
+ "m.olm.v1.curve25519-aes-sha2",7827
+ "m.megolm.v1.aes-sha2"7828
+ ],7829
+ "device_id": "ALICEDEVICE1905",7830
+ "keys": {7831
+ "curve25519:ALICEDEVICE1905": "F0Box06jKoqDk0vf1zXHWiLuoHoYy6E27am2Mu29HUY",7832
+ "ed25519:ALICEDEVICE1905": "z+jgbvwrbjNbBwYnj/YeE3dnoCZJ9eKgKlhU6AwPN6w"7833
+ },7834
+ "signatures": {7835
+ "@alice_1905:hs1": {7836
+ "ed25519:ALICEDEVICE1905": "8YGHJeOl1zS9PmI8q5nXpVow0mrRyXDPOJM7XOou6q4Q41JxQoGZCg+aPUst4VtzOgrpBK3vTGg/aa3E1LvKAQ"7837
+ }7838
+ },7839
+ "user_id": "@alice_1905:hs1",7840
+ "unsigned": {}7841
+ }7842
+ },7843
+ "@alice_1910:hs1": {7844
+ "ALICEDEVICE1910": {7845
+ "algorithms": [7846
+ "m.olm.v1.curve25519-aes-sha2",7847
+ "m.megolm.v1.aes-sha2"7848
+ ],7849
+ "device_id": "ALICEDEVICE1910",7850
+ "keys": {7851
+ "curve25519:ALICEDEVICE1910": "jXHiZpXxaJzqfPixPjZ2mlqT+aB3ttA2k2o2ud7kKAU",7852
+ "ed25519:ALICEDEVICE1910": "eT4uGdkVnT5xtRcpotI3gi3QcUtzGdjkKvO1itgBE9o"7853
+ },7854
+ "signatures": {7855
+ "@alice_1910:hs1": {7856
+ "ed25519:ALICEDEVICE1910": "+dviQDvLan9IHf0vMXW+PjgOVOyhVRPhhnx+MOg53G6menDyL5q3v3/2VcEshJ0yZDQvJbT1//EGkzvTR7CyBw"7857
+ }7858
+ },7859
+ "user_id": "@alice_1910:hs1",7860
+ "unsigned": {}7861
+ }7862
+ },7863
+ "@alice_1925:hs1": {7864
+ "ALICEDEVICE1925": {7865
+ "algorithms": [7866
+ "m.olm.v1.curve25519-aes-sha2",7867
+ "m.megolm.v1.aes-sha2"7868
+ ],7869
+ "device_id": "ALICEDEVICE1925",7870
+ "keys": {7871
+ "curve25519:ALICEDEVICE1925": "6aJ6AnGhikv6vbM781NeuRRf4r4MFKq8tdreUybEG3Q",7872
+ "ed25519:ALICEDEVICE1925": "DOsZ771FhICfuOkubHj2X27HoqGy8Q3gntQbQ1WtzHk"7873
+ },7874
+ "signatures": {7875
+ "@alice_1925:hs1": {7876
+ "ed25519:ALICEDEVICE1925": "bYsRP/GfEWROmUAPBrBclxkmKAzGlUgEVKfhz5rRleNPHRdKjS/wFYBCKBTEjU9eUQtcQ69i7QjjcRwszdbiAQ"7877
+ }7878
+ },7879
+ "user_id": "@alice_1925:hs1",7880
+ "unsigned": {}7881
+ }7882
+ },7883
+ "@alice_1927:hs1": {7884
+ "ALICEDEVICE1927": {7885
+ "algorithms": [7886
+ "m.olm.v1.curve25519-aes-sha2",7887
+ "m.megolm.v1.aes-sha2"7888
+ ],7889
+ "device_id": "ALICEDEVICE1927",7890
+ "keys": {7891
+ "curve25519:ALICEDEVICE1927": "vQOTgZB2BSrJvV7TMxCBPeisb41rxCGJtAmE/1rlF3U",7892
+ "ed25519:ALICEDEVICE1927": "/ng3Xoq4oSTPvy87kerVzSyAeWqk/eUwAH08n+7VacM"7893
+ },7894
+ "signatures": {7895
+ "@alice_1927:hs1": {7896
+ "ed25519:ALICEDEVICE1927": "OGICXjRFeMW7bLfDQdUezCRUXDNf8kFrIYT/sLz0Z96m8h6Vpwg2du11S7PRUXw+XXI4+WQvp8SUr6shCLOhDQ"7897
+ }7898
+ },7899
+ "user_id": "@alice_1927:hs1",7900
+ "unsigned": {}7901
+ }7902
+ },7903
+ "@alice_1938:hs1": {7904
+ "ALICEDEVICE1938": {7905
+ "algorithms": [7906
+ "m.olm.v1.curve25519-aes-sha2",7907
+ "m.megolm.v1.aes-sha2"7908
+ ],7909
+ "device_id": "ALICEDEVICE1938",7910
+ "keys": {7911
+ "curve25519:ALICEDEVICE1938": "EFvGlfx7u9+X7qgXBMTVxTmtEtzus99uJ7Y4QxrhcDA",7912
+ "ed25519:ALICEDEVICE1938": "yZTQlhEzY3whNFmEnSXdzzO1IeZicp8TKyHF39sBeY4"7913
+ },7914
+ "signatures": {7915
+ "@alice_1938:hs1": {7916
+ "ed25519:ALICEDEVICE1938": "PPlG98JBkBdSrxexFHf0zO59O4Tjd5EIvAxDVpIwSiO/R9YZ15GHJ+hi9lOi2ZVoAX2t1OIO5WjT+IjuLVdNDw"7917
+ }7918
+ },7919
+ "user_id": "@alice_1938:hs1",7920
+ "unsigned": {}7921
+ }7922
+ },7923
+ "@alice_1942:hs1": {7924
+ "ALICEDEVICE1942": {7925
+ "algorithms": [7926
+ "m.olm.v1.curve25519-aes-sha2",7927
+ "m.megolm.v1.aes-sha2"7928
+ ],7929
+ "device_id": "ALICEDEVICE1942",7930
+ "keys": {7931
+ "curve25519:ALICEDEVICE1942": "+KKtBc+ZROFfj1t6JLqFaJ6ZczZpKymv8V3oUr27310",7932
+ "ed25519:ALICEDEVICE1942": "2AQep/XzwqFnCNq6bO6c+N9r4KytwZUi03/qsflvNbY"7933
+ },7934
+ "signatures": {7935
+ "@alice_1942:hs1": {7936
+ "ed25519:ALICEDEVICE1942": "joppidL9hJOyT8IPmgPEwR5PG1s4K8FrVvrRDp8YJeUKVYJLBi8S4T7Me14V2hSETJkzxNxvGFo7/L+pS8V/Bw"7937
+ }7938
+ },7939
+ "user_id": "@alice_1942:hs1",7940
+ "unsigned": {}7941
+ }7942
+ },7943
+ "@alice_1945:hs1": {7944
+ "ALICEDEVICE1945": {7945
+ "algorithms": [7946
+ "m.olm.v1.curve25519-aes-sha2",7947
+ "m.megolm.v1.aes-sha2"7948
+ ],7949
+ "device_id": "ALICEDEVICE1945",7950
+ "keys": {7951
+ "curve25519:ALICEDEVICE1945": "rxYg1GlEBf8R0hMH+oXmXSryC50pMIdWdBxzf+pL4BQ",7952
+ "ed25519:ALICEDEVICE1945": "iLiccpiRJrFrZu8qW7AvwCRO2Kn0tLzqH4UZ4o1KPRI"7953
+ },7954
+ "signatures": {7955
+ "@alice_1945:hs1": {7956
+ "ed25519:ALICEDEVICE1945": "3DN+8f3A5Qnr1o2qT5ijtkRAa37bZuyIoJxssfM77qY19UaNGZiYCMaNIFMjrfRJE7vbiROJJ8Eco8sCCtL2CA"7957
+ }7958
+ },7959
+ "user_id": "@alice_1945:hs1",7960
+ "unsigned": {}7961
+ }7962
+ },7963
+ "@alice_1948:hs1": {7964
+ "ALICEDEVICE1948": {7965
+ "algorithms": [7966
+ "m.olm.v1.curve25519-aes-sha2",7967
+ "m.megolm.v1.aes-sha2"7968
+ ],7969
+ "device_id": "ALICEDEVICE1948",7970
+ "keys": {7971
+ "curve25519:ALICEDEVICE1948": "2MJSYmkhKeWEg78LH2g+NqB+4H5Vc+3ktp1aOmtyRVY",7972
+ "ed25519:ALICEDEVICE1948": "3Bcfp3D9SG0Oy7qpErfY1lcmvjqqgTZuAJgba/R1zJ8"7973
+ },7974
+ "signatures": {7975
+ "@alice_1948:hs1": {7976
+ "ed25519:ALICEDEVICE1948": "T0thPVBR760b383jPDrZbIUpo4jtPjt2R0gWbfY19lz/jpjmfhozvI57DglZ1qdzEj11frkUEaqSNI5wI0NdDg"7977
+ }7978
+ },7979
+ "user_id": "@alice_1948:hs1",7980
+ "unsigned": {}7981
+ }7982
+ },7983
+ "@alice_1953:hs1": {7984
+ "ALICEDEVICE1953": {7985
+ "algorithms": [7986
+ "m.olm.v1.curve25519-aes-sha2",7987
+ "m.megolm.v1.aes-sha2"7988
+ ],7989
+ "device_id": "ALICEDEVICE1953",7990
+ "keys": {7991
+ "curve25519:ALICEDEVICE1953": "kDRDCVZUXooqvRaq9ESvirzfxdxDLp3sx41kFYFko2U",7992
+ "ed25519:ALICEDEVICE1953": "VrcUM1anVg+izUB4VNOh1HddDVVu5PpuTVPenV6Kd8U"7993
+ },7994
+ "signatures": {7995
+ "@alice_1953:hs1": {7996
+ "ed25519:ALICEDEVICE1953": "4v/redvo9EkoUOpdbHVzHq1sNAnOoKNa2tVdLPrMJLFqrM5f2J2MLRGgkYhCsrczT+lJltg7T7EcXN8pOMJBBw"7997
+ }7998
+ },7999
+ "user_id": "@alice_1953:hs1",8000
+ "unsigned": {}8001
+ }8002
+ },8003
+ "@alice_1972:hs1": {8004
+ "ALICEDEVICE1972": {8005
+ "algorithms": [8006
+ "m.olm.v1.curve25519-aes-sha2",8007
+ "m.megolm.v1.aes-sha2"8008
+ ],8009
+ "device_id": "ALICEDEVICE1972",8010
+ "keys": {8011
+ "curve25519:ALICEDEVICE1972": "jBPoYwXxWRENsCcpV+6jR/jhUWQaHqk4HRIG7YW/4Go",8012
+ "ed25519:ALICEDEVICE1972": "NVY9GkiU4E1xWbnbBWDmEFNh5cD2QJ/X0HkS7skfy8I"8013
+ },8014
+ "signatures": {8015
+ "@alice_1972:hs1": {8016
+ "ed25519:ALICEDEVICE1972": "QLeKzewmb5ASenpV/XHA3bGrCuUbYHFO+lFXuN0riQrZCUHcz+14wERvXmZTb9Cqcw8UtJeMmR0mpeHh0sKvAA"8017
+ }8018
+ },8019
+ "user_id": "@alice_1972:hs1",8020
+ "unsigned": {}8021
+ }8022
+ },8023
+ "@alice_1974:hs1": {8024
+ "ALICEDEVICE1974": {8025
+ "algorithms": [8026
+ "m.olm.v1.curve25519-aes-sha2",8027
+ "m.megolm.v1.aes-sha2"8028
+ ],8029
+ "device_id": "ALICEDEVICE1974",8030
+ "keys": {8031
+ "curve25519:ALICEDEVICE1974": "m6yyQCVvOhg84gih6JIORW0sHuVcbi+Py7k/rNPvAyw",8032
+ "ed25519:ALICEDEVICE1974": "cc0Iy2HvJuWHmnRSsInE/+GQdQYtfEsMpU+B7m03Ako"8033
+ },8034
+ "signatures": {8035
+ "@alice_1974:hs1": {8036
+ "ed25519:ALICEDEVICE1974": "fzWA2yOyScmnTrCoEfnmOJPRlsUMRDm0FAPbX5Jkh4nhPV3pqno7yGmvaF7FKESp2TigXwtTnZ9EJ7rBkoYfDQ"8037
+ }8038
+ },8039
+ "user_id": "@alice_1974:hs1",8040
+ "unsigned": {}8041
+ }8042
+ },8043
+ "@alice_1982:hs1": {8044
+ "ALICEDEVICE1982": {8045
+ "algorithms": [8046
+ "m.olm.v1.curve25519-aes-sha2",8047
+ "m.megolm.v1.aes-sha2"8048
+ ],8049
+ "device_id": "ALICEDEVICE1982",8050
+ "keys": {8051
+ "curve25519:ALICEDEVICE1982": "QcmkfXEyweg7FYOSe0AdlLm/hgRFpKeFETMcOf0r7m4",8052
+ "ed25519:ALICEDEVICE1982": "GXpWwwTPbvbh0e88xqNvDQ20gL6nV+BddlLDkP9Yrso"8053
+ },8054
+ "signatures": {8055
+ "@alice_1982:hs1": {8056
+ "ed25519:ALICEDEVICE1982": "35y1pafyUn8ATTIbruAmRGU6aqcrdFpgyTB3tPvdXLovKgdo4rZgwn1FyFeSWbVGjfXa0rNf1vTS5CRs5hYXAQ"8057
+ }8058
+ },8059
+ "user_id": "@alice_1982:hs1",8060
+ "unsigned": {}8061
+ }8062
+ },8063
+ "@alice_1985:hs1": {8064
+ "ALICEDEVICE1985": {8065
+ "algorithms": [8066
+ "m.olm.v1.curve25519-aes-sha2",8067
+ "m.megolm.v1.aes-sha2"8068
+ ],8069
+ "device_id": "ALICEDEVICE1985",8070
+ "keys": {8071
+ "curve25519:ALICEDEVICE1985": "lTjhZdD4MdpkVawpVth3gOwZ89f6ml3rhBCsVbosxQI",8072
+ "ed25519:ALICEDEVICE1985": "duSs6NUvXpg1L3qFoRSuGt22RUwS05Ve2SPEs/QCBeQ"8073
+ },8074
+ "signatures": {8075
+ "@alice_1985:hs1": {8076
+ "ed25519:ALICEDEVICE1985": "rCNtgo0XYt/G/Do5+4it23T36WQ9w1LupJRSzitUnCxhkDUqrJqyYg00T29vpX8ZqCN/21yLqUP3+DzXFHgKBA"8077
+ }8078
+ },8079
+ "user_id": "@alice_1985:hs1",8080
+ "unsigned": {}8081
+ }8082
+ },8083
+ "@alice_201:hs1": {8084
+ "ALICEDEVICE201": {8085
+ "algorithms": [8086
+ "m.olm.v1.curve25519-aes-sha2",8087
+ "m.megolm.v1.aes-sha2"8088
+ ],8089
+ "device_id": "ALICEDEVICE201",8090
+ "keys": {8091
+ "curve25519:ALICEDEVICE201": "vl8+lHaJqWnp/Fkl0wv9toTq0bldBlF5UK+7FjMYJWQ",8092
+ "ed25519:ALICEDEVICE201": "+KU/aafoAbWN5rOQ7XmkxwXbApvBwQEnShe/pqux8nU"8093
+ },8094
+ "signatures": {8095
+ "@alice_201:hs1": {8096
+ "ed25519:ALICEDEVICE201": "BQpnTuB4VvlF75QYkS+dlJXG8VUhFEwdkAjJKmSV9ga5LjR+5TDHOs4302UjI4M8pOPmApVS8o0a63Qf9KNgAw"8097
+ }8098
+ },8099
+ "user_id": "@alice_201:hs1",8100
+ "unsigned": {}8101
+ }8102
+ },8103
+ "@alice_204:hs1": {8104
+ "ALICEDEVICE204": {8105
+ "algorithms": [8106
+ "m.olm.v1.curve25519-aes-sha2",8107
+ "m.megolm.v1.aes-sha2"8108
+ ],8109
+ "device_id": "ALICEDEVICE204",8110
+ "keys": {8111
+ "curve25519:ALICEDEVICE204": "bR6mITER4axh3jf7bbpB3NajobVeLSkNpBpJQ75IOjk",8112
+ "ed25519:ALICEDEVICE204": "a1e7xV0LHI/yddJ+aJQEUUes0KhzPv+swT93DKXYHWU"8113
+ },8114
+ "signatures": {8115
+ "@alice_204:hs1": {8116
+ "ed25519:ALICEDEVICE204": "sJdOwG1QjjGDm1PMED6D3np0DABcnKxvVcW9XoWLr3rT3fclF/sW01uLm/gfQiQMU0cbWRU9TXnzwsRZC29WBw"8117
+ }8118
+ },8119
+ "user_id": "@alice_204:hs1",8120
+ "unsigned": {}8121
+ }8122
+ },8123
+ "@alice_207:hs1": {8124
+ "ALICEDEVICE207": {8125
+ "algorithms": [8126
+ "m.olm.v1.curve25519-aes-sha2",8127
+ "m.megolm.v1.aes-sha2"8128
+ ],8129
+ "device_id": "ALICEDEVICE207",8130
+ "keys": {8131
+ "curve25519:ALICEDEVICE207": "Qot5/TJizwZDz9QKSrLnzLE22VyQnPm0yqk3o/c/f0o",8132
+ "ed25519:ALICEDEVICE207": "TCWXW1vHby/63h+wPKSrmcUfaQVt8JLu0nawUxwjy+8"8133
+ },8134
+ "signatures": {8135
+ "@alice_207:hs1": {8136
+ "ed25519:ALICEDEVICE207": "lF/oOz6A4rh25XKlV+k755qJ4b71r0zfCQoq65qzsN5KNTNy0hhpplFdRBTY6A+G+mAux1MBK1biK/ElqXygDw"8137
+ }8138
+ },8139
+ "user_id": "@alice_207:hs1",8140
+ "unsigned": {}8141
+ }8142
+ },8143
+ "@alice_214:hs1": {8144
+ "ALICEDEVICE214": {8145
+ "algorithms": [8146
+ "m.olm.v1.curve25519-aes-sha2",8147
+ "m.megolm.v1.aes-sha2"8148
+ ],8149
+ "device_id": "ALICEDEVICE214",8150
+ "keys": {8151
+ "curve25519:ALICEDEVICE214": "sn1U+4qHxWbVjOJl3pNXwY6W7eHcdThiHi4WkQ+bXSg",8152
+ "ed25519:ALICEDEVICE214": "I20VDtplT1b6NgG7xhSrmN3MOBEz7bOcYnpItU07JmA"8153
+ },8154
+ "signatures": {8155
+ "@alice_214:hs1": {8156
+ "ed25519:ALICEDEVICE214": "bIwRL6eTlkA7YDcSvU905JfQxsuapRoZEbg7om/s/8EjzOOaPcGq/1d2wbV0MkREOOcBf8AwgIK2mv0nFVqABg"8157
+ }8158
+ },8159
+ "user_id": "@alice_214:hs1",8160
+ "unsigned": {}8161
+ }8162
+ },8163
+ "@alice_215:hs1": {8164
+ "ALICEDEVICE215": {8165
+ "algorithms": [8166
+ "m.olm.v1.curve25519-aes-sha2",8167
+ "m.megolm.v1.aes-sha2"8168
+ ],8169
+ "device_id": "ALICEDEVICE215",8170
+ "keys": {8171
+ "curve25519:ALICEDEVICE215": "72bExrHtwTINYmkqyduXsL1Tl8jAdMkSLbjxJE2zg1o",8172
+ "ed25519:ALICEDEVICE215": "v4luZ044ZHzLzutusxVssJXlh1CjoGcDq31okFb5D3w"8173
+ },8174
+ "signatures": {8175
+ "@alice_215:hs1": {8176
+ "ed25519:ALICEDEVICE215": "s6cqUmUHoTIN9evcZYYl8XO8XgwCmNvnqo+GivO0TdutW/QG96FqA2gtDiIBTGdLphgwKDbwvHtv1957i8w8Dw"8177
+ }8178
+ },8179
+ "user_id": "@alice_215:hs1",8180
+ "unsigned": {}8181
+ }8182
+ },8183
+ "@alice_238:hs1": {8184
+ "ALICEDEVICE238": {8185
+ "algorithms": [8186
+ "m.olm.v1.curve25519-aes-sha2",8187
+ "m.megolm.v1.aes-sha2"8188
+ ],8189
+ "device_id": "ALICEDEVICE238",8190
+ "keys": {8191
+ "curve25519:ALICEDEVICE238": "1a5AG27z+lXnJUQq/N62orbCMbH5aEZkcM43dsADVEM",8192
+ "ed25519:ALICEDEVICE238": "IVYCoLr3OzGhgjnM7ozv0+f1cfEuJofJ0rWnjXeCGpc"8193
+ },8194
+ "signatures": {8195
+ "@alice_238:hs1": {8196
+ "ed25519:ALICEDEVICE238": "i0BDTlmz0DxGS69FbpASI9LO67dz1Q9YQzve37Tc6BT/mTqTDRrApEf/C34lOc7XQ01lmfbc2O55OEpp+hHNBg"8197
+ }8198
+ },8199
+ "user_id": "@alice_238:hs1",8200
+ "unsigned": {}8201
+ }8202
+ },8203
+ "@alice_239:hs1": {8204
+ "ALICEDEVICE239": {8205
+ "algorithms": [8206
+ "m.olm.v1.curve25519-aes-sha2",8207
+ "m.megolm.v1.aes-sha2"8208
+ ],8209
+ "device_id": "ALICEDEVICE239",8210
+ "keys": {8211
+ "curve25519:ALICEDEVICE239": "HbyMHB3iOWjFDMb0ju0OIYGKXz2jIu+PwxacH1UWviw",8212
+ "ed25519:ALICEDEVICE239": "8qkp+ogCOsnUQdLQv0VUx2nrCvQbuNfIdNT5HtEX3+Y"8213
+ },8214
+ "signatures": {8215
+ "@alice_239:hs1": {8216
+ "ed25519:ALICEDEVICE239": "Ye+62MWkdMt8iM8Cgd0QIZewz7HKXa9q2xgZDxDFAtkf7QX54rqH4mAeFlbe0nd5SatNej1/GcsCrM52XtTjCg"8217
+ }8218
+ },8219
+ "user_id": "@alice_239:hs1",8220
+ "unsigned": {}8221
+ }8222
+ },8223
+ "@alice_248:hs1": {8224
+ "ALICEDEVICE248": {8225
+ "algorithms": [8226
+ "m.olm.v1.curve25519-aes-sha2",8227
+ "m.megolm.v1.aes-sha2"8228
+ ],8229
+ "device_id": "ALICEDEVICE248",8230
+ "keys": {8231
+ "curve25519:ALICEDEVICE248": "g7U54/aCtxmTjZ94VQkH7SQ9jso7oxAeE4h1jhvU4iI",8232
+ "ed25519:ALICEDEVICE248": "Cow8gAYtKFn1/fSZv1FtVMCQtThMo4T6QqvLUE/m2IM"8233
+ },8234
+ "signatures": {8235
+ "@alice_248:hs1": {8236
+ "ed25519:ALICEDEVICE248": "TQgprR3JKNu4bVt67/zz3074KG5+hjEQNhq31SdHP1bPpAmxz9XUykVOnJsDKgShK2NYFb8mzcJd+HWbfsALCw"8237
+ }8238
+ },8239
+ "user_id": "@alice_248:hs1",8240
+ "unsigned": {}8241
+ }8242
+ },8243
+ "@alice_250:hs1": {8244
+ "ALICEDEVICE250": {8245
+ "algorithms": [8246
+ "m.olm.v1.curve25519-aes-sha2",8247
+ "m.megolm.v1.aes-sha2"8248
+ ],8249
+ "device_id": "ALICEDEVICE250",8250
+ "keys": {8251
+ "curve25519:ALICEDEVICE250": "PBES4gn1xbEY7/0NFLUDWkcj8XzjX3Nuy5J7qoXIAho",8252
+ "ed25519:ALICEDEVICE250": "/7+E5QQSzAz/C5rI9MTugpcoltGLTVnvpYjzyX69IOI"8253
+ },8254
+ "signatures": {8255
+ "@alice_250:hs1": {8256
+ "ed25519:ALICEDEVICE250": "J+73Y0+tdtYJzDwgnN9dS2SUm+GTaKr30T7exFGyiV0Ogp4gzusbUmNFFZxcZVUmWTsxA2QvYGsJfz06+o06Ag"8257
+ }8258
+ },8259
+ "user_id": "@alice_250:hs1",8260
+ "unsigned": {}8261
+ }8262
+ },8263
+ "@alice_254:hs1": {8264
+ "ALICEDEVICE254": {8265
+ "algorithms": [8266
+ "m.olm.v1.curve25519-aes-sha2",8267
+ "m.megolm.v1.aes-sha2"8268
+ ],8269
+ "device_id": "ALICEDEVICE254",8270
+ "keys": {8271
+ "curve25519:ALICEDEVICE254": "r/RWPtOw8FmuyKMKiIy52WsxEhcmbGB9uRYa1cWfB24",8272
+ "ed25519:ALICEDEVICE254": "Iu68N5orPfMJHZgkcC4KoF2e2qw4ZXVHJrvytwssuLU"8273
+ },8274
+ "signatures": {8275
+ "@alice_254:hs1": {8276
+ "ed25519:ALICEDEVICE254": "AGiayugDHsLYiOVlif0pWIE5riD46OSzabBPXeEzGtbxNFBTMvRFZ2C/kNbBrn0B3RSYQ++yBfhsNYCPRxz6AA"8277
+ }8278
+ },8279
+ "user_id": "@alice_254:hs1",8280
+ "unsigned": {}8281
+ }8282
+ },8283
+ "@alice_258:hs1": {8284
+ "ALICEDEVICE258": {8285
+ "algorithms": [8286
+ "m.olm.v1.curve25519-aes-sha2",8287
+ "m.megolm.v1.aes-sha2"8288
+ ],8289
+ "device_id": "ALICEDEVICE258",8290
+ "keys": {8291
+ "curve25519:ALICEDEVICE258": "bONq5yEpAaFfkqLrVc3EdQDQc55W0GJUKTdVfNkvSH4",8292
+ "ed25519:ALICEDEVICE258": "YEqhr8t7R61wR9Djg9ujL7MCq2yrUtpoHAPDAtsY5h8"8293
+ },8294
+ "signatures": {8295
+ "@alice_258:hs1": {8296
+ "ed25519:ALICEDEVICE258": "HNCzSZNNqzcbF9LoLG7AkBQycPLtd+cz1jQ2uGyrC862Jw/4Gb/TDtn5zoHMFUYDsvwfNmBT/kwKjorE+3ZKCQ"8297
+ }8298
+ },8299
+ "user_id": "@alice_258:hs1",8300
+ "unsigned": {}8301
+ }8302
+ },8303
+ "@alice_266:hs1": {8304
+ "ALICEDEVICE266": {8305
+ "algorithms": [8306
+ "m.olm.v1.curve25519-aes-sha2",8307
+ "m.megolm.v1.aes-sha2"8308
+ ],8309
+ "device_id": "ALICEDEVICE266",8310
+ "keys": {8311
+ "curve25519:ALICEDEVICE266": "Xk5ICLEl56q3jgyIhRShlX7R3re9rPr0EiJB0pDMi3o",8312
+ "ed25519:ALICEDEVICE266": "Lt1BRCgGGkNcnXtkZGqbwV0RZ2I1BYXQp0wa/FAD9LM"8313
+ },8314
+ "signatures": {8315
+ "@alice_266:hs1": {8316
+ "ed25519:ALICEDEVICE266": "ajo0RWoiHnFOZWFNPfouzyLjt7EgZDFZ5VT4MRJYYIqUY/Y84LQN74Z+4k2HYQ+Kcgf0GV0oqkCOEuy3iYMDCw"8317
+ }8318
+ },8319
+ "user_id": "@alice_266:hs1",8320
+ "unsigned": {}8321
+ }8322
+ },8323
+ "@alice_267:hs1": {8324
+ "ALICEDEVICE267": {8325
+ "algorithms": [8326
+ "m.olm.v1.curve25519-aes-sha2",8327
+ "m.megolm.v1.aes-sha2"8328
+ ],8329
+ "device_id": "ALICEDEVICE267",8330
+ "keys": {8331
+ "curve25519:ALICEDEVICE267": "yupbIex7ea40XFWHncXNtrfzO5SpusMhP9SuNye+9gk",8332
+ "ed25519:ALICEDEVICE267": "oLTO2SDVKV2Ev81pVd5MopoXQeSBuf3o1TONCOBVV5E"8333
+ },8334
+ "signatures": {8335
+ "@alice_267:hs1": {8336
+ "ed25519:ALICEDEVICE267": "+CCYW+JDnXSrXS400/kR+WZGqXJnRsImKPd0csuqtv7lqZ7ehuZZaj0O/rc656OftZ9omvpCyvjHZFBRKmHgAw"8337
+ }8338
+ },8339
+ "user_id": "@alice_267:hs1",8340
+ "unsigned": {}8341
+ }8342
+ },8343
+ "@alice_274:hs1": {8344
+ "ALICEDEVICE274": {8345
+ "algorithms": [8346
+ "m.olm.v1.curve25519-aes-sha2",8347
+ "m.megolm.v1.aes-sha2"8348
+ ],8349
+ "device_id": "ALICEDEVICE274",8350
+ "keys": {8351
+ "curve25519:ALICEDEVICE274": "nOOc/9VmIae9kJhK7oH6E4FrFHtF8qOIhNki9KqBkE0",8352
+ "ed25519:ALICEDEVICE274": "Lt60LDYKAht4AbjTj+RZTjPaJJSovM8b8SYlTgSc61s"8353
+ },8354
+ "signatures": {8355
+ "@alice_274:hs1": {8356
+ "ed25519:ALICEDEVICE274": "M/CDnu4eWVGWNmYst4fcEOboYXJKVA/9bNleGdbeeJ4UtCz6rk6uuhYW2UYqpVdQi55jk/vEihPdlfM2pFMvBg"8357
+ }8358
+ },8359
+ "user_id": "@alice_274:hs1",8360
+ "unsigned": {}8361
+ }8362
+ },8363
+ "@alice_275:hs1": {8364
+ "ALICEDEVICE275": {8365
+ "algorithms": [8366
+ "m.olm.v1.curve25519-aes-sha2",8367
+ "m.megolm.v1.aes-sha2"8368
+ ],8369
+ "device_id": "ALICEDEVICE275",8370
+ "keys": {8371
+ "curve25519:ALICEDEVICE275": "9bRR3tSil/wR0bJKKbhg5NY5CbVJ1jYw8W7op3PcIVo",8372
+ "ed25519:ALICEDEVICE275": "t9/FwKLDSS9vWKDUlN8RgVlJk6x6sOys2jZbnGsA2DY"8373
+ },8374
+ "signatures": {8375
+ "@alice_275:hs1": {8376
+ "ed25519:ALICEDEVICE275": "x4Y4Gu02knmzeTfXUOumhs7FhFhRneOrWdOZnHGjoRzFWCaz6D8+Oo1Qo0AZhiBFSc8qByhJJ6x3XTWytMyiBA"8377
+ }8378
+ },8379
+ "user_id": "@alice_275:hs1",8380
+ "unsigned": {}8381
+ }8382
+ },8383
+ "@alice_288:hs1": {8384
+ "ALICEDEVICE288": {8385
+ "algorithms": [8386
+ "m.olm.v1.curve25519-aes-sha2",8387
+ "m.megolm.v1.aes-sha2"8388
+ ],8389
+ "device_id": "ALICEDEVICE288",8390
+ "keys": {8391
+ "curve25519:ALICEDEVICE288": "GcgXwwPHxzQfyI6m7AGJSoojfPqDkmMBjqSXwr5k6hw",8392
+ "ed25519:ALICEDEVICE288": "AMa/FhZhLqSk2HHYuOn+wJaNn2oH3xzFLAOYPA9Uv/4"8393
+ },8394
+ "signatures": {8395
+ "@alice_288:hs1": {8396
+ "ed25519:ALICEDEVICE288": "O/tGu3PLkBeb5/AdgEQD5zKipUzJ5L0pkabjTvr+rXBsQsz7XozJRS7p98Q2S3RIJ7IVlZR600I3SUG3+A+DDA"8397
+ }8398
+ },8399
+ "user_id": "@alice_288:hs1",8400
+ "unsigned": {}8401
+ }8402
+ },8403
+ "@alice_298:hs1": {8404
+ "ALICEDEVICE298": {8405
+ "algorithms": [8406
+ "m.olm.v1.curve25519-aes-sha2",8407
+ "m.megolm.v1.aes-sha2"8408
+ ],8409
+ "device_id": "ALICEDEVICE298",8410
+ "keys": {8411
+ "curve25519:ALICEDEVICE298": "Pl8fMbIF5IO3NG9PSK2LOftfKFWVoSCD5PCjHDLePSY",8412
+ "ed25519:ALICEDEVICE298": "4mW36P09DpbES+03EwzgFUoLzWPc3f9Bwbz5xShFgIA"8413
+ },8414
+ "signatures": {8415
+ "@alice_298:hs1": {8416
+ "ed25519:ALICEDEVICE298": "AhtnHNWo/R6yvUPW/31rui6nrsHQnzPfk/iTqJHfo0I/h32tIxGS0ySWPiG8Ufat6kjA0JpL9UhG+jM4JljfAg"8417
+ }8418
+ },8419
+ "user_id": "@alice_298:hs1",8420
+ "unsigned": {}8421
+ }8422
+ },8423
+ "@alice_307:hs1": {8424
+ "ALICEDEVICE307": {8425
+ "algorithms": [8426
+ "m.olm.v1.curve25519-aes-sha2",8427
+ "m.megolm.v1.aes-sha2"8428
+ ],8429
+ "device_id": "ALICEDEVICE307",8430
+ "keys": {8431
+ "curve25519:ALICEDEVICE307": "/VwCmyFv8m6BYHkZQwbaLgybXBPoab+fnnH39NY6ECY",8432
+ "ed25519:ALICEDEVICE307": "8mzhRcBpATYQi538ZNHhiluh98/6vH+oN5bZqSWWIhY"8433
+ },8434
+ "signatures": {8435
+ "@alice_307:hs1": {8436
+ "ed25519:ALICEDEVICE307": "XO+8t6gjqpDM71d8JKsnO1bKv4F0Rj+V1uJF0CoDeVobmudMXE+Qvx7OWrup7zYEXhO52tvKGZ2/BrrsaCU/Ag"8437
+ }8438
+ },8439
+ "user_id": "@alice_307:hs1",8440
+ "unsigned": {}8441
+ }8442
+ },8443
+ "@alice_325:hs1": {8444
+ "ALICEDEVICE325": {8445
+ "algorithms": [8446
+ "m.olm.v1.curve25519-aes-sha2",8447
+ "m.megolm.v1.aes-sha2"8448
+ ],8449
+ "device_id": "ALICEDEVICE325",8450
+ "keys": {8451
+ "curve25519:ALICEDEVICE325": "XwsZDSH51LhUP4rxqeOxC+GQCgQxA/IcWLMs54j1yFk",8452
+ "ed25519:ALICEDEVICE325": "yWQ3foZRqSax9IvZPE1hOV8YluCo6EZYRSBFyuJeylA"8453
+ },8454
+ "signatures": {8455
+ "@alice_325:hs1": {8456
+ "ed25519:ALICEDEVICE325": "YT1tWlDue0L8CQeThNa3Sh/usBDjMovwU115GC/OBagYe6AMx75pKVu9eF2oQIkLgvSUJWAN8qPnkH61ilqMAQ"8457
+ }8458
+ },8459
+ "user_id": "@alice_325:hs1",8460
+ "unsigned": {}8461
+ }8462
+ },8463
+ "@alice_332:hs1": {8464
+ "ALICEDEVICE332": {8465
+ "algorithms": [8466
+ "m.olm.v1.curve25519-aes-sha2",8467
+ "m.megolm.v1.aes-sha2"8468
+ ],8469
+ "device_id": "ALICEDEVICE332",8470
+ "keys": {8471
+ "curve25519:ALICEDEVICE332": "ZE/DcCLKGvvBgs1GQYvhsl49Rb3PxMktcG+zog1XL18",8472
+ "ed25519:ALICEDEVICE332": "MyCavp40s3jm69qbG6O6/lC4E0T3O1ekHzVAMbuZfMU"8473
+ },8474
+ "signatures": {8475
+ "@alice_332:hs1": {8476
+ "ed25519:ALICEDEVICE332": "4qWJK1y6iNT65dbC5753/6EjknMNEFzILg2LZVqpU2QQuHYWWLPWC8PjJq5cKyLUBnhPC7CUniulmkvYgeKLDw"8477
+ }8478
+ },8479
+ "user_id": "@alice_332:hs1",8480
+ "unsigned": {}8481
+ }8482
+ },8483
+ "@alice_33:hs1": {8484
+ "ALICEDEVICE33": {8485
+ "algorithms": [8486
+ "m.olm.v1.curve25519-aes-sha2",8487
+ "m.megolm.v1.aes-sha2"8488
+ ],8489
+ "device_id": "ALICEDEVICE33",8490
+ "keys": {8491
+ "curve25519:ALICEDEVICE33": "6XVpPaXaLlqWaCM0yfFIn0iiefQSZqi6rmR1CKd1BUQ",8492
+ "ed25519:ALICEDEVICE33": "QWBw40vR5P4/q5AoLrQqSpJZg4aAdG4Lw+uq8fNDmKs"8493
+ },8494
+ "signatures": {8495
+ "@alice_33:hs1": {8496
+ "ed25519:ALICEDEVICE33": "vDVEx23+YXEd80mj0ebJOXXMCw3BMhW6CbvBWyi4XJzGR9F5A++OTJlYBHW8fXi4oWMWdEGvA0yTZY8/X+DIDw"8497
+ }8498
+ },8499
+ "user_id": "@alice_33:hs1",8500
+ "unsigned": {}8501
+ }8502
+ },8503
+ "@alice_347:hs1": {8504
+ "ALICEDEVICE347": {8505
+ "algorithms": [8506
+ "m.olm.v1.curve25519-aes-sha2",8507
+ "m.megolm.v1.aes-sha2"8508
+ ],8509
+ "device_id": "ALICEDEVICE347",8510
+ "keys": {8511
+ "curve25519:ALICEDEVICE347": "9x2yTP/sHyM4UC01SSuPIwyS8GKg2b6eDUXakg3N01Y",8512
+ "ed25519:ALICEDEVICE347": "SKBhjirpsghNXPFCGKnr/u7oIhIa+RUThKDNe3OcliE"8513
+ },8514
+ "signatures": {8515
+ "@alice_347:hs1": {8516
+ "ed25519:ALICEDEVICE347": "lBxXtswFZScMBqQWAhm82WpcrZMsG51EmMmRjswt16icCCC7sBZSP9HfnlOC/nLWIVyU7MkD/hllb3/DUnAwCw"8517
+ }8518
+ },8519
+ "user_id": "@alice_347:hs1",8520
+ "unsigned": {}8521
+ }8522
+ },8523
+ "@alice_351:hs1": {8524
+ "ALICEDEVICE351": {8525
+ "algorithms": [8526
+ "m.olm.v1.curve25519-aes-sha2",8527
+ "m.megolm.v1.aes-sha2"8528
+ ],8529
+ "device_id": "ALICEDEVICE351",8530
+ "keys": {8531
+ "curve25519:ALICEDEVICE351": "dsQsfSqSK3DCu2j2tQJNRzYoYyzOyuab5omItx53MFQ",8532
+ "ed25519:ALICEDEVICE351": "BKzb7qvOP5T1cH3eRQVs7+V7XIeibV/ACaUsgUEFSTM"8533
+ },8534
+ "signatures": {8535
+ "@alice_351:hs1": {8536
+ "ed25519:ALICEDEVICE351": "/mAD1hUCfa3NNdQ91VwmSzX5ZlcKVMBm+Aag2U5Twu6HQetqPgQoU13LHc1lcp1gLzr9Ci3QJZaO05oTmFy5Ag"8537
+ }8538
+ },8539
+ "user_id": "@alice_351:hs1",8540
+ "unsigned": {}8541
+ }8542
+ },8543
+ "@alice_359:hs1": {8544
+ "ALICEDEVICE359": {8545
+ "algorithms": [8546
+ "m.olm.v1.curve25519-aes-sha2",8547
+ "m.megolm.v1.aes-sha2"8548
+ ],8549
+ "device_id": "ALICEDEVICE359",8550
+ "keys": {8551
+ "curve25519:ALICEDEVICE359": "PX8n/Uzd3lFXeoNzQ10XGf2aZjGVINgmv15q93O/un0",8552
+ "ed25519:ALICEDEVICE359": "0WYwnMLJszuKka9STKVUOMr/yParbqFIYkO8A/RCNfw"8553
+ },8554
+ "signatures": {8555
+ "@alice_359:hs1": {8556
+ "ed25519:ALICEDEVICE359": "p1bvEsQXRrqpnvxVmQ5MZhcrN8y2Whp3TZ4HIGoyrrtD3FB0TYTCsdkgTA+862ZmkneFV+a+TmTmuc0LSFVICw"8557
+ }8558
+ },8559
+ "user_id": "@alice_359:hs1",8560
+ "unsigned": {}8561
+ }8562
+ },8563
+ "@alice_383:hs1": {8564
+ "ALICEDEVICE383": {8565
+ "algorithms": [8566
+ "m.olm.v1.curve25519-aes-sha2",8567
+ "m.megolm.v1.aes-sha2"8568
+ ],8569
+ "device_id": "ALICEDEVICE383",8570
+ "keys": {8571
+ "curve25519:ALICEDEVICE383": "nQdHrDQFzYlMvfyzBv0UJaFEqc0ZNPuAfpqde/pUCF0",8572
+ "ed25519:ALICEDEVICE383": "vbnvrm1qHDQ+1kw3Ep7SqyVy1+YVuh0voH/kU64w4mM"8573
+ },8574
+ "signatures": {8575
+ "@alice_383:hs1": {8576
+ "ed25519:ALICEDEVICE383": "mmKyEEkm8sORYofpejUYmrVLWxyBKD3l+wufMx7TOIOFBc/GSxfFJJ1igukipyfBAZ9hkZgikDBjeCF0VipLBw"8577
+ }8578
+ },8579
+ "user_id": "@alice_383:hs1",8580
+ "unsigned": {}8581
+ }8582
+ },8583
+ "@alice_387:hs1": {8584
+ "ALICEDEVICE387": {8585
+ "algorithms": [8586
+ "m.olm.v1.curve25519-aes-sha2",8587
+ "m.megolm.v1.aes-sha2"8588
+ ],8589
+ "device_id": "ALICEDEVICE387",8590
+ "keys": {8591
+ "curve25519:ALICEDEVICE387": "Zbf0l1YN0E9Sv5sQosTm/ec5jFqVW/asbaYR7QEQYBs",8592
+ "ed25519:ALICEDEVICE387": "ANFlEup+REtW4H+CSDsFLpSoOAGTS+mkcHqHb8bjmX0"8593
+ },8594
+ "signatures": {8595
+ "@alice_387:hs1": {8596
+ "ed25519:ALICEDEVICE387": "3JZulhNlbFDPL4szyrMQh9/1spN6MZHHiHZJ3JAVAUo6j6Tf5DABm/M5QeHcB8oLuQyPwzloO4U64Uo7vf+bAA"8597
+ }8598
+ },8599
+ "user_id": "@alice_387:hs1",8600
+ "unsigned": {}8601
+ }8602
+ },8603
+ "@alice_388:hs1": {8604
+ "ALICEDEVICE388": {8605
+ "algorithms": [8606
+ "m.olm.v1.curve25519-aes-sha2",8607
+ "m.megolm.v1.aes-sha2"8608
+ ],8609
+ "device_id": "ALICEDEVICE388",8610
+ "keys": {8611
+ "curve25519:ALICEDEVICE388": "UpfRD26IwVqKyfvhZBpxyd/YEMAwOOzaJKyvZ4zRy2M",8612
+ "ed25519:ALICEDEVICE388": "pg8vARRH5Gy77GvAzL61GtfhKTpx+5lq5f0PWfrtQd8"8613
+ },8614
+ "signatures": {8615
+ "@alice_388:hs1": {8616
+ "ed25519:ALICEDEVICE388": "Onsh/yjxYJnsK3aI2E1hfvb9hZCL60Ak6tIV6Xe9MPXzmoUZDguW/rpl408QhREyn4NmAfIMXYMjxBLS+Fp7DA"8617
+ }8618
+ },8619
+ "user_id": "@alice_388:hs1",8620
+ "unsigned": {}8621
+ }8622
+ },8623
+ "@alice_390:hs1": {8624
+ "ALICEDEVICE390": {8625
+ "algorithms": [8626
+ "m.olm.v1.curve25519-aes-sha2",8627
+ "m.megolm.v1.aes-sha2"8628
+ ],8629
+ "device_id": "ALICEDEVICE390",8630
+ "keys": {8631
+ "curve25519:ALICEDEVICE390": "UvBCwNSsAvL7oJFv9d8npJ6yhZTVgIMm38dT8XUzqWo",8632
+ "ed25519:ALICEDEVICE390": "JjrE+t1nhf0DbjS27xGvvxAp/RJReFCYZjgTwga9io8"8633
+ },8634
+ "signatures": {8635
+ "@alice_390:hs1": {8636
+ "ed25519:ALICEDEVICE390": "o4qorYmQND8lwzJ1wetMveh5oVOJQFQBsJiJSVXk9RjvQ+kPtm/Aqz2tGepK5M2cLoe8FDJLhNBFI5aqcBvcDg"8637
+ }8638
+ },8639
+ "user_id": "@alice_390:hs1",8640
+ "unsigned": {}8641
+ }8642
+ },8643
+ "@alice_3:hs1": {8644
+ "ALICEDEVICE3": {8645
+ "algorithms": [8646
+ "m.olm.v1.curve25519-aes-sha2",8647
+ "m.megolm.v1.aes-sha2"8648
+ ],8649
+ "device_id": "ALICEDEVICE3",8650
+ "keys": {8651
+ "curve25519:ALICEDEVICE3": "vQ6E9RiYfYJHx9LB9n9lCXJSgZzbsLKcaXyZo72gix4",8652
+ "ed25519:ALICEDEVICE3": "n+OZVQ1DaWbRTdGi9mjBPBW49oUWFyLtHlTMlDe8Ht8"8653
+ },8654
+ "signatures": {8655
+ "@alice_3:hs1": {8656
+ "ed25519:ALICEDEVICE3": "IIsURQcAXbXxaMulLaPJml6KuBCl7TGhafh/NW6KxLk7979qisSo+ukguwunMnA/EC33S7MzxEK2HM6oyz2tCA"8657
+ }8658
+ },8659
+ "user_id": "@alice_3:hs1",8660
+ "unsigned": {}8661
+ }8662
+ },8663
+ "@alice_403:hs1": {8664
+ "ALICEDEVICE403": {8665
+ "algorithms": [8666
+ "m.olm.v1.curve25519-aes-sha2",8667
+ "m.megolm.v1.aes-sha2"8668
+ ],8669
+ "device_id": "ALICEDEVICE403",8670
+ "keys": {8671
+ "curve25519:ALICEDEVICE403": "ldA0J2UvIIUFHOjyPX35HAsG1qVdsshFqMz7/s7U7DE",8672
+ "ed25519:ALICEDEVICE403": "D5HC+e4woLDyVOh5TAXAzN8/rafvmxZciFE9GYv+jXI"8673
+ },8674
+ "signatures": {8675
+ "@alice_403:hs1": {8676
+ "ed25519:ALICEDEVICE403": "Ss1HATpyvuiMNDFfW+e2qlwHTdxfqIx/9vtc0/RJUzzII/tF2AOPGzKK5sEhxKlOt6mLTAP9zUao++Od1gM9Ag"8677
+ }8678
+ },8679
+ "user_id": "@alice_403:hs1",8680
+ "unsigned": {}8681
+ }8682
+ },8683
+ "@alice_406:hs1": {8684
+ "ALICEDEVICE406": {8685
+ "algorithms": [8686
+ "m.olm.v1.curve25519-aes-sha2",8687
+ "m.megolm.v1.aes-sha2"8688
+ ],8689
+ "device_id": "ALICEDEVICE406",8690
+ "keys": {8691
+ "curve25519:ALICEDEVICE406": "u01EE7PA8Dz6vy0pYgRUz7wN8CM6r4q+qdiknEa4u2c",8692
+ "ed25519:ALICEDEVICE406": "/SjipSHWf3mJwQ2MUBYDaEC5OQ8H9O0itDPm2YdTvQA"8693
+ },8694
+ "signatures": {8695
+ "@alice_406:hs1": {8696
+ "ed25519:ALICEDEVICE406": "jmzW7BXZxXw7Ti7mxmcfjY8UTITx+7QcYiOJwO8l7O7puR+EjcfPogb4TA+wyU0GU0BVshheo5tsu4nJEirFCg"8697
+ }8698
+ },8699
+ "user_id": "@alice_406:hs1",8700
+ "unsigned": {}8701
+ }8702
+ },8703
+ "@alice_408:hs1": {8704
+ "ALICEDEVICE408": {8705
+ "algorithms": [8706
+ "m.olm.v1.curve25519-aes-sha2",8707
+ "m.megolm.v1.aes-sha2"8708
+ ],8709
+ "device_id": "ALICEDEVICE408",8710
+ "keys": {8711
+ "curve25519:ALICEDEVICE408": "cQrwDMkzp/ASsI9Xm1IwBS4RjLkeFgOXHKIIg7JZbGU",8712
+ "ed25519:ALICEDEVICE408": "ALQbIw9Z4PjaP0H35/+NTlQqRfsRPkIAHbHd1LIFFjE"8713
+ },8714
+ "signatures": {8715
+ "@alice_408:hs1": {8716
+ "ed25519:ALICEDEVICE408": "QYxSyy6BC0y64Z1EnX3MbYqsaHNK51RRNHF5y/yM1ibgJGPHuA+yN4lI1zR+EDxfnLk+3uDcykItiGCtmHFxBg"8717
+ }8718
+ },8719
+ "user_id": "@alice_408:hs1",8720
+ "unsigned": {}8721
+ }8722
+ },8723
+ "@alice_418:hs1": {8724
+ "ALICEDEVICE418": {8725
+ "algorithms": [8726
+ "m.olm.v1.curve25519-aes-sha2",8727
+ "m.megolm.v1.aes-sha2"8728
+ ],8729
+ "device_id": "ALICEDEVICE418",8730
+ "keys": {8731
+ "curve25519:ALICEDEVICE418": "zYsZdWwtoYCf7rKCxlK72gkMoOc/QnHrQZi+y9v57wQ",8732
+ "ed25519:ALICEDEVICE418": "TYJxKLfWZW7ZRD8xpxdhF5f1nqi7IBARIqm1cqvUWbQ"8733
+ },8734
+ "signatures": {8735
+ "@alice_418:hs1": {8736
+ "ed25519:ALICEDEVICE418": "Dp0C640nyENq8aFKNDvvP3bmiOXnllKxRjlwh9Mq4OC0Je8NSK6NTZB5+K5YPkeagdj01BH1LyquYiZZl91pCQ"8737
+ }8738
+ },8739
+ "user_id": "@alice_418:hs1",8740
+ "unsigned": {}8741
+ }8742
+ },8743
+ "@alice_42:hs1": {8744
+ "ALICEDEVICE42": {8745
+ "algorithms": [8746
+ "m.olm.v1.curve25519-aes-sha2",8747
+ "m.megolm.v1.aes-sha2"8748
+ ],8749
+ "device_id": "ALICEDEVICE42",8750
+ "keys": {8751
+ "curve25519:ALICEDEVICE42": "2tGdRFHHKIMxg4zYQO07vnOLwW0lRCR1SmtdjD8IhRo",8752
+ "ed25519:ALICEDEVICE42": "9e2kxpCczpjDKC5laS82EY2a5doqmte5oEnhBFs9cmc"8753
+ },8754
+ "signatures": {8755
+ "@alice_42:hs1": {8756
+ "ed25519:ALICEDEVICE42": "OCI0EF3IyvxHaE+7oQT+f9rzVQj/Nbw2YkXuzQk/GEJV3e99euAymJSu528kNFkBaqDkkWaDH8/qsAXHmLdECw"8757
+ }8758
+ },8759
+ "user_id": "@alice_42:hs1",8760
+ "unsigned": {}8761
+ }8762
+ },8763
+ "@alice_430:hs1": {8764
+ "ALICEDEVICE430": {8765
+ "algorithms": [8766
+ "m.olm.v1.curve25519-aes-sha2",8767
+ "m.megolm.v1.aes-sha2"8768
+ ],8769
+ "device_id": "ALICEDEVICE430",8770
+ "keys": {8771
+ "curve25519:ALICEDEVICE430": "+y3wJpJtAqamRKyvWA9Ba43+WO3VJNH/+bDkazm1wSI",8772
+ "ed25519:ALICEDEVICE430": "GDOMz3cT5ZuYPIFIbxGC+qYJKD/fQIGldlbw4byc6oI"8773
+ },8774
+ "signatures": {8775
+ "@alice_430:hs1": {8776
+ "ed25519:ALICEDEVICE430": "zZRqKfyU12i1oYQdhzqnF23ciB5NExqSHW6m0/JKsUk1pt0BC1QkX9u/fmSEE5ew6/7YmwFdSmO+c8V1qHrUAw"8777
+ }8778
+ },8779
+ "user_id": "@alice_430:hs1",8780
+ "unsigned": {}8781
+ }8782
+ },8783
+ "@alice_441:hs1": {8784
+ "ALICEDEVICE441": {8785
+ "algorithms": [8786
+ "m.olm.v1.curve25519-aes-sha2",8787
+ "m.megolm.v1.aes-sha2"8788
+ ],8789
+ "device_id": "ALICEDEVICE441",8790
+ "keys": {8791
+ "curve25519:ALICEDEVICE441": "+V6/JckGqBBYx1nQ4zYqMQzkdXg1OGT0zVHk4iJ/imQ",8792
+ "ed25519:ALICEDEVICE441": "QXnJbh7eZxbtsGR3s9JR5ePTF76+DA2Jh+N7Reb+utk"8793
+ },8794
+ "signatures": {8795
+ "@alice_441:hs1": {8796
+ "ed25519:ALICEDEVICE441": "w7TA+pqzc8J80azTf0FuIaQ8VojQccXS0ckn8WNI5MwhMsBwhcuV6BBilgI7Dyuqvmx2Q6BAplQHG/vd40jnAA"8797
+ }8798
+ },8799
+ "user_id": "@alice_441:hs1",8800
+ "unsigned": {}8801
+ }8802
+ },8803
+ "@alice_462:hs1": {8804
+ "ALICEDEVICE462": {8805
+ "algorithms": [8806
+ "m.olm.v1.curve25519-aes-sha2",8807
+ "m.megolm.v1.aes-sha2"8808
+ ],8809
+ "device_id": "ALICEDEVICE462",8810
+ "keys": {8811
+ "curve25519:ALICEDEVICE462": "ADTq6Byg1b5jKgy6tX0XbyUN5LqDo+PxKXq0gXvcAio",8812
+ "ed25519:ALICEDEVICE462": "n2wQENFizJAg7qTxoLKz6kmqbYbT7+h8U/4+A/M+xoU"8813
+ },8814
+ "signatures": {8815
+ "@alice_462:hs1": {8816
+ "ed25519:ALICEDEVICE462": "LuXbnmTDhZmzxNYlFJTSUwcEsAFSskK6K1oROFLALSERf8MEk21Gu1Nc9CdvwYfdynWMK2YS11YYhvNx0viUAg"8817
+ }8818
+ },8819
+ "user_id": "@alice_462:hs1",8820
+ "unsigned": {}8821
+ }8822
+ },8823
+ "@alice_465:hs1": {8824
+ "ALICEDEVICE465": {8825
+ "algorithms": [8826
+ "m.olm.v1.curve25519-aes-sha2",8827
+ "m.megolm.v1.aes-sha2"8828
+ ],8829
+ "device_id": "ALICEDEVICE465",8830
+ "keys": {8831
+ "curve25519:ALICEDEVICE465": "zFl54biyq8+y1DgVFgV0BCyk0iSqblycUeQOuSfa138",8832
+ "ed25519:ALICEDEVICE465": "PT+oGGsAqlMQSNtUaOK3PlEKNa/KqfbILDDHwi7vd/U"8833
+ },8834
+ "signatures": {8835
+ "@alice_465:hs1": {8836
+ "ed25519:ALICEDEVICE465": "3dREMr8Dem0DIQ9GU4XOQDkWeAOcH7Q3LC8WxzI4y/DzRJFlU1ArkWGlSqjCf58yj2dOE0WxQx/nZrqxmABkCw"8837
+ }8838
+ },8839
+ "user_id": "@alice_465:hs1",8840
+ "unsigned": {}8841
+ }8842
+ },8843
+ "@alice_467:hs1": {8844
+ "ALICEDEVICE467": {8845
+ "algorithms": [8846
+ "m.olm.v1.curve25519-aes-sha2",8847
+ "m.megolm.v1.aes-sha2"8848
+ ],8849
+ "device_id": "ALICEDEVICE467",8850
+ "keys": {8851
+ "curve25519:ALICEDEVICE467": "8HxzYytGlDcxN9ImAFkKOj/xRzPtouNGNDzc8figODI",8852
+ "ed25519:ALICEDEVICE467": "/7IN44XsEFjJsUslod3x7va9xE+jnD9P8cvshOjpx4Y"8853
+ },8854
+ "signatures": {8855
+ "@alice_467:hs1": {8856
+ "ed25519:ALICEDEVICE467": "cihJ77x5eF4nrTHh02lKs+8acQSYsaJQiXn1TjmL11Za579jF6PKwIs3SIZm/knjYAqM8fQbs6mpHIKXIF0vBQ"8857
+ }8858
+ },8859
+ "user_id": "@alice_467:hs1",8860
+ "unsigned": {}8861
+ }8862
+ },8863
+ "@alice_468:hs1": {8864
+ "ALICEDEVICE468": {8865
+ "algorithms": [8866
+ "m.olm.v1.curve25519-aes-sha2",8867
+ "m.megolm.v1.aes-sha2"8868
+ ],8869
+ "device_id": "ALICEDEVICE468",8870
+ "keys": {8871
+ "curve25519:ALICEDEVICE468": "LDs9UpG2Six83VG8bF1L7d7OeeT96S+hC7EkzqefDGk",8872
+ "ed25519:ALICEDEVICE468": "OfeNqDWHjkDHX6AEGizJRmjl/6nW+uIVlJdO+sQjiX4"8873
+ },8874
+ "signatures": {8875
+ "@alice_468:hs1": {8876
+ "ed25519:ALICEDEVICE468": "9HmIHZomQ/5G8mfy8jubAe8LsUurpB4Djt72cnZ0MVVMk+gBGDUtlF1BwgX3GYabb/te37KRhXhnlIvOjpmDCQ"8877
+ }8878
+ },8879
+ "user_id": "@alice_468:hs1",8880
+ "unsigned": {}8881
+ }8882
+ },8883
+ "@alice_471:hs1": {8884
+ "ALICEDEVICE471": {8885
+ "algorithms": [8886
+ "m.olm.v1.curve25519-aes-sha2",8887
+ "m.megolm.v1.aes-sha2"8888
+ ],8889
+ "device_id": "ALICEDEVICE471",8890
+ "keys": {8891
+ "curve25519:ALICEDEVICE471": "DT5h2UsqMKGvWGCIk5wuycK92XGGzQ/qkq3fUDMk/VI",8892
+ "ed25519:ALICEDEVICE471": "Ylup4/+BLec19kkCFB0s1zUs6CrnPOZIjSa0WRZbFYQ"8893
+ },8894
+ "signatures": {8895
+ "@alice_471:hs1": {8896
+ "ed25519:ALICEDEVICE471": "RQBYa2WEJgfTFcTV+YdGY4KM7g6Ss4TS3ejKVwNhUpf7dolj32VCPTiyBTI4wgnjwO7H8O5GrVyddzkml6uMDQ"8897
+ }8898
+ },8899
+ "user_id": "@alice_471:hs1",8900
+ "unsigned": {}8901
+ }8902
+ },8903
+ "@alice_486:hs1": {8904
+ "ALICEDEVICE486": {8905
+ "algorithms": [8906
+ "m.olm.v1.curve25519-aes-sha2",8907
+ "m.megolm.v1.aes-sha2"8908
+ ],8909
+ "device_id": "ALICEDEVICE486",8910
+ "keys": {8911
+ "curve25519:ALICEDEVICE486": "uspPhNid+UkOBO/kvPHpwflON+tYgdAcxXC92vvPCH0",8912
+ "ed25519:ALICEDEVICE486": "WzedXdLqFputxWtWxeGQi+qeCPzWGouUmNJa0AadFkc"8913
+ },8914
+ "signatures": {8915
+ "@alice_486:hs1": {8916
+ "ed25519:ALICEDEVICE486": "GyV4x3BptVPtj3fkAtPgEtX+wakQ5WktyOda2+QCyvX7JpQ/FvMv+ymTjCY1xC4cTYDi48Lu+jNoTDkpjh02CQ"8917
+ }8918
+ },8919
+ "user_id": "@alice_486:hs1",8920
+ "unsigned": {}8921
+ }8922
+ },8923
+ "@alice_487:hs1": {8924
+ "ALICEDEVICE487": {8925
+ "algorithms": [8926
+ "m.olm.v1.curve25519-aes-sha2",8927
+ "m.megolm.v1.aes-sha2"8928
+ ],8929
+ "device_id": "ALICEDEVICE487",8930
+ "keys": {8931
+ "curve25519:ALICEDEVICE487": "y+SobRwDE3PRicuGtbkEpPIBUxpHNMuMbNjTmy8GMmE",8932
+ "ed25519:ALICEDEVICE487": "4aOESDDT9MEeqf0lsEegQZ3bi3emvVHGx52CkV11PpM"8933
+ },8934
+ "signatures": {8935
+ "@alice_487:hs1": {8936
+ "ed25519:ALICEDEVICE487": "bQfeufDcwBWhI7+99PnYCNfOz1NV8u1zDtuinC7Rcg207gHY9GVa+NezNLBvtL0c84vyekXWT8o4/MlPehcpCA"8937
+ }8938
+ },8939
+ "user_id": "@alice_487:hs1",8940
+ "unsigned": {}8941
+ }8942
+ },8943
+ "@alice_488:hs1": {8944
+ "ALICEDEVICE488": {8945
+ "algorithms": [8946
+ "m.olm.v1.curve25519-aes-sha2",8947
+ "m.megolm.v1.aes-sha2"8948
+ ],8949
+ "device_id": "ALICEDEVICE488",8950
+ "keys": {8951
+ "curve25519:ALICEDEVICE488": "V7y5G7A/WlwCsB7ZM9HL7hjGlNTvedfEl0yj18oXmH0",8952
+ "ed25519:ALICEDEVICE488": "6Njrhydr9LfbtGZJ4gEt+0hPR+qiUz7dyM4pdYy9Hp8"8953
+ },8954
+ "signatures": {8955
+ "@alice_488:hs1": {8956
+ "ed25519:ALICEDEVICE488": "vIONt37MUMAZ7QeBFxilUfBk9lGXl++95R5iRoahj2hDoygljfC36yspi9BGmnY2NFTdo92lAI5ZB8yXFAskDQ"8957
+ }8958
+ },8959
+ "user_id": "@alice_488:hs1",8960
+ "unsigned": {}8961
+ }8962
+ },8963
+ "@alice_494:hs1": {8964
+ "ALICEDEVICE494": {8965
+ "algorithms": [8966
+ "m.olm.v1.curve25519-aes-sha2",8967
+ "m.megolm.v1.aes-sha2"8968
+ ],8969
+ "device_id": "ALICEDEVICE494",8970
+ "keys": {8971
+ "curve25519:ALICEDEVICE494": "xo2XcU9H/35JOm4D8aIJl+y+SqamLDqNFp/bRv34KCY",8972
+ "ed25519:ALICEDEVICE494": "6FrgDM9jwyWe7eneZqTtTWFfENFnzIx5g1aW46a9Em4"8973
+ },8974
+ "signatures": {8975
+ "@alice_494:hs1": {8976
+ "ed25519:ALICEDEVICE494": "IwnjMe/AwvDSlOX489FK/ZCD4QqKH3VpOCMBFiKAWzZvP8K/NY9l8ZsJveXXgVwju1lFWDRDx8Q+6F8YUqqlCg"8977
+ }8978
+ },8979
+ "user_id": "@alice_494:hs1",8980
+ "unsigned": {}8981
+ }8982
+ },8983
+ "@alice_501:hs1": {8984
+ "ALICEDEVICE501": {8985
+ "algorithms": [8986
+ "m.olm.v1.curve25519-aes-sha2",8987
+ "m.megolm.v1.aes-sha2"8988
+ ],8989
+ "device_id": "ALICEDEVICE501",8990
+ "keys": {8991
+ "curve25519:ALICEDEVICE501": "Xh+bzBaHCKvYEl0SK43mMmBdXY5voTS0LP/Ji6X1ZxU",8992
+ "ed25519:ALICEDEVICE501": "boLNZPIZgEHbtrWZSsqkMeEUtQvo6cnFRF7msrV2KeI"8993
+ },8994
+ "signatures": {8995
+ "@alice_501:hs1": {8996
+ "ed25519:ALICEDEVICE501": "LnJLwvbdETxVnwvTEcIrrHFMJN6tJjKmTW2bzX1NZ8NSmvC9diuFW2SP4GIZflYKkgoUilXyJSYisThMeZkIAg"8997
+ }8998
+ },8999
+ "user_id": "@alice_501:hs1",9000
+ "unsigned": {}9001
+ }9002
+ },9003
+ "@alice_507:hs1": {9004
+ "ALICEDEVICE507": {9005
+ "algorithms": [9006
+ "m.olm.v1.curve25519-aes-sha2",9007
+ "m.megolm.v1.aes-sha2"9008
+ ],9009
+ "device_id": "ALICEDEVICE507",9010
+ "keys": {9011
+ "curve25519:ALICEDEVICE507": "x+m0AD0FddWhacp62CyshtbvMms2/OD5LEPo7C70eFc",9012
+ "ed25519:ALICEDEVICE507": "Fa0K7qUATf8ffDZjrKSC4EF0Apcze4k9U1wz7evi8H4"9013
+ },9014
+ "signatures": {9015
+ "@alice_507:hs1": {9016
+ "ed25519:ALICEDEVICE507": "whNCz3IR8Wn/Og9VtWpv9NzWtEuhkBis5htqRW2TRYX2rNi9/rfCgziudhYwOwrM3trzaZc4kUNqO5dH7zq4Dg"9017
+ }9018
+ },9019
+ "user_id": "@alice_507:hs1",9020
+ "unsigned": {}9021
+ }9022
+ },9023
+ "@alice_510:hs1": {9024
+ "ALICEDEVICE510": {9025
+ "algorithms": [9026
+ "m.olm.v1.curve25519-aes-sha2",9027
+ "m.megolm.v1.aes-sha2"9028
+ ],9029
+ "device_id": "ALICEDEVICE510",9030
+ "keys": {9031
+ "curve25519:ALICEDEVICE510": "zGhAzmtOxXFlNnlR/Y6rtN7GWximTt2qDn9E4/aGbHE",9032
+ "ed25519:ALICEDEVICE510": "w9ETv9GfSrLf3W0gf+0N1yC45JRBV1oXEpWe0KFusf8"9033
+ },9034
+ "signatures": {9035
+ "@alice_510:hs1": {9036
+ "ed25519:ALICEDEVICE510": "gPSMEiyVWCTAYR6aleGyS7sC8JcgFmidTz/cetZEcE/uazpRmitU9QvbKGvUKOF+5KpjsPQgrVfosnEp6yQxAQ"9037
+ }9038
+ },9039
+ "user_id": "@alice_510:hs1",9040
+ "unsigned": {}9041
+ }9042
+ },9043
+ "@alice_511:hs1": {9044
+ "ALICEDEVICE511": {9045
+ "algorithms": [9046
+ "m.olm.v1.curve25519-aes-sha2",9047
+ "m.megolm.v1.aes-sha2"9048
+ ],9049
+ "device_id": "ALICEDEVICE511",9050
+ "keys": {9051
+ "curve25519:ALICEDEVICE511": "IAu8G+TDgoKWYwdmGmmENX481OeF/BpkWXwzLh0RyDc",9052
+ "ed25519:ALICEDEVICE511": "HWcAzd2qMJn/xl8nkmFj5YCn4MMEDMWgaeVMOjfbS8k"9053
+ },9054
+ "signatures": {9055
+ "@alice_511:hs1": {9056
+ "ed25519:ALICEDEVICE511": "I22cH4QZgWI9LfII7qHO5POE5pDy0tSTB4DR1uzcTvDFwLJyZYqwkpOHLAZA4sISRMFXhDhjb3GnvqXy+/orDw"9057
+ }9058
+ },9059
+ "user_id": "@alice_511:hs1",9060
+ "unsigned": {}9061
+ }9062
+ },9063
+ "@alice_522:hs1": {9064
+ "ALICEDEVICE522": {9065
+ "algorithms": [9066
+ "m.olm.v1.curve25519-aes-sha2",9067
+ "m.megolm.v1.aes-sha2"9068
+ ],9069
+ "device_id": "ALICEDEVICE522",9070
+ "keys": {9071
+ "curve25519:ALICEDEVICE522": "p39MofbXaHGIhZhr5bnhBDjgG3t4PSRyQojlzPyZCXQ",9072
+ "ed25519:ALICEDEVICE522": "rJlzcPLb0v/FCoLzQ4tS/wE1ejvhg2w/aDCs2unkI/w"9073
+ },9074
+ "signatures": {9075
+ "@alice_522:hs1": {9076
+ "ed25519:ALICEDEVICE522": "6IZV0OmcTxztr0WjS19FwoDCBsXw6HiBwsgNMTtEZn8hZLRSc7yS3TqGXhvsvlahFTCXlsGZjRYmbJ3jCn+YCA"9077
+ }9078
+ },9079
+ "user_id": "@alice_522:hs1",9080
+ "unsigned": {}9081
+ }9082
+ },9083
+ "@alice_530:hs1": {9084
+ "ALICEDEVICE530": {9085
+ "algorithms": [9086
+ "m.olm.v1.curve25519-aes-sha2",9087
+ "m.megolm.v1.aes-sha2"9088
+ ],9089
+ "device_id": "ALICEDEVICE530",9090
+ "keys": {9091
+ "curve25519:ALICEDEVICE530": "wPvumDqybTUW16Qlc/6RnHRvl3Kd0b/46RWeljxQ/2w",9092
+ "ed25519:ALICEDEVICE530": "Bjm8HqStvx4mrmqMY8JGr9WRcspg7XHwpw/PBWvX7mw"9093
+ },9094
+ "signatures": {9095
+ "@alice_530:hs1": {9096
+ "ed25519:ALICEDEVICE530": "tMDD1EysK6lKF6ak+JPN+TDj7n5DRF0rgcL6uBF1QYl8Nkckb9Rtrpf1G9AlWABNeyRlUwSBzkBUlNDDKQo0DQ"9097
+ }9098
+ },9099
+ "user_id": "@alice_530:hs1",9100
+ "unsigned": {}9101
+ }9102
+ },9103
+ "@alice_537:hs1": {9104
+ "ALICEDEVICE537": {9105
+ "algorithms": [9106
+ "m.olm.v1.curve25519-aes-sha2",9107
+ "m.megolm.v1.aes-sha2"9108
+ ],9109
+ "device_id": "ALICEDEVICE537",9110
+ "keys": {9111
+ "curve25519:ALICEDEVICE537": "awGpee1ie0DxSV0iBjBh3H1GiW9rXiYQIO519OBc8gE",9112
+ "ed25519:ALICEDEVICE537": "65nicuSNpAdZ/edN3SrxyDOGZefiNYe83/Wtxdw+1Pw"9113
+ },9114
+ "signatures": {9115
+ "@alice_537:hs1": {9116
+ "ed25519:ALICEDEVICE537": "HKMqfwZy5+90lnJOuxaYK+EY4ZC5kAZHQ+XKqiSZdURWMH7DJNj5mectpiAopPsoXD5bm6ryCG1YsVMT9KvcCg"9117
+ }9118
+ },9119
+ "user_id": "@alice_537:hs1",9120
+ "unsigned": {}9121
+ }9122
+ },9123
+ "@alice_538:hs1": {9124
+ "ALICEDEVICE538": {9125
+ "algorithms": [9126
+ "m.olm.v1.curve25519-aes-sha2",9127
+ "m.megolm.v1.aes-sha2"9128
+ ],9129
+ "device_id": "ALICEDEVICE538",9130
+ "keys": {9131
+ "curve25519:ALICEDEVICE538": "7TGsvZfDw37HYIzKU5oIcbPOeLHTz76Rp+HdROcgpxA",9132
+ "ed25519:ALICEDEVICE538": "0Dm/CBMK8IBC667L3mjXqDnZu0bTCRT0JSmhvnmWnoU"9133
+ },9134
+ "signatures": {9135
+ "@alice_538:hs1": {9136
+ "ed25519:ALICEDEVICE538": "mlvDBdc5wyoL+Xp59aDORlO3oxQ8G/LbhDaQeJSgMOSyRQMoSVFHJkDbperktIDs1ykZCkuFI2uIJAlGC11LAw"9137
+ }9138
+ },9139
+ "user_id": "@alice_538:hs1",9140
+ "unsigned": {}9141
+ }9142
+ },9143
+ "@alice_544:hs1": {9144
+ "ALICEDEVICE544": {9145
+ "algorithms": [9146
+ "m.olm.v1.curve25519-aes-sha2",9147
+ "m.megolm.v1.aes-sha2"9148
+ ],9149
+ "device_id": "ALICEDEVICE544",9150
+ "keys": {9151
+ "curve25519:ALICEDEVICE544": "wIWU/A/FjiiW3eher8bt7CpPoJekE11BHLkleBZ0HUg",9152
+ "ed25519:ALICEDEVICE544": "yxpwoxQ0C0QkVMPJfT44G9N+XEXw0SRjjcdTzoRfkNo"9153
+ },9154
+ "signatures": {9155
+ "@alice_544:hs1": {9156
+ "ed25519:ALICEDEVICE544": "s25F5Vi7iDfuSCLb4mx/H7rLw8VUQ7sxuX5sec/3yAqiIBdEZhCDcJfYaxTp5Ilfl0ftGGfxhLx4RD71vTPzBw"9157
+ }9158
+ },9159
+ "user_id": "@alice_544:hs1",9160
+ "unsigned": {}9161
+ }9162
+ },9163
+ "@alice_547:hs1": {9164
+ "ALICEDEVICE547": {9165
+ "algorithms": [9166
+ "m.olm.v1.curve25519-aes-sha2",9167
+ "m.megolm.v1.aes-sha2"9168
+ ],9169
+ "device_id": "ALICEDEVICE547",9170
+ "keys": {9171
+ "curve25519:ALICEDEVICE547": "EqGPYszEcX0W7ZQCwYINzED4qFBDInp06C1e7+NqHEw",9172
+ "ed25519:ALICEDEVICE547": "Qp6Ju7ovcti6DfBUg1rQm0SunDXjtXCAiM1okO3JYm4"9173
+ },9174
+ "signatures": {9175
+ "@alice_547:hs1": {9176
+ "ed25519:ALICEDEVICE547": "I9fn1eHgENgQo4FB5+Iy+H1R80bZcSfp6r3fEgjfl/+x3abgCSM7AhJDdMiHfQA24bTQ/NQHfantiATWnHW6Cw"9177
+ }9178
+ },9179
+ "user_id": "@alice_547:hs1",9180
+ "unsigned": {}9181
+ }9182
+ },9183
+ "@alice_551:hs1": {9184
+ "ALICEDEVICE551": {9185
+ "algorithms": [9186
+ "m.olm.v1.curve25519-aes-sha2",9187
+ "m.megolm.v1.aes-sha2"9188
+ ],9189
+ "device_id": "ALICEDEVICE551",9190
+ "keys": {9191
+ "curve25519:ALICEDEVICE551": "qVcQcOgVNwN2edWFkY5Tk0T8ZT3lnviv5CcGvnL3nhw",9192
+ "ed25519:ALICEDEVICE551": "eo/UM9H+A+DH+hJir5lcZblzS31xQ0d8QIGzH3u+6Cw"9193
+ },9194
+ "signatures": {9195
+ "@alice_551:hs1": {9196
+ "ed25519:ALICEDEVICE551": "qyWA41l+BgpzyKc6plHHTN24KUWXkqbR9KdRPUcl3UIS5qkPYOeHGTW3V+T6j80kE/7WhmqDnd62FvamP1xnAw"9197
+ }9198
+ },9199
+ "user_id": "@alice_551:hs1",9200
+ "unsigned": {}9201
+ }9202
+ },9203
+ "@alice_554:hs1": {9204
+ "ALICEDEVICE554": {9205
+ "algorithms": [9206
+ "m.olm.v1.curve25519-aes-sha2",9207
+ "m.megolm.v1.aes-sha2"9208
+ ],9209
+ "device_id": "ALICEDEVICE554",9210
+ "keys": {9211
+ "curve25519:ALICEDEVICE554": "QqIv4grRMAUk7/nvJ0qSTE20EGAo2sKg4Hj78pbCfWI",9212
+ "ed25519:ALICEDEVICE554": "cA0DanfLw4ldurkdd/t48SmcrA0Id3taqbX8V4nLT3c"9213
+ },9214
+ "signatures": {9215
+ "@alice_554:hs1": {9216
+ "ed25519:ALICEDEVICE554": "vU2R4Mtb/siEDxeUekQ3mOeCusTCTfZN7yCL7agahmaB39Uh2b0xevtWFJQyer8ZKhUbvspwoGQGWYvjig+SCw"9217
+ }9218
+ },9219
+ "user_id": "@alice_554:hs1",9220
+ "unsigned": {}9221
+ }9222
+ },9223
+ "@alice_562:hs1": {9224
+ "ALICEDEVICE562": {9225
+ "algorithms": [9226
+ "m.olm.v1.curve25519-aes-sha2",9227
+ "m.megolm.v1.aes-sha2"9228
+ ],9229
+ "device_id": "ALICEDEVICE562",9230
+ "keys": {9231
+ "curve25519:ALICEDEVICE562": "Iz6q5aWzmA4brq9J6LgmDYBKFqRlVB8nBkLID49tCyQ",9232
+ "ed25519:ALICEDEVICE562": "GE0uEX7qoE6Ht6Ab5AmpX/NVOaHPgICfxVZK9koFmeM"9233
+ },9234
+ "signatures": {9235
+ "@alice_562:hs1": {9236
+ "ed25519:ALICEDEVICE562": "o/2l8akgj8id/hoH0SM4ZMhTUsKTcfLGLThn8Htc9XbTRoMJaTwGlK0G0VvxHkorcc2xwatvCMUZBzxTKVfIDQ"9237
+ }9238
+ },9239
+ "user_id": "@alice_562:hs1",9240
+ "unsigned": {}9241
+ }9242
+ },9243
+ "@alice_569:hs1": {9244
+ "ALICEDEVICE569": {9245
+ "algorithms": [9246
+ "m.olm.v1.curve25519-aes-sha2",9247
+ "m.megolm.v1.aes-sha2"9248
+ ],9249
+ "device_id": "ALICEDEVICE569",9250
+ "keys": {9251
+ "curve25519:ALICEDEVICE569": "RM4EXtAbDJv9y2Q93nY5e/CA7ffwlp+M1rgQKsj2xlM",9252
+ "ed25519:ALICEDEVICE569": "//XIeeKwoEDSIQqccb+9KCJfREasUjDhJr7/JCXPXaY"9253
+ },9254
+ "signatures": {9255
+ "@alice_569:hs1": {9256
+ "ed25519:ALICEDEVICE569": "sPisNZ3IB9hWSpD9ZWQOosgrLalL312QDRKfhj1vToluNsVwYeB7bPlG6Tp8JrpLGbmew+d9lheffLAVKzIUDg"9257
+ }9258
+ },9259
+ "user_id": "@alice_569:hs1",9260
+ "unsigned": {}9261
+ }9262
+ },9263
+ "@alice_571:hs1": {9264
+ "ALICEDEVICE571": {9265
+ "algorithms": [9266
+ "m.olm.v1.curve25519-aes-sha2",9267
+ "m.megolm.v1.aes-sha2"9268
+ ],9269
+ "device_id": "ALICEDEVICE571",9270
+ "keys": {9271
+ "curve25519:ALICEDEVICE571": "BKhreNUbHLQ1vUQbzGzJ22zs/fQyBbrxk5ewSfgThzc",9272
+ "ed25519:ALICEDEVICE571": "5zbQwnOF6pxlWJpQQipn1RxrTW2pHgOleKmUx18I4kQ"9273
+ },9274
+ "signatures": {9275
+ "@alice_571:hs1": {9276
+ "ed25519:ALICEDEVICE571": "ZTJDKzq6e0AsJtMq3DGc6zm5pTDNlMxgdVD+o0raUteMW3CtKC4/0TJRv8ZkfCFUn7JS5O4+tL0J8ZZ0Vz/9Dg"9277
+ }9278
+ },9279
+ "user_id": "@alice_571:hs1",9280
+ "unsigned": {}9281
+ }9282
+ },9283
+ "@alice_579:hs1": {9284
+ "ALICEDEVICE579": {9285
+ "algorithms": [9286
+ "m.olm.v1.curve25519-aes-sha2",9287
+ "m.megolm.v1.aes-sha2"9288
+ ],9289
+ "device_id": "ALICEDEVICE579",9290
+ "keys": {9291
+ "curve25519:ALICEDEVICE579": "vpplOsK6wa3VajaytEAQw2QY7hX/ymgQnVfLJBlgsiA",9292
+ "ed25519:ALICEDEVICE579": "p/qbHGNBjGKEa08QsjFisbksJ0DeDgl5Qje6bmh1jio"9293
+ },9294
+ "signatures": {9295
+ "@alice_579:hs1": {9296
+ "ed25519:ALICEDEVICE579": "q/e+6Nt821gfjenaqVPJGcgxJmbZgMJgX9Gm31J6BXCHo5uqCbGPS/ErcIJTQBJ+Gnrd8fJXGs2SPjynHdNeCQ"9297
+ }9298
+ },9299
+ "user_id": "@alice_579:hs1",9300
+ "unsigned": {}9301
+ }9302
+ },9303
+ "@alice_583:hs1": {9304
+ "ALICEDEVICE583": {9305
+ "algorithms": [9306
+ "m.olm.v1.curve25519-aes-sha2",9307
+ "m.megolm.v1.aes-sha2"9308
+ ],9309
+ "device_id": "ALICEDEVICE583",9310
+ "keys": {9311
+ "curve25519:ALICEDEVICE583": "RYsJb4QhiuSNG1sVn+BDeSCAZvD6MHCZi9olze+1oyw",9312
+ "ed25519:ALICEDEVICE583": "pY1LO4h8zOZCVUiuBs26dLDk7SlmsJFutzP01+VzWyU"9313
+ },9314
+ "signatures": {9315
+ "@alice_583:hs1": {9316
+ "ed25519:ALICEDEVICE583": "zloZ1GyOVxwtcn5LEdyYtx7qxEP1urIC+kQaSd0TH8Ylqv/uzXqOkIf2/6xvnz4f71UtXlPrvV+ZAPu6/GzDAA"9317
+ }9318
+ },9319
+ "user_id": "@alice_583:hs1",9320
+ "unsigned": {}9321
+ }9322
+ },9323
+ "@alice_5:hs1": {9324
+ "ALICEDEVICE5": {9325
+ "algorithms": [9326
+ "m.olm.v1.curve25519-aes-sha2",9327
+ "m.megolm.v1.aes-sha2"9328
+ ],9329
+ "device_id": "ALICEDEVICE5",9330
+ "keys": {9331
+ "curve25519:ALICEDEVICE5": "iMULVydaOExxRlFtoFzpgjaPLK/xW/N4Iclf98Xvzmo",9332
+ "ed25519:ALICEDEVICE5": "557zIpPPU9UBhSiiYgGamo7JPvfOkWqzJtH1LUfY08A"9333
+ },9334
+ "signatures": {9335
+ "@alice_5:hs1": {9336
+ "ed25519:ALICEDEVICE5": "V3BMiNY6shDDwrqJnU4mwsHmCQaQqQTCZUztr1gxJN4NH7Yg8tdGcmznOYCsNEmd72SeV8DunHD2bVEsZYENBg"9337
+ }9338
+ },9339
+ "user_id": "@alice_5:hs1",9340
+ "unsigned": {}9341
+ }9342
+ },9343
+ "@alice_601:hs1": {9344
+ "ALICEDEVICE601": {9345
+ "algorithms": [9346
+ "m.olm.v1.curve25519-aes-sha2",9347
+ "m.megolm.v1.aes-sha2"9348
+ ],9349
+ "device_id": "ALICEDEVICE601",9350
+ "keys": {9351
+ "curve25519:ALICEDEVICE601": "7eBrDPZvlQUlU3PLPjZfdwUWRfzJnd9efYoQBTOdlyU",9352
+ "ed25519:ALICEDEVICE601": "8qS11f9ZSdxFRT336JH+SdIiOZGDbkEK0sD/5ll6Xec"9353
+ },9354
+ "signatures": {9355
+ "@alice_601:hs1": {9356
+ "ed25519:ALICEDEVICE601": "Q5Zm7YuI6vHGCj1d0zEDXL4/ub235+jlmD3bF1I/Kg40McCfyrCImk+vuOfcotFHV3OGsYzNJ/epHdHwTA0yAg"9357
+ }9358
+ },9359
+ "user_id": "@alice_601:hs1",9360
+ "unsigned": {}9361
+ }9362
+ },9363
+ "@alice_609:hs1": {9364
+ "ALICEDEVICE609": {9365
+ "algorithms": [9366
+ "m.olm.v1.curve25519-aes-sha2",9367
+ "m.megolm.v1.aes-sha2"9368
+ ],9369
+ "device_id": "ALICEDEVICE609",9370
+ "keys": {9371
+ "curve25519:ALICEDEVICE609": "4cqWp0fFWFKgmHWp+BIPX7sXgbG+M1DWOrAJfjWgRH8",9372
+ "ed25519:ALICEDEVICE609": "rgVrr+KIM5/So4WP0BiO0R0bK5x/G+U7/ZNhkpOuZFg"9373
+ },9374
+ "signatures": {9375
+ "@alice_609:hs1": {9376
+ "ed25519:ALICEDEVICE609": "9miq4H7GNJcGs0EFkG1+i1l35nNEEll51uiBOAoPWVxRRUnUZvZZyyPLC4tnQWJdBVbCjPViCdZWxePgaQc0BA"9377
+ }9378
+ },9379
+ "user_id": "@alice_609:hs1",9380
+ "unsigned": {}9381
+ }9382
+ },9383
+ "@alice_611:hs1": {9384
+ "ALICEDEVICE611": {9385
+ "algorithms": [9386
+ "m.olm.v1.curve25519-aes-sha2",9387
+ "m.megolm.v1.aes-sha2"9388
+ ],9389
+ "device_id": "ALICEDEVICE611",9390
+ "keys": {9391
+ "curve25519:ALICEDEVICE611": "PpwcKjVUUblyFm9SriKitMvz27M6owhI5CKz8V5UDxI",9392
+ "ed25519:ALICEDEVICE611": "tJ0eN+gTW05z5+NT6mlP3mQSN+U0yVhEyjQ0kG8omWo"9393
+ },9394
+ "signatures": {9395
+ "@alice_611:hs1": {9396
+ "ed25519:ALICEDEVICE611": "waSTMKd1Ct/+WS+EnmozqFh4oEWSeyNVMcMaCOek7h3xRCbEhZrna9JkDRmf04d36RzreZWP+pafEJmqa09jBw"9397
+ }9398
+ },9399
+ "user_id": "@alice_611:hs1",9400
+ "unsigned": {}9401
+ }9402
+ },9403
+ "@alice_613:hs1": {9404
+ "ALICEDEVICE613": {9405
+ "algorithms": [9406
+ "m.olm.v1.curve25519-aes-sha2",9407
+ "m.megolm.v1.aes-sha2"9408
+ ],9409
+ "device_id": "ALICEDEVICE613",9410
+ "keys": {9411
+ "curve25519:ALICEDEVICE613": "8Ho1/7JpVy3ykHCqnnqTNYQyZCq/bjh3zbIAoFVd0kw",9412
+ "ed25519:ALICEDEVICE613": "oGWMTlgrmwpZp1DsdCmCmFPRz/B0n7vl1w2a7+bgKzY"9413
+ },9414
+ "signatures": {9415
+ "@alice_613:hs1": {9416
+ "ed25519:ALICEDEVICE613": "MXKs5KnXPepg2NnvX+XvimE3vd1n/+lb9vkR+LFjT+fwayvto+mWoKwwY2twyIoYJYSAIffWLluJEwBoMqhmDw"9417
+ }9418
+ },9419
+ "user_id": "@alice_613:hs1",9420
+ "unsigned": {}9421
+ }9422
+ },9423
+ "@alice_619:hs1": {9424
+ "ALICEDEVICE619": {9425
+ "algorithms": [9426
+ "m.olm.v1.curve25519-aes-sha2",9427
+ "m.megolm.v1.aes-sha2"9428
+ ],9429
+ "device_id": "ALICEDEVICE619",9430
+ "keys": {9431
+ "curve25519:ALICEDEVICE619": "5JQv00Y2Q2/bLRLw/1oZP9o/l1O/TNDgAP9MSSwcS2c",9432
+ "ed25519:ALICEDEVICE619": "lnr9LKs80JqRIldOlsjvQb6U69syjVvWjspdlNMLZY4"9433
+ },9434
+ "signatures": {9435
+ "@alice_619:hs1": {9436
+ "ed25519:ALICEDEVICE619": "SDSZOESigarAMJwq1wSAZSu0py5gnGJBsI0r3lL9QI4N36nlGMm0mKOOpFzSbgaQwW8VEegnRIFqoiXYHREEAw"9437
+ }9438
+ },9439
+ "user_id": "@alice_619:hs1",9440
+ "unsigned": {}9441
+ }9442
+ },9443
+ "@alice_620:hs1": {9444
+ "ALICEDEVICE620": {9445
+ "algorithms": [9446
+ "m.olm.v1.curve25519-aes-sha2",9447
+ "m.megolm.v1.aes-sha2"9448
+ ],9449
+ "device_id": "ALICEDEVICE620",9450
+ "keys": {9451
+ "curve25519:ALICEDEVICE620": "RhnjDaqo1nMi2fabopufGInvXW26U0hlxP5nl/ltclM",9452
+ "ed25519:ALICEDEVICE620": "2FRqxgm/9otLhiHaaUd/ZvcUT+atMzbLvy64+GUOUTU"9453
+ },9454
+ "signatures": {9455
+ "@alice_620:hs1": {9456
+ "ed25519:ALICEDEVICE620": "X89IYbaFxi+zw+gkuZCDqhdu54DKjkBsLpWxoJAPx/tn20vk7uxb43EeEP/cksxDcpEmLuTYc40iycw+WPrzBQ"9457
+ }9458
+ },9459
+ "user_id": "@alice_620:hs1",9460
+ "unsigned": {}9461
+ }9462
+ },9463
+ "@alice_623:hs1": {9464
+ "ALICEDEVICE623": {9465
+ "algorithms": [9466
+ "m.olm.v1.curve25519-aes-sha2",9467
+ "m.megolm.v1.aes-sha2"9468
+ ],9469
+ "device_id": "ALICEDEVICE623",9470
+ "keys": {9471
+ "curve25519:ALICEDEVICE623": "k1D4R7NUri5H7DauLURcwGCIziC00x51hWqCHcrzuRg",9472
+ "ed25519:ALICEDEVICE623": "dd4mQmCn5BZVFMtYFcm7/AvXvHm4NaF7IJKVqPp9ljI"9473
+ },9474
+ "signatures": {9475
+ "@alice_623:hs1": {9476
+ "ed25519:ALICEDEVICE623": "Ziw1T74BQOiv/vSxNAJak2Is/FXWkXWaal0H0iwaT0HI0wbS1o7vDIRChEm8v9fJOrqNcwN0VGsdJwuTBHhPAQ"9477
+ }9478
+ },9479
+ "user_id": "@alice_623:hs1",9480
+ "unsigned": {}9481
+ }9482
+ },9483
+ "@alice_626:hs1": {9484
+ "ALICEDEVICE626": {9485
+ "algorithms": [9486
+ "m.olm.v1.curve25519-aes-sha2",9487
+ "m.megolm.v1.aes-sha2"9488
+ ],9489
+ "device_id": "ALICEDEVICE626",9490
+ "keys": {9491
+ "curve25519:ALICEDEVICE626": "TauoF2hgMkrdhJYz2VcpahMGBwLJJGCDUCX5HyYx6FM",9492
+ "ed25519:ALICEDEVICE626": "dZuOykuFNNNgx9biKaSE6+MzxrcUMT3k1UKkvzb/MJ4"9493
+ },9494
+ "signatures": {9495
+ "@alice_626:hs1": {9496
+ "ed25519:ALICEDEVICE626": "fauecVWs0MjWhwMTD8c+DuDnTl6pxP/VcO5XKCnjCTi/fOGotmtuMjHbtI0AxehiVOINwNGGb6UdAbDfh06EAg"9497
+ }9498
+ },9499
+ "user_id": "@alice_626:hs1",9500
+ "unsigned": {}9501
+ }9502
+ },9503
+ "@alice_628:hs1": {9504
+ "ALICEDEVICE628": {9505
+ "algorithms": [9506
+ "m.olm.v1.curve25519-aes-sha2",9507
+ "m.megolm.v1.aes-sha2"9508
+ ],9509
+ "device_id": "ALICEDEVICE628",9510
+ "keys": {9511
+ "curve25519:ALICEDEVICE628": "A0Fh1X3jju+7z7GL892BzvMTiQlpoxQxlP5cmXCop1Y",9512
+ "ed25519:ALICEDEVICE628": "IFS58gVNVU0sMCa3vhv0d0AJX8svSgYt+sW/e2bvQ7o"9513
+ },9514
+ "signatures": {9515
+ "@alice_628:hs1": {9516
+ "ed25519:ALICEDEVICE628": "rL/NOgff7Qc+kbNHN28MbdhRjrB/eoGokdrjgbbv3RNzRhTPGTNh/qOnX7uBLG80LQHmScssWbTn2HHj1CdXDw"9517
+ }9518
+ },9519
+ "user_id": "@alice_628:hs1",9520
+ "unsigned": {}9521
+ }9522
+ },9523
+ "@alice_631:hs1": {9524
+ "ALICEDEVICE631": {9525
+ "algorithms": [9526
+ "m.olm.v1.curve25519-aes-sha2",9527
+ "m.megolm.v1.aes-sha2"9528
+ ],9529
+ "device_id": "ALICEDEVICE631",9530
+ "keys": {9531
+ "curve25519:ALICEDEVICE631": "0Pr9n4o65AhpzGpRDdSOqrG7xVBKmEP+zt9zpJJWQ2E",9532
+ "ed25519:ALICEDEVICE631": "vToN3ZOp//04YtoFfkvlWTZwP7zgL/eAerxgSajpDvw"9533
+ },9534
+ "signatures": {9535
+ "@alice_631:hs1": {9536
+ "ed25519:ALICEDEVICE631": "04naXRw8+PPKHi4bX63w3mKi96WL1J/NJ+rnGtcFIjmOhn6OP+wKtXAxN0l5Ldz7lKo+JdwK/f+yRLQE+ABeDA"9537
+ }9538
+ },9539
+ "user_id": "@alice_631:hs1",9540
+ "unsigned": {}9541
+ }9542
+ },9543
+ "@alice_658:hs1": {9544
+ "ALICEDEVICE658": {9545
+ "algorithms": [9546
+ "m.olm.v1.curve25519-aes-sha2",9547
+ "m.megolm.v1.aes-sha2"9548
+ ],9549
+ "device_id": "ALICEDEVICE658",9550
+ "keys": {9551
+ "curve25519:ALICEDEVICE658": "5I0Idje+V2YXzpVUImJrV31q5msoTRx3c8eiy+J4fw0",9552
+ "ed25519:ALICEDEVICE658": "xrwIWmlgGiFFfnILtEnabUvglETRWIyD+5RshTLCeVM"9553
+ },9554
+ "signatures": {9555
+ "@alice_658:hs1": {9556
+ "ed25519:ALICEDEVICE658": "xWJD86UjqAlL2PWOdMggNSVDmoIbHTZLkTOQFFDwoS+qebUYfhDJqwWF9YOLn6giihxfs74qq7xxqerNzzczAA"9557
+ }9558
+ },9559
+ "user_id": "@alice_658:hs1",9560
+ "unsigned": {}9561
+ }9562
+ },9563
+ "@alice_659:hs1": {9564
+ "ALICEDEVICE659": {9565
+ "algorithms": [9566
+ "m.olm.v1.curve25519-aes-sha2",9567
+ "m.megolm.v1.aes-sha2"9568
+ ],9569
+ "device_id": "ALICEDEVICE659",9570
+ "keys": {9571
+ "curve25519:ALICEDEVICE659": "/uy8h9zn02sesb7HUujl2zvoJqOydOIm4C1j4wtjxVM",9572
+ "ed25519:ALICEDEVICE659": "slG4u+pwVGQQGKys50XMdSvnf63b8w4JYGa/l3GfJWo"9573
+ },9574
+ "signatures": {9575
+ "@alice_659:hs1": {9576
+ "ed25519:ALICEDEVICE659": "6lfiNS+css11BUyKzEerUQaHKmEBqOQ3jMZPxR9jq/Cs3LPxadM3jFovu5Zoukl3MgbS8psnFchFPPDiEOl4Dw"9577
+ }9578
+ },9579
+ "user_id": "@alice_659:hs1",9580
+ "unsigned": {}9581
+ }9582
+ },9583
+ "@alice_662:hs1": {9584
+ "ALICEDEVICE662": {9585
+ "algorithms": [9586
+ "m.olm.v1.curve25519-aes-sha2",9587
+ "m.megolm.v1.aes-sha2"9588
+ ],9589
+ "device_id": "ALICEDEVICE662",9590
+ "keys": {9591
+ "curve25519:ALICEDEVICE662": "PU93n7f+JPpdrhUGhi6YZyF4EHpYi0b3cuWLG+ybx3g",9592
+ "ed25519:ALICEDEVICE662": "2zlXnTDpOJbO0hk8FIBHjXC8MRWqUNXynxU2p4g3DGM"9593
+ },9594
+ "signatures": {9595
+ "@alice_662:hs1": {9596
+ "ed25519:ALICEDEVICE662": "gCVyNVBrnvZ2qFLcw5uqB23W+UvYHnI9qh3HFdCPzFm8mnL0aKALCSxuurmgHWTkpxIY9jRfTQr86/Wz2LezBQ"9597
+ }9598
+ },9599
+ "user_id": "@alice_662:hs1",9600
+ "unsigned": {}9601
+ }9602
+ },9603
+ "@alice_67:hs1": {9604
+ "ALICEDEVICE67": {9605
+ "algorithms": [9606
+ "m.olm.v1.curve25519-aes-sha2",9607
+ "m.megolm.v1.aes-sha2"9608
+ ],9609
+ "device_id": "ALICEDEVICE67",9610
+ "keys": {9611
+ "curve25519:ALICEDEVICE67": "BgYhlZa5u+6dsBWe2nqSrncr5HvUAUgT9cYIQfE/nEY",9612
+ "ed25519:ALICEDEVICE67": "XUbnTaHnShFwPckK2ALyVTHpnZXHyWkcZw6x8HO5how"9613
+ },9614
+ "signatures": {9615
+ "@alice_67:hs1": {9616
+ "ed25519:ALICEDEVICE67": "MJX0D+n1aE5Mn9h2U+1nOe8AriZPEKHgm925PPRjEsF/13ZHxCYXZNb91eT7ftP35HojoVbY+3C6Zyyju3+tCw"9617
+ }9618
+ },9619
+ "user_id": "@alice_67:hs1",9620
+ "unsigned": {}9621
+ }9622
+ },9623
+ "@alice_71:hs1": {9624
+ "ALICEDEVICE71": {9625
+ "algorithms": [9626
+ "m.olm.v1.curve25519-aes-sha2",9627
+ "m.megolm.v1.aes-sha2"9628
+ ],9629
+ "device_id": "ALICEDEVICE71",9630
+ "keys": {9631
+ "curve25519:ALICEDEVICE71": "83cFmKjVbjefl72ulzsNQuW9f7K41NfsX+aJ/GporTo",9632
+ "ed25519:ALICEDEVICE71": "MRdp+wNjZn5XIw70iQf6k7XPTh7QUTe8S6J+1Ptp7cU"9633
+ },9634
+ "signatures": {9635
+ "@alice_71:hs1": {9636
+ "ed25519:ALICEDEVICE71": "HudGRS+6GwbwXDQdg+wBk1n2WPIvSqg2kshYl5zZzF+LUaTx6M7WAr5frsZp4aj3CPYNc+4JLJOfezIWpVVABg"9637
+ }9638
+ },9639
+ "user_id": "@alice_71:hs1",9640
+ "unsigned": {}9641
+ }9642
+ },9643
+ "@alice_735:hs1": {9644
+ "ALICEDEVICE735": {9645
+ "algorithms": [9646
+ "m.olm.v1.curve25519-aes-sha2",9647
+ "m.megolm.v1.aes-sha2"9648
+ ],9649
+ "device_id": "ALICEDEVICE735",9650
+ "keys": {9651
+ "curve25519:ALICEDEVICE735": "FUP/oeCrb4sHRT5RyJa3qUINrNwKeO0P4w8SKs7DT04",9652
+ "ed25519:ALICEDEVICE735": "ZkTZl9J7iK0SetULvwkrIqJs/sai0FcIyVGe5AIA8NU"9653
+ },9654
+ "signatures": {9655
+ "@alice_735:hs1": {9656
+ "ed25519:ALICEDEVICE735": "bADdJjk4rNLntVNRJJoEO8/kYxLD5/7YpIPxWYBfFrMsbMXe39GxD8AParg9k+BJfYS5YsSbEQQdr57kQDjHDg"9657
+ }9658
+ },9659
+ "user_id": "@alice_735:hs1",9660
+ "unsigned": {}9661
+ }9662
+ },9663
+ "@alice_739:hs1": {9664
+ "ALICEDEVICE739": {9665
+ "algorithms": [9666
+ "m.olm.v1.curve25519-aes-sha2",9667
+ "m.megolm.v1.aes-sha2"9668
+ ],9669
+ "device_id": "ALICEDEVICE739",9670
+ "keys": {9671
+ "curve25519:ALICEDEVICE739": "Nympn9su+R8b3Al5gzGPMhtpMjAo0o4W41KuyVgSMCA",9672
+ "ed25519:ALICEDEVICE739": "0BLcYZblh1ek9NUm9CZWFDkpPqtrAtiz6l2+lw2UFvE"9673
+ },9674
+ "signatures": {9675
+ "@alice_739:hs1": {9676
+ "ed25519:ALICEDEVICE739": "ZKVnOgABB+mFTwdJmkKpuhFLHBnR6v1Ww6/If0WF+M5GEILcQLQ6zWfsjihIkOc1JdGdGBFvcH0X84AhiOnMBg"9677
+ }9678
+ },9679
+ "user_id": "@alice_739:hs1",9680
+ "unsigned": {}9681
+ }9682
+ },9683
+ "@alice_743:hs1": {9684
+ "ALICEDEVICE743": {9685
+ "algorithms": [9686
+ "m.olm.v1.curve25519-aes-sha2",9687
+ "m.megolm.v1.aes-sha2"9688
+ ],9689
+ "device_id": "ALICEDEVICE743",9690
+ "keys": {9691
+ "curve25519:ALICEDEVICE743": "xBf/Y8p7VOP13WOQ8M3es06/7QCZYI31gq//DAF6hj4",9692
+ "ed25519:ALICEDEVICE743": "MmUHYL/NdnfFKXaAozA2Oghw7sTUw7OPq4pRZOaW98k"9693
+ },9694
+ "signatures": {9695
+ "@alice_743:hs1": {9696
+ "ed25519:ALICEDEVICE743": "L4EtvKowTzuSW0oIZ8v/JeHxJS0l7gqD4RCAr6QNqWVy2rcd23/iYUpeDwH31K3Hbkhw9JJeHcyiU1pFZ/NaCQ"9697
+ }9698
+ },9699
+ "user_id": "@alice_743:hs1",9700
+ "unsigned": {}9701
+ }9702
+ },9703
+ "@alice_74:hs1": {9704
+ "ALICEDEVICE74": {9705
+ "algorithms": [9706
+ "m.olm.v1.curve25519-aes-sha2",9707
+ "m.megolm.v1.aes-sha2"9708
+ ],9709
+ "device_id": "ALICEDEVICE74",9710
+ "keys": {9711
+ "curve25519:ALICEDEVICE74": "c5013/9crUginChX0A9qp1J4rBYZyXIlSclLGECPUHg",9712
+ "ed25519:ALICEDEVICE74": "Lf1U+2OWPuT31+PYRbGsKP0hVAV9VVjKg5v8l35DH+U"9713
+ },9714
+ "signatures": {9715
+ "@alice_74:hs1": {9716
+ "ed25519:ALICEDEVICE74": "+PRLDR+j/EgAKD/rrwaakdwFs8vhe1wo3w7nE5LoW4ehq1e5BsBrLb64O79lLQhRPmorVvPbk2AROXHU8ZckBA"9717
+ }9718
+ },9719
+ "user_id": "@alice_74:hs1",9720
+ "unsigned": {}9721
+ }9722
+ },9723
+ "@alice_779:hs1": {9724
+ "ALICEDEVICE779": {9725
+ "algorithms": [9726
+ "m.olm.v1.curve25519-aes-sha2",9727
+ "m.megolm.v1.aes-sha2"9728
+ ],9729
+ "device_id": "ALICEDEVICE779",9730
+ "keys": {9731
+ "curve25519:ALICEDEVICE779": "R8qCZzThTKbTR8efeN7m3Fcoz9/4g4+elrRHaRrg9Dc",9732
+ "ed25519:ALICEDEVICE779": "Ni3i0w+9CAEBQ4APgsTMCTC66OjWScy2THySqAyVzQs"9733
+ },9734
+ "signatures": {9735
+ "@alice_779:hs1": {9736
+ "ed25519:ALICEDEVICE779": "s+3H+Bh1j3GtKDNZasboj9VSVmihJSXLUtZrw69W+u3DStX9D5E6gopf6/0bE3B94xZRIJRAcsCq0r6DA2FcBw"9737
+ }9738
+ },9739
+ "user_id": "@alice_779:hs1",9740
+ "unsigned": {}9741
+ }9742
+ },9743
+ "@alice_788:hs1": {9744
+ "ALICEDEVICE788": {9745
+ "algorithms": [9746
+ "m.olm.v1.curve25519-aes-sha2",9747
+ "m.megolm.v1.aes-sha2"9748
+ ],9749
+ "device_id": "ALICEDEVICE788",9750
+ "keys": {9751
+ "curve25519:ALICEDEVICE788": "aiCn8sNsOb5BctVCleq2I54w/kbVDVMe+/tCTS6vqEQ",9752
+ "ed25519:ALICEDEVICE788": "kRJKDChIOpU474TEcKg7HztewhW0VehbFB/icQTrSsU"9753
+ },9754
+ "signatures": {9755
+ "@alice_788:hs1": {9756
+ "ed25519:ALICEDEVICE788": "K8/G/UGOwm+nKEve8pqhwBUEuh6XDRDgC42hqCGccV0nl4arVnnexaE63/rahQHjN5AYHrMu4gwvmZ2iG4YyDg"9757
+ }9758
+ },9759
+ "user_id": "@alice_788:hs1",9760
+ "unsigned": {}9761
+ }9762
+ },9763
+ "@alice_794:hs1": {9764
+ "ALICEDEVICE794": {9765
+ "algorithms": [9766
+ "m.olm.v1.curve25519-aes-sha2",9767
+ "m.megolm.v1.aes-sha2"9768
+ ],9769
+ "device_id": "ALICEDEVICE794",9770
+ "keys": {9771
+ "curve25519:ALICEDEVICE794": "uwCCiLsB3pHDPYnYs+5MoigqgPRnfkFfvEKWrg2+LiM",9772
+ "ed25519:ALICEDEVICE794": "G3U2LAo5JDZI8+84t0jyx6oXEEekZMcEqWftN0OBBik"9773
+ },9774
+ "signatures": {9775
+ "@alice_794:hs1": {9776
+ "ed25519:ALICEDEVICE794": "dclDYXvfwRHHDhdfPk85jg1hIauBJwOWJYSidHLCv6yu+dKkPEezgjIJm8YoligTxy5plrjww7+lrVxAB7V/Bg"9777
+ }9778
+ },9779
+ "user_id": "@alice_794:hs1",9780
+ "unsigned": {}9781
+ }9782
+ },9783
+ "@alice_797:hs1": {9784
+ "ALICEDEVICE797": {9785
+ "algorithms": [9786
+ "m.olm.v1.curve25519-aes-sha2",9787
+ "m.megolm.v1.aes-sha2"9788
+ ],9789
+ "device_id": "ALICEDEVICE797",9790
+ "keys": {9791
+ "curve25519:ALICEDEVICE797": "7GCjcssmPXCRHmBGbveaAvTpXIhqFniWEAomCp8s8no",9792
+ "ed25519:ALICEDEVICE797": "xzBaZb3QUVQKpjtetgAfALvM0hsuj2sHGObyIBg4Hkg"9793
+ },9794
+ "signatures": {9795
+ "@alice_797:hs1": {9796
+ "ed25519:ALICEDEVICE797": "XzVneAk8KPYd/iv69cTT/stJjbh695zEp4gg+XRl1dgWRdqsraP800NXhLkaCG4phAKQjiJ++Dx8sGIEEd4nCw"9797
+ }9798
+ },9799
+ "user_id": "@alice_797:hs1",9800
+ "unsigned": {}9801
+ }9802
+ },9803
+ "@alice_807:hs1": {9804
+ "ALICEDEVICE807": {9805
+ "algorithms": [9806
+ "m.olm.v1.curve25519-aes-sha2",9807
+ "m.megolm.v1.aes-sha2"9808
+ ],9809
+ "device_id": "ALICEDEVICE807",9810
+ "keys": {9811
+ "curve25519:ALICEDEVICE807": "CvMiFDWa6a6+c8Yehck3raUQplZpfN3FhyHgnz0m+Dk",9812
+ "ed25519:ALICEDEVICE807": "bAnaE3fJ2dDFTtYZMBehu1gdiD97SCoQ3l69OYWWIsw"9813
+ },9814
+ "signatures": {9815
+ "@alice_807:hs1": {9816
+ "ed25519:ALICEDEVICE807": "JPKj/qhm6YUGkIxwn/2m/bljC767wHfhMvVcZinz/nQGlnTmSVIbdT/eN3aaggqyMK1ZNbs23rLN6mxE8hfcDA"9817
+ }9818
+ },9819
+ "user_id": "@alice_807:hs1",9820
+ "unsigned": {}9821
+ }9822
+ },9823
+ "@alice_809:hs1": {9824
+ "ALICEDEVICE809": {9825
+ "algorithms": [9826
+ "m.olm.v1.curve25519-aes-sha2",9827
+ "m.megolm.v1.aes-sha2"9828
+ ],9829
+ "device_id": "ALICEDEVICE809",9830
+ "keys": {9831
+ "curve25519:ALICEDEVICE809": "Nt28DTCOOP+nym8sdNnJT51eoHVqUdEp68jXV/PSE3Q",9832
+ "ed25519:ALICEDEVICE809": "pPxhgqd/PChRr6k7jBVPt3bvdIJb5Em3gNAigv+geTA"9833
+ },9834
+ "signatures": {9835
+ "@alice_809:hs1": {9836
+ "ed25519:ALICEDEVICE809": "Ku7/WZQqNEl/6INQ/lRJ5omxwR9tYUMjVnvppgYqDChc8aQucknf+gfPw9r1ZLmS8KznrnAk39q+oI2ex+zOBA"9837
+ }9838
+ },9839
+ "user_id": "@alice_809:hs1",9840
+ "unsigned": {}9841
+ }9842
+ },9843
+ "@alice_826:hs1": {9844
+ "ALICEDEVICE826": {9845
+ "algorithms": [9846
+ "m.olm.v1.curve25519-aes-sha2",9847
+ "m.megolm.v1.aes-sha2"9848
+ ],9849
+ "device_id": "ALICEDEVICE826",9850
+ "keys": {9851
+ "curve25519:ALICEDEVICE826": "A0mbnvxq1AhMGFdzCi2vCpiQL7hi3O/npnt6pGfJS0M",9852
+ "ed25519:ALICEDEVICE826": "q4SWVPdP2M8QoWmGs///vMcDhL6hI4h9JoJ1QeU//qg"9853
+ },9854
+ "signatures": {9855
+ "@alice_826:hs1": {9856
+ "ed25519:ALICEDEVICE826": "jplmcscII+sYDxQBGgZdvSc1244lYVrJLMwdOtJsY8tCxhNWLGDBWdTfAarEIJpigUZ1hTPP7llg7I1jkIVaCw"9857
+ }9858
+ },9859
+ "user_id": "@alice_826:hs1",9860
+ "unsigned": {}9861
+ }9862
+ },9863
+ "@alice_842:hs1": {9864
+ "ALICEDEVICE842": {9865
+ "algorithms": [9866
+ "m.olm.v1.curve25519-aes-sha2",9867
+ "m.megolm.v1.aes-sha2"9868
+ ],9869
+ "device_id": "ALICEDEVICE842",9870
+ "keys": {9871
+ "curve25519:ALICEDEVICE842": "QEX2kCTUAF2EjPtQFpEnmirsusZCRGe/8HxQvTJr1mE",9872
+ "ed25519:ALICEDEVICE842": "zWcIEZ9YXzv2ETTFVN3BuD9ILHKPd6INswmALCKupiA"9873
+ },9874
+ "signatures": {9875
+ "@alice_842:hs1": {9876
+ "ed25519:ALICEDEVICE842": "PAmTI4LPQC293GvMFVnKX/66NRUF2ZFgYqXF29imzMBNcWdDEeYupcY7SRAiODntCdqOW/UElgAEyYDmjzX1BA"9877
+ }9878
+ },9879
+ "user_id": "@alice_842:hs1",9880
+ "unsigned": {}9881
+ }9882
+ },9883
+ "@alice_853:hs1": {9884
+ "ALICEDEVICE853": {9885
+ "algorithms": [9886
+ "m.olm.v1.curve25519-aes-sha2",9887
+ "m.megolm.v1.aes-sha2"9888
+ ],9889
+ "device_id": "ALICEDEVICE853",9890
+ "keys": {9891
+ "curve25519:ALICEDEVICE853": "t3bSAabJHQfIt1p5mL8x+U4Za25rdkQWdTupRtyORSg",9892
+ "ed25519:ALICEDEVICE853": "nQXnsZejevBdrhOjGt9boU2XJdC/UviVj5WpifEWlDc"9893
+ },9894
+ "signatures": {9895
+ "@alice_853:hs1": {9896
+ "ed25519:ALICEDEVICE853": "BSZUgNngdxGNV2XnmnVVelvlz3o4VS+8/KRGFYo0j7NzKkGrHY7LNii4t4oo4ApLaL6doKg+isJiqd63gxKwBw"9897
+ }9898
+ },9899
+ "user_id": "@alice_853:hs1",9900
+ "unsigned": {}9901
+ }9902
+ },9903
+ "@alice_857:hs1": {9904
+ "ALICEDEVICE857": {9905
+ "algorithms": [9906
+ "m.olm.v1.curve25519-aes-sha2",9907
+ "m.megolm.v1.aes-sha2"9908
+ ],9909
+ "device_id": "ALICEDEVICE857",9910
+ "keys": {9911
+ "curve25519:ALICEDEVICE857": "HfjvnY9sr2RVc1xE6hBFrjm+3GfNOnfVd0A25RllYl0",9912
+ "ed25519:ALICEDEVICE857": "VX4K1vGy7M5D8w1NlPfe7iWRT3zb5SDqBdu1ry0eJA8"9913
+ },9914
+ "signatures": {9915
+ "@alice_857:hs1": {9916
+ "ed25519:ALICEDEVICE857": "06vuc7Vabw2sR4LIGlqYDIdvTmMicFeXZ33zx+3fpQGGWM+uENkZfkQ487GDNTH2Gt+HvNwohxD0kO0BObM7Dw"9917
+ }9918
+ },9919
+ "user_id": "@alice_857:hs1",9920
+ "unsigned": {}9921
+ }9922
+ },9923
+ "@alice_858:hs1": {9924
+ "ALICEDEVICE858": {9925
+ "algorithms": [9926
+ "m.olm.v1.curve25519-aes-sha2",9927
+ "m.megolm.v1.aes-sha2"9928
+ ],9929
+ "device_id": "ALICEDEVICE858",9930
+ "keys": {9931
+ "curve25519:ALICEDEVICE858": "fRhxVFu5Oyn3FQF5tk0AMa5VXYTfw4fBt++m7XT8HxM",9932
+ "ed25519:ALICEDEVICE858": "kCVLnHANW9W0nlOUiWt5/I/SLMPAWA7oo1SphSiLBSc"9933
+ },9934
+ "signatures": {9935
+ "@alice_858:hs1": {9936
+ "ed25519:ALICEDEVICE858": "79pSpQ/kKyS5PB5WtFLomu9UQKjTRiQi30ec1uvRET95KqaQecJ79XYgGWRPHaIOi4v62AARy+79Y/yrGf24DQ"9937
+ }9938
+ },9939
+ "user_id": "@alice_858:hs1",9940
+ "unsigned": {}9941
+ }9942
+ },9943
+ "@alice_870:hs1": {9944
+ "ALICEDEVICE870": {9945
+ "algorithms": [9946
+ "m.olm.v1.curve25519-aes-sha2",9947
+ "m.megolm.v1.aes-sha2"9948
+ ],9949
+ "device_id": "ALICEDEVICE870",9950
+ "keys": {9951
+ "curve25519:ALICEDEVICE870": "yiMRtD73uvnuKUNoacRmDS+u45TqPL7t5qXcD6pkyBY",9952
+ "ed25519:ALICEDEVICE870": "+0biNn3a9b+/eN32nNXd9NyYC3B0MX81p6fpY9KAcaY"9953
+ },9954
+ "signatures": {9955
+ "@alice_870:hs1": {9956
+ "ed25519:ALICEDEVICE870": "yhO8A+8BbAegmB1MJ2Ll64GaekeNV+FrfB3FtJw1N3yxtD5JeHTEpOL7W5/xgnvW/NIWKVWsmTYkVJWTjKY0DA"9957
+ }9958
+ },9959
+ "user_id": "@alice_870:hs1",9960
+ "unsigned": {}9961
+ }9962
+ },9963
+ "@alice_871:hs1": {9964
+ "ALICEDEVICE871": {9965
+ "algorithms": [9966
+ "m.olm.v1.curve25519-aes-sha2",9967
+ "m.megolm.v1.aes-sha2"9968
+ ],9969
+ "device_id": "ALICEDEVICE871",9970
+ "keys": {9971
+ "curve25519:ALICEDEVICE871": "fgsuwVfPpcyg0Yj8cakMJttfisrTSWEZb+7Y25kFiR0",9972
+ "ed25519:ALICEDEVICE871": "w86V90g9vDPX7G3EOMzDWZSBJUHRlR6DFK5K5rgM6TU"9973
+ },9974
+ "signatures": {9975
+ "@alice_871:hs1": {9976
+ "ed25519:ALICEDEVICE871": "Z8ZAO6dRzBXoiWFesOvrHm7IUV66KyibSjiIrKCdZeu8sxMC8KVDStwhPuxiW8duq8puXQSZ0u8d5rY9YveTDw"9977
+ }9978
+ },9979
+ "user_id": "@alice_871:hs1",9980
+ "unsigned": {}9981
+ }9982
+ },9983
+ "@alice_875:hs1": {9984
+ "ALICEDEVICE875": {9985
+ "algorithms": [9986
+ "m.olm.v1.curve25519-aes-sha2",9987
+ "m.megolm.v1.aes-sha2"9988
+ ],9989
+ "device_id": "ALICEDEVICE875",9990
+ "keys": {9991
+ "curve25519:ALICEDEVICE875": "qHo++fCBtoelTf3b+gPNBU6C0+PfeAPcsWSRqEAghlY",9992
+ "ed25519:ALICEDEVICE875": "vox5K/t4sz0eUfISW+tcoXOUkon0kAtDhupikW6RJwA"9993
+ },9994
+ "signatures": {9995
+ "@alice_875:hs1": {9996
+ "ed25519:ALICEDEVICE875": "z+eRHFAUyUVrrazZLxVN4i3KWe27qxjgehaQPQVY+vML412T122S6qvREr6Mev6PTJfTL7+l9lMARYlGYhHJBw"9997
+ }9998
+ },9999
+ "user_id": "@alice_875:hs1",10000
+ "unsigned": {}10001
+ }10002
+ },10003
+ "@alice_914:hs1": {10004
+ "ALICEDEVICE914": {10005
+ "algorithms": [10006
+ "m.olm.v1.curve25519-aes-sha2",10007
+ "m.megolm.v1.aes-sha2"10008
+ ],10009
+ "device_id": "ALICEDEVICE914",10010
+ "keys": {10011
+ "curve25519:ALICEDEVICE914": "MdmmipV/Fvsa+KW0fMJwzIpFUNyRT57vyVoH3dnC8Fc",10012
+ "ed25519:ALICEDEVICE914": "x2n4Rs56SdCBoOtXjrb50aBs+jDm+SP3tQSbUf17hrk"10013
+ },10014
+ "signatures": {10015
+ "@alice_914:hs1": {10016
+ "ed25519:ALICEDEVICE914": "lZm5IqVyiXA+opPuup+LfgphBUMWFWZ6mT/qwRVpC8INdCkRmd/JfaRinLGMzYcBo+gW/eBzcZYifmmrBrRSAQ"10017
+ }10018
+ },10019
+ "user_id": "@alice_914:hs1",10020
+ "unsigned": {}10021
+ }10022
+ },10023
+ "@alice_925:hs1": {10024
+ "ALICEDEVICE925": {10025
+ "algorithms": [10026
+ "m.olm.v1.curve25519-aes-sha2",10027
+ "m.megolm.v1.aes-sha2"10028
+ ],10029
+ "device_id": "ALICEDEVICE925",10030
+ "keys": {10031
+ "curve25519:ALICEDEVICE925": "C0KUnxjo/AsVZi+owLegUfyrYP9LPIZDR1VqohrxN2I",10032
+ "ed25519:ALICEDEVICE925": "gMa6qJgomMafl0vCuvl26bsEvUKgA3wyDtlIkblCFGw"10033
+ },10034
+ "signatures": {10035
+ "@alice_925:hs1": {10036
+ "ed25519:ALICEDEVICE925": "/oV1CHFP8amsEzjoYS+oSLSAPVKwbvRtN4hPIO15tvNXkMroEEIuMAVuLvI48uiHTU1tGUuZjP+hcWSXm+OXCg"10037
+ }10038
+ },10039
+ "user_id": "@alice_925:hs1",10040
+ "unsigned": {}10041
+ }10042
+ },10043
+ "@alice_930:hs1": {10044
+ "ALICEDEVICE930": {10045
+ "algorithms": [10046
+ "m.olm.v1.curve25519-aes-sha2",10047
+ "m.megolm.v1.aes-sha2"10048
+ ],10049
+ "device_id": "ALICEDEVICE930",10050
+ "keys": {10051
+ "curve25519:ALICEDEVICE930": "Rle5UXXbH8GXZdTQNGLQT03gY7A/6eSFYXcN59IyL0w",10052
+ "ed25519:ALICEDEVICE930": "tnH+2a2B5XTQFDuvE2I0i0EcKjShr/Zn8J4obTH5YZ8"10053
+ },10054
+ "signatures": {10055
+ "@alice_930:hs1": {10056
+ "ed25519:ALICEDEVICE930": "T+czXrUWxUW6m+FPMEojildnXvYkljxyhKZVcsbU4ifmFFFb/clH9aCBWUCAdtUXclYD/DWzk5EBNVERkZLmAA"10057
+ }10058
+ },10059
+ "user_id": "@alice_930:hs1",10060
+ "unsigned": {}10061
+ }10062
+ },10063
+ "@alice_932:hs1": {10064
+ "ALICEDEVICE932": {10065
+ "algorithms": [10066
+ "m.olm.v1.curve25519-aes-sha2",10067
+ "m.megolm.v1.aes-sha2"10068
+ ],10069
+ "device_id": "ALICEDEVICE932",10070
+ "keys": {10071
+ "curve25519:ALICEDEVICE932": "SEIulJSpIquLYLYBL/D3iTFxWdNlvCM0nal5+eipgE8",10072
+ "ed25519:ALICEDEVICE932": "2vkVWdwBs+O3Fl53A1pnEE4Q4Hu9FHhckV74i55/X3Q"10073
+ },10074
+ "signatures": {10075
+ "@alice_932:hs1": {10076
+ "ed25519:ALICEDEVICE932": "+HZwb1jnu/8bC7dkQ/wELsSOtWAxP7oeG7nCMJcwDzAqZ1kE5Rdrh+8WlIXYW7Mcp8HSOSq0k9LvvrQ5M2fTCw"10077
+ }10078
+ },10079
+ "user_id": "@alice_932:hs1",10080
+ "unsigned": {}10081
+ }10082
+ },10083
+ "@alice_934:hs1": {10084
+ "ALICEDEVICE934": {10085
+ "algorithms": [10086
+ "m.olm.v1.curve25519-aes-sha2",10087
+ "m.megolm.v1.aes-sha2"10088
+ ],10089
+ "device_id": "ALICEDEVICE934",10090
+ "keys": {10091
+ "curve25519:ALICEDEVICE934": "w+SuaiMFMINKeYoAaRU/BgVdI4b49RG5haof/GhasjM",10092
+ "ed25519:ALICEDEVICE934": "A10niTuxv7jPhgBwCUOBHrjNHp301ZuJZi8G8oyKL78"10093
+ },10094
+ "signatures": {10095
+ "@alice_934:hs1": {10096
+ "ed25519:ALICEDEVICE934": "4ub3Px8gTTMRGowbhD46kG9SzLJegLQa+pafyoozecW4TDMAEr7SsCBNjherBrtXHzSleE48ZhYIYFJ2w4OiCw"10097
+ }10098
+ },10099
+ "user_id": "@alice_934:hs1",10100
+ "unsigned": {}10101
+ }10102
+ },10103
+ "@alice_949:hs1": {10104
+ "ALICEDEVICE949": {10105
+ "algorithms": [10106
+ "m.olm.v1.curve25519-aes-sha2",10107
+ "m.megolm.v1.aes-sha2"10108
+ ],10109
+ "device_id": "ALICEDEVICE949",10110
+ "keys": {10111
+ "curve25519:ALICEDEVICE949": "iorvD40C3Hi/chm+QSne4QGY/6jBg8vM5BsG6EBHFD0",10112
+ "ed25519:ALICEDEVICE949": "owuh+DXXEfMWAJ2YT6FP4+tcLJFQssOUIQPv4xOqLEw"10113
+ },10114
+ "signatures": {10115
+ "@alice_949:hs1": {10116
+ "ed25519:ALICEDEVICE949": "zZpls2gLiepEM0tyuZ3egf3dg51uv8S70TPEBbyHqyoyQq/JA2nEFX3637Rfn9aXr28y61QZQPo/KA8FCr/rAA"10117
+ }10118
+ },10119
+ "user_id": "@alice_949:hs1",10120
+ "unsigned": {}10121
+ }10122
+ },10123
+ "@alice_955:hs1": {10124
+ "ALICEDEVICE955": {10125
+ "algorithms": [10126
+ "m.olm.v1.curve25519-aes-sha2",10127
+ "m.megolm.v1.aes-sha2"10128
+ ],10129
+ "device_id": "ALICEDEVICE955",10130
+ "keys": {10131
+ "curve25519:ALICEDEVICE955": "5xEJBty7G/+Xz73/yG3XBnbYNhkcvlr6CUby71H8IBo",10132
+ "ed25519:ALICEDEVICE955": "h5o9Lu/PrmWPOjKWYYmnEyODq5xLLawmjrDjbPhPCro"10133
+ },10134
+ "signatures": {10135
+ "@alice_955:hs1": {10136
+ "ed25519:ALICEDEVICE955": "FtyISrVMOuWZE35WUocwcPSoMifXjq3Wa28xVLPl/x8AoNelJTkvD75skQxEOT/Eth2b/jWY9mu16+vfd+U3DA"10137
+ }10138
+ },10139
+ "user_id": "@alice_955:hs1",10140
+ "unsigned": {}10141
+ }10142
+ },10143
+ "@alice_959:hs1": {10144
+ "ALICEDEVICE959": {10145
+ "algorithms": [10146
+ "m.olm.v1.curve25519-aes-sha2",10147
+ "m.megolm.v1.aes-sha2"10148
+ ],10149
+ "device_id": "ALICEDEVICE959",10150
+ "keys": {10151
+ "curve25519:ALICEDEVICE959": "lfxcDBnetKOg+77M+KJXnSi9JySw+MLQLdqH6WV9ESo",10152
+ "ed25519:ALICEDEVICE959": "D/cCFE8jRwvtu54gpa2k14EOxw7i3jG6rAbqh/hJI4w"10153
+ },10154
+ "signatures": {10155
+ "@alice_959:hs1": {10156
+ "ed25519:ALICEDEVICE959": "sH+RSoXQd9AcVKCtRuWyHMGW5CrRQupZvFSVXYowryjEPbtd0Iuhh8KjDJDfVtTTlcXyW1uRaDtlEsFAU8MnBg"10157
+ }10158
+ },10159
+ "user_id": "@alice_959:hs1",10160
+ "unsigned": {}10161
+ }10162
+ },10163
+ "@alice_972:hs1": {10164
+ "ALICEDEVICE972": {10165
+ "algorithms": [10166
+ "m.olm.v1.curve25519-aes-sha2",10167
+ "m.megolm.v1.aes-sha2"10168
+ ],10169
+ "device_id": "ALICEDEVICE972",10170
+ "keys": {10171
+ "curve25519:ALICEDEVICE972": "SxJCwO36DwY9bjGPc9yx5PYCT0yIHjV+ntg58ktBgT0",10172
+ "ed25519:ALICEDEVICE972": "Z0t6Q7Xv5useYMy/jMmcMkLjCrj9X57QNevJZzQGEtQ"10173
+ },10174
+ "signatures": {10175
+ "@alice_972:hs1": {10176
+ "ed25519:ALICEDEVICE972": "e0lCYyFIPSjxsFhAxY420xtJGUjCpwCo+UYykSyfu23YWzjlzNxglrqmds0VLtEhZ54MohFnGhrYuM8AsxLmAw"10177
+ }10178
+ },10179
+ "user_id": "@alice_972:hs1",10180
+ "unsigned": {}10181
+ }10182
+ },10183
+ "@alice_976:hs1": {10184
+ "ALICEDEVICE976": {10185
+ "algorithms": [10186
+ "m.olm.v1.curve25519-aes-sha2",10187
+ "m.megolm.v1.aes-sha2"10188
+ ],10189
+ "device_id": "ALICEDEVICE976",10190
+ "keys": {10191
+ "curve25519:ALICEDEVICE976": "XreyihRUpo7Cjp5RE74goK8oZ0ecLSBXT6+YcsIdfj0",10192
+ "ed25519:ALICEDEVICE976": "Lt5MbaHL52r2QFtZT13xBQtYJB9zVDjBRdcZkuHIJ+g"10193
+ },10194
+ "signatures": {10195
+ "@alice_976:hs1": {10196
+ "ed25519:ALICEDEVICE976": "PZ9FVzC2RC2ft3Nd7/WlxU92izHvBWTm2RJX2BwaUolVQXcjrmPB0adJmqtdjp+QjkxijGD1WjQMpZdE3bNXDQ"10197
+ }10198
+ },10199
+ "user_id": "@alice_976:hs1",10200
+ "unsigned": {}10201
+ }10202
+ },10203
+ "@alice_977:hs1": {10204
+ "ALICEDEVICE977": {10205
+ "algorithms": [10206
+ "m.olm.v1.curve25519-aes-sha2",10207
+ "m.megolm.v1.aes-sha2"10208
+ ],10209
+ "device_id": "ALICEDEVICE977",10210
+ "keys": {10211
+ "curve25519:ALICEDEVICE977": "3MnqQoEM2s39lLSTWnR8NbGQUPUktmiiJm5BJDVvT1Q",10212
+ "ed25519:ALICEDEVICE977": "5BILv5cUM8lBFZxJPJjj4mhv6bPIAlhHerdoAIqX/7A"10213
+ },10214
+ "signatures": {10215
+ "@alice_977:hs1": {10216
+ "ed25519:ALICEDEVICE977": "VfZsneBoCY5PNjfU78JejyIuxVlZdU8kEfllZO28x8VyVd0NEekEKd5jr5HWLXEzGN8ty1EF2AncdW7+wxLMDA"10217
+ }10218
+ },10219
+ "user_id": "@alice_977:hs1",10220
+ "unsigned": {}10221
+ }10222
+ },10223
+ "@alice_984:hs1": {10224
+ "ALICEDEVICE984": {10225
+ "algorithms": [10226
+ "m.olm.v1.curve25519-aes-sha2",10227
+ "m.megolm.v1.aes-sha2"10228
+ ],10229
+ "device_id": "ALICEDEVICE984",10230
+ "keys": {10231
+ "curve25519:ALICEDEVICE984": "4ONq9s6hRh9Q4ZMow2nC2ZARzwIdU/ZRKxnAYP2Z1GA",10232
+ "ed25519:ALICEDEVICE984": "1wrv2ceMeumRqNDnYcvvVQf492VfUDMI6yo4VF9lz3k"10233
+ },10234
+ "signatures": {10235
+ "@alice_984:hs1": {10236
+ "ed25519:ALICEDEVICE984": "UMlXVye0amcJrFv9pMfR0MPluwdnqE4ssXpHLqw4f5L1aIx8xKFyI7dGJFEVG5QUMr9EC/49es0W/n2+hbktAw"10237
+ }10238
+ },10239
+ "user_id": "@alice_984:hs1",10240
+ "unsigned": {}10241
+ }10242
+ },10243
+ "@alice_988:hs1": {10244
+ "ALICEDEVICE988": {10245
+ "algorithms": [10246
+ "m.olm.v1.curve25519-aes-sha2",10247
+ "m.megolm.v1.aes-sha2"10248
+ ],10249
+ "device_id": "ALICEDEVICE988",10250
+ "keys": {10251
+ "curve25519:ALICEDEVICE988": "og2Meo9k4O2b5AH+whGrlnIt38vksMDX6dNkm/DQ3BA",10252
+ "ed25519:ALICEDEVICE988": "woJ8/ZajxDPRmBBnkT3T9CY78BbOpCdAxvfZx3GJT74"10253
+ },10254
+ "signatures": {10255
+ "@alice_988:hs1": {10256
+ "ed25519:ALICEDEVICE988": "zmcnI9k6rQbwM6ctODIy+0sFMaqNXvkRz0eWm4F2JFHWtlz1IBAkqMeWbH/4ipOj3ASNN2K0xAUrv4wDDikZBA"10257
+ }10258
+ },10259
+ "user_id": "@alice_988:hs1",10260
+ "unsigned": {}10261
+ }10262
+ },10263
+ "@alice_992:hs1": {10264
+ "ALICEDEVICE992": {10265
+ "algorithms": [10266
+ "m.olm.v1.curve25519-aes-sha2",10267
+ "m.megolm.v1.aes-sha2"10268
+ ],10269
+ "device_id": "ALICEDEVICE992",10270
+ "keys": {10271
+ "curve25519:ALICEDEVICE992": "eShO8XjCoXLnewx7XkLlQ8bDM76DRwUFlrmr3DzdqFQ",10272
+ "ed25519:ALICEDEVICE992": "HcF/TsOo0gX+1I1lud6LIHO1HYx3KwAK7lTew/Pxs4A"10273
+ },10274
+ "signatures": {10275
+ "@alice_992:hs1": {10276
+ "ed25519:ALICEDEVICE992": "2uDIguUyjdjn5bQrHRMWPx1J+nUmbMVk3SpghpzGJ10YbbQ2iLCRgT5fKZWPJDT/L86kfKDgHQdwvRme4+HUCg"10277
+ }10278
+ },10279
+ "user_id": "@alice_992:hs1",10280
+ "unsigned": {}10281
+ }10282
+ },10283
+ "@alice_994:hs1": {10284
+ "ALICEDEVICE994": {10285
+ "algorithms": [10286
+ "m.olm.v1.curve25519-aes-sha2",10287
+ "m.megolm.v1.aes-sha2"10288
+ ],10289
+ "device_id": "ALICEDEVICE994",10290
+ "keys": {10291
+ "curve25519:ALICEDEVICE994": "eJltp4Jhxwu8KJJ2BkN4nZkiVyTIbmkXrNc4j2B+NWM",10292
+ "ed25519:ALICEDEVICE994": "sPSumz6xgFSHEPGY5zreuJ+kZVnmaJ9zX4RFxBFv1M0"10293
+ },10294
+ "signatures": {10295
+ "@alice_994:hs1": {10296
+ "ed25519:ALICEDEVICE994": "CeX3os+AK00iRQGX/NZrqeerpOJym8997s6fWxTBiUZQYNlQywIVFnT1n1VVp1v9uI51t48Q/Ad8Hb4ESHs1Cw"10297
+ }10298
+ },10299
+ "user_id": "@alice_994:hs1",10300
+ "unsigned": {}10301
+ }10302
+ },10303
+ "@alice_1011:hs1": {10304
+ "ALICEDEVICE1011": {10305
+ "algorithms": [10306
+ "m.olm.v1.curve25519-aes-sha2",10307
+ "m.megolm.v1.aes-sha2"10308
+ ],10309
+ "device_id": "ALICEDEVICE1011",10310
+ "keys": {10311
+ "curve25519:ALICEDEVICE1011": "MqQNqlwge59Z2K411SR22+suHqhNDHG8NxLksqDKJlw",10312
+ "ed25519:ALICEDEVICE1011": "U6buTy9/7gdQV7ewLs1qZnqMyWE8Yt18W2gqscvHO7I"10313
+ },10314
+ "signatures": {10315
+ "@alice_1011:hs1": {10316
+ "ed25519:ALICEDEVICE1011": "y5Kzp70q6lPpKnaU2FwZ1QhktBmHTt8lxKbuu+1bBVSj0ZuM5TVu3hSqNMsK53RAKEoskYRaVs1HICvq7+iEAg"10317
+ }10318
+ },10319
+ "user_id": "@alice_1011:hs1",10320
+ "unsigned": {}10321
+ }10322
+ },10323
+ "@alice_1037:hs1": {10324
+ "ALICEDEVICE1037": {10325
+ "algorithms": [10326
+ "m.olm.v1.curve25519-aes-sha2",10327
+ "m.megolm.v1.aes-sha2"10328
+ ],10329
+ "device_id": "ALICEDEVICE1037",10330
+ "keys": {10331
+ "curve25519:ALICEDEVICE1037": "CSB0spyQJ9a+5Q5mn9zB/shzpk+R0nGlEPg7ptB5dTg",10332
+ "ed25519:ALICEDEVICE1037": "kaJhyONgh0X0BKjHDM3hV+Bk5KRsKx4JLZ1JueLUha0"10333
+ },10334
+ "signatures": {10335
+ "@alice_1037:hs1": {10336
+ "ed25519:ALICEDEVICE1037": "tHdL4ZpH4qh6ZiDA1LfRtbEGFbWESChUjqwYsleK8hPNDtBN95Wy+V24A/rJixtG4Yw2A0vzLusfAh5FDqhyCg"10337
+ }10338
+ },10339
+ "user_id": "@alice_1037:hs1",10340
+ "unsigned": {}10341
+ }10342
+ },10343
+ "@alice_103:hs1": {10344
+ "ALICEDEVICE103": {10345
+ "algorithms": [10346
+ "m.olm.v1.curve25519-aes-sha2",10347
+ "m.megolm.v1.aes-sha2"10348
+ ],10349
+ "device_id": "ALICEDEVICE103",10350
+ "keys": {10351
+ "curve25519:ALICEDEVICE103": "7OViwTbQUTfkGdqps8TMG311O/zf17c/lU/zQVCVVG8",10352
+ "ed25519:ALICEDEVICE103": "/WC/6vtj54unD5KHTMIy4LxTUDkrCa5cLGv2Xu+AmaY"10353
+ },10354
+ "signatures": {10355
+ "@alice_103:hs1": {10356
+ "ed25519:ALICEDEVICE103": "5otdeOe2WV/AHBOb81hlc6RJvRcna5bur6wGZrKo16OprJ40OUSZ7ck4N0JbrM/PkeixqHB67mPRFjtAHchCBg"10357
+ }10358
+ },10359
+ "user_id": "@alice_103:hs1",10360
+ "unsigned": {}10361
+ }10362
+ },10363
+ "@alice_1046:hs1": {10364
+ "ALICEDEVICE1046": {10365
+ "algorithms": [10366
+ "m.olm.v1.curve25519-aes-sha2",10367
+ "m.megolm.v1.aes-sha2"10368
+ ],10369
+ "device_id": "ALICEDEVICE1046",10370
+ "keys": {10371
+ "curve25519:ALICEDEVICE1046": "btzROACNO9a8V3ZIhLIyqbAqMEQLbcfp2Tolc7OYeTU",10372
+ "ed25519:ALICEDEVICE1046": "H+oPJmsfeFFkyz9or4HV5PdkvMBhQPIzwjhO8sDFBm0"10373
+ },10374
+ "signatures": {10375
+ "@alice_1046:hs1": {10376
+ "ed25519:ALICEDEVICE1046": "eaCPidfFkFbjNg/YpBbcKFMFiSWG9iXYEtfHbg+11XRgDTX7WeUsPxuzlOx0OZFdgvymPVo50kJNgULAiTKEDA"10377
+ }10378
+ },10379
+ "user_id": "@alice_1046:hs1",10380
+ "unsigned": {}10381
+ }10382
+ },10383
+ "@alice_1048:hs1": {10384
+ "ALICEDEVICE1048": {10385
+ "algorithms": [10386
+ "m.olm.v1.curve25519-aes-sha2",10387
+ "m.megolm.v1.aes-sha2"10388
+ ],10389
+ "device_id": "ALICEDEVICE1048",10390
+ "keys": {10391
+ "curve25519:ALICEDEVICE1048": "JVL3yPYCclSKcZtaKIPJbohhD9hkJYo26pRgyeOakD8",10392
+ "ed25519:ALICEDEVICE1048": "WQWJ8wp6+GV38D8hSxIfB/osrtjUdvvsd/ZkqFh00jw"10393
+ },10394
+ "signatures": {10395
+ "@alice_1048:hs1": {10396
+ "ed25519:ALICEDEVICE1048": "zOhhn7Lu0oSVmLK/Gq3/Kw2ZNg3JZ0+p6UIV7oM2BitPVRd6kN4xprM2ScN4oVAvZ3QMq6/Em6oRMEPFhOD4Aw"10397
+ }10398
+ },10399
+ "user_id": "@alice_1048:hs1",10400
+ "unsigned": {}10401
+ }10402
+ },10403
+ "@alice_1059:hs1": {10404
+ "ALICEDEVICE1059": {10405
+ "algorithms": [10406
+ "m.olm.v1.curve25519-aes-sha2",10407
+ "m.megolm.v1.aes-sha2"10408
+ ],10409
+ "device_id": "ALICEDEVICE1059",10410
+ "keys": {10411
+ "curve25519:ALICEDEVICE1059": "GiNpvdlCgv6uBK7v74mTNqCMpNiihs167oVlwsJoORM",10412
+ "ed25519:ALICEDEVICE1059": "5WPy1LJFnm3bxa6NZK7hwJYbr/2eeHZFqgGR0HYSgWw"10413
+ },10414
+ "signatures": {10415
+ "@alice_1059:hs1": {10416
+ "ed25519:ALICEDEVICE1059": "xy2gWZAGLIQs77VRwmFKjxFWIfKLu4gL7arUYUMRW2A1e7XZvOzNtBwGv/UHrV+vrUytZwXiVxc9c2v2E036Bg"10417
+ }10418
+ },10419
+ "user_id": "@alice_1059:hs1",10420
+ "unsigned": {}10421
+ }10422
+ },10423
+ "@alice_1065:hs1": {10424
+ "ALICEDEVICE1065": {10425
+ "algorithms": [10426
+ "m.olm.v1.curve25519-aes-sha2",10427
+ "m.megolm.v1.aes-sha2"10428
+ ],10429
+ "device_id": "ALICEDEVICE1065",10430
+ "keys": {10431
+ "curve25519:ALICEDEVICE1065": "CW9iNN53vP+dmqGmc3eYQk7ouBaEW7TrJFbMR4WxISs",10432
+ "ed25519:ALICEDEVICE1065": "LcjE1ibvPgtN3mPFl5ZRrpel+lIqpfQZhUm+bmE45CI"10433
+ },10434
+ "signatures": {10435
+ "@alice_1065:hs1": {10436
+ "ed25519:ALICEDEVICE1065": "61+pN4KZOwoebN2nU3HfiS5Z1pIu0Yp2g5/aUTMaGXWnRWCp7EAmaG9lpUCsevHfC3PRVeUaAai0d7xGd6LLDA"10437
+ }10438
+ },10439
+ "user_id": "@alice_1065:hs1",10440
+ "unsigned": {}10441
+ }10442
+ },10443
+ "@alice_106:hs1": {10444
+ "ALICEDEVICE106": {10445
+ "algorithms": [10446
+ "m.olm.v1.curve25519-aes-sha2",10447
+ "m.megolm.v1.aes-sha2"10448
+ ],10449
+ "device_id": "ALICEDEVICE106",10450
+ "keys": {10451
+ "curve25519:ALICEDEVICE106": "wDMTT7qPVHyH4Rm+nbTaWxQIIlRnBE53A9NlKk+2enc",10452
+ "ed25519:ALICEDEVICE106": "27HvPzkDxeDZUo49gnVCTrwvW7xv0PaPSL/XTU34/s0"10453
+ },10454
+ "signatures": {10455
+ "@alice_106:hs1": {10456
+ "ed25519:ALICEDEVICE106": "wMRs7xy4NqgwqWxQm1rowaFsK12DUybt46YxLuDAZ6Ov/+pjbby+YF163GsjFjCWSLAWTjsHKBoZw0bmOOxWDw"10457
+ }10458
+ },10459
+ "user_id": "@alice_106:hs1",10460
+ "unsigned": {}10461
+ }10462
+ },10463
+ "@alice_1073:hs1": {10464
+ "ALICEDEVICE1073": {10465
+ "algorithms": [10466
+ "m.olm.v1.curve25519-aes-sha2",10467
+ "m.megolm.v1.aes-sha2"10468
+ ],10469
+ "device_id": "ALICEDEVICE1073",10470
+ "keys": {10471
+ "curve25519:ALICEDEVICE1073": "ppazMvIwRFd5JmfNavootk2znuCJPs15SW/dYA44tg0",10472
+ "ed25519:ALICEDEVICE1073": "ABXDvumJTzvRnKjKnAn69bWZw2uBbVtc4M3/VeS4ADE"10473
+ },10474
+ "signatures": {10475
+ "@alice_1073:hs1": {10476
+ "ed25519:ALICEDEVICE1073": "ipvGhztBBkpw5LQyqJO4HLxIn9RI64LCgVYuFPUiPE0N7jtOKDZ+W7xtXAdbxWS31XQyyxaCpwI4ahHLxPtBAw"10477
+ }10478
+ },10479
+ "user_id": "@alice_1073:hs1",10480
+ "unsigned": {}10481
+ }10482
+ },10483
+ "@alice_1076:hs1": {10484
+ "ALICEDEVICE1076": {10485
+ "algorithms": [10486
+ "m.olm.v1.curve25519-aes-sha2",10487
+ "m.megolm.v1.aes-sha2"10488
+ ],10489
+ "device_id": "ALICEDEVICE1076",10490
+ "keys": {10491
+ "curve25519:ALICEDEVICE1076": "SWiCTCmGq+nNlTkhrHKmEG37MSQ9WjBfUSpvKxmJyjc",10492
+ "ed25519:ALICEDEVICE1076": "v6jxLtFGN962XUeCzfJHIETn6ZZ7K0603TR0YmK3f3E"10493
+ },10494
+ "signatures": {10495
+ "@alice_1076:hs1": {10496
+ "ed25519:ALICEDEVICE1076": "hmz3aBzlqHmexVCzMV3t3Bx3AMd1Nu8f1VQdCWFJCBFrPYuemV+RJuTvkfzcWoKCDyz/c6ZSJPyLkMMtoyPsAQ"10497
+ }10498
+ },10499
+ "user_id": "@alice_1076:hs1",10500
+ "unsigned": {}10501
+ }10502
+ },10503
+ "@alice_1081:hs1": {10504
+ "ALICEDEVICE1081": {10505
+ "algorithms": [10506
+ "m.olm.v1.curve25519-aes-sha2",10507
+ "m.megolm.v1.aes-sha2"10508
+ ],10509
+ "device_id": "ALICEDEVICE1081",10510
+ "keys": {10511
+ "curve25519:ALICEDEVICE1081": "ZEQRtkAtqh84J15xUpp54SHJNK50bhnQsebOal5f9S0",10512
+ "ed25519:ALICEDEVICE1081": "pZv8gXHJVecmBjgJ6wX1ZebBQRt63IrLBo9NM6vuevA"10513
+ },10514
+ "signatures": {10515
+ "@alice_1081:hs1": {10516
+ "ed25519:ALICEDEVICE1081": "fDhYdg/quTqFrSe3cNQzamoNo/ppRhKTBSOO6GtjeBIDxb2Uv0p6okyNriGjM5iIAh6OniO6W3y5t7YYVxeuAw"10517
+ }10518
+ },10519
+ "user_id": "@alice_1081:hs1",10520
+ "unsigned": {}10521
+ }10522
+ },10523
+ "@alice_1103:hs1": {10524
+ "ALICEDEVICE1103": {10525
+ "algorithms": [10526
+ "m.olm.v1.curve25519-aes-sha2",10527
+ "m.megolm.v1.aes-sha2"10528
+ ],10529
+ "device_id": "ALICEDEVICE1103",10530
+ "keys": {10531
+ "curve25519:ALICEDEVICE1103": "J/Biv48f+yZLgkX7gzhvvBJ02cWTVpP9Cu+Dlh0cMRI",10532
+ "ed25519:ALICEDEVICE1103": "nQzN/dwjtCvfUyJkagVTVg3EUA6+KCDeHNpFFik3NMk"10533
+ },10534
+ "signatures": {10535
+ "@alice_1103:hs1": {10536
+ "ed25519:ALICEDEVICE1103": "IvPxRGwKhVz6A8WozAKV6QowL5qP4LJY//Idyy805eK3o/5pomA9fXPrjmrdUdBNzTOUxmZCyjj72niKdJ9rAw"10537
+ }10538
+ },10539
+ "user_id": "@alice_1103:hs1",10540
+ "unsigned": {}10541
+ }10542
+ },10543
+ "@alice_110:hs1": {10544
+ "ALICEDEVICE110": {10545
+ "algorithms": [10546
+ "m.olm.v1.curve25519-aes-sha2",10547
+ "m.megolm.v1.aes-sha2"10548
+ ],10549
+ "device_id": "ALICEDEVICE110",10550
+ "keys": {10551
+ "curve25519:ALICEDEVICE110": "jg4tipqVKhNGK0OZpfyBb/P8sT4FbwgAvr0mSGMSsn8",10552
+ "ed25519:ALICEDEVICE110": "GVLsgjPLW1iZYWewV50XPRVUoH0jaegwQ7XNTcLsRf4"10553
+ },10554
+ "signatures": {10555
+ "@alice_110:hs1": {10556
+ "ed25519:ALICEDEVICE110": "Itp4DtbCWjVZbB2ZusbQhncgRvi28FfOgu848Yi1VlDETCgWTVFaQ0/4tdPEs2hQkrtMjHlZ74DSGdgI8rMvCg"10557
+ }10558
+ },10559
+ "user_id": "@alice_110:hs1",10560
+ "unsigned": {}10561
+ }10562
+ },10563
+ "@alice_1123:hs1": {10564
+ "ALICEDEVICE1123": {10565
+ "algorithms": [10566
+ "m.olm.v1.curve25519-aes-sha2",10567
+ "m.megolm.v1.aes-sha2"10568
+ ],10569
+ "device_id": "ALICEDEVICE1123",10570
+ "keys": {10571
+ "curve25519:ALICEDEVICE1123": "HgkNQtqjzU3dzStchmE11Ea0pTOUc2ZIaAMqD+zSdWE",10572
+ "ed25519:ALICEDEVICE1123": "NTtTboZ0j5O1lj/KGBlxF9Fl5kH+UYE8nNglVtGXJm0"10573
+ },10574
+ "signatures": {10575
+ "@alice_1123:hs1": {10576
+ "ed25519:ALICEDEVICE1123": "BKGwDyCMuhfZVfDwBiOu31VWJZdih0VfaL3C61bUoiSNe1GXVncbPKXmykjzHcWUPMco7FQr3lYYUEqkZ94DCw"10577
+ }10578
+ },10579
+ "user_id": "@alice_1123:hs1",10580
+ "unsigned": {}10581
+ }10582
+ },10583
+ "@alice_1127:hs1": {10584
+ "ALICEDEVICE1127": {10585
+ "algorithms": [10586
+ "m.olm.v1.curve25519-aes-sha2",10587
+ "m.megolm.v1.aes-sha2"10588
+ ],10589
+ "device_id": "ALICEDEVICE1127",10590
+ "keys": {10591
+ "curve25519:ALICEDEVICE1127": "h6RbwDzE/uo7NL/jphOMJZVA5KO/SeVDOJD8brMq0h4",10592
+ "ed25519:ALICEDEVICE1127": "IUTDJYdjeigHLs1a6JeNkid5DTM5t31l4JQ5uYSyMvg"10593
+ },10594
+ "signatures": {10595
+ "@alice_1127:hs1": {10596
+ "ed25519:ALICEDEVICE1127": "/xTijqYoVtr04Nm7+L4TCZYGDjszmYSnCF9h62ZGvEyxZtdm+fY6M0lP5HD1gbFrwCJwTA/glUGZgdDXsUqyBQ"10597
+ }10598
+ },10599
+ "user_id": "@alice_1127:hs1",10600
+ "unsigned": {}10601
+ }10602
+ },10603
+ "@alice_1136:hs1": {10604
+ "ALICEDEVICE1136": {10605
+ "algorithms": [10606
+ "m.olm.v1.curve25519-aes-sha2",10607
+ "m.megolm.v1.aes-sha2"10608
+ ],10609
+ "device_id": "ALICEDEVICE1136",10610
+ "keys": {10611
+ "curve25519:ALICEDEVICE1136": "WmSa6+eimLskNiUuXBoVeR8/iKif3As+eN47y7JqdTA",10612
+ "ed25519:ALICEDEVICE1136": "VuW06rFQJF3h3LusnGtAkH4kEBV6ivOJvIO9bIoP8wI"10613
+ },10614
+ "signatures": {10615
+ "@alice_1136:hs1": {10616
+ "ed25519:ALICEDEVICE1136": "ZTzFz2q+zo1x3UOB8O+s3vQXSs1h1bg8KC/8LsRa6L3cGqygENtA6jlUAmjsjwS7/LZJEqkOxm40IHwIrntSAw"10617
+ }10618
+ },10619
+ "user_id": "@alice_1136:hs1",10620
+ "unsigned": {}10621
+ }10622
+ },10623
+ "@alice_1138:hs1": {10624
+ "ALICEDEVICE1138": {10625
+ "algorithms": [10626
+ "m.olm.v1.curve25519-aes-sha2",10627
+ "m.megolm.v1.aes-sha2"10628
+ ],10629
+ "device_id": "ALICEDEVICE1138",10630
+ "keys": {10631
+ "curve25519:ALICEDEVICE1138": "JNiliAfT20KXiSuxEV8zZzW+LSRPRtoA+UoSzoBn6yg",10632
+ "ed25519:ALICEDEVICE1138": "Qsgw0ceAieudzMWjvbKSCKXQynsP16JXMJ1cCGFM0KY"10633
+ },10634
+ "signatures": {10635
+ "@alice_1138:hs1": {10636
+ "ed25519:ALICEDEVICE1138": "uTXlBDCmTsqbqOB8jXCG+qHLiSX0aWEDFZVHotJOU6cW4+PO3p0p2qdBWnIda0Ew58jDiKa22L3oBStIAzM0Cg"10637
+ }10638
+ },10639
+ "user_id": "@alice_1138:hs1",10640
+ "unsigned": {}10641
+ }10642
+ },10643
+ "@alice_1149:hs1": {10644
+ "ALICEDEVICE1149": {10645
+ "algorithms": [10646
+ "m.olm.v1.curve25519-aes-sha2",10647
+ "m.megolm.v1.aes-sha2"10648
+ ],10649
+ "device_id": "ALICEDEVICE1149",10650
+ "keys": {10651
+ "curve25519:ALICEDEVICE1149": "JprB+gkjh5qK6zUAEGN89GSHD/sLx8zJUCJwNmo6HRU",10652
+ "ed25519:ALICEDEVICE1149": "cUVoJ1J4AXA21c3c5SkT6olxAIG3P0apjnGOAlVoqio"10653
+ },10654
+ "signatures": {10655
+ "@alice_1149:hs1": {10656
+ "ed25519:ALICEDEVICE1149": "lWuuysweK//K3yc83TSfQAOK7r37Sh46/KZcH8XO6CzKJoE20+4nfAbo9hDq1yV6g4mmmaARY3AnCF2OTkY0AA"10657
+ }10658
+ },10659
+ "user_id": "@alice_1149:hs1",10660
+ "unsigned": {}10661
+ }10662
+ },10663
+ "@alice_1157:hs1": {10664
+ "ALICEDEVICE1157": {10665
+ "algorithms": [10666
+ "m.olm.v1.curve25519-aes-sha2",10667
+ "m.megolm.v1.aes-sha2"10668
+ ],10669
+ "device_id": "ALICEDEVICE1157",10670
+ "keys": {10671
+ "curve25519:ALICEDEVICE1157": "ZHLQ+Q/VT/JnoAggpz0LbUJm6UIqttMMsD4zUBW5QFI",10672
+ "ed25519:ALICEDEVICE1157": "FI+Unpyp8fa3PzwrKF6/Z5dcdF7F4pqf5/GeqxNlCU8"10673
+ },10674
+ "signatures": {10675
+ "@alice_1157:hs1": {10676
+ "ed25519:ALICEDEVICE1157": "SNTJ4toLHWsmC/OXB2p5HJ/A6/bXuW7CHYstSj5Iz+eFTE9xBHlpbk8Jt/Q6KsrRKeEF/EMxH8J+/L0jFy/JAw"10677
+ }10678
+ },10679
+ "user_id": "@alice_1157:hs1",10680
+ "unsigned": {}10681
+ }10682
+ },10683
+ "@alice_1158:hs1": {10684
+ "ALICEDEVICE1158": {10685
+ "algorithms": [10686
+ "m.olm.v1.curve25519-aes-sha2",10687
+ "m.megolm.v1.aes-sha2"10688
+ ],10689
+ "device_id": "ALICEDEVICE1158",10690
+ "keys": {10691
+ "curve25519:ALICEDEVICE1158": "PHRDvOHAtmpwmeryOUu1jBq8YnN4ePG6iibuepjeRmk",10692
+ "ed25519:ALICEDEVICE1158": "AENpEwtzNDdmCjHzV1c+cp6g3iVKBcS++x6Fn1JV8xs"10693
+ },10694
+ "signatures": {10695
+ "@alice_1158:hs1": {10696
+ "ed25519:ALICEDEVICE1158": "8qaFX7CRsjYOMtxReXzDaGksK8JcKsH2Pe0xwrXAHAAcgW2VIXP06FQPrfH8rEx4GF2PEHPzoYHEN773qGAtBA"10697
+ }10698
+ },10699
+ "user_id": "@alice_1158:hs1",10700
+ "unsigned": {}10701
+ }10702
+ },10703
+ "@alice_1161:hs1": {10704
+ "ALICEDEVICE1161": {10705
+ "algorithms": [10706
+ "m.olm.v1.curve25519-aes-sha2",10707
+ "m.megolm.v1.aes-sha2"10708
+ ],10709
+ "device_id": "ALICEDEVICE1161",10710
+ "keys": {10711
+ "curve25519:ALICEDEVICE1161": "OQ3vEcYL8qcJvruvM+CMO9z4PfiPBRARiNIA/3nA2ko",10712
+ "ed25519:ALICEDEVICE1161": "2Ow9PV72Jgzic/sJB43kyMwkXa/oHFOpu8fJJMVqvJY"10713
+ },10714
+ "signatures": {10715
+ "@alice_1161:hs1": {10716
+ "ed25519:ALICEDEVICE1161": "YV73/+6FJpMmTgANHyuNS1DE3Q64au9tqa1nPgq0RE6YcJklCZTdi6BOWFGd7tS3Niurw1CXLASOwelxS3P+Cg"10717
+ }10718
+ },10719
+ "user_id": "@alice_1161:hs1",10720
+ "unsigned": {}10721
+ }10722
+ },10723
+ "@alice_1168:hs1": {10724
+ "ALICEDEVICE1168": {10725
+ "algorithms": [10726
+ "m.olm.v1.curve25519-aes-sha2",10727
+ "m.megolm.v1.aes-sha2"10728
+ ],10729
+ "device_id": "ALICEDEVICE1168",10730
+ "keys": {10731
+ "curve25519:ALICEDEVICE1168": "SsDrJALUPkHH6906pqcrgealzTssYKH5F0ftBxYkjTc",10732
+ "ed25519:ALICEDEVICE1168": "Mi1Tp79hIWrgUjNlzCJrdIA4Gz5N/9+/B/NI1CF7mHI"10733
+ },10734
+ "signatures": {10735
+ "@alice_1168:hs1": {10736
+ "ed25519:ALICEDEVICE1168": "rXD0YgQp6VUycqD78DP/NZyFiyVp+AZSvqJtV7DZBiOgVAhIVjM9hQXb9Xy3HrAzQbm5CptztstU6al6q4uvBQ"10737
+ }10738
+ },10739
+ "user_id": "@alice_1168:hs1",10740
+ "unsigned": {}10741
+ }10742
+ },10743
+ "@alice_1186:hs1": {10744
+ "ALICEDEVICE1186": {10745
+ "algorithms": [10746
+ "m.olm.v1.curve25519-aes-sha2",10747
+ "m.megolm.v1.aes-sha2"10748
+ ],10749
+ "device_id": "ALICEDEVICE1186",10750
+ "keys": {10751
+ "curve25519:ALICEDEVICE1186": "Mmg2knIo3Sna+Z9suGzOeKHX3AvuR4bXsTwiQW4bEEk",10752
+ "ed25519:ALICEDEVICE1186": "v1OoZD+FLDDODUC1IxrOccf8ei4ki5Innm95mxUpAoY"10753
+ },10754
+ "signatures": {10755
+ "@alice_1186:hs1": {10756
+ "ed25519:ALICEDEVICE1186": "FGHdeJie70bYMIzlqakU7WgIVDuyaAXJwZWNBysL4EXyhpMXGrGPnKcViG14cL3WjCsp1DWY4IZJhERNwA09DA"10757
+ }10758
+ },10759
+ "user_id": "@alice_1186:hs1",10760
+ "unsigned": {}10761
+ }10762
+ },10763
+ "@alice_1188:hs1": {10764
+ "ALICEDEVICE1188": {10765
+ "algorithms": [10766
+ "m.olm.v1.curve25519-aes-sha2",10767
+ "m.megolm.v1.aes-sha2"10768
+ ],10769
+ "device_id": "ALICEDEVICE1188",10770
+ "keys": {10771
+ "curve25519:ALICEDEVICE1188": "2P3vKh7D4H3GzO35mlZun/CJykCWBIigs61ofG3FqRw",10772
+ "ed25519:ALICEDEVICE1188": "2wqBO7KSoyX1mlPHw6a9I5Vj6nyCkktV1msnhngLOdE"10773
+ },10774
+ "signatures": {10775
+ "@alice_1188:hs1": {10776
+ "ed25519:ALICEDEVICE1188": "1Dis1MRCSJCV0jq3/uhAmzygwYb3aMXZ4VNWJz3Ts+pSIkl8mab8TrMl+oqEUnFBmI6DpTX1Q9Dh6lEX0cHrBA"10777
+ }10778
+ },10779
+ "user_id": "@alice_1188:hs1",10780
+ "unsigned": {}10781
+ }10782
+ },10783
+ "@alice_1196:hs1": {10784
+ "ALICEDEVICE1196": {10785
+ "algorithms": [10786
+ "m.olm.v1.curve25519-aes-sha2",10787
+ "m.megolm.v1.aes-sha2"10788
+ ],10789
+ "device_id": "ALICEDEVICE1196",10790
+ "keys": {10791
+ "curve25519:ALICEDEVICE1196": "ewthoPoT9EFnnrRiWReJAdxYk2+J4NDv/oDecCU1xCA",10792
+ "ed25519:ALICEDEVICE1196": "P3RCVmHzmRJ9WuP3jEoSSs1lAcYWk7yLyD22aTKS1MQ"10793
+ },10794
+ "signatures": {10795
+ "@alice_1196:hs1": {10796
+ "ed25519:ALICEDEVICE1196": "kSpcDnzAWwKFTYvao/rhStuTp+RiXkct6oYqXsXBwZdvyTyKQwIRmM54U97xZDQPeTqmmd1j2/p/tVMhY1r7Cg"10797
+ }10798
+ },10799
+ "user_id": "@alice_1196:hs1",10800
+ "unsigned": {}10801
+ }10802
+ },10803
+ "@alice_1208:hs1": {10804
+ "ALICEDEVICE1208": {10805
+ "algorithms": [10806
+ "m.olm.v1.curve25519-aes-sha2",10807
+ "m.megolm.v1.aes-sha2"10808
+ ],10809
+ "device_id": "ALICEDEVICE1208",10810
+ "keys": {10811
+ "curve25519:ALICEDEVICE1208": "bBGLYT8C6nCeYQzj+zXeCZAgjXwe7xwfsqzjSVRxe2o",10812
+ "ed25519:ALICEDEVICE1208": "HIovvzgoS6JvXneNtshKh2A53rl6AzuhdzvCkjQK//0"10813
+ },10814
+ "signatures": {10815
+ "@alice_1208:hs1": {10816
+ "ed25519:ALICEDEVICE1208": "Byk0XgjgTzocO0XB8ejvqkO2ekiw6BK1QZdrlcd//Zcka/pedcZR8JmaHgdYsPy/O1I7ik8ssZuXyLA7PrCqAg"10817
+ }10818
+ },10819
+ "user_id": "@alice_1208:hs1",10820
+ "unsigned": {}10821
+ }10822
+ },10823
+ "@alice_1227:hs1": {10824
+ "ALICEDEVICE1227": {10825
+ "algorithms": [10826
+ "m.olm.v1.curve25519-aes-sha2",10827
+ "m.megolm.v1.aes-sha2"10828
+ ],10829
+ "device_id": "ALICEDEVICE1227",10830
+ "keys": {10831
+ "curve25519:ALICEDEVICE1227": "9McV713C64p0gO7KiBn94chT2ZPTYmTVtAInPVy0PCo",10832
+ "ed25519:ALICEDEVICE1227": "7E6bJFer6AJtk2WWw1SxfVNGNvoV7LEvYzKgLxLhbPY"10833
+ },10834
+ "signatures": {10835
+ "@alice_1227:hs1": {10836
+ "ed25519:ALICEDEVICE1227": "D2M0T1n9X9v2peKpx5flF1CMR6Uyt+2FH72V0cU20sKoj0Y/+2d8O+4mJzOzMByYGJ0XiZmlMCo669Y0maCsDw"10837
+ }10838
+ },10839
+ "user_id": "@alice_1227:hs1",10840
+ "unsigned": {}10841
+ }10842
+ },10843
+ "@alice_1232:hs1": {10844
+ "ALICEDEVICE1232": {10845
+ "algorithms": [10846
+ "m.olm.v1.curve25519-aes-sha2",10847
+ "m.megolm.v1.aes-sha2"10848
+ ],10849
+ "device_id": "ALICEDEVICE1232",10850
+ "keys": {10851
+ "curve25519:ALICEDEVICE1232": "8psrzlC9KDneQ9jVE/OfLI1GV01c9qCJTiL/W4nNNXs",10852
+ "ed25519:ALICEDEVICE1232": "e86jQOCiejj4FuaqPJMUivrKnjGGMJxLUcZ+rJoFleM"10853
+ },10854
+ "signatures": {10855
+ "@alice_1232:hs1": {10856
+ "ed25519:ALICEDEVICE1232": "Tp+0JVhQ7FHCxmOoZBoWKkNAb2GFJezoCoEAju680gpNfSQeH1b29mGPy/RdlNO4Q3hPUdXAGZOGy4s9Ztw1BA"10857
+ }10858
+ },10859
+ "user_id": "@alice_1232:hs1",10860
+ "unsigned": {}10861
+ }10862
+ },10863
+ "@alice_1234:hs1": {10864
+ "ALICEDEVICE1234": {10865
+ "algorithms": [10866
+ "m.olm.v1.curve25519-aes-sha2",10867
+ "m.megolm.v1.aes-sha2"10868
+ ],10869
+ "device_id": "ALICEDEVICE1234",10870
+ "keys": {10871
+ "curve25519:ALICEDEVICE1234": "3SdXpsfnToq5+vFP02AyFFBcrr7hIThXFXQ+4v58sk0",10872
+ "ed25519:ALICEDEVICE1234": "p5SLhrqns7yCq26aPJDW43MyXi+1F3xGVZ5ah6ClKDc"10873
+ },10874
+ "signatures": {10875
+ "@alice_1234:hs1": {10876
+ "ed25519:ALICEDEVICE1234": "fG/Zz8O1j3ilrYY4MmRoF+Ji+IIWecQWbxVlmKx3/DqIJMcTTxf113Efo40GO988imgtWgyT5VMBoSp9MP+DAg"10877
+ }10878
+ },10879
+ "user_id": "@alice_1234:hs1",10880
+ "unsigned": {}10881
+ }10882
+ },10883
+ "@alice_124:hs1": {10884
+ "ALICEDEVICE124": {10885
+ "algorithms": [10886
+ "m.olm.v1.curve25519-aes-sha2",10887
+ "m.megolm.v1.aes-sha2"10888
+ ],10889
+ "device_id": "ALICEDEVICE124",10890
+ "keys": {10891
+ "curve25519:ALICEDEVICE124": "pIx+WUaQwfqtROD+DLpWmc3Y46It1mEAICTYP6F9qVs",10892
+ "ed25519:ALICEDEVICE124": "+DP4bz0NjkoBKpg03cxqgYL+e8KAAZKYPX7ggbKcApM"10893
+ },10894
+ "signatures": {10895
+ "@alice_124:hs1": {10896
+ "ed25519:ALICEDEVICE124": "GutJRTU0gHcIjpPx4pTRfL+Xat7GqttG+phALI4O8RKZrLWTLA44wJTvhLQrjpDNv7qj4raHlPzTNO4p29LoDw"10897
+ }10898
+ },10899
+ "user_id": "@alice_124:hs1",10900
+ "unsigned": {}10901
+ }10902
+ },10903
+ "@alice_1253:hs1": {10904
+ "ALICEDEVICE1253": {10905
+ "algorithms": [10906
+ "m.olm.v1.curve25519-aes-sha2",10907
+ "m.megolm.v1.aes-sha2"10908
+ ],10909
+ "device_id": "ALICEDEVICE1253",10910
+ "keys": {10911
+ "curve25519:ALICEDEVICE1253": "ymV3CZz4WWW4Fn+2Nx5oE1m0hZ8sgGppoKjdE7oA7m8",10912
+ "ed25519:ALICEDEVICE1253": "FOJegXJkCGaqY9CU+khYwP9c4zIkrqloA/6eE9GMNd8"10913
+ },10914
+ "signatures": {10915
+ "@alice_1253:hs1": {10916
+ "ed25519:ALICEDEVICE1253": "tvw/JmJSo9MWoAzuRLQQy/S8c0TC3NUuEWs5K3jYdHE33E6mQHjpDp/dbK1UB+cqfwJs2/h2rqGhzGKrUI8BAA"10917
+ }10918
+ },10919
+ "user_id": "@alice_1253:hs1",10920
+ "unsigned": {}10921
+ }10922
+ },10923
+ "@alice_1263:hs1": {10924
+ "ALICEDEVICE1263": {10925
+ "algorithms": [10926
+ "m.olm.v1.curve25519-aes-sha2",10927
+ "m.megolm.v1.aes-sha2"10928
+ ],10929
+ "device_id": "ALICEDEVICE1263",10930
+ "keys": {10931
+ "curve25519:ALICEDEVICE1263": "fm4sjZtaShfBgAxlulLh/Hj86uMpSVFPUuxzrKpmiQI",10932
+ "ed25519:ALICEDEVICE1263": "dgJbbDJMk/2ebSJSTPHioL/35rY3X92KQ0EPhc3vngw"10933
+ },10934
+ "signatures": {10935
+ "@alice_1263:hs1": {10936
+ "ed25519:ALICEDEVICE1263": "WN2UXjvuJO8CmBsDy/KrkOUyMzwMDw7pwfBh+OmUYv0hA66n9XxlutA25lJ1xLb/rPh0aT6I1V2ksY60lcQCBw"10937
+ }10938
+ },10939
+ "user_id": "@alice_1263:hs1",10940
+ "unsigned": {}10941
+ }10942
+ },10943
+ "@alice_1266:hs1": {10944
+ "ALICEDEVICE1266": {10945
+ "algorithms": [10946
+ "m.olm.v1.curve25519-aes-sha2",10947
+ "m.megolm.v1.aes-sha2"10948
+ ],10949
+ "device_id": "ALICEDEVICE1266",10950
+ "keys": {10951
+ "curve25519:ALICEDEVICE1266": "LeNZzhJpuzBsyYCgrm8OPruOD83L7zWGVT31PUEenTk",10952
+ "ed25519:ALICEDEVICE1266": "QRYh2WEQiKezd61YCWdYZRn7GnbEBW+YVMA/Ei5aTKY"10953
+ },10954
+ "signatures": {10955
+ "@alice_1266:hs1": {10956
+ "ed25519:ALICEDEVICE1266": "srfZGz3NXaCpTqRvZtIbIJWVb+dhqdoa6ypECam6mBrwb0Lf2zRfHYnyev/yi0CAzfZ0LQ1MjgE5P17UpLNDDQ"10957
+ }10958
+ },10959
+ "user_id": "@alice_1266:hs1",10960
+ "unsigned": {}10961
+ }10962
+ },10963
+ "@alice_1268:hs1": {10964
+ "ALICEDEVICE1268": {10965
+ "algorithms": [10966
+ "m.olm.v1.curve25519-aes-sha2",10967
+ "m.megolm.v1.aes-sha2"10968
+ ],10969
+ "device_id": "ALICEDEVICE1268",10970
+ "keys": {10971
+ "curve25519:ALICEDEVICE1268": "NUhRaunonL3PCW51wGaHNlx6AAza9vTLaB3lA2LqOnA",10972
+ "ed25519:ALICEDEVICE1268": "h/TO9L8Hz8cYCjMccZztxkCzr+z+Uq1tasG0LeClCU8"10973
+ },10974
+ "signatures": {10975
+ "@alice_1268:hs1": {10976
+ "ed25519:ALICEDEVICE1268": "bGXsLmMO+jRHOWaTyTqrHB9XWvJZ4ZRMrtpelm4k3Xl8kSPxA0F0z5AZfvtBdJBW1Yq3K7fm0y/Iu/lheo7fAw"10977
+ }10978
+ },10979
+ "user_id": "@alice_1268:hs1",10980
+ "unsigned": {}10981
+ }10982
+ },10983
+ "@alice_127:hs1": {10984
+ "ALICEDEVICE127": {10985
+ "algorithms": [10986
+ "m.olm.v1.curve25519-aes-sha2",10987
+ "m.megolm.v1.aes-sha2"10988
+ ],10989
+ "device_id": "ALICEDEVICE127",10990
+ "keys": {10991
+ "curve25519:ALICEDEVICE127": "B/smScjhP1WdGzF/DWSYKQ1eZgJkrrG+PU25mILNrmA",10992
+ "ed25519:ALICEDEVICE127": "i38G+dzB/Na/DX7NWaeZLrZeqIsi6SQ5X10jyiJKj+4"10993
+ },10994
+ "signatures": {10995
+ "@alice_127:hs1": {10996
+ "ed25519:ALICEDEVICE127": "SLVj31U0MQGv06abOFKkLvVUl1jFotHZxZpd1ZO+dda46KrlhbTcWYws1NH+Y7eoLWwNZpkvbEODNUyd+6GxDQ"10997
+ }10998
+ },10999
+ "user_id": "@alice_127:hs1",11000
+ "unsigned": {}11001
+ }11002
+ },11003
+ "@alice_1298:hs1": {11004
+ "ALICEDEVICE1298": {11005
+ "algorithms": [11006
+ "m.olm.v1.curve25519-aes-sha2",11007
+ "m.megolm.v1.aes-sha2"11008
+ ],11009
+ "device_id": "ALICEDEVICE1298",11010
+ "keys": {11011
+ "curve25519:ALICEDEVICE1298": "YRNSfUVQidwZQ3w07J2JByX6lmiZp+EM2BvlBOZryR0",11012
+ "ed25519:ALICEDEVICE1298": "WmCIAWRGsmU2/8YP60ukYDsK2n1sEUTfIo7E//ZcJ1k"11013
+ },11014
+ "signatures": {11015
+ "@alice_1298:hs1": {11016
+ "ed25519:ALICEDEVICE1298": "Ejb4IiPHyyHfq0BVRTofzqXumXgn4apB1ts3LzxNqjeH4AUhGY/RATzq0+fZokkvTsZAKgvN+eY0v9YzmvcpCQ"11017
+ }11018
+ },11019
+ "user_id": "@alice_1298:hs1",11020
+ "unsigned": {}11021
+ }11022
+ },11023
+ "@alice_1299:hs1": {11024
+ "ALICEDEVICE1299": {11025
+ "algorithms": [11026
+ "m.olm.v1.curve25519-aes-sha2",11027
+ "m.megolm.v1.aes-sha2"11028
+ ],11029
+ "device_id": "ALICEDEVICE1299",11030
+ "keys": {11031
+ "curve25519:ALICEDEVICE1299": "v9DcSyCUFDXh7LvRDSgmGVuX3vdiF3vheYEUVXDWJCg",11032
+ "ed25519:ALICEDEVICE1299": "M8Z9i39uGom0EzFno/0IVKZt+p9E66qZniJ5fOshwgU"11033
+ },11034
+ "signatures": {11035
+ "@alice_1299:hs1": {11036
+ "ed25519:ALICEDEVICE1299": "hiAFDeG9BJgwR2guv392VEwvf+xAPMtCtCgOoRJ3Q1iGV57itW6Vwi6WqXkjrt6iCN4DVdu6QMwo7ltkI0l6AA"11037
+ }11038
+ },11039
+ "user_id": "@alice_1299:hs1",11040
+ "unsigned": {}11041
+ }11042
+ },11043
+ "@alice_1308:hs1": {11044
+ "ALICEDEVICE1308": {11045
+ "algorithms": [11046
+ "m.olm.v1.curve25519-aes-sha2",11047
+ "m.megolm.v1.aes-sha2"11048
+ ],11049
+ "device_id": "ALICEDEVICE1308",11050
+ "keys": {11051
+ "curve25519:ALICEDEVICE1308": "j4TaLXgJrud1nmit6eW5bZvpnfKlr59q/CaaQyHLCmo",11052
+ "ed25519:ALICEDEVICE1308": "aAAIoxNX5DR0Bsd5fvckI826hUZ6jzTl8QCbgFlta8w"11053
+ },11054
+ "signatures": {11055
+ "@alice_1308:hs1": {11056
+ "ed25519:ALICEDEVICE1308": "PP2sEco6sDNeejPExjyE6QN3YK+mNmOuq7+gOEaDnnPQugYAqksmOHJbc9OFhTordz+UlvEge+LYeaOWuBx1DQ"11057
+ }11058
+ },11059
+ "user_id": "@alice_1308:hs1",11060
+ "unsigned": {}11061
+ }11062
+ },11063
+ "@alice_1309:hs1": {11064
+ "ALICEDEVICE1309": {11065
+ "algorithms": [11066
+ "m.olm.v1.curve25519-aes-sha2",11067
+ "m.megolm.v1.aes-sha2"11068
+ ],11069
+ "device_id": "ALICEDEVICE1309",11070
+ "keys": {11071
+ "curve25519:ALICEDEVICE1309": "4oEA9h2WbiMUglzAtEMVgTWAWwD1m4y1BXV/hww6UyY",11072
+ "ed25519:ALICEDEVICE1309": "ZENMhQNosEIHSQ1FQiczGRnGPaExbJO9d9/rFOpA4bE"11073
+ },11074
+ "signatures": {11075
+ "@alice_1309:hs1": {11076
+ "ed25519:ALICEDEVICE1309": "TZZ8fzILxxOpDLNDiqo0fyMJfon45wSa65mFwAbHlGo6SoGsWFCwkj0S1jPxVC/3LdxZALltHFv1cHyzwi5MDA"11077
+ }11078
+ },11079
+ "user_id": "@alice_1309:hs1",11080
+ "unsigned": {}11081
+ }11082
+ },11083
+ "@alice_132:hs1": {11084
+ "ALICEDEVICE132": {11085
+ "algorithms": [11086
+ "m.olm.v1.curve25519-aes-sha2",11087
+ "m.megolm.v1.aes-sha2"11088
+ ],11089
+ "device_id": "ALICEDEVICE132",11090
+ "keys": {11091
+ "curve25519:ALICEDEVICE132": "EGxciUzvr1+1cyW+bMGf4Lc84HXE2gYoSpPz8OVhWAI",11092
+ "ed25519:ALICEDEVICE132": "JE/4zm7cCOEPVpb0kcLqLO3oGagAP0+wLIvCtOyX494"11093
+ },11094
+ "signatures": {11095
+ "@alice_132:hs1": {11096
+ "ed25519:ALICEDEVICE132": "eMOSzF/l9Fo3qmX1DYswwyLxkC5+Fknil1AzAR+LdfIvMGUr4RxOYdN2ZogEYYwnFa5XK0D8mpPucGC4De4KBg"11097
+ }11098
+ },11099
+ "user_id": "@alice_132:hs1",11100
+ "unsigned": {}11101
+ }11102
+ },11103
+ "@alice_1336:hs1": {11104
+ "ALICEDEVICE1336": {11105
+ "algorithms": [11106
+ "m.olm.v1.curve25519-aes-sha2",11107
+ "m.megolm.v1.aes-sha2"11108
+ ],11109
+ "device_id": "ALICEDEVICE1336",11110
+ "keys": {11111
+ "curve25519:ALICEDEVICE1336": "fDPbb9fGActu7gQG+Fk+vbON8MLEEVDz97b2H5VIyAo",11112
+ "ed25519:ALICEDEVICE1336": "V+CYnH70clOgsjLpHZUeI2nB8nee5ch0Bbs1njwlrI8"11113
+ },11114
+ "signatures": {11115
+ "@alice_1336:hs1": {11116
+ "ed25519:ALICEDEVICE1336": "A71UimJt6XJkkLZUcfVeKCl82W3yvQVJEmXVJgY8TbvVPJ3vq2YqBiwTL7OVOHwCHl9KlWPETXIDw9FapQroAA"11117
+ }11118
+ },11119
+ "user_id": "@alice_1336:hs1",11120
+ "unsigned": {}11121
+ }11122
+ },11123
+ "@alice_134:hs1": {11124
+ "ALICEDEVICE134": {11125
+ "algorithms": [11126
+ "m.olm.v1.curve25519-aes-sha2",11127
+ "m.megolm.v1.aes-sha2"11128
+ ],11129
+ "device_id": "ALICEDEVICE134",11130
+ "keys": {11131
+ "curve25519:ALICEDEVICE134": "jm/SIuUw0/F+KWpEa+cGYL9ZNDgdH+SfC6tpngMeSG8",11132
+ "ed25519:ALICEDEVICE134": "tgV3/+Iz28Fi+lEkZG80CIUhIj55G5y4t7geO2Iq5Dc"11133
+ },11134
+ "signatures": {11135
+ "@alice_134:hs1": {11136
+ "ed25519:ALICEDEVICE134": "MPmNhT40StQF5rFMwjxH60vRxZ2qESL1CsK4ttDjjHkfyD8UOo+yd5vZyThZpIiFrBhzMbcbOsBsaD0Cg2PIAg"11137
+ }11138
+ },11139
+ "user_id": "@alice_134:hs1",11140
+ "unsigned": {}11141
+ }11142
+ },11143
+ "@alice_1356:hs1": {11144
+ "ALICEDEVICE1356": {11145
+ "algorithms": [11146
+ "m.olm.v1.curve25519-aes-sha2",11147
+ "m.megolm.v1.aes-sha2"11148
+ ],11149
+ "device_id": "ALICEDEVICE1356",11150
+ "keys": {11151
+ "curve25519:ALICEDEVICE1356": "iohRcmGkoNXzzPHPBVbWbmRL45zM47u114wEmwsd1HE",11152
+ "ed25519:ALICEDEVICE1356": "C0O5qpUUp++Kht7HmbYEBQ2OVkc/LSSgrcjPOiFp3eg"11153
+ },11154
+ "signatures": {11155
+ "@alice_1356:hs1": {11156
+ "ed25519:ALICEDEVICE1356": "llkEhOLBWKJHDVCGH7E3e6dt3+BefOWRBnRquoc4EO/kmjU2j0wISCfiCDhOldsf9Xhwo07LrbOzvEEVXS9+Cw"11157
+ }11158
+ },11159
+ "user_id": "@alice_1356:hs1",11160
+ "unsigned": {}11161
+ }11162
+ },11163
+ "@alice_1364:hs1": {11164
+ "ALICEDEVICE1364": {11165
+ "algorithms": [11166
+ "m.olm.v1.curve25519-aes-sha2",11167
+ "m.megolm.v1.aes-sha2"11168
+ ],11169
+ "device_id": "ALICEDEVICE1364",11170
+ "keys": {11171
+ "curve25519:ALICEDEVICE1364": "r/vOtx0UxmAP/1rO40ecMAQGy2BX+B65ApMR/KKLEmk",11172
+ "ed25519:ALICEDEVICE1364": "kh7SSp1vznvo/KhvF/gaOqSynTsn1LqQtMoZL4JCBcY"11173
+ },11174
+ "signatures": {11175
+ "@alice_1364:hs1": {11176
+ "ed25519:ALICEDEVICE1364": "FaaKuRgkGMu2TWuIBEblDAwIHWG6h83UkZN9hVfJoSuj90nAfluDrv/bSE1N/a1NOwoHyA3RZCfZlWGPlEASAg"11177
+ }11178
+ },11179
+ "user_id": "@alice_1364:hs1",11180
+ "unsigned": {}11181
+ }11182
+ },11183
+ "@alice_1367:hs1": {11184
+ "ALICEDEVICE1367": {11185
+ "algorithms": [11186
+ "m.olm.v1.curve25519-aes-sha2",11187
+ "m.megolm.v1.aes-sha2"11188
+ ],11189
+ "device_id": "ALICEDEVICE1367",11190
+ "keys": {11191
+ "curve25519:ALICEDEVICE1367": "HraRxp/cueffuZqRyH4M85M4E8DWC/gQLoazWZLh4hc",11192
+ "ed25519:ALICEDEVICE1367": "TsWj0oXZN+r8/hJ+hyshu7zPgC8f6lMAWU+U0xy6/VU"11193
+ },11194
+ "signatures": {11195
+ "@alice_1367:hs1": {11196
+ "ed25519:ALICEDEVICE1367": "RVpgiWEfvJ7RhXmqvH/b2vs5PL9v/pFImUhtxAcTvfgPoecSK+icFoRjYzibWZvbxUTJ+cuvrq3vXe6wZzyMBg"11197
+ }11198
+ },11199
+ "user_id": "@alice_1367:hs1",11200
+ "unsigned": {}11201
+ }11202
+ },11203
+ "@alice_1371:hs1": {11204
+ "ALICEDEVICE1371": {11205
+ "algorithms": [11206
+ "m.olm.v1.curve25519-aes-sha2",11207
+ "m.megolm.v1.aes-sha2"11208
+ ],11209
+ "device_id": "ALICEDEVICE1371",11210
+ "keys": {11211
+ "curve25519:ALICEDEVICE1371": "SuiP0gVeUaxV/n6bZ//zCDgUJT5WbNUJ5nOtOHWMc1s",11212
+ "ed25519:ALICEDEVICE1371": "cp93Lm/40789E3ADwyWUkKi5nQFwxES8UWCizfjKDYQ"11213
+ },11214
+ "signatures": {11215
+ "@alice_1371:hs1": {11216
+ "ed25519:ALICEDEVICE1371": "J/Clzh07KgZxzc+sQEWbafdlsyToSGe2thmQfeeSJVpTLqQ2rUXNPz5tWvweUMugMZpqEw90O7zFJDcspc6lBw"11217
+ }11218
+ },11219
+ "user_id": "@alice_1371:hs1",11220
+ "unsigned": {}11221
+ }11222
+ },11223
+ "@alice_1374:hs1": {11224
+ "ALICEDEVICE1374": {11225
+ "algorithms": [11226
+ "m.olm.v1.curve25519-aes-sha2",11227
+ "m.megolm.v1.aes-sha2"11228
+ ],11229
+ "device_id": "ALICEDEVICE1374",11230
+ "keys": {11231
+ "curve25519:ALICEDEVICE1374": "OZRrB6N8IWkwsQFPxHWNd1PWMkSihDSU8P6qITunUks",11232
+ "ed25519:ALICEDEVICE1374": "hFf4IG1zAF3UQCWBoWsZNU0E6UN88HEloRYQ00iW1CI"11233
+ },11234
+ "signatures": {11235
+ "@alice_1374:hs1": {11236
+ "ed25519:ALICEDEVICE1374": "PECRPRovnNOnMp9L6NuaLowxP+zat+jxK4z7kxucG2ST0Hpx6t+wZcrxrx7oTD/R+xuEIOrREZvnl/STWSs1CA"11237
+ }11238
+ },11239
+ "user_id": "@alice_1374:hs1",11240
+ "unsigned": {}11241
+ }11242
+ },11243
+ "@alice_1377:hs1": {11244
+ "ALICEDEVICE1377": {11245
+ "algorithms": [11246
+ "m.olm.v1.curve25519-aes-sha2",11247
+ "m.megolm.v1.aes-sha2"11248
+ ],11249
+ "device_id": "ALICEDEVICE1377",11250
+ "keys": {11251
+ "curve25519:ALICEDEVICE1377": "rL8ka0VCogq0PUKoGoGWbK0gVzUVuawHto42nQjxsik",11252
+ "ed25519:ALICEDEVICE1377": "AMuFuD/JpqVhKRGp9oeTDWtfGRggobt+9oDHY0YtP9A"11253
+ },11254
+ "signatures": {11255
+ "@alice_1377:hs1": {11256
+ "ed25519:ALICEDEVICE1377": "fOP6fN2HjrygAroIlGb9pLH+fZIWQN9YEk+ditPF4Mf3TgFKzwcCNaNECvr+i7A9T4N4L100BeJHfhdDMGX9Ag"11257
+ }11258
+ },11259
+ "user_id": "@alice_1377:hs1",11260
+ "unsigned": {}11261
+ }11262
+ },11263
+ "@alice_1379:hs1": {11264
+ "ALICEDEVICE1379": {11265
+ "algorithms": [11266
+ "m.olm.v1.curve25519-aes-sha2",11267
+ "m.megolm.v1.aes-sha2"11268
+ ],11269
+ "device_id": "ALICEDEVICE1379",11270
+ "keys": {11271
+ "curve25519:ALICEDEVICE1379": "MwHjlzVreuOMnTGPIL3uTO9AvkBpl8ALv6YT9CnQ9CA",11272
+ "ed25519:ALICEDEVICE1379": "fmHvrI/v5trsYFVDlU6srXnqqtb2lAAUkfEJfrK6ApA"11273
+ },11274
+ "signatures": {11275
+ "@alice_1379:hs1": {11276
+ "ed25519:ALICEDEVICE1379": "tWHsySC/6cDCrvw7Q6GvpumRcLUoCM3Sh2bOwomvyGIObX5BQRxdqBZluxoqWtvC6cJGwMK4nhq1aYBUIAGUAw"11277
+ }11278
+ },11279
+ "user_id": "@alice_1379:hs1",11280
+ "unsigned": {}11281
+ }11282
+ },11283
+ "@alice_1380:hs1": {11284
+ "ALICEDEVICE1380": {11285
+ "algorithms": [11286
+ "m.olm.v1.curve25519-aes-sha2",11287
+ "m.megolm.v1.aes-sha2"11288
+ ],11289
+ "device_id": "ALICEDEVICE1380",11290
+ "keys": {11291
+ "curve25519:ALICEDEVICE1380": "z/F8aHKFSQG0k+kC8xto5Kf9WwzsQ0T31BcgFw5ueTs",11292
+ "ed25519:ALICEDEVICE1380": "8J/wHPaeWj/jouF+rlwfHqtuwKqL8p8k6TNKIC6YGx4"11293
+ },11294
+ "signatures": {11295
+ "@alice_1380:hs1": {11296
+ "ed25519:ALICEDEVICE1380": "MCj87UKZ/Bd0jRWX1Z4W4b5glo79hQFAuEDJwaTRiLyblJZ9nM8UV+LgxTo9sawnCXijmKQO8vjuY0H26JZLCg"11297
+ }11298
+ },11299
+ "user_id": "@alice_1380:hs1",11300
+ "unsigned": {}11301
+ }11302
+ },11303
+ "@alice_1384:hs1": {11304
+ "ALICEDEVICE1384": {11305
+ "algorithms": [11306
+ "m.olm.v1.curve25519-aes-sha2",11307
+ "m.megolm.v1.aes-sha2"11308
+ ],11309
+ "device_id": "ALICEDEVICE1384",11310
+ "keys": {11311
+ "curve25519:ALICEDEVICE1384": "TzZhos4n0f+PJBFtPM4IAW3ODVXUncihq6jfolOCyj8",11312
+ "ed25519:ALICEDEVICE1384": "DSrZ0mcrJULca+5CskogarNcumFrgbkxbToUFGd/ttE"11313
+ },11314
+ "signatures": {11315
+ "@alice_1384:hs1": {11316
+ "ed25519:ALICEDEVICE1384": "2vaLATyBX16GJqQGHc4eWKQjLJCmjyz3lryFMyh+Tn6+T1zf3Gcb5b/fZPq0zRRDIPQyQ8hxp7d/q9s5t8VhCA"11317
+ }11318
+ },11319
+ "user_id": "@alice_1384:hs1",11320
+ "unsigned": {}11321
+ }11322
+ },11323
+ "@alice_1388:hs1": {11324
+ "ALICEDEVICE1388": {11325
+ "algorithms": [11326
+ "m.olm.v1.curve25519-aes-sha2",11327
+ "m.megolm.v1.aes-sha2"11328
+ ],11329
+ "device_id": "ALICEDEVICE1388",11330
+ "keys": {11331
+ "curve25519:ALICEDEVICE1388": "qtII3ekhsSuxowHbqPo83CKMDfsg/RKEAfmYAXAgfgo",11332
+ "ed25519:ALICEDEVICE1388": "oF10ESCon34l0tBnQCofuk+vdRu2WsXZ5JXvi+q918g"11333
+ },11334
+ "signatures": {11335
+ "@alice_1388:hs1": {11336
+ "ed25519:ALICEDEVICE1388": "MaQLqab19sskdyrbI0GmEGVcAmP00BcHdaJJh1MGepCB1uL4dsgggMHBSPj6P1tJ7gEVtiHGc+COcF/B0s84Bw"11337
+ }11338
+ },11339
+ "user_id": "@alice_1388:hs1",11340
+ "unsigned": {}11341
+ }11342
+ },11343
+ "@alice_1419:hs1": {11344
+ "ALICEDEVICE1419": {11345
+ "algorithms": [11346
+ "m.olm.v1.curve25519-aes-sha2",11347
+ "m.megolm.v1.aes-sha2"11348
+ ],11349
+ "device_id": "ALICEDEVICE1419",11350
+ "keys": {11351
+ "curve25519:ALICEDEVICE1419": "b1cGk/9sS++Oz4w63IRBXAIoXtgAatTk11z5n7ntdGc",11352
+ "ed25519:ALICEDEVICE1419": "3G1Y5YE0cxAgatvHidmezxezpbtfgoE45aiZyoltNAg"11353
+ },11354
+ "signatures": {11355
+ "@alice_1419:hs1": {11356
+ "ed25519:ALICEDEVICE1419": "R2kGdueH/Df60OLc9e8BQS6/MgayrYWzwq4XNsVYYar1L4q9oVgqLU8Vq0n6+3A7irJVdlxsTEaOgapgwiAWBw"11357
+ }11358
+ },11359
+ "user_id": "@alice_1419:hs1",11360
+ "unsigned": {}11361
+ }11362
+ },11363
+ "@alice_1421:hs1": {11364
+ "ALICEDEVICE1421": {11365
+ "algorithms": [11366
+ "m.olm.v1.curve25519-aes-sha2",11367
+ "m.megolm.v1.aes-sha2"11368
+ ],11369
+ "device_id": "ALICEDEVICE1421",11370
+ "keys": {11371
+ "curve25519:ALICEDEVICE1421": "9X2vH9SITIlspaW4KKs6T9504AYiUCF0eW2wzyEy5Ro",11372
+ "ed25519:ALICEDEVICE1421": "8QksqWrMeeLe0Bd5EhB88vrKFXvalOxS2nKeihWQeB0"11373
+ },11374
+ "signatures": {11375
+ "@alice_1421:hs1": {11376
+ "ed25519:ALICEDEVICE1421": "nNbGt/lplS53M9N+esxgpTWVjMwiK5CbnOlXNpDOlUYMdvjVIMEjwd0z0Fr8wrID6RmD5Wp0gytTXXVqkc8WDA"11377
+ }11378
+ },11379
+ "user_id": "@alice_1421:hs1",11380
+ "unsigned": {}11381
+ }11382
+ },11383
+ "@alice_1431:hs1": {11384
+ "ALICEDEVICE1431": {11385
+ "algorithms": [11386
+ "m.olm.v1.curve25519-aes-sha2",11387
+ "m.megolm.v1.aes-sha2"11388
+ ],11389
+ "device_id": "ALICEDEVICE1431",11390
+ "keys": {11391
+ "curve25519:ALICEDEVICE1431": "xqlefqkFP0Hd5CaVpPqDKlAMn4pjc3QIBJ2iB5pyu00",11392
+ "ed25519:ALICEDEVICE1431": "IDySU5A9hoRMRoprZ3+C+F8HWfWi0oxNnsaqBM31y68"11393
+ },11394
+ "signatures": {11395
+ "@alice_1431:hs1": {11396
+ "ed25519:ALICEDEVICE1431": "DIAu0Hs4KGRz5fB5BJ1b4EYxnmXZpL0mFT8z3WpXwbbicz11L9KrMjWdFdPhmHv5yetsz1NHzYjWCYc9M8UtDA"11397
+ }11398
+ },11399
+ "user_id": "@alice_1431:hs1",11400
+ "unsigned": {}11401
+ }11402
+ },11403
+ "@alice_1432:hs1": {11404
+ "ALICEDEVICE1432": {11405
+ "algorithms": [11406
+ "m.olm.v1.curve25519-aes-sha2",11407
+ "m.megolm.v1.aes-sha2"11408
+ ],11409
+ "device_id": "ALICEDEVICE1432",11410
+ "keys": {11411
+ "curve25519:ALICEDEVICE1432": "k/LYfYHuzbse1UeS3QZWQOo+V4VtX1ftli1S1c5m4RY",11412
+ "ed25519:ALICEDEVICE1432": "RfPLPytlZT+CZ7AvD0PeAw5w1ryH61mx6QnHQfyDMg0"11413
+ },11414
+ "signatures": {11415
+ "@alice_1432:hs1": {11416
+ "ed25519:ALICEDEVICE1432": "APLm3wBqxCuoHhLp8ThGFZzsEwjvTM1jSp2i4/CkFiIRHMJlxPnfEBAvoFwleZgN/5bAwm3Zv+XTzosffZ0TBw"11417
+ }11418
+ },11419
+ "user_id": "@alice_1432:hs1",11420
+ "unsigned": {}11421
+ }11422
+ },11423
+ "@alice_1436:hs1": {11424
+ "ALICEDEVICE1436": {11425
+ "algorithms": [11426
+ "m.olm.v1.curve25519-aes-sha2",11427
+ "m.megolm.v1.aes-sha2"11428
+ ],11429
+ "device_id": "ALICEDEVICE1436",11430
+ "keys": {11431
+ "curve25519:ALICEDEVICE1436": "IPQHMhF1JsC4b87Rk7FKDiQsYIgnIKa64i/KBUOTiwI",11432
+ "ed25519:ALICEDEVICE1436": "v97OhDPxIOZ/OKNa2kz5o447iVEQui6pQk1BoD8GUVk"11433
+ },11434
+ "signatures": {11435
+ "@alice_1436:hs1": {11436
+ "ed25519:ALICEDEVICE1436": "jDmvWOryWu8JJhjlVQGkH77wm9/Ps0tNB9BWLgOK32j7KzItWAad/VEITnZTfGHucmJlSUM4XLaX+77iY4y2BA"11437
+ }11438
+ },11439
+ "user_id": "@alice_1436:hs1",11440
+ "unsigned": {}11441
+ }11442
+ },11443
+ "@alice_143:hs1": {11444
+ "ALICEDEVICE143": {11445
+ "algorithms": [11446
+ "m.olm.v1.curve25519-aes-sha2",11447
+ "m.megolm.v1.aes-sha2"11448
+ ],11449
+ "device_id": "ALICEDEVICE143",11450
+ "keys": {11451
+ "curve25519:ALICEDEVICE143": "/CdJfd9itVumnjI/Iinl2a2rbmG8wM+4n3hdT+ye0kU",11452
+ "ed25519:ALICEDEVICE143": "R3bRp/DEZaReocZCn8vOuRcbXjdUURQNbpSCl759Egc"11453
+ },11454
+ "signatures": {11455
+ "@alice_143:hs1": {11456
+ "ed25519:ALICEDEVICE143": "P8+X9ieuYx5n3Sx2Mt6az/fy7KzTaIwCSOD07i4Lrs3GfoNwAuffgW0FO6tv1OpYufsi1uKQtakvW1+IbpiZBg"11457
+ }11458
+ },11459
+ "user_id": "@alice_143:hs1",11460
+ "unsigned": {}11461
+ }11462
+ },11463
+ "@alice_1447:hs1": {11464
+ "ALICEDEVICE1447": {11465
+ "algorithms": [11466
+ "m.olm.v1.curve25519-aes-sha2",11467
+ "m.megolm.v1.aes-sha2"11468
+ ],11469
+ "device_id": "ALICEDEVICE1447",11470
+ "keys": {11471
+ "curve25519:ALICEDEVICE1447": "QSb5TFj/bieuo72jyXsik/27KfGOdn6FsUM2hiYmIQU",11472
+ "ed25519:ALICEDEVICE1447": "oHz0Z5eylGJIm4TyuignVhTp6YiAeSZUfJitxMqiaKQ"11473
+ },11474
+ "signatures": {11475
+ "@alice_1447:hs1": {11476
+ "ed25519:ALICEDEVICE1447": "rujBEcBpNOUh7cPXKB6dNtxxk/g/JXDTX7r9V2i33R2dHABBHvqvhBnC3BKkkuJfFGgIFdPlF9uzvdwmPsKgBQ"11477
+ }11478
+ },11479
+ "user_id": "@alice_1447:hs1",11480
+ "unsigned": {}11481
+ }11482
+ },11483
+ "@alice_1461:hs1": {11484
+ "ALICEDEVICE1461": {11485
+ "algorithms": [11486
+ "m.olm.v1.curve25519-aes-sha2",11487
+ "m.megolm.v1.aes-sha2"11488
+ ],11489
+ "device_id": "ALICEDEVICE1461",11490
+ "keys": {11491
+ "curve25519:ALICEDEVICE1461": "oX1NG6khC3o64V0BXTRSIpNJr4BYfytkCkxsR+Dyl3Q",11492
+ "ed25519:ALICEDEVICE1461": "C6Vnx3D0LUoEQVFPcczG9in3OZZSQHDK4x2gXgmJXX0"11493
+ },11494
+ "signatures": {11495
+ "@alice_1461:hs1": {11496
+ "ed25519:ALICEDEVICE1461": "ssYbyftXyjB5FMHHfOlzd7+IuX1lHrAkGgJBBzXgdIXwiIXySqmL3fJUca2PDDnWmns7UJJTG4kT0xcwV2KnCQ"11497
+ }11498
+ },11499
+ "user_id": "@alice_1461:hs1",11500
+ "unsigned": {}11501
+ }11502
+ },11503
+ "@alice_1472:hs1": {11504
+ "ALICEDEVICE1472": {11505
+ "algorithms": [11506
+ "m.olm.v1.curve25519-aes-sha2",11507
+ "m.megolm.v1.aes-sha2"11508
+ ],11509
+ "device_id": "ALICEDEVICE1472",11510
+ "keys": {11511
+ "curve25519:ALICEDEVICE1472": "3YEltzMehw/zdgDDjHR+KddO6Ywi+b5ekIXqoMXrd2I",11512
+ "ed25519:ALICEDEVICE1472": "aR4a9+VLSM3X8EXh7pX6M4M1M617yA45rP3lWUAYwgk"11513
+ },11514
+ "signatures": {11515
+ "@alice_1472:hs1": {11516
+ "ed25519:ALICEDEVICE1472": "9ORb5Qp4MqYWcRaT6IUMuXLC0SMceAw4z0aSPMBY0DHTbkNa0pW2Wu6XG+cti1ghL56X4as32WJ6lQYvfT8MBQ"11517
+ }11518
+ },11519
+ "user_id": "@alice_1472:hs1",11520
+ "unsigned": {}11521
+ }11522
+ },11523
+ "@alice_1479:hs1": {11524
+ "ALICEDEVICE1479": {11525
+ "algorithms": [11526
+ "m.olm.v1.curve25519-aes-sha2",11527
+ "m.megolm.v1.aes-sha2"11528
+ ],11529
+ "device_id": "ALICEDEVICE1479",11530
+ "keys": {11531
+ "curve25519:ALICEDEVICE1479": "ZYfQbYglCk8CLMpcDFTkAZycYGh3gjcIyNZCoV4SUVQ",11532
+ "ed25519:ALICEDEVICE1479": "8QZLc+kliDh6ps5+0Y8JTjL61Q9S0Rdaa2WkbFIacyk"11533
+ },11534
+ "signatures": {11535
+ "@alice_1479:hs1": {11536
+ "ed25519:ALICEDEVICE1479": "i1mOJd/XgrEpSv31GPO92gFVD5w190KsIc6Lb2UOsIkLiUFQqvErqfDqAy7fgn634pDechTZAFgnL0icOGEnAA"11537
+ }11538
+ },11539
+ "user_id": "@alice_1479:hs1",11540
+ "unsigned": {}11541
+ }11542
+ },11543
+ "@alice_147:hs1": {11544
+ "ALICEDEVICE147": {11545
+ "algorithms": [11546
+ "m.olm.v1.curve25519-aes-sha2",11547
+ "m.megolm.v1.aes-sha2"11548
+ ],11549
+ "device_id": "ALICEDEVICE147",11550
+ "keys": {11551
+ "curve25519:ALICEDEVICE147": "JUXWmT82ItW+BQfNXIV9oPtEn3KsxXKQ9g32i74jE1s",11552
+ "ed25519:ALICEDEVICE147": "E72G4hV/PUx34UqIe98o9gaBdzJzTodxC/PcsdgLd7o"11553
+ },11554
+ "signatures": {11555
+ "@alice_147:hs1": {11556
+ "ed25519:ALICEDEVICE147": "Z/yWtHtj/aowLAAcd/xdniCMmIrQ6ijIjDP/BdpTsdjiDUC5CzmSdTJy7Mz8W5amB8GZMHiR+OJeWoqKCTrfAw"11557
+ }11558
+ },11559
+ "user_id": "@alice_147:hs1",11560
+ "unsigned": {}11561
+ }11562
+ },11563
+ "@alice_1488:hs1": {11564
+ "ALICEDEVICE1488": {11565
+ "algorithms": [11566
+ "m.olm.v1.curve25519-aes-sha2",11567
+ "m.megolm.v1.aes-sha2"11568
+ ],11569
+ "device_id": "ALICEDEVICE1488",11570
+ "keys": {11571
+ "curve25519:ALICEDEVICE1488": "outSWEdNmzHPMPeGqb2y9vQ8W6nuGc1kB86qAXWeT3g",11572
+ "ed25519:ALICEDEVICE1488": "Zw4sMLh1vfk6VPwSgl5hDw1jf6rbOcgXrSAR9wwOSxI"11573
+ },11574
+ "signatures": {11575
+ "@alice_1488:hs1": {11576
+ "ed25519:ALICEDEVICE1488": "STzKdCWavmOXf87hp7FWdepdXjvvSKYyiG/ZGsCep8kf25EpLKkv0E6NktDP1YRZVkmfrz3e+D+zo35WWrP/Dw"11577
+ }11578
+ },11579
+ "user_id": "@alice_1488:hs1",11580
+ "unsigned": {}11581
+ }11582
+ },11583
+ "@alice_1491:hs1": {11584
+ "ALICEDEVICE1491": {11585
+ "algorithms": [11586
+ "m.olm.v1.curve25519-aes-sha2",11587
+ "m.megolm.v1.aes-sha2"11588
+ ],11589
+ "device_id": "ALICEDEVICE1491",11590
+ "keys": {11591
+ "curve25519:ALICEDEVICE1491": "7OClOO3JdTAtnG8w5ovhYUKSmCgCFTZilApVO2NlDWU",11592
+ "ed25519:ALICEDEVICE1491": "EhNKpEroE8G5RtJ4+9ukThS2vQ2JdGtQtCi+rJeqOqQ"11593
+ },11594
+ "signatures": {11595
+ "@alice_1491:hs1": {11596
+ "ed25519:ALICEDEVICE1491": "M/Ls/A19Sd23cJ3EWk+LmXsqUCs6dIdpIkk2H3Ghwmm+Z+BYh6O5MxBEg4fP4hJ49KMxq1A4IBlYWFNeGFT7BQ"11597
+ }11598
+ },11599
+ "user_id": "@alice_1491:hs1",11600
+ "unsigned": {}11601
+ }11602
+ },11603
+ "@alice_1493:hs1": {11604
+ "ALICEDEVICE1493": {11605
+ "algorithms": [11606
+ "m.olm.v1.curve25519-aes-sha2",11607
+ "m.megolm.v1.aes-sha2"11608
+ ],11609
+ "device_id": "ALICEDEVICE1493",11610
+ "keys": {11611
+ "curve25519:ALICEDEVICE1493": "g/m18GNXVx//IWH3olxZcJ2fikNZS7Rdf7tQ5ar65k0",11612
+ "ed25519:ALICEDEVICE1493": "nVXPTD9TjTE7WqAycVy6rY/qDJSn3IGdpDXbyKV6wOQ"11613
+ },11614
+ "signatures": {11615
+ "@alice_1493:hs1": {11616
+ "ed25519:ALICEDEVICE1493": "1tO1Co4B0Lki2H11MkjP5oO6dXv2wP2K93TGsAsZz6HKu0Ea9DmGpI+0k3H9TVYh5IBmN74d13RMA7iJlEPtDw"11617
+ }11618
+ },11619
+ "user_id": "@alice_1493:hs1",11620
+ "unsigned": {}11621
+ }11622
+ },11623
+ "@alice_1524:hs1": {11624
+ "ALICEDEVICE1524": {11625
+ "algorithms": [11626
+ "m.olm.v1.curve25519-aes-sha2",11627
+ "m.megolm.v1.aes-sha2"11628
+ ],11629
+ "device_id": "ALICEDEVICE1524",11630
+ "keys": {11631
+ "curve25519:ALICEDEVICE1524": "L4lmekGc7dT/2DFqhyRebwauyWvI3gs+QfL7wV64Eyk",11632
+ "ed25519:ALICEDEVICE1524": "AKdV4TKRSPQ8qVDYOtek/C12e1sXMRp/5R9NfYPO+IQ"11633
+ },11634
+ "signatures": {11635
+ "@alice_1524:hs1": {11636
+ "ed25519:ALICEDEVICE1524": "OXMstz1nFoKUv5BcjTBDEPJX19T8piY282x28Cmm/PXfgOb1PMoKD0PY75qrl/nquZXHarJX+7kOQFE0OuXEDw"11637
+ }11638
+ },11639
+ "user_id": "@alice_1524:hs1",11640
+ "unsigned": {}11641
+ }11642
+ },11643
+ "@alice_1538:hs1": {11644
+ "ALICEDEVICE1538": {11645
+ "algorithms": [11646
+ "m.olm.v1.curve25519-aes-sha2",11647
+ "m.megolm.v1.aes-sha2"11648
+ ],11649
+ "device_id": "ALICEDEVICE1538",11650
+ "keys": {11651
+ "curve25519:ALICEDEVICE1538": "hpmK8EHD8APjbCk1TkDNGXcUi04CSz+UlVs3fc4cInY",11652
+ "ed25519:ALICEDEVICE1538": "LW6+Q14kfFg5hnP4cud2xqnfHL9KobykVF56ngMxVVI"11653
+ },11654
+ "signatures": {11655
+ "@alice_1538:hs1": {11656
+ "ed25519:ALICEDEVICE1538": "lKJa3A+iscEn5d8vcv49gMXb3VnX9gusuV/0xFcTkKt3QxpObarRHx+iFxeGWGfqHwi4OnMJbo+vdY1laQbCDA"11657
+ }11658
+ },11659
+ "user_id": "@alice_1538:hs1",11660
+ "unsigned": {}11661
+ }11662
+ },11663
+ "@alice_1552:hs1": {11664
+ "ALICEDEVICE1552": {11665
+ "algorithms": [11666
+ "m.olm.v1.curve25519-aes-sha2",11667
+ "m.megolm.v1.aes-sha2"11668
+ ],11669
+ "device_id": "ALICEDEVICE1552",11670
+ "keys": {11671
+ "curve25519:ALICEDEVICE1552": "q69zNyz9BC95BlSr7Bt1Jo9irT184W1UGsYgtwopqxU",11672
+ "ed25519:ALICEDEVICE1552": "xK0er3mJ3YrSF6OELEQz2NyI2xQBoh0dY86tnWUX3Qs"11673
+ },11674
+ "signatures": {11675
+ "@alice_1552:hs1": {11676
+ "ed25519:ALICEDEVICE1552": "k0Ey3dkFoOkyw+NrzaxYCI7RNjE2PBZ8ypQXyuXXnBgwzv2XyIyI+OiuHZVVWrYDYkr2InNP8b4hxM+iPFjQBg"11677
+ }11678
+ },11679
+ "user_id": "@alice_1552:hs1",11680
+ "unsigned": {}11681
+ }11682
+ },11683
+ "@alice_1553:hs1": {11684
+ "ALICEDEVICE1553": {11685
+ "algorithms": [11686
+ "m.olm.v1.curve25519-aes-sha2",11687
+ "m.megolm.v1.aes-sha2"11688
+ ],11689
+ "device_id": "ALICEDEVICE1553",11690
+ "keys": {11691
+ "curve25519:ALICEDEVICE1553": "wlMwd+M5H9lVS6ogTUm0F/Az2EsIUWY+3W8QlmGmq1U",11692
+ "ed25519:ALICEDEVICE1553": "lwTO/J7bIElYuLDkcVk2c4Jm1T3x8Qb3tCsSleCiXGA"11693
+ },11694
+ "signatures": {11695
+ "@alice_1553:hs1": {11696
+ "ed25519:ALICEDEVICE1553": "rKYfLnySbxRajetYbK4fwVFNZ5gBd7kpvRZw5LCw+pTg/TWGyBmCVtpgQtVlNqSR/R/iy530syTHodUR8VZfBQ"11697
+ }11698
+ },11699
+ "user_id": "@alice_1553:hs1",11700
+ "unsigned": {}11701
+ }11702
+ },11703
+ "@alice_1556:hs1": {11704
+ "ALICEDEVICE1556": {11705
+ "algorithms": [11706
+ "m.olm.v1.curve25519-aes-sha2",11707
+ "m.megolm.v1.aes-sha2"11708
+ ],11709
+ "device_id": "ALICEDEVICE1556",11710
+ "keys": {11711
+ "curve25519:ALICEDEVICE1556": "3ITt5BqBhhsT3uPg0iJh8DcqTQMRWZg+spoZGNqpqQE",11712
+ "ed25519:ALICEDEVICE1556": "m+YaBW26EzFQKuJanoL+B1oDIZ6aVbsvxQssId/52Fo"11713
+ },11714
+ "signatures": {11715
+ "@alice_1556:hs1": {11716
+ "ed25519:ALICEDEVICE1556": "PcHC0U3bpzLC5EXcRHZQRTy+GAHN/JZtNRLZ/4VI8wleHjg7wgc1TKYII3gl+AfPWcXxU5eBz4HOd+VorpMUDg"11717
+ }11718
+ },11719
+ "user_id": "@alice_1556:hs1",11720
+ "unsigned": {}11721
+ }11722
+ },11723
+ "@alice_1557:hs1": {11724
+ "ALICEDEVICE1557": {11725
+ "algorithms": [11726
+ "m.olm.v1.curve25519-aes-sha2",11727
+ "m.megolm.v1.aes-sha2"11728
+ ],11729
+ "device_id": "ALICEDEVICE1557",11730
+ "keys": {11731
+ "curve25519:ALICEDEVICE1557": "zUPAh9n3C0Rez6SeggsWrv0WA4Tgi1detYMgS+WvVxk",11732
+ "ed25519:ALICEDEVICE1557": "VMiVLc8kJWJ5+Vm2iNcR6oULieC+zxO6WesRMd79imM"11733
+ },11734
+ "signatures": {11735
+ "@alice_1557:hs1": {11736
+ "ed25519:ALICEDEVICE1557": "sE7K24jko1NlUnfiX2AzUCHwfWKkQ3stVUI7aOPoHjNUgprwPjVwodRvFOXu+HLW8RhDRA80KzV9OesTmDNWCg"11737
+ }11738
+ },11739
+ "user_id": "@alice_1557:hs1",11740
+ "unsigned": {}11741
+ }11742
+ },11743
+ "@alice_155:hs1": {11744
+ "ALICEDEVICE155": {11745
+ "algorithms": [11746
+ "m.olm.v1.curve25519-aes-sha2",11747
+ "m.megolm.v1.aes-sha2"11748
+ ],11749
+ "device_id": "ALICEDEVICE155",11750
+ "keys": {11751
+ "curve25519:ALICEDEVICE155": "3k8ALwQ6A6jX8PEyKHgaFXOfBHgvuHUgl6q0+2Zv+2M",11752
+ "ed25519:ALICEDEVICE155": "lX5+HNDyfzKHSkhOQaPrxZys1T1E2DwzPwbhaXfjJkM"11753
+ },11754
+ "signatures": {11755
+ "@alice_155:hs1": {11756
+ "ed25519:ALICEDEVICE155": "UBLgkBZE5Hly0pjz6nq/rVg71l1PhbsCCKyLnJJjHKtpGx507YOAJRWPDGAeMAyM3Qn6uJBFA6+74DYiln4+Bg"11757
+ }11758
+ },11759
+ "user_id": "@alice_155:hs1",11760
+ "unsigned": {}11761
+ }11762
+ },11763
+ "@alice_1568:hs1": {11764
+ "ALICEDEVICE1568": {11765
+ "algorithms": [11766
+ "m.olm.v1.curve25519-aes-sha2",11767
+ "m.megolm.v1.aes-sha2"11768
+ ],11769
+ "device_id": "ALICEDEVICE1568",11770
+ "keys": {11771
+ "curve25519:ALICEDEVICE1568": "2FZp9ANI5xYZABcLIu83UWTugtFZLq0Ebr/zdPD8hAg",11772
+ "ed25519:ALICEDEVICE1568": "U4I1wf9QqOOLYHwzsRrZnS+L/6i2EwLi4uVF910ZXc8"11773
+ },11774
+ "signatures": {11775
+ "@alice_1568:hs1": {11776
+ "ed25519:ALICEDEVICE1568": "wdzq1jlU7qAZte7MyA6inIs66w1YnvLmqRkSzec7FZbzX9wIgbQzdVKuPfhAnBbhd/sY8o4w1cvbZ2g4560gAg"11777
+ }11778
+ },11779
+ "user_id": "@alice_1568:hs1",11780
+ "unsigned": {}11781
+ }11782
+ },11783
+ "@alice_1581:hs1": {11784
+ "ALICEDEVICE1581": {11785
+ "algorithms": [11786
+ "m.olm.v1.curve25519-aes-sha2",11787
+ "m.megolm.v1.aes-sha2"11788
+ ],11789
+ "device_id": "ALICEDEVICE1581",11790
+ "keys": {11791
+ "curve25519:ALICEDEVICE1581": "u0i7IoS1ODrT3+z0YVMsWwgyUWXksx0PKmDkpWF9Kms",11792
+ "ed25519:ALICEDEVICE1581": "Y5mbfawEI0XG3nfBFICFQ2+cvnLlKB6vxytTzDWx/vM"11793
+ },11794
+ "signatures": {11795
+ "@alice_1581:hs1": {11796
+ "ed25519:ALICEDEVICE1581": "+ArmIbe+iGTypqDDtnLxHpeQM5AC/MT5GRjlx9OR/coYE1e76SQftee8FPwf8QrsT2z9WUk1ZqoIaGD+WzKQCw"11797
+ }11798
+ },11799
+ "user_id": "@alice_1581:hs1",11800
+ "unsigned": {}11801
+ }11802
+ },11803
+ "@alice_1589:hs1": {11804
+ "ALICEDEVICE1589": {11805
+ "algorithms": [11806
+ "m.olm.v1.curve25519-aes-sha2",11807
+ "m.megolm.v1.aes-sha2"11808
+ ],11809
+ "device_id": "ALICEDEVICE1589",11810
+ "keys": {11811
+ "curve25519:ALICEDEVICE1589": "ALZ34FKatK79pjpXyFybU7Hf1P3r6Y0I3GXp5P33qx4",11812
+ "ed25519:ALICEDEVICE1589": "Ns8VBFgEdAlXKfCpigB2ywGspSs+3No283W6YkVoORI"11813
+ },11814
+ "signatures": {11815
+ "@alice_1589:hs1": {11816
+ "ed25519:ALICEDEVICE1589": "a/xU/ZS2nGBWsdRNZ8mi/dVlSamrJTRw590eiV4rjBX0HnYSuHocWVw4ur1djofMffxfOZ7TK8GsPN2KSDQyDQ"11817
+ }11818
+ },11819
+ "user_id": "@alice_1589:hs1",11820
+ "unsigned": {}11821
+ }11822
+ },11823
+ "@alice_1593:hs1": {11824
+ "ALICEDEVICE1593": {11825
+ "algorithms": [11826
+ "m.olm.v1.curve25519-aes-sha2",11827
+ "m.megolm.v1.aes-sha2"11828
+ ],11829
+ "device_id": "ALICEDEVICE1593",11830
+ "keys": {11831
+ "curve25519:ALICEDEVICE1593": "ABuSVMCWL8CMkFZ2yT7QZNGO9u1cjcv3gFHrluUI2yY",11832
+ "ed25519:ALICEDEVICE1593": "ftiIVkI60t2H7OxOuC7oLh7x/0ewOJTHVHQsnqV5+Cc"11833
+ },11834
+ "signatures": {11835
+ "@alice_1593:hs1": {11836
+ "ed25519:ALICEDEVICE1593": "V3+cFDyBw7QeZzVB+ZhWmPphvvWhJa5A/0tnE5aA31NbGGLiIWbrzBAKekRAbLsP6GqrGPl1+O3Ny2ukBxaKCw"11837
+ }11838
+ },11839
+ "user_id": "@alice_1593:hs1",11840
+ "unsigned": {}11841
+ }11842
+ },11843
+ "@alice_1600:hs1": {11844
+ "ALICEDEVICE1600": {11845
+ "algorithms": [11846
+ "m.olm.v1.curve25519-aes-sha2",11847
+ "m.megolm.v1.aes-sha2"11848
+ ],11849
+ "device_id": "ALICEDEVICE1600",11850
+ "keys": {11851
+ "curve25519:ALICEDEVICE1600": "LxK0iPVhZCaBbAfoIc15epdwmwdxGTFj7joMCAFxTUY",11852
+ "ed25519:ALICEDEVICE1600": "Dab7sfAiGYB+3uOpqHlDIbQIOJzt3kJOdWWUSIrDGRc"11853
+ },11854
+ "signatures": {11855
+ "@alice_1600:hs1": {11856
+ "ed25519:ALICEDEVICE1600": "AFHdBeJZ6+4H4bxDD9LsQPcIyho1WP1iFP7g2wWqs2OaQF/PB2fKrzKyzhNNkh+eQEPULMAsxDn+i4jzz5QOBw"11857
+ }11858
+ },11859
+ "user_id": "@alice_1600:hs1",11860
+ "unsigned": {}11861
+ }11862
+ },11863
+ "@alice_1613:hs1": {11864
+ "ALICEDEVICE1613": {11865
+ "algorithms": [11866
+ "m.olm.v1.curve25519-aes-sha2",11867
+ "m.megolm.v1.aes-sha2"11868
+ ],11869
+ "device_id": "ALICEDEVICE1613",11870
+ "keys": {11871
+ "curve25519:ALICEDEVICE1613": "XCR4pVjNm8ECS+rwbZXEcU7dOz+dsW7+l4WJtIvK/C0",11872
+ "ed25519:ALICEDEVICE1613": "oXPVei3bNZH70B+YdIY6r4bjjDywVSv/YG2P2vCURak"11873
+ },11874
+ "signatures": {11875
+ "@alice_1613:hs1": {11876
+ "ed25519:ALICEDEVICE1613": "5YFG921L1gLkmVtiVJU3DbVFOFyv2Bm8RtwteknHS67O1mBP2Re1M4GMScIqhRpzG4+Zb9umbNdGfwmUg4U8Aw"11877
+ }11878
+ },11879
+ "user_id": "@alice_1613:hs1",11880
+ "unsigned": {}11881
+ }11882
+ },11883
+ "@alice_1614:hs1": {11884
+ "ALICEDEVICE1614": {11885
+ "algorithms": [11886
+ "m.olm.v1.curve25519-aes-sha2",11887
+ "m.megolm.v1.aes-sha2"11888
+ ],11889
+ "device_id": "ALICEDEVICE1614",11890
+ "keys": {11891
+ "curve25519:ALICEDEVICE1614": "UCrMLoO3NdRCbSegtK0xDrHIeuUzIfkWNYmiuu0R+n8",11892
+ "ed25519:ALICEDEVICE1614": "CgUNrol1KBxlLfaqZF62gczkMycSdfvsKlpwAWBxtIs"11893
+ },11894
+ "signatures": {11895
+ "@alice_1614:hs1": {11896
+ "ed25519:ALICEDEVICE1614": "bzxlCoqhKVfCpb9Y7TDAhhfm15Sg6z1mscufqDEYGyeTL5K43EmOcnu4KWtDEf7EB3Jj1r3mEYDKYS6kekNICQ"11897
+ }11898
+ },11899
+ "user_id": "@alice_1614:hs1",11900
+ "unsigned": {}11901
+ }11902
+ },11903
+ "@alice_1615:hs1": {11904
+ "ALICEDEVICE1615": {11905
+ "algorithms": [11906
+ "m.olm.v1.curve25519-aes-sha2",11907
+ "m.megolm.v1.aes-sha2"11908
+ ],11909
+ "device_id": "ALICEDEVICE1615",11910
+ "keys": {11911
+ "curve25519:ALICEDEVICE1615": "di0ikcg5o5YG42HwPdtU/YrjwOqj5CXiJnDqZdsSgg0",11912
+ "ed25519:ALICEDEVICE1615": "bvxOOnG19guCNzJeAJOf5UHdMqIvjpIN1r+DZAkZXe8"11913
+ },11914
+ "signatures": {11915
+ "@alice_1615:hs1": {11916
+ "ed25519:ALICEDEVICE1615": "nYaCxZgO10rebavPHlm61BOaLK7ooApyiTnuDOVmSPkS9bEM7Eu3dv70PoZpnwDJ80e96AOpp1UsgD7NTNW4Cg"11917
+ }11918
+ },11919
+ "user_id": "@alice_1615:hs1",11920
+ "unsigned": {}11921
+ }11922
+ },11923
+ "@alice_1626:hs1": {11924
+ "ALICEDEVICE1626": {11925
+ "algorithms": [11926
+ "m.olm.v1.curve25519-aes-sha2",11927
+ "m.megolm.v1.aes-sha2"11928
+ ],11929
+ "device_id": "ALICEDEVICE1626",11930
+ "keys": {11931
+ "curve25519:ALICEDEVICE1626": "yfuK1ztJ+ODa5vJi1XQVxhbA7x0zKypsRgWnTmGtFwA",11932
+ "ed25519:ALICEDEVICE1626": "R7xVD+6OM6delZURiRze1qFMJJWvRt8tP6p4M8rkOW8"11933
+ },11934
+ "signatures": {11935
+ "@alice_1626:hs1": {11936
+ "ed25519:ALICEDEVICE1626": "OJE1F4v1jEhVS9uKAl3M3aaGcTfje7oLTSRARCE08+Xrz2cb+14eURUz+B29OBxrs4i/SIGij9CtCCsY4AYuDQ"11937
+ }11938
+ },11939
+ "user_id": "@alice_1626:hs1",11940
+ "unsigned": {}11941
+ }11942
+ },11943
+ "@alice_1628:hs1": {11944
+ "ALICEDEVICE1628": {11945
+ "algorithms": [11946
+ "m.olm.v1.curve25519-aes-sha2",11947
+ "m.megolm.v1.aes-sha2"11948
+ ],11949
+ "device_id": "ALICEDEVICE1628",11950
+ "keys": {11951
+ "curve25519:ALICEDEVICE1628": "JA5VAr2yJeC1wjibJCzckq6mydeK4iFd8O80ZFvgMAw",11952
+ "ed25519:ALICEDEVICE1628": "C/9oizZL4LMb7msgC4gJlP2uqQhM7NsZ4E9bOcv8hhU"11953
+ },11954
+ "signatures": {11955
+ "@alice_1628:hs1": {11956
+ "ed25519:ALICEDEVICE1628": "+KwLsmDRaL+5EUny+PssO/5vohJFGXqcNwtLlWbksbdNH1EyQ8Gil6nhpE2cXQyC0fWxAigVJGlF/Wssp7RXBQ"11957
+ }11958
+ },11959
+ "user_id": "@alice_1628:hs1",11960
+ "unsigned": {}11961
+ }11962
+ },11963
+ "@alice_1633:hs1": {11964
+ "ALICEDEVICE1633": {11965
+ "algorithms": [11966
+ "m.olm.v1.curve25519-aes-sha2",11967
+ "m.megolm.v1.aes-sha2"11968
+ ],11969
+ "device_id": "ALICEDEVICE1633",11970
+ "keys": {11971
+ "curve25519:ALICEDEVICE1633": "yTgiM1jlmzI5TO5d6VE5Y3W8nHIx2/nWpwBMTynxwV0",11972
+ "ed25519:ALICEDEVICE1633": "BqnyiPhp9wpgcGD/sf2tP0hQJBLCEae8QF+fKmyA980"11973
+ },11974
+ "signatures": {11975
+ "@alice_1633:hs1": {11976
+ "ed25519:ALICEDEVICE1633": "LVkbBFNDhQtKndS8fsV3Kpjw8y16xxlpFFlVj+0RHhZF6Ja8m6b2ReeBIR7eWMSBg376TI6xeVJRjs7DWP2cAQ"11977
+ }11978
+ },11979
+ "user_id": "@alice_1633:hs1",11980
+ "unsigned": {}11981
+ }11982
+ },11983
+ "@alice_1634:hs1": {11984
+ "ALICEDEVICE1634": {11985
+ "algorithms": [11986
+ "m.olm.v1.curve25519-aes-sha2",11987
+ "m.megolm.v1.aes-sha2"11988
+ ],11989
+ "device_id": "ALICEDEVICE1634",11990
+ "keys": {11991
+ "curve25519:ALICEDEVICE1634": "ogDckVVa61DarfrW9tmU/OvJ7XUCajIs33Pu5vhlbg4",11992
+ "ed25519:ALICEDEVICE1634": "Um+O2kULrUW9yXxej104kUGTKA2Wo/whCDCc80jKciU"11993
+ },11994
+ "signatures": {11995
+ "@alice_1634:hs1": {11996
+ "ed25519:ALICEDEVICE1634": "Y4iqBltk6OOXiS7B94AGBTJKWJVtaE1xt6n9V4aSxlNxZIg7tsMRT+XHgirZSHv3XR6uXsdvX0LbMO3Vp2EnAA"11997
+ }11998
+ },11999
+ "user_id": "@alice_1634:hs1",12000
+ "unsigned": {}12001
+ }12002
+ },12003
+ "@alice_1646:hs1": {12004
+ "ALICEDEVICE1646": {12005
+ "algorithms": [12006
+ "m.olm.v1.curve25519-aes-sha2",12007
+ "m.megolm.v1.aes-sha2"12008
+ ],12009
+ "device_id": "ALICEDEVICE1646",12010
+ "keys": {12011
+ "curve25519:ALICEDEVICE1646": "bz7WEZZdVGHLopeAyvku5ogyIgzrNYSq9p0tox5fghw",12012
+ "ed25519:ALICEDEVICE1646": "JabnnT9wE7Vn8eW/WJDAqKShMIzZR71S6agqpQRgRn4"12013
+ },12014
+ "signatures": {12015
+ "@alice_1646:hs1": {12016
+ "ed25519:ALICEDEVICE1646": "jwst2xFT6AzIf5Oza+oIeoQRAZrPI4Qcrgw6m582yz6y2gUKAhLtwgU58vlnKn+AWa6l7rhVgTmTgxWa1SvGAA"12017
+ }12018
+ },12019
+ "user_id": "@alice_1646:hs1",12020
+ "unsigned": {}12021
+ }12022
+ },12023
+ "@alice_1657:hs1": {12024
+ "ALICEDEVICE1657": {12025
+ "algorithms": [12026
+ "m.olm.v1.curve25519-aes-sha2",12027
+ "m.megolm.v1.aes-sha2"12028
+ ],12029
+ "device_id": "ALICEDEVICE1657",12030
+ "keys": {12031
+ "curve25519:ALICEDEVICE1657": "2di4zdpKATqhN2A5LWVUQtzCbXLVcl4UKbn1yeinyzE",12032
+ "ed25519:ALICEDEVICE1657": "cgieKsPn7djSqgjyu5OpFnMcWKRhn6ZWl2emJI+6fAw"12033
+ },12034
+ "signatures": {12035
+ "@alice_1657:hs1": {12036
+ "ed25519:ALICEDEVICE1657": "QYyPYvMtM1EZz5JZv/4fpj3rPQLxlh2OkuycjuauXqaWERMoWKtBlxTb+qLQxx2G/EJ4yJJdphWbS/dWOZ8wAg"12037
+ }12038
+ },12039
+ "user_id": "@alice_1657:hs1",12040
+ "unsigned": {}12041
+ }12042
+ },12043
+ "@alice_165:hs1": {12044
+ "ALICEDEVICE165": {12045
+ "algorithms": [12046
+ "m.olm.v1.curve25519-aes-sha2",12047
+ "m.megolm.v1.aes-sha2"12048
+ ],12049
+ "device_id": "ALICEDEVICE165",12050
+ "keys": {12051
+ "curve25519:ALICEDEVICE165": "gHrt8pH3gl64hsTUdkvGi3teyZ87sWbPNzjjMtRv3XU",12052
+ "ed25519:ALICEDEVICE165": "vCXzGu3Rzbwftapv+f2qwrpe5zVkJ7c6EZNrMj0/r4k"12053
+ },12054
+ "signatures": {12055
+ "@alice_165:hs1": {12056
+ "ed25519:ALICEDEVICE165": "W6at6/b29pOh2oIqZo/STiWmO/720ZpqF+hsVExj+n8EFfqazFOnHBQOU4L1k+sbSBki8IhgqLMqE0YLcap2DA"12057
+ }12058
+ },12059
+ "user_id": "@alice_165:hs1",12060
+ "unsigned": {}12061
+ }12062
+ },12063
+ "@alice_1662:hs1": {12064
+ "ALICEDEVICE1662": {12065
+ "algorithms": [12066
+ "m.olm.v1.curve25519-aes-sha2",12067
+ "m.megolm.v1.aes-sha2"12068
+ ],12069
+ "device_id": "ALICEDEVICE1662",12070
+ "keys": {12071
+ "curve25519:ALICEDEVICE1662": "3XfpUwO6WtJ25sKUSgvVlldvri6pnkoIDCCw6idlmEk",12072
+ "ed25519:ALICEDEVICE1662": "ccj14LVboEVKeoEVBQ48ASaVu81+J/5TeM7ugvQ08Q0"12073
+ },12074
+ "signatures": {12075
+ "@alice_1662:hs1": {12076
+ "ed25519:ALICEDEVICE1662": "UdaFgQ8qBi86h3bRjxYhLRSMPb4/p+hz6wDqMKWjK4D6bCO9KvgxjRqsoF+7MsJeRUFein/g5vmmF/qNqRkPCA"12077
+ }12078
+ },12079
+ "user_id": "@alice_1662:hs1",12080
+ "unsigned": {}12081
+ }12082
+ },12083
+ "@alice_1665:hs1": {12084
+ "ALICEDEVICE1665": {12085
+ "algorithms": [12086
+ "m.olm.v1.curve25519-aes-sha2",12087
+ "m.megolm.v1.aes-sha2"12088
+ ],12089
+ "device_id": "ALICEDEVICE1665",12090
+ "keys": {12091
+ "curve25519:ALICEDEVICE1665": "ulqdKbHwtYHhc6BCi4Wo6qiat2qbCZ9cB4nIwJcv3Ug",12092
+ "ed25519:ALICEDEVICE1665": "UfjWwcf6jKErxAa94F7uMQ1OZjYvrroko1lA0to318I"12093
+ },12094
+ "signatures": {12095
+ "@alice_1665:hs1": {12096
+ "ed25519:ALICEDEVICE1665": "YQeW6TyJgVQGsfNfbEpNELZszYSAOCrIPzokOA3rHxP0ucXHqJYPmVEsmMPHKX8WW/Ue4FzYxpzjSsSaS2YsBA"12097
+ }12098
+ },12099
+ "user_id": "@alice_1665:hs1",12100
+ "unsigned": {}12101
+ }12102
+ },12103
+ "@alice_1668:hs1": {12104
+ "ALICEDEVICE1668": {12105
+ "algorithms": [12106
+ "m.olm.v1.curve25519-aes-sha2",12107
+ "m.megolm.v1.aes-sha2"12108
+ ],12109
+ "device_id": "ALICEDEVICE1668",12110
+ "keys": {12111
+ "curve25519:ALICEDEVICE1668": "9duG8R6SOtDBZVAEktOZ8+MoRAlVWBRpZMtIC1T+nGg",12112
+ "ed25519:ALICEDEVICE1668": "bgJy9GvKtdP1nXSXsy0U7JGvuWp18HJlu/27PPSX1Vk"12113
+ },12114
+ "signatures": {12115
+ "@alice_1668:hs1": {12116
+ "ed25519:ALICEDEVICE1668": "z/9nVn1qxQ6nqL+pz79MSMU0OB83rpgv0VIv0lBZiKiAWYJWbCyWUcEEOw2YLSQBpqqPG0ZE9iUbTwSvN0k5Dg"12117
+ }12118
+ },12119
+ "user_id": "@alice_1668:hs1",12120
+ "unsigned": {}12121
+ }12122
+ },12123
+ "@alice_1676:hs1": {12124
+ "ALICEDEVICE1676": {12125
+ "algorithms": [12126
+ "m.olm.v1.curve25519-aes-sha2",12127
+ "m.megolm.v1.aes-sha2"12128
+ ],12129
+ "device_id": "ALICEDEVICE1676",12130
+ "keys": {12131
+ "curve25519:ALICEDEVICE1676": "U2hNF/y4BdWow6fyrdYb0uoRtzuxNoqNXqLCtrUvC10",12132
+ "ed25519:ALICEDEVICE1676": "WHZjyGgpHFsBuJWNlSF4Epkc88TfsPdHyMj3kYIoNgg"12133
+ },12134
+ "signatures": {12135
+ "@alice_1676:hs1": {12136
+ "ed25519:ALICEDEVICE1676": "Y4MQ2U1Bf7XKD/8S9ZobMf/g5Wh7IwjIfL7jjgBYGJt+T0yOdq3Qh6PC+PhQHuFBhEOS2vBnWjD48m6PAJeBBA"12137
+ }12138
+ },12139
+ "user_id": "@alice_1676:hs1",12140
+ "unsigned": {}12141
+ }12142
+ },12143
+ "@alice_167:hs1": {12144
+ "ALICEDEVICE167": {12145
+ "algorithms": [12146
+ "m.olm.v1.curve25519-aes-sha2",12147
+ "m.megolm.v1.aes-sha2"12148
+ ],12149
+ "device_id": "ALICEDEVICE167",12150
+ "keys": {12151
+ "curve25519:ALICEDEVICE167": "IKF4QhuLvtat37/iUrVM4TcVbaAL0IlIf9SM7Tcbgm0",12152
+ "ed25519:ALICEDEVICE167": "wOSHUd/DWMzStoFEUIyK84jgbVzjxV8zykRuWFqSGto"12153
+ },12154
+ "signatures": {12155
+ "@alice_167:hs1": {12156
+ "ed25519:ALICEDEVICE167": "i2kceUllaGzbDizQFMu9ukD3WyfPTLQvTifga5TrtQtydJwL8cC5U2Sbp9L7mKa7cK580XGpAbLi2MI5QzZFDg"12157
+ }12158
+ },12159
+ "user_id": "@alice_167:hs1",12160
+ "unsigned": {}12161
+ }12162
+ },12163
+ "@alice_1687:hs1": {12164
+ "ALICEDEVICE1687": {12165
+ "algorithms": [12166
+ "m.olm.v1.curve25519-aes-sha2",12167
+ "m.megolm.v1.aes-sha2"12168
+ ],12169
+ "device_id": "ALICEDEVICE1687",12170
+ "keys": {12171
+ "curve25519:ALICEDEVICE1687": "cBzxJCXRgpVZjxtS1J8DkNut+4AtYxmMdrNEorPEhBg",12172
+ "ed25519:ALICEDEVICE1687": "v3a2RCU5/qOd/PlLWju5zqjszblFsLNQ6rBvOB9T7fo"12173
+ },12174
+ "signatures": {12175
+ "@alice_1687:hs1": {12176
+ "ed25519:ALICEDEVICE1687": "eBSEdp/j3ViWrKZFUwkjMIuWznEi6m8w7CFfFyG93MXpHU7O8cYMUloR6tjmAGTu+gsAeNQK38Gsy+sDVJQ+DQ"12177
+ }12178
+ },12179
+ "user_id": "@alice_1687:hs1",12180
+ "unsigned": {}12181
+ }12182
+ },12183
+ "@alice_1694:hs1": {12184
+ "ALICEDEVICE1694": {12185
+ "algorithms": [12186
+ "m.olm.v1.curve25519-aes-sha2",12187
+ "m.megolm.v1.aes-sha2"12188
+ ],12189
+ "device_id": "ALICEDEVICE1694",12190
+ "keys": {12191
+ "curve25519:ALICEDEVICE1694": "FzK9Khf540LRFPOXiHzYTlpcB/Es/ZLov6SmkZ+N6go",12192
+ "ed25519:ALICEDEVICE1694": "NBF4nmSyZPaN4gc8qQk9648gMbE3CYqldpXUwG+EMnA"12193
+ },12194
+ "signatures": {12195
+ "@alice_1694:hs1": {12196
+ "ed25519:ALICEDEVICE1694": "QZaPnjFXKXsHyn4DSmWVUkdiUQsLA9+x/Ub7jWt3ZUpfI+uzgkuxBURBwkqWZ1JeANqAJDWuGQhgSyWRl4BGDQ"12197
+ }12198
+ },12199
+ "user_id": "@alice_1694:hs1",12200
+ "unsigned": {}12201
+ }12202
+ },12203
+ "@alice_1696:hs1": {12204
+ "ALICEDEVICE1696": {12205
+ "algorithms": [12206
+ "m.olm.v1.curve25519-aes-sha2",12207
+ "m.megolm.v1.aes-sha2"12208
+ ],12209
+ "device_id": "ALICEDEVICE1696",12210
+ "keys": {12211
+ "curve25519:ALICEDEVICE1696": "ild5O7XebRvrL0yD9FxUyAaxjnPhV96vFRzC0bTaOlo",12212
+ "ed25519:ALICEDEVICE1696": "6mNAg+1kYfJDd78kCxM7BtqSX40F7+eJ28z5ESGAXhQ"12213
+ },12214
+ "signatures": {12215
+ "@alice_1696:hs1": {12216
+ "ed25519:ALICEDEVICE1696": "N90wjiWZmt+pqEv49bpCDVTGDi5TTV8FQabD9gpjKZppN/lAmikBgbGaSkvbR1W1yYSse41c9YlPuCIYPJaGDg"12217
+ }12218
+ },12219
+ "user_id": "@alice_1696:hs1",12220
+ "unsigned": {}12221
+ }12222
+ },12223
+ "@alice_1715:hs1": {12224
+ "ALICEDEVICE1715": {12225
+ "algorithms": [12226
+ "m.olm.v1.curve25519-aes-sha2",12227
+ "m.megolm.v1.aes-sha2"12228
+ ],12229
+ "device_id": "ALICEDEVICE1715",12230
+ "keys": {12231
+ "curve25519:ALICEDEVICE1715": "onaydxKMs6LnzpnjdRz0dIJ602laFm4qrdNfB+EKZR8",12232
+ "ed25519:ALICEDEVICE1715": "JH/wI+FVgUd7qSBndWPRcCvSK+NPRrL2DayYDFhTMMA"12233
+ },12234
+ "signatures": {12235
+ "@alice_1715:hs1": {12236
+ "ed25519:ALICEDEVICE1715": "TggrA3dPXzKb2zvaunVBsZc2QSkbkIcT8m0hycyfQ5j2UBpPLR2y4tG8AD4OQMx6brnnT3/vhJ9fH01siBGNCg"12237
+ }12238
+ },12239
+ "user_id": "@alice_1715:hs1",12240
+ "unsigned": {}12241
+ }12242
+ },12243
+ "@alice_1726:hs1": {12244
+ "ALICEDEVICE1726": {12245
+ "algorithms": [12246
+ "m.olm.v1.curve25519-aes-sha2",12247
+ "m.megolm.v1.aes-sha2"12248
+ ],12249
+ "device_id": "ALICEDEVICE1726",12250
+ "keys": {12251
+ "curve25519:ALICEDEVICE1726": "ZPMWy2HCF5vK/EWfWiK/xSo4+GejZ3pJBGgJdpIvGmE",12252
+ "ed25519:ALICEDEVICE1726": "OMdkOYPcPBdI9+X2DbpwTFsTyG2zptxXbGD1gH+P4GY"12253
+ },12254
+ "signatures": {12255
+ "@alice_1726:hs1": {12256
+ "ed25519:ALICEDEVICE1726": "Ut0kEgHhFMhAN536iOCz/q+RNE94tDYcOkRvjQXdMUdsRtuk4UPyTJKivBXXlneGL9CAZcTKsVXAbAy5NQwYAg"12257
+ }12258
+ },12259
+ "user_id": "@alice_1726:hs1",12260
+ "unsigned": {}12261
+ }12262
+ },12263
+ "@alice_1742:hs1": {12264
+ "ALICEDEVICE1742": {12265
+ "algorithms": [12266
+ "m.olm.v1.curve25519-aes-sha2",12267
+ "m.megolm.v1.aes-sha2"12268
+ ],12269
+ "device_id": "ALICEDEVICE1742",12270
+ "keys": {12271
+ "curve25519:ALICEDEVICE1742": "ie+7krqA7MbCXIh9iQtQGSkQfhogHYf4IcH0v9AebDw",12272
+ "ed25519:ALICEDEVICE1742": "vI/fubXZHgvBCBePWJbNf1b5Oz4hPft+F9tgrvHOTCw"12273
+ },12274
+ "signatures": {12275
+ "@alice_1742:hs1": {12276
+ "ed25519:ALICEDEVICE1742": "wZxOjmME+Aokeo+4s22MyXM7Jl+tx7aiyLyfI516dw/o6SMTVyS2b2VIBrHaRXGIq9TwOgowSpVOg07U/B7RAA"12277
+ }12278
+ },12279
+ "user_id": "@alice_1742:hs1",12280
+ "unsigned": {}12281
+ }12282
+ },12283
+ "@alice_1744:hs1": {12284
+ "ALICEDEVICE1744": {12285
+ "algorithms": [12286
+ "m.olm.v1.curve25519-aes-sha2",12287
+ "m.megolm.v1.aes-sha2"12288
+ ],12289
+ "device_id": "ALICEDEVICE1744",12290
+ "keys": {12291
+ "curve25519:ALICEDEVICE1744": "kwHy4toULY4OrpQJYKVdjO/8NmHZQkyb45BcuPE8NWw",12292
+ "ed25519:ALICEDEVICE1744": "Ks1f0MGigBM7+Xpy6fWH8xI6gLs1SN0o/hluHz3ULKg"12293
+ },12294
+ "signatures": {12295
+ "@alice_1744:hs1": {12296
+ "ed25519:ALICEDEVICE1744": "ZQzQrVur0wUt7b97zWGDmToGWoRaRAtYEXpeuJ9vDKcd3jz7gIuKvFR40hNecLbgMAYJjuYrWKkNTUSPpPs/Cg"12297
+ }12298
+ },12299
+ "user_id": "@alice_1744:hs1",12300
+ "unsigned": {}12301
+ }12302
+ },12303
+ "@alice_1745:hs1": {12304
+ "ALICEDEVICE1745": {12305
+ "algorithms": [12306
+ "m.olm.v1.curve25519-aes-sha2",12307
+ "m.megolm.v1.aes-sha2"12308
+ ],12309
+ "device_id": "ALICEDEVICE1745",12310
+ "keys": {12311
+ "curve25519:ALICEDEVICE1745": "zXlFYjroSjRNgL8uPLsrDZSKnnJiG30bjNSo3aTF0Qc",12312
+ "ed25519:ALICEDEVICE1745": "vbACChYN7Y3Czt0zES8HbvD5V1+mcN+xfLcxumlszSU"12313
+ },12314
+ "signatures": {12315
+ "@alice_1745:hs1": {12316
+ "ed25519:ALICEDEVICE1745": "3YNPU911nbZMWFuV9LeDeiXQ32uvoDZ9N6g7vxTxRvhQ2VT6pitTNvxfJPzE/EiWsSVpC3Ucz2e2sMoHZL3JDQ"12317
+ }12318
+ },12319
+ "user_id": "@alice_1745:hs1",12320
+ "unsigned": {}12321
+ }12322
+ },12323
+ "@alice_1748:hs1": {12324
+ "ALICEDEVICE1748": {12325
+ "algorithms": [12326
+ "m.olm.v1.curve25519-aes-sha2",12327
+ "m.megolm.v1.aes-sha2"12328
+ ],12329
+ "device_id": "ALICEDEVICE1748",12330
+ "keys": {12331
+ "curve25519:ALICEDEVICE1748": "vSNBg9XNZhyr9/fOpVEA56v2QuUvx1RAk0YZeq+k7zA",12332
+ "ed25519:ALICEDEVICE1748": "mOo8Qva3DlaR+iLxx6Tv2h9eq/IIaSrt0koTezzkzNU"12333
+ },12334
+ "signatures": {12335
+ "@alice_1748:hs1": {12336
+ "ed25519:ALICEDEVICE1748": "j4Wmu6OFY6+scj5aiOZvOS/IV/VOAF4iRwDu1X0Sk3RzcfI9KOI9feZH5ihPuAzBHUHvpwosCrS75X7cpd5PDA"12337
+ }12338
+ },12339
+ "user_id": "@alice_1748:hs1",12340
+ "unsigned": {}12341
+ }12342
+ },12343
+ "@alice_1766:hs1": {12344
+ "ALICEDEVICE1766": {12345
+ "algorithms": [12346
+ "m.olm.v1.curve25519-aes-sha2",12347
+ "m.megolm.v1.aes-sha2"12348
+ ],12349
+ "device_id": "ALICEDEVICE1766",12350
+ "keys": {12351
+ "curve25519:ALICEDEVICE1766": "u2fkRlufvmwOSOsAkBUC3qaNeEe89WoCMHzMqIFxphg",12352
+ "ed25519:ALICEDEVICE1766": "voFaENANo+NdQ6lpChpG79lOmn++rG0Xpjx9EiEcXkA"12353
+ },12354
+ "signatures": {12355
+ "@alice_1766:hs1": {12356
+ "ed25519:ALICEDEVICE1766": "IsJcQm9xTRJpeZO3hN1dMTiVMdcHvXchFlRcFtMHJTTSt+V09dYVlTT9DKVLLUnWKa9peldUiQDsItYgFo5gAA"12357
+ }12358
+ },12359
+ "user_id": "@alice_1766:hs1",12360
+ "unsigned": {}12361
+ }12362
+ },12363
+ "@alice_1772:hs1": {12364
+ "ALICEDEVICE1772": {12365
+ "algorithms": [12366
+ "m.olm.v1.curve25519-aes-sha2",12367
+ "m.megolm.v1.aes-sha2"12368
+ ],12369
+ "device_id": "ALICEDEVICE1772",12370
+ "keys": {12371
+ "curve25519:ALICEDEVICE1772": "oJbLcC7k0WHR1gsZ7/Dw7uAmSc9wfIyZwQnFGjH6DQI",12372
+ "ed25519:ALICEDEVICE1772": "JYhId625EwqAMfCNPbkMGGywLPwo/3hwxiERzj3E73g"12373
+ },12374
+ "signatures": {12375
+ "@alice_1772:hs1": {12376
+ "ed25519:ALICEDEVICE1772": "1ZXJEJaKpXt5lyh5aP52zQNW7l8qQfiJGMkdNHmnUXeEHVrRDTSTb8K9Fu9C3HdzwnKE/lg4cyS6rUKFy9SLCA"12377
+ }12378
+ },12379
+ "user_id": "@alice_1772:hs1",12380
+ "unsigned": {}12381
+ }12382
+ },12383
+ "@alice_1795:hs1": {12384
+ "ALICEDEVICE1795": {12385
+ "algorithms": [12386
+ "m.olm.v1.curve25519-aes-sha2",12387
+ "m.megolm.v1.aes-sha2"12388
+ ],12389
+ "device_id": "ALICEDEVICE1795",12390
+ "keys": {12391
+ "curve25519:ALICEDEVICE1795": "AQvpARV8wUFku2z3oCi2AL9ukjLGAEGZYxaFCEFVEHA",12392
+ "ed25519:ALICEDEVICE1795": "SvkjyCvVbrWbtT3oKvQ1ycYK9Eig5zrtv9Z/SFVB//Q"12393
+ },12394
+ "signatures": {12395
+ "@alice_1795:hs1": {12396
+ "ed25519:ALICEDEVICE1795": "KFNvj2jM1kO7a0rRNq3TsPerxAvKmFMps5ibhCHc9WoLej0ogu4ws+REGFHRLFiQEDWr4kKTz22S3v3ITBRIDA"12397
+ }12398
+ },12399
+ "user_id": "@alice_1795:hs1",12400
+ "unsigned": {}12401
+ }12402
+ },12403
+ "@alice_1796:hs1": {12404
+ "ALICEDEVICE1796": {12405
+ "algorithms": [12406
+ "m.olm.v1.curve25519-aes-sha2",12407
+ "m.megolm.v1.aes-sha2"12408
+ ],12409
+ "device_id": "ALICEDEVICE1796",12410
+ "keys": {12411
+ "curve25519:ALICEDEVICE1796": "Ibui4wFhOC7YHhBxevi501iG/QKm/XJ7qgdSMuTj8lU",12412
+ "ed25519:ALICEDEVICE1796": "sx9k9I0TfUEctmvso5mqfil1qgsZBixe1usBiDyukio"12413
+ },12414
+ "signatures": {12415
+ "@alice_1796:hs1": {12416
+ "ed25519:ALICEDEVICE1796": "5p2fcPYhvxbkhz8cE99RJ15PVJ+OkZUJVUyOAQ8h+4sw6JsnAh3VK5lfb7FCajrXjoq/2+7lWHzIs8ofB2IzDg"12417
+ }12418
+ },12419
+ "user_id": "@alice_1796:hs1",12420
+ "unsigned": {}12421
+ }12422
+ },12423
+ "@alice_1797:hs1": {12424
+ "ALICEDEVICE1797": {12425
+ "algorithms": [12426
+ "m.olm.v1.curve25519-aes-sha2",12427
+ "m.megolm.v1.aes-sha2"12428
+ ],12429
+ "device_id": "ALICEDEVICE1797",12430
+ "keys": {12431
+ "curve25519:ALICEDEVICE1797": "YY51qwSdWHLGdNrHGuiYV3mTeyATOnemQBYoitLuIy0",12432
+ "ed25519:ALICEDEVICE1797": "sYegJJN3FWbg556D4wKxZfCWgd3y4WeZqNJBeIEUTpw"12433
+ },12434
+ "signatures": {12435
+ "@alice_1797:hs1": {12436
+ "ed25519:ALICEDEVICE1797": "tgXzMZOA3Ybw+hu3l11rhUHK8fawtXawQUwnFI7dxtNZKJRS2mrz1HRwg4gmikKToIp+jPyTtZhaVRHhsUTYAw"12437
+ }12438
+ },12439
+ "user_id": "@alice_1797:hs1",12440
+ "unsigned": {}12441
+ }12442
+ },12443
+ "@alice_1802:hs1": {12444
+ "ALICEDEVICE1802": {12445
+ "algorithms": [12446
+ "m.olm.v1.curve25519-aes-sha2",12447
+ "m.megolm.v1.aes-sha2"12448
+ ],12449
+ "device_id": "ALICEDEVICE1802",12450
+ "keys": {12451
+ "curve25519:ALICEDEVICE1802": "BQ5OaXr+YreadpQnSbWDlUZCe6wUXWX9A0jVSW87ywc",12452
+ "ed25519:ALICEDEVICE1802": "47Vf+P9Kip1xnzFrrVNMaKzZ1nZeCPYwA0P9PB4aW+w"12453
+ },12454
+ "signatures": {12455
+ "@alice_1802:hs1": {12456
+ "ed25519:ALICEDEVICE1802": "qv1tnL9VSnaFa4jjpSF8QgRKTmhpJFPFvKo6pZprYee/yk1+G46qHm8K3ngsd3Np2B6G+otSz9yJvvAQzss5Ag"12457
+ }12458
+ },12459
+ "user_id": "@alice_1802:hs1",12460
+ "unsigned": {}12461
+ }12462
+ },12463
+ "@alice_1803:hs1": {12464
+ "ALICEDEVICE1803": {12465
+ "algorithms": [12466
+ "m.olm.v1.curve25519-aes-sha2",12467
+ "m.megolm.v1.aes-sha2"12468
+ ],12469
+ "device_id": "ALICEDEVICE1803",12470
+ "keys": {12471
+ "curve25519:ALICEDEVICE1803": "xMjS8PQxDqk9Ev/CFx5wDY8/aWbqcMLgKGHk9yE17AE",12472
+ "ed25519:ALICEDEVICE1803": "PMTfVbIWNWlrGO41V4wOiYh7xTQEh19TDvVrfgyi9BM"12473
+ },12474
+ "signatures": {12475
+ "@alice_1803:hs1": {12476
+ "ed25519:ALICEDEVICE1803": "nqrbkpjKdZde82TAZfIUIC+FY5CvEjONC1uzVDo4DhauOcBh1jPMAFmu0QG+mev0O99c8Rce4dzxbJTKw1xADg"12477
+ }12478
+ },12479
+ "user_id": "@alice_1803:hs1",12480
+ "unsigned": {}12481
+ }12482
+ },12483
+ "@alice_1805:hs1": {12484
+ "ALICEDEVICE1805": {12485
+ "algorithms": [12486
+ "m.olm.v1.curve25519-aes-sha2",12487
+ "m.megolm.v1.aes-sha2"12488
+ ],12489
+ "device_id": "ALICEDEVICE1805",12490
+ "keys": {12491
+ "curve25519:ALICEDEVICE1805": "vpyPL2ZK/Muhil1KXsvQ+NNU45VtBujQfZKDYRp5Fzc",12492
+ "ed25519:ALICEDEVICE1805": "TBPuO752Q0BV1Qh+mHNan5LsvdzFwpdHxeyUXaNhN0c"12493
+ },12494
+ "signatures": {12495
+ "@alice_1805:hs1": {12496
+ "ed25519:ALICEDEVICE1805": "+6BwYuplWrAs4hpxhYXUaMWeG9cqfLtsECTQSH2S9Gfqbnlp8z+YSvFQaJb7LwHMGL2gXKr2OkHIKgee7DnBAA"12497
+ }12498
+ },12499
+ "user_id": "@alice_1805:hs1",12500
+ "unsigned": {}12501
+ }12502
+ },12503
+ "@alice_1806:hs1": {12504
+ "ALICEDEVICE1806": {12505
+ "algorithms": [12506
+ "m.olm.v1.curve25519-aes-sha2",12507
+ "m.megolm.v1.aes-sha2"12508
+ ],12509
+ "device_id": "ALICEDEVICE1806",12510
+ "keys": {12511
+ "curve25519:ALICEDEVICE1806": "bFJt4SL4DDZAmrSn+AiWdCw1GbLV9z4eis1R0TiJIko",12512
+ "ed25519:ALICEDEVICE1806": "0+o11fhBm/COP7EYz8sJTKcYipNeBZVT8RwhYxEWbvM"12513
+ },12514
+ "signatures": {12515
+ "@alice_1806:hs1": {12516
+ "ed25519:ALICEDEVICE1806": "Nw/CzNGlHysMWCu7PHncr76VM7mysLVadun8m4ra55JZioQZJdTQNaKoBiYJdCgu6hUy4nq/q38E3hanPmipBg"12517
+ }12518
+ },12519
+ "user_id": "@alice_1806:hs1",12520
+ "unsigned": {}12521
+ }12522
+ },12523
+ "@alice_1808:hs1": {12524
+ "ALICEDEVICE1808": {12525
+ "algorithms": [12526
+ "m.olm.v1.curve25519-aes-sha2",12527
+ "m.megolm.v1.aes-sha2"12528
+ ],12529
+ "device_id": "ALICEDEVICE1808",12530
+ "keys": {12531
+ "curve25519:ALICEDEVICE1808": "k72nKiJPJM8x4I3Fkwr03zGZA3MbCOTIcJ050DiIPXA",12532
+ "ed25519:ALICEDEVICE1808": "iaNee4ykeckp1esrsv4xiXeQxgrQbsHI8kIQy4/EASk"12533
+ },12534
+ "signatures": {12535
+ "@alice_1808:hs1": {12536
+ "ed25519:ALICEDEVICE1808": "I7EBASUsP/wPpfNfJW/ij8TZOI6/sdtcPVkLyq//L8rdjsdSDJRLKnYeM7wbs8zn6kkYemVJmDB4of6c9A+nBQ"12537
+ }12538
+ },12539
+ "user_id": "@alice_1808:hs1",12540
+ "unsigned": {}12541
+ }12542
+ },12543
+ "@alice_1812:hs1": {12544
+ "ALICEDEVICE1812": {12545
+ "algorithms": [12546
+ "m.olm.v1.curve25519-aes-sha2",12547
+ "m.megolm.v1.aes-sha2"12548
+ ],12549
+ "device_id": "ALICEDEVICE1812",12550
+ "keys": {12551
+ "curve25519:ALICEDEVICE1812": "wyCrthA/frk/OQCLIV/vfUFuuOmhby7s1/u5WOHGvRw",12552
+ "ed25519:ALICEDEVICE1812": "k7K3LznLpCt7a8NI2YcGbeIDx5M1v6QpEZkGxUJZ82Y"12553
+ },12554
+ "signatures": {12555
+ "@alice_1812:hs1": {12556
+ "ed25519:ALICEDEVICE1812": "IAQpYnFxnh6plauLDyZR0DlEWrKPKYXUHrLfWI92gb0xjRe2MG4gJ0GNqzUprfrVnWNC3HxITGLTWkkBLS07DA"12557
+ }12558
+ },12559
+ "user_id": "@alice_1812:hs1",12560
+ "unsigned": {}12561
+ }12562
+ },12563
+ "@alice_1819:hs1": {12564
+ "ALICEDEVICE1819": {12565
+ "algorithms": [12566
+ "m.olm.v1.curve25519-aes-sha2",12567
+ "m.megolm.v1.aes-sha2"12568
+ ],12569
+ "device_id": "ALICEDEVICE1819",12570
+ "keys": {12571
+ "curve25519:ALICEDEVICE1819": "Fg0X7RcZ3mQA/8d/47/g6P7YQmMDE4eTWAeSKB4V/g0",12572
+ "ed25519:ALICEDEVICE1819": "MqeX5HD2BgIZMdA+Shp9q7Lp5Dg8eie8acq2iec0avs"12573
+ },12574
+ "signatures": {12575
+ "@alice_1819:hs1": {12576
+ "ed25519:ALICEDEVICE1819": "Yc+Iu7u0ga3W6vb4VIWiP3mEADDT8NmP/Mk7mKqD+ry+4NpzCIpXOLdO8DgT4RKETXz2tdKp8g3LLs4EWBHyBQ"12577
+ }12578
+ },12579
+ "user_id": "@alice_1819:hs1",12580
+ "unsigned": {}12581
+ }12582
+ },12583
+ "@alice_1822:hs1": {12584
+ "ALICEDEVICE1822": {12585
+ "algorithms": [12586
+ "m.olm.v1.curve25519-aes-sha2",12587
+ "m.megolm.v1.aes-sha2"12588
+ ],12589
+ "device_id": "ALICEDEVICE1822",12590
+ "keys": {12591
+ "curve25519:ALICEDEVICE1822": "q2SHhHHARrPUhemmQz3PM11XdcNf7SER0HioWtBE12M",12592
+ "ed25519:ALICEDEVICE1822": "xJuXW4L8dOohcbBmzesnHhUCBZ0vhNF1EHc5YIgrpf0"12593
+ },12594
+ "signatures": {12595
+ "@alice_1822:hs1": {12596
+ "ed25519:ALICEDEVICE1822": "ziz2T7c0aaeF7eGHYEk4scljXVJGxbvBFoCSUxHiT+pUVVL2Xqfw6OzeCH0FlXJz2vayDoscf5CROOxYXc8FDw"12597
+ }12598
+ },12599
+ "user_id": "@alice_1822:hs1",12600
+ "unsigned": {}12601
+ }12602
+ },12603
+ "@alice_1828:hs1": {12604
+ "ALICEDEVICE1828": {12605
+ "algorithms": [12606
+ "m.olm.v1.curve25519-aes-sha2",12607
+ "m.megolm.v1.aes-sha2"12608
+ ],12609
+ "device_id": "ALICEDEVICE1828",12610
+ "keys": {12611
+ "curve25519:ALICEDEVICE1828": "vOuNgxAvoqrhfqivfOA89Oml4B4T/56rG1scACwbkVU",12612
+ "ed25519:ALICEDEVICE1828": "d27TV9BmaSOW1OagxnujTkOEYAZpBwIBGPQu30uBlPI"12613
+ },12614
+ "signatures": {12615
+ "@alice_1828:hs1": {12616
+ "ed25519:ALICEDEVICE1828": "BrB9hDOja7ORQdaE+nJvusZcevu8HUXPNHTzeVQqDozXzmM5q9oHNqhDidjqjfMGcwFQnGEUiwxCLG+Z6XtbAQ"12617
+ }12618
+ },12619
+ "user_id": "@alice_1828:hs1",12620
+ "unsigned": {}12621
+ }12622
+ },12623
+ "@alice_1830:hs1": {12624
+ "ALICEDEVICE1830": {12625
+ "algorithms": [12626
+ "m.olm.v1.curve25519-aes-sha2",12627
+ "m.megolm.v1.aes-sha2"12628
+ ],12629
+ "device_id": "ALICEDEVICE1830",12630
+ "keys": {12631
+ "curve25519:ALICEDEVICE1830": "GXEs83rUzYgtIpcrdggbhZdHG7god0SsEDGGYBAFMVQ",12632
+ "ed25519:ALICEDEVICE1830": "hcm04Tc0zGF6v0etWckexV0QbnxrTyF/7R1XmsTg1wU"12633
+ },12634
+ "signatures": {12635
+ "@alice_1830:hs1": {12636
+ "ed25519:ALICEDEVICE1830": "WnaDkWnzy6m6rFD7GnJM50p9neOiHgNwu94LOxx+PnpjHmU4pXAcoIE+9+WDth4ui9p1HT+7dYirHlMml2RdBw"12637
+ }12638
+ },12639
+ "user_id": "@alice_1830:hs1",12640
+ "unsigned": {}12641
+ }12642
+ },12643
+ "@alice_1835:hs1": {12644
+ "ALICEDEVICE1835": {12645
+ "algorithms": [12646
+ "m.olm.v1.curve25519-aes-sha2",12647
+ "m.megolm.v1.aes-sha2"12648
+ ],12649
+ "device_id": "ALICEDEVICE1835",12650
+ "keys": {12651
+ "curve25519:ALICEDEVICE1835": "dKLD1CCq324sVUv2DcErAooOhHporNN4FEy6kLG2Qno",12652
+ "ed25519:ALICEDEVICE1835": "Dqwi1fFsiTNcdkZv6URMmwbql5HMHVucvr71nWdpeZM"12653
+ },12654
+ "signatures": {12655
+ "@alice_1835:hs1": {12656
+ "ed25519:ALICEDEVICE1835": "NckX+9D9DbfXiR2Hq5Ex40tEOtozUKlqo1jX6RYBTwX5lvKCI0SmSSM+bQLr+rhBTZCJots0bptDfNyGr3NTAA"12657
+ }12658
+ },12659
+ "user_id": "@alice_1835:hs1",12660
+ "unsigned": {}12661
+ }12662
+ },12663
+ "@alice_1839:hs1": {12664
+ "ALICEDEVICE1839": {12665
+ "algorithms": [12666
+ "m.olm.v1.curve25519-aes-sha2",12667
+ "m.megolm.v1.aes-sha2"12668
+ ],12669
+ "device_id": "ALICEDEVICE1839",12670
+ "keys": {12671
+ "curve25519:ALICEDEVICE1839": "2zOxyMvbxLE7k1PyJNctX0Ys+UJ29AFKNTmbDQzoBCg",12672
+ "ed25519:ALICEDEVICE1839": "1q0EgXJViOa7fkAHfH3k2TSjXUA3hN5I4LuSQTlWp8g"12673
+ },12674
+ "signatures": {12675
+ "@alice_1839:hs1": {12676
+ "ed25519:ALICEDEVICE1839": "POYsIS9ciWl/R1Efky1eTmDeKvL47gko2QL2EETb2nkxyq5fhucZ41kdGClmZrQaETaMVxRN4bwzk0Xj5tcLBw"12677
+ }12678
+ },12679
+ "user_id": "@alice_1839:hs1",12680
+ "unsigned": {}12681
+ }12682
+ },12683
+ "@alice_1846:hs1": {12684
+ "ALICEDEVICE1846": {12685
+ "algorithms": [12686
+ "m.olm.v1.curve25519-aes-sha2",12687
+ "m.megolm.v1.aes-sha2"12688
+ ],12689
+ "device_id": "ALICEDEVICE1846",12690
+ "keys": {12691
+ "curve25519:ALICEDEVICE1846": "g6NckGDc6IXjDSV06B/EIi3veffLaO/XqT+SIulHFT4",12692
+ "ed25519:ALICEDEVICE1846": "hA5N2KjsGQKTXIlTFw7RKMpD9O+ERns4XvhZlG1c4nY"12693
+ },12694
+ "signatures": {12695
+ "@alice_1846:hs1": {12696
+ "ed25519:ALICEDEVICE1846": "vQuvLJyrDWChYsYo40YN0dKkfM2aIB9Vj4wO74p3+dABjBN1tsvlSi/Zve0Ho2qsMiRTV8UP1t/6eR/AK6iaCA"12697
+ }12698
+ },12699
+ "user_id": "@alice_1846:hs1",12700
+ "unsigned": {}12701
+ }12702
+ },12703
+ "@alice_1858:hs1": {12704
+ "ALICEDEVICE1858": {12705
+ "algorithms": [12706
+ "m.olm.v1.curve25519-aes-sha2",12707
+ "m.megolm.v1.aes-sha2"12708
+ ],12709
+ "device_id": "ALICEDEVICE1858",12710
+ "keys": {12711
+ "curve25519:ALICEDEVICE1858": "4G+EQv5X6BAZfJL5iaiOqVlCIma6xAJwk1PFZ7Q76X4",12712
+ "ed25519:ALICEDEVICE1858": "Iyc/897doIEyEdrg7qt+/tvrgvi6hOJQQnuBpE0cQE8"12713
+ },12714
+ "signatures": {12715
+ "@alice_1858:hs1": {12716
+ "ed25519:ALICEDEVICE1858": "7eNBVWIriskfwuNnAA6sFw36MSNGkzd7RenJFfPDFZ3DYWgTt4ylXM5byILv3OrRAnJHz/EH84yz2Z82P3AmBQ"12717
+ }12718
+ },12719
+ "user_id": "@alice_1858:hs1",12720
+ "unsigned": {}12721
+ }12722
+ },12723
+ "@alice_1862:hs1": {12724
+ "ALICEDEVICE1862": {12725
+ "algorithms": [12726
+ "m.olm.v1.curve25519-aes-sha2",12727
+ "m.megolm.v1.aes-sha2"12728
+ ],12729
+ "device_id": "ALICEDEVICE1862",12730
+ "keys": {12731
+ "curve25519:ALICEDEVICE1862": "B+2OtB0Yo9ggp48C9b7G6zMbc3xtgpfk4IJsUF4gvFQ",12732
+ "ed25519:ALICEDEVICE1862": "V29YJ0CL8tATTBoIlIk83yBf9oWTTPJhBqCzQXV3Xxo"12733
+ },12734
+ "signatures": {12735
+ "@alice_1862:hs1": {12736
+ "ed25519:ALICEDEVICE1862": "YzwTG2uv292AbYLciG3CQi0uRwyaKMbqRoZP0McOa9bUF/+QbSsjz5ZlQfSffkOuLEMlQyHPCc12/6L4NpjqDA"12737
+ }12738
+ },12739
+ "user_id": "@alice_1862:hs1",12740
+ "unsigned": {}12741
+ }12742
+ },12743
+ "@alice_1866:hs1": {12744
+ "ALICEDEVICE1866": {12745
+ "algorithms": [12746
+ "m.olm.v1.curve25519-aes-sha2",12747
+ "m.megolm.v1.aes-sha2"12748
+ ],12749
+ "device_id": "ALICEDEVICE1866",12750
+ "keys": {12751
+ "curve25519:ALICEDEVICE1866": "y02xDxWIqLnRbkPzsSdm3wrd3zHX2lVek9/dyju+rzI",12752
+ "ed25519:ALICEDEVICE1866": "5fwBsmIen+f0qdqkz/sR9pXucaEb3zNrPPQxU6Fi7/c"12753
+ },12754
+ "signatures": {12755
+ "@alice_1866:hs1": {12756
+ "ed25519:ALICEDEVICE1866": "b0m3MwPgF4QWzLlaYIinUMUqkRVdG4nsjUkgWzFKZ7+A3KDLxpWz/8bA4WqVGowRD5WpvwFPmsn7i9q5rhOoAg"12757
+ }12758
+ },12759
+ "user_id": "@alice_1866:hs1",12760
+ "unsigned": {}12761
+ }12762
+ },12763
+ "@alice_1868:hs1": {12764
+ "ALICEDEVICE1868": {12765
+ "algorithms": [12766
+ "m.olm.v1.curve25519-aes-sha2",12767
+ "m.megolm.v1.aes-sha2"12768
+ ],12769
+ "device_id": "ALICEDEVICE1868",12770
+ "keys": {12771
+ "curve25519:ALICEDEVICE1868": "YVKlU0lTbjmyS235sTHDys2CBcv5EXHfWspsry9PYjY",12772
+ "ed25519:ALICEDEVICE1868": "VoyZY3fLSlPnhtfaCEVbrnTOzj0nzcD+dZZX+d8Zp+8"12773
+ },12774
+ "signatures": {12775
+ "@alice_1868:hs1": {12776
+ "ed25519:ALICEDEVICE1868": "CgV5SZi0RH7gcs3f3HNYD74yDl/YpWCm6nEiLMNxOI7QJVUh8j6lps/oDEI/rxbO5lDqwOdFBDHaUPwNr1fgDA"12777
+ }12778
+ },12779
+ "user_id": "@alice_1868:hs1",12780
+ "unsigned": {}12781
+ }12782
+ },12783
+ "@alice_1883:hs1": {12784
+ "ALICEDEVICE1883": {12785
+ "algorithms": [12786
+ "m.olm.v1.curve25519-aes-sha2",12787
+ "m.megolm.v1.aes-sha2"12788
+ ],12789
+ "device_id": "ALICEDEVICE1883",12790
+ "keys": {12791
+ "curve25519:ALICEDEVICE1883": "nMKahqQ1Tm6Dnyr7Kl4F44FCReiYaL4om1UHrg/Udi0",12792
+ "ed25519:ALICEDEVICE1883": "UT/wPk7i04kCTYsJ7z6HzNyHHnRNCxDUp4ucxXGCRAY"12793
+ },12794
+ "signatures": {12795
+ "@alice_1883:hs1": {12796
+ "ed25519:ALICEDEVICE1883": "8cKNFEQkDvt/jpIIgLnNIZPoRgzY3Nh034lB0Wihn0K5i7/o8TKMpHklCpn4h7zN4rb5/luNckmvtaSYwaOABQ"12797
+ }12798
+ },12799
+ "user_id": "@alice_1883:hs1",12800
+ "unsigned": {}12801
+ }12802
+ },12803
+ "@alice_1895:hs1": {12804
+ "ALICEDEVICE1895": {12805
+ "algorithms": [12806
+ "m.olm.v1.curve25519-aes-sha2",12807
+ "m.megolm.v1.aes-sha2"12808
+ ],12809
+ "device_id": "ALICEDEVICE1895",12810
+ "keys": {12811
+ "curve25519:ALICEDEVICE1895": "bgn5sIVNoONtik6lBYK3fYvB9VJHDWfC/5hnc0GEpUI",12812
+ "ed25519:ALICEDEVICE1895": "tFA/4RMnnBKw3B6A59O9t3D/KKK9470K7APPmwovODg"12813
+ },12814
+ "signatures": {12815
+ "@alice_1895:hs1": {12816
+ "ed25519:ALICEDEVICE1895": "ZWkLvixN3p5AGRlMlOXfyZkJkR+XUIfs67U9ElLHoONpVxevZ349Yd3CCEqhIO71C2hgoHG0T0BpjapAj5uTBQ"12817
+ }12818
+ },12819
+ "user_id": "@alice_1895:hs1",12820
+ "unsigned": {}12821
+ }12822
+ },12823
+ "@alice_1906:hs1": {12824
+ "ALICEDEVICE1906": {12825
+ "algorithms": [12826
+ "m.olm.v1.curve25519-aes-sha2",12827
+ "m.megolm.v1.aes-sha2"12828
+ ],12829
+ "device_id": "ALICEDEVICE1906",12830
+ "keys": {12831
+ "curve25519:ALICEDEVICE1906": "3fsFdK5wb70Zj9BdBCrCAo/YMDV7qkTf7rk+kfVdUgI",12832
+ "ed25519:ALICEDEVICE1906": "chIzbZnQmS6t/pPMHzSvB639I91mChS7xQwtIf/nFIQ"12833
+ },12834
+ "signatures": {12835
+ "@alice_1906:hs1": {12836
+ "ed25519:ALICEDEVICE1906": "duywDhaptcn3DDAy0uVX2UouXrfHzfodwM7u6sgOn7zCjedCm8qs/WCK7ZOxdObooE8Htr2w2WNnqj2Aj4m6Bg"12837
+ }12838
+ },12839
+ "user_id": "@alice_1906:hs1",12840
+ "unsigned": {}12841
+ }12842
+ },12843
+ "@alice_1918:hs1": {12844
+ "ALICEDEVICE1918": {12845
+ "algorithms": [12846
+ "m.olm.v1.curve25519-aes-sha2",12847
+ "m.megolm.v1.aes-sha2"12848
+ ],12849
+ "device_id": "ALICEDEVICE1918",12850
+ "keys": {12851
+ "curve25519:ALICEDEVICE1918": "OFiFGfgszNpvLGLmjnv5IAghFXCNDn9Lsb/0g2IgWQk",12852
+ "ed25519:ALICEDEVICE1918": "UK/O92j/l0s8iZDiBh4uvqcVsQTOD6tDxLyKNOJiTrI"12853
+ },12854
+ "signatures": {12855
+ "@alice_1918:hs1": {12856
+ "ed25519:ALICEDEVICE1918": "IJz15XvBSy3lTaMdsRIpjstnrrUIkmTtv5y7e0/ZfKyTV2vbwc63dGpcW3SkNa/RJ0n7VrvO7wn67iLHQNtFBA"12857
+ }12858
+ },12859
+ "user_id": "@alice_1918:hs1",12860
+ "unsigned": {}12861
+ }12862
+ },12863
+ "@alice_1936:hs1": {12864
+ "ALICEDEVICE1936": {12865
+ "algorithms": [12866
+ "m.olm.v1.curve25519-aes-sha2",12867
+ "m.megolm.v1.aes-sha2"12868
+ ],12869
+ "device_id": "ALICEDEVICE1936",12870
+ "keys": {12871
+ "curve25519:ALICEDEVICE1936": "cajQ/heNR8DbKGE/Cuz0WmYLLDPsxG7chP+ozhCblHQ",12872
+ "ed25519:ALICEDEVICE1936": "8jXEx6uRWeNRzMbNgguvkMhdyzjcEZHAKX9bPwFCqng"12873
+ },12874
+ "signatures": {12875
+ "@alice_1936:hs1": {12876
+ "ed25519:ALICEDEVICE1936": "jOHNIelxBP8fDduSrmMKy8xvA7Vd1VbB5HMSFJQZa5asb1jrM3ZduknzimD9RQ919X2vjaVCSoD08M9sW27SAA"12877
+ }12878
+ },12879
+ "user_id": "@alice_1936:hs1",12880
+ "unsigned": {}12881
+ }12882
+ },12883
+ "@alice_1947:hs1": {12884
+ "ALICEDEVICE1947": {12885
+ "algorithms": [12886
+ "m.olm.v1.curve25519-aes-sha2",12887
+ "m.megolm.v1.aes-sha2"12888
+ ],12889
+ "device_id": "ALICEDEVICE1947",12890
+ "keys": {12891
+ "curve25519:ALICEDEVICE1947": "lrcZBK9h6RM7CYbhdx1A8O0ylEVERzZ2AW3yv0Zp8Cg",12892
+ "ed25519:ALICEDEVICE1947": "pxhg5jPXTcC2APKO2S+JSjkIHsqFF+niJ+WU57iBd9E"12893
+ },12894
+ "signatures": {12895
+ "@alice_1947:hs1": {12896
+ "ed25519:ALICEDEVICE1947": "hOegDwDDotyM0FQW+j0PNENMvo3N4hd68x/ogKLiNUOpwsGY/FBcgXT5yo6D6FBEPun4K31Qht/nmUupVl8MBg"12897
+ }12898
+ },12899
+ "user_id": "@alice_1947:hs1",12900
+ "unsigned": {}12901
+ }12902
+ },12903
+ "@alice_1970:hs1": {12904
+ "ALICEDEVICE1970": {12905
+ "algorithms": [12906
+ "m.olm.v1.curve25519-aes-sha2",12907
+ "m.megolm.v1.aes-sha2"12908
+ ],12909
+ "device_id": "ALICEDEVICE1970",12910
+ "keys": {12911
+ "curve25519:ALICEDEVICE1970": "TtR3h3Vch+RkiPjtTm3OesuebFpit7Xb1ZW9VpYNG1Y",12912
+ "ed25519:ALICEDEVICE1970": "auaMh1FgWM2Na27vzKo0SfeV3UfOSOg5795O0LXRhHY"12913
+ },12914
+ "signatures": {12915
+ "@alice_1970:hs1": {12916
+ "ed25519:ALICEDEVICE1970": "PfXwyvO55PZhPo0ihjI1kfyPefK2tfqbFbYw8+2eLTBIS5H82qwoW7xWlS61dbh58wGE2zILm67TqUXOp51ICg"12917
+ }12918
+ },12919
+ "user_id": "@alice_1970:hs1",12920
+ "unsigned": {}12921
+ }12922
+ },12923
+ "@alice_1975:hs1": {12924
+ "ALICEDEVICE1975": {12925
+ "algorithms": [12926
+ "m.olm.v1.curve25519-aes-sha2",12927
+ "m.megolm.v1.aes-sha2"12928
+ ],12929
+ "device_id": "ALICEDEVICE1975",12930
+ "keys": {12931
+ "curve25519:ALICEDEVICE1975": "KhL+CeHfA2Ikry4JavAeHDNI9WSjFISN5/21b4JnfEQ",12932
+ "ed25519:ALICEDEVICE1975": "C9Ib6/l81tCIs0CsOqgLr8/rPbuZCUXmbN+D8eBauSY"12933
+ },12934
+ "signatures": {12935
+ "@alice_1975:hs1": {12936
+ "ed25519:ALICEDEVICE1975": "gTVCabhLyAA1PH29syCEjxi02/GNyZK59wrrExWg/ZlHrZal0P7G0jKDvzurql380Vg3KIx/6SN9V1OSdNJSBg"12937
+ }12938
+ },12939
+ "user_id": "@alice_1975:hs1",12940
+ "unsigned": {}12941
+ }12942
+ },12943
+ "@alice_1978:hs1": {12944
+ "ALICEDEVICE1978": {12945
+ "algorithms": [12946
+ "m.olm.v1.curve25519-aes-sha2",12947
+ "m.megolm.v1.aes-sha2"12948
+ ],12949
+ "device_id": "ALICEDEVICE1978",12950
+ "keys": {12951
+ "curve25519:ALICEDEVICE1978": "epzjChQTzB/RdmmRe8mwj3peMvYk2Sn1mu5HBXPDhm8",12952
+ "ed25519:ALICEDEVICE1978": "Ody7Y1kbd47I/OurSO57teWJ9sE4YykFIUTIYCXebZ0"12953
+ },12954
+ "signatures": {12955
+ "@alice_1978:hs1": {12956
+ "ed25519:ALICEDEVICE1978": "pq4mPkZvMlKMfKXyoYt+AF0yxEA3UZgwNfuZiX9s1zbP5bkenVSK5REaapaXpdz07CXTKBAmuMk6dyrgcWptBg"12957
+ }12958
+ },12959
+ "user_id": "@alice_1978:hs1",12960
+ "unsigned": {}12961
+ }12962
+ },12963
+ "@alice_1984:hs1": {12964
+ "ALICEDEVICE1984": {12965
+ "algorithms": [12966
+ "m.olm.v1.curve25519-aes-sha2",12967
+ "m.megolm.v1.aes-sha2"12968
+ ],12969
+ "device_id": "ALICEDEVICE1984",12970
+ "keys": {12971
+ "curve25519:ALICEDEVICE1984": "RCNJ9VsDHaCr72SnUryzNtOY6tuvFtBYa3jcjbcvR00",12972
+ "ed25519:ALICEDEVICE1984": "c+s45drabmoC8I6LLcDtlmH/25nqxpW2GEnGrNSh8z0"12973
+ },12974
+ "signatures": {12975
+ "@alice_1984:hs1": {12976
+ "ed25519:ALICEDEVICE1984": "L4HXzPhd12w0EU4BmaryWOf+gIdS25gn95yi/TN2Fz0I2JGmN4pfX/xu1ES9RIHGjqMC2Jhrsww8v+FzOa4ZDQ"12977
+ }12978
+ },12979
+ "user_id": "@alice_1984:hs1",12980
+ "unsigned": {}12981
+ }12982
+ },12983
+ "@alice_1988:hs1": {12984
+ "ALICEDEVICE1988": {12985
+ "algorithms": [12986
+ "m.olm.v1.curve25519-aes-sha2",12987
+ "m.megolm.v1.aes-sha2"12988
+ ],12989
+ "device_id": "ALICEDEVICE1988",12990
+ "keys": {12991
+ "curve25519:ALICEDEVICE1988": "PZL7X74TTPAbcNm8X0EeS4vWG5VplUTTXzvFGHJN7yU",12992
+ "ed25519:ALICEDEVICE1988": "TSd06sBwRYeHC5uU1r/yMEYBvQ9cpW4gXlzdYUzM9Ug"12993
+ },12994
+ "signatures": {12995
+ "@alice_1988:hs1": {12996
+ "ed25519:ALICEDEVICE1988": "kXMjH0O3uSUUEutRJmqaJOx1MuUR2s63U+d0ZBZE1LlIr28xI122fHkl/MIH902940YjJ1Booc5DMYNCVkh4AQ"12997
+ }12998
+ },12999
+ "user_id": "@alice_1988:hs1",13000
+ "unsigned": {}13001
+ }13002
+ },13003
+ "@alice_199:hs1": {13004
+ "ALICEDEVICE199": {13005
+ "algorithms": [13006
+ "m.olm.v1.curve25519-aes-sha2",13007
+ "m.megolm.v1.aes-sha2"13008
+ ],13009
+ "device_id": "ALICEDEVICE199",13010
+ "keys": {13011
+ "curve25519:ALICEDEVICE199": "nR8K4Y7/5FC+uxIXpEwAF6lcGK/IsJYFXII4PH5K3lw",13012
+ "ed25519:ALICEDEVICE199": "YzXB+6ov7v6x53ihaTKq5PHVvyR0wnl+xcFoJn/5HcQ"13013
+ },13014
+ "signatures": {13015
+ "@alice_199:hs1": {13016
+ "ed25519:ALICEDEVICE199": "SNtNMYvP8tt6EoPndro9s2VdyVXC7efy8bS2/nXLH4iBJCAchgD5uDtbnPPhGhoT0id3/ellG/toStyhn1eaAA"13017
+ }13018
+ },13019
+ "user_id": "@alice_199:hs1",13020
+ "unsigned": {}13021
+ }13022
+ },13023
+ "@alice_217:hs1": {13024
+ "ALICEDEVICE217": {13025
+ "algorithms": [13026
+ "m.olm.v1.curve25519-aes-sha2",13027
+ "m.megolm.v1.aes-sha2"13028
+ ],13029
+ "device_id": "ALICEDEVICE217",13030
+ "keys": {13031
+ "curve25519:ALICEDEVICE217": "VnwlN52/eXW7A21I5QfMFRuxpuqc1/S/LeDB7wKH8iM",13032
+ "ed25519:ALICEDEVICE217": "kcDhqtNqVBLfSZjc6P9AaCJV55JT4sz/+cNg3iskihM"13033
+ },13034
+ "signatures": {13035
+ "@alice_217:hs1": {13036
+ "ed25519:ALICEDEVICE217": "a8CEq6sh+o6GFoQdSbXSsAHTZkRf5D+1hOUZiCl7zC3jgX64X2IgxxSNDxa+iM2Mm6upAt5qYvkalqYUaQHLDg"13037
+ }13038
+ },13039
+ "user_id": "@alice_217:hs1",13040
+ "unsigned": {}13041
+ }13042
+ },13043
+ "@alice_221:hs1": {13044
+ "ALICEDEVICE221": {13045
+ "algorithms": [13046
+ "m.olm.v1.curve25519-aes-sha2",13047
+ "m.megolm.v1.aes-sha2"13048
+ ],13049
+ "device_id": "ALICEDEVICE221",13050
+ "keys": {13051
+ "curve25519:ALICEDEVICE221": "P0ng137Tb4IZFTH7h4YIiEwWvRdYNSWhhESrczSt528",13052
+ "ed25519:ALICEDEVICE221": "qD7WiLVvrmb7nvOeM5RDmZzdphHdzizpaDglA+DXieU"13053
+ },13054
+ "signatures": {13055
+ "@alice_221:hs1": {13056
+ "ed25519:ALICEDEVICE221": "dEatML9lngWqoYCUzJJC+5gaUfSCXDxwdZmlzWZUf96VKzNPvL98mJdnnh6fgd8ei8pH1IcPwSsuH3HjQJaUDQ"13057
+ }13058
+ },13059
+ "user_id": "@alice_221:hs1",13060
+ "unsigned": {}13061
+ }13062
+ },13063
+ "@alice_234:hs1": {13064
+ "ALICEDEVICE234": {13065
+ "algorithms": [13066
+ "m.olm.v1.curve25519-aes-sha2",13067
+ "m.megolm.v1.aes-sha2"13068
+ ],13069
+ "device_id": "ALICEDEVICE234",13070
+ "keys": {13071
+ "curve25519:ALICEDEVICE234": "gvcugZukzHOYC+xkWxPfKpOO8DXbrznLpnUQsyCZ+1c",13072
+ "ed25519:ALICEDEVICE234": "GcWrPyqH2O6y96/3D/8NSwVXXHobjVQoiqOkN0GA6wA"13073
+ },13074
+ "signatures": {13075
+ "@alice_234:hs1": {13076
+ "ed25519:ALICEDEVICE234": "f28oMgNQz1lkFclvstowzF3Dpg6Zu08xfEQeyFJ3+GAsZ6JSN2XYykPUs9xal9Gs4mUkYciI1wncelotvzuaCw"13077
+ }13078
+ },13079
+ "user_id": "@alice_234:hs1",13080
+ "unsigned": {}13081
+ }13082
+ },13083
+ "@alice_235:hs1": {13084
+ "ALICEDEVICE235": {13085
+ "algorithms": [13086
+ "m.olm.v1.curve25519-aes-sha2",13087
+ "m.megolm.v1.aes-sha2"13088
+ ],13089
+ "device_id": "ALICEDEVICE235",13090
+ "keys": {13091
+ "curve25519:ALICEDEVICE235": "+3TcUfFfSFeI6tRfQqaOTz8bdlhzaMC9G032ldDUrUE",13092
+ "ed25519:ALICEDEVICE235": "+5N238K0qFYJKVESwDSVJ/0sezaIvim6STuH3G8VGiQ"13093
+ },13094
+ "signatures": {13095
+ "@alice_235:hs1": {13096
+ "ed25519:ALICEDEVICE235": "GKYzdHUUk3BW/lZMeqC9PLYtnkB9o2I80Q2UNzsg1aaePX/BoKh6/QpRaw6ltfiTzi3yqx9liSZg8CwHt9MHCw"13097
+ }13098
+ },13099
+ "user_id": "@alice_235:hs1",13100
+ "unsigned": {}13101
+ }13102
+ },13103
+ "@alice_25:hs1": {13104
+ "ALICEDEVICE25": {13105
+ "algorithms": [13106
+ "m.olm.v1.curve25519-aes-sha2",13107
+ "m.megolm.v1.aes-sha2"13108
+ ],13109
+ "device_id": "ALICEDEVICE25",13110
+ "keys": {13111
+ "curve25519:ALICEDEVICE25": "hTuX66hmAZVkBiONKiw1TBkhzDb51G4+7sqTwVc4wyI",13112
+ "ed25519:ALICEDEVICE25": "yvTFn8WyiLqcno39yvXOzVlLpaMk+Y71fsgOQcD/YUc"13113
+ },13114
+ "signatures": {13115
+ "@alice_25:hs1": {13116
+ "ed25519:ALICEDEVICE25": "FXWWuU3xC7cbXsDc8gGS+aQlg3/2GLY69Dq3Di7SpX92Ejn9Rkl0GZUpUHmY0SuKSno+ge6/jR7+e0xLo78gBw"13117
+ }13118
+ },13119
+ "user_id": "@alice_25:hs1",13120
+ "unsigned": {}13121
+ }13122
+ },13123
+ "@alice_270:hs1": {13124
+ "ALICEDEVICE270": {13125
+ "algorithms": [13126
+ "m.olm.v1.curve25519-aes-sha2",13127
+ "m.megolm.v1.aes-sha2"13128
+ ],13129
+ "device_id": "ALICEDEVICE270",13130
+ "keys": {13131
+ "curve25519:ALICEDEVICE270": "QSUCZaP7JU8M1HKH7713Gz6i7r/MqilK6kBpTWpmrmw",13132
+ "ed25519:ALICEDEVICE270": "7IO2xupfjAZ1B3g8lLgUHOZ7LdZvS8fo6qvr/r7Sgi4"13133
+ },13134
+ "signatures": {13135
+ "@alice_270:hs1": {13136
+ "ed25519:ALICEDEVICE270": "0qajPaS/SyzAKAOu6NCpFBFI3CQI0bFMou95HkbfMPXtaPUitMAsaSUv0gbOAkBbxWfNjuUlivG6OYQk7zgkDg"13137
+ }13138
+ },13139
+ "user_id": "@alice_270:hs1",13140
+ "unsigned": {}13141
+ }13142
+ },13143
+ "@alice_271:hs1": {13144
+ "ALICEDEVICE271": {13145
+ "algorithms": [13146
+ "m.olm.v1.curve25519-aes-sha2",13147
+ "m.megolm.v1.aes-sha2"13148
+ ],13149
+ "device_id": "ALICEDEVICE271",13150
+ "keys": {13151
+ "curve25519:ALICEDEVICE271": "FdLDPFQnSmLXGBCLzyllIHjXy2b5QLuionptP9lADXo",13152
+ "ed25519:ALICEDEVICE271": "Woc7i0Hn3xwbdzcmq8hSHl/hrY9/jkhoGwjEL9y3diE"13153
+ },13154
+ "signatures": {13155
+ "@alice_271:hs1": {13156
+ "ed25519:ALICEDEVICE271": "p1/cimK0foHLVZBOmoD0d7VyirgMdjSck5uh9cKTrzKk/cGPQIXdhFgIYnBVabq228O8/O/HULDd4nsMb5UJAA"13157
+ }13158
+ },13159
+ "user_id": "@alice_271:hs1",13160
+ "unsigned": {}13161
+ }13162
+ },13163
+ "@alice_284:hs1": {13164
+ "ALICEDEVICE284": {13165
+ "algorithms": [13166
+ "m.olm.v1.curve25519-aes-sha2",13167
+ "m.megolm.v1.aes-sha2"13168
+ ],13169
+ "device_id": "ALICEDEVICE284",13170
+ "keys": {13171
+ "curve25519:ALICEDEVICE284": "7zTqXGs0DW1W1VTVHEd/NgbDA9LcSkHV9fJDavfDA00",13172
+ "ed25519:ALICEDEVICE284": "WKJkGMpDbKv3Rm+GQvoZg94gAkgF0SEw8vrsMo0oMBI"13173
+ },13174
+ "signatures": {13175
+ "@alice_284:hs1": {13176
+ "ed25519:ALICEDEVICE284": "/ps2C+OtpKaJ0IdWppacVlP62zJ+OsH54HIWUYG0+fE8aMrYxFO18q/UE7psGfwugG2to07JqhRaApORF80LAQ"13177
+ }13178
+ },13179
+ "user_id": "@alice_284:hs1",13180
+ "unsigned": {}13181
+ }13182
+ },13183
+ "@alice_287:hs1": {13184
+ "ALICEDEVICE287": {13185
+ "algorithms": [13186
+ "m.olm.v1.curve25519-aes-sha2",13187
+ "m.megolm.v1.aes-sha2"13188
+ ],13189
+ "device_id": "ALICEDEVICE287",13190
+ "keys": {13191
+ "curve25519:ALICEDEVICE287": "N91oHSxpSbZ2k1L3UwfqPpi1jXhIoBZKJznnwUjIrW0",13192
+ "ed25519:ALICEDEVICE287": "tbvlRgooNHudlKfcezBgd4NvlzhbJsizVCTlU0UTVas"13193
+ },13194
+ "signatures": {13195
+ "@alice_287:hs1": {13196
+ "ed25519:ALICEDEVICE287": "34bmYr2vV6GkEtd4XF4/4FSx/aQhtyAOvtk0FRP7nbpDZNuEooQMQtH9+tq1+AXWVOpjrNeAy4JaDRrsyfaVBw"13197
+ }13198
+ },13199
+ "user_id": "@alice_287:hs1",13200
+ "unsigned": {}13201
+ }13202
+ },13203
+ "@alice_295:hs1": {13204
+ "ALICEDEVICE295": {13205
+ "algorithms": [13206
+ "m.olm.v1.curve25519-aes-sha2",13207
+ "m.megolm.v1.aes-sha2"13208
+ ],13209
+ "device_id": "ALICEDEVICE295",13210
+ "keys": {13211
+ "curve25519:ALICEDEVICE295": "88hJAjnObmg5to6A3jf1Ns4P/DLGVzrCoQc+Q7FHci8",13212
+ "ed25519:ALICEDEVICE295": "KuH/8wvOQWH45+hZHEMIcOU1fHiP3lhrI3//+TkVu/U"13213
+ },13214
+ "signatures": {13215
+ "@alice_295:hs1": {13216
+ "ed25519:ALICEDEVICE295": "LFbJHCshPKgsoqJ6lAXKWZ62zR0q5X+FuLxoh8E51BiqiRQV3qZNu+swMisX6zL+Pbp4UvO47Si35VG6H9KzBg"13217
+ }13218
+ },13219
+ "user_id": "@alice_295:hs1",13220
+ "unsigned": {}13221
+ }13222
+ },13223
+ "@alice_302:hs1": {13224
+ "ALICEDEVICE302": {13225
+ "algorithms": [13226
+ "m.olm.v1.curve25519-aes-sha2",13227
+ "m.megolm.v1.aes-sha2"13228
+ ],13229
+ "device_id": "ALICEDEVICE302",13230
+ "keys": {13231
+ "curve25519:ALICEDEVICE302": "TUhkhBm0YwW9F4fFMZcq8Onnyha7z1iMNdXycvF5P0Q",13232
+ "ed25519:ALICEDEVICE302": "AHhKStjt2l4cuteQg64B65BOVyTsV2PYIYtPx3u5WOQ"13233
+ },13234
+ "signatures": {13235
+ "@alice_302:hs1": {13236
+ "ed25519:ALICEDEVICE302": "WskuppBiYN9Ijjok3cUTaaslESX2j1PrMZM52S0ZnfUNJiYurfdOrFRba0FLxB1RhLiHaYi16xAHddzYlIq2Dg"13237
+ }13238
+ },13239
+ "user_id": "@alice_302:hs1",13240
+ "unsigned": {}13241
+ }13242
+ },13243
+ "@alice_304:hs1": {13244
+ "ALICEDEVICE304": {13245
+ "algorithms": [13246
+ "m.olm.v1.curve25519-aes-sha2",13247
+ "m.megolm.v1.aes-sha2"13248
+ ],13249
+ "device_id": "ALICEDEVICE304",13250
+ "keys": {13251
+ "curve25519:ALICEDEVICE304": "HrRin5zFstImzK2Dkh965Pb1FVM8Qa8gs8dpJqyuIHg",13252
+ "ed25519:ALICEDEVICE304": "89UGR8NiPazXJiumft8Ci8K40vOHhy/BZPTDWq4REIU"13253
+ },13254
+ "signatures": {13255
+ "@alice_304:hs1": {13256
+ "ed25519:ALICEDEVICE304": "TyloITbQ3AsUd/OcXS1LN3bsE/RM8zxjtPO0PRjLGwWFGZwkx0TX//97D1v9UNhKD48QIYRtfRRXVX5FQXNnCQ"13257
+ }13258
+ },13259
+ "user_id": "@alice_304:hs1",13260
+ "unsigned": {}13261
+ }13262
+ },13263
+ "@alice_326:hs1": {13264
+ "ALICEDEVICE326": {13265
+ "algorithms": [13266
+ "m.olm.v1.curve25519-aes-sha2",13267
+ "m.megolm.v1.aes-sha2"13268
+ ],13269
+ "device_id": "ALICEDEVICE326",13270
+ "keys": {13271
+ "curve25519:ALICEDEVICE326": "NcYttjlpI6fecXlycRJ9y7Vhu0UrMN0FGILGodQEF2Y",13272
+ "ed25519:ALICEDEVICE326": "6wrLKTwd/bLFDVzZTObg8lr9K1Trb0W9Dpv5pTFmAu8"13273
+ },13274
+ "signatures": {13275
+ "@alice_326:hs1": {13276
+ "ed25519:ALICEDEVICE326": "x1WaoBzDGREHt1puaqzksbsZiMSj4UJ6KeYwwQo0yUewE+1IgX+I8DPXcVE0mrH5lWEdr4akQ4ACx+jgGCfmBA"13277
+ }13278
+ },13279
+ "user_id": "@alice_326:hs1",13280
+ "unsigned": {}13281
+ }13282
+ },13283
+ "@alice_340:hs1": {13284
+ "ALICEDEVICE340": {13285
+ "algorithms": [13286
+ "m.olm.v1.curve25519-aes-sha2",13287
+ "m.megolm.v1.aes-sha2"13288
+ ],13289
+ "device_id": "ALICEDEVICE340",13290
+ "keys": {13291
+ "curve25519:ALICEDEVICE340": "mdiIrIOVKnGvT9VVItCE3kv0NdhHpORCtFHJaaiGXy0",13292
+ "ed25519:ALICEDEVICE340": "TmLuz4PmrqH6Ue2AKBk+sSfDX1JTsqvaYNjSt50pI6o"13293
+ },13294
+ "signatures": {13295
+ "@alice_340:hs1": {13296
+ "ed25519:ALICEDEVICE340": "/0SupT3EncvzJRffdY+6XHekR/fjM6bv5E44MwpNMQgM7f17NT+FH6xV+s+me3JOIHf+jLtwsGchQRLlDuReCA"13297
+ }13298
+ },13299
+ "user_id": "@alice_340:hs1",13300
+ "unsigned": {}13301
+ }13302
+ },13303
+ "@alice_343:hs1": {13304
+ "ALICEDEVICE343": {13305
+ "algorithms": [13306
+ "m.olm.v1.curve25519-aes-sha2",13307
+ "m.megolm.v1.aes-sha2"13308
+ ],13309
+ "device_id": "ALICEDEVICE343",13310
+ "keys": {13311
+ "curve25519:ALICEDEVICE343": "HAU744oXiuqUR45AriHuXWRWRByqVm/JEyUsHOk9Q1w",13312
+ "ed25519:ALICEDEVICE343": "tIs+sm5dj/v+GJKCkjMuuLEBATgwTn14qCD9poPbR4c"13313
+ },13314
+ "signatures": {13315
+ "@alice_343:hs1": {13316
+ "ed25519:ALICEDEVICE343": "82ze6ChHufe1NNxRHP7H2T6j5C1KC284BL+wUVWUsEdH0yzrimfMa3lM5IMSCEjVQZbBUlOcu0M20gikRRh4Cg"13317
+ }13318
+ },13319
+ "user_id": "@alice_343:hs1",13320
+ "unsigned": {}13321
+ }13322
+ },13323
+ "@alice_344:hs1": {13324
+ "ALICEDEVICE344": {13325
+ "algorithms": [13326
+ "m.olm.v1.curve25519-aes-sha2",13327
+ "m.megolm.v1.aes-sha2"13328
+ ],13329
+ "device_id": "ALICEDEVICE344",13330
+ "keys": {13331
+ "curve25519:ALICEDEVICE344": "IyWbLfgxWmR+ZGRxhPZ1TG17Sv4ORXkhI3onsbfY2kI",13332
+ "ed25519:ALICEDEVICE344": "haYOVAWk6yhhsXppYdzszWWDfZDoEKco09oDOc3H0uM"13333
+ },13334
+ "signatures": {13335
+ "@alice_344:hs1": {13336
+ "ed25519:ALICEDEVICE344": "XU4HhdmopTwhtsnTGGYzBrmbTIvNYpJMi4mTCD1NbOWqGTHzNUqMEarDCZUlIl/GFz01PVj3VUS16tMA0mndDQ"13337
+ }13338
+ },13339
+ "user_id": "@alice_344:hs1",13340
+ "unsigned": {}13341
+ }13342
+ },13343
+ "@alice_345:hs1": {13344
+ "ALICEDEVICE345": {13345
+ "algorithms": [13346
+ "m.olm.v1.curve25519-aes-sha2",13347
+ "m.megolm.v1.aes-sha2"13348
+ ],13349
+ "device_id": "ALICEDEVICE345",13350
+ "keys": {13351
+ "curve25519:ALICEDEVICE345": "zh7Bb6qhM2+KyODFvKFUR7e6dj9K1HLbZSNUNUCOaVM",13352
+ "ed25519:ALICEDEVICE345": "oiERQfPHhru8s5TROAs5Pbkycr6ADTqfp+F/xP/O3Sg"13353
+ },13354
+ "signatures": {13355
+ "@alice_345:hs1": {13356
+ "ed25519:ALICEDEVICE345": "50i2lGZSHeHdU471wPYW6pzffE9XWJlAq1VtfcFQNm0IFAfedE2Y9PhScJfLAYRkwSb+NGc4OD8OFCHQnhw3DQ"13357
+ }13358
+ },13359
+ "user_id": "@alice_345:hs1",13360
+ "unsigned": {}13361
+ }13362
+ },13363
+ "@alice_352:hs1": {13364
+ "ALICEDEVICE352": {13365
+ "algorithms": [13366
+ "m.olm.v1.curve25519-aes-sha2",13367
+ "m.megolm.v1.aes-sha2"13368
+ ],13369
+ "device_id": "ALICEDEVICE352",13370
+ "keys": {13371
+ "curve25519:ALICEDEVICE352": "4t8FpTnWvGETln5zpKSV92XhevUWKmPFl29rd5TFe3I",13372
+ "ed25519:ALICEDEVICE352": "AaHLcjDA6I0tAHb8Dc7HZRJ7HpLLQch+58ElO87WEUU"13373
+ },13374
+ "signatures": {13375
+ "@alice_352:hs1": {13376
+ "ed25519:ALICEDEVICE352": "cMx8lBSGPcUFIPmcYdEV84ea/nPokG/P94/br20lq2R57+QkLPlQjcPc/ZbKLGgtiXyNw7ugPvC2SMUhcx7HCw"13377
+ }13378
+ },13379
+ "user_id": "@alice_352:hs1",13380
+ "unsigned": {}13381
+ }13382
+ },13383
+ "@alice_356:hs1": {13384
+ "ALICEDEVICE356": {13385
+ "algorithms": [13386
+ "m.olm.v1.curve25519-aes-sha2",13387
+ "m.megolm.v1.aes-sha2"13388
+ ],13389
+ "device_id": "ALICEDEVICE356",13390
+ "keys": {13391
+ "curve25519:ALICEDEVICE356": "Svsuibq8L7s5SosEyVZZVBcjfRBYUqSxQvjAFs0F0n8",13392
+ "ed25519:ALICEDEVICE356": "xq+3cLooDMooLlQW69vV2EGyYO+MHAJte6NCPjm/yvk"13393
+ },13394
+ "signatures": {13395
+ "@alice_356:hs1": {13396
+ "ed25519:ALICEDEVICE356": "tXrL+n/YKJwWQbGaefDIYCjS3AE564TBDaucARySwruFQTPYoKOAK86sPzPREerZAb6uIUdYEKW8Jb6+qhZABg"13397
+ }13398
+ },13399
+ "user_id": "@alice_356:hs1",13400
+ "unsigned": {}13401
+ }13402
+ },13403
+ "@alice_358:hs1": {13404
+ "ALICEDEVICE358": {13405
+ "algorithms": [13406
+ "m.olm.v1.curve25519-aes-sha2",13407
+ "m.megolm.v1.aes-sha2"13408
+ ],13409
+ "device_id": "ALICEDEVICE358",13410
+ "keys": {13411
+ "curve25519:ALICEDEVICE358": "IpFkvw8sV0J0NHUnvRYjoiOndy4SoMgUwCcP34ZVeVE",13412
+ "ed25519:ALICEDEVICE358": "8xwDZl527TkXDisM6C6405XHwn1E9usI6f10DecGkx4"13413
+ },13414
+ "signatures": {13415
+ "@alice_358:hs1": {13416
+ "ed25519:ALICEDEVICE358": "NTm2npkDDkpwo4zpR7rUT5+y/iQ4cw55chWimFlFfwFS0pfi/k0kTMPwuxr575KgJF9nDuo4mS6iEUvP4RG8CA"13417
+ }13418
+ },13419
+ "user_id": "@alice_358:hs1",13420
+ "unsigned": {}13421
+ }13422
+ },13423
+ "@alice_361:hs1": {13424
+ "ALICEDEVICE361": {13425
+ "algorithms": [13426
+ "m.olm.v1.curve25519-aes-sha2",13427
+ "m.megolm.v1.aes-sha2"13428
+ ],13429
+ "device_id": "ALICEDEVICE361",13430
+ "keys": {13431
+ "curve25519:ALICEDEVICE361": "uoc6ESvOg2r1PVn2dhfWLkzHLcQrYVsY4JHRhphxX2M",13432
+ "ed25519:ALICEDEVICE361": "2TYNaHjnUqcPTBjIvLvKH02OQTlzT0Q1Mg705o59VVk"13433
+ },13434
+ "signatures": {13435
+ "@alice_361:hs1": {13436
+ "ed25519:ALICEDEVICE361": "YUyPBVBdrGJm9hZevT9gbu4TCUp7luIrpma632pWEt9F9JgBqLgbGjohmv/jdoNQTk+5gUXS1in8YRlOHQ3vCg"13437
+ }13438
+ },13439
+ "user_id": "@alice_361:hs1",13440
+ "unsigned": {}13441
+ }13442
+ },13443
+ "@alice_362:hs1": {13444
+ "ALICEDEVICE362": {13445
+ "algorithms": [13446
+ "m.olm.v1.curve25519-aes-sha2",13447
+ "m.megolm.v1.aes-sha2"13448
+ ],13449
+ "device_id": "ALICEDEVICE362",13450
+ "keys": {13451
+ "curve25519:ALICEDEVICE362": "tZHj2BkWDitt/8S6XJ3NkLECTToYL/OZ9ADtigI5uCY",13452
+ "ed25519:ALICEDEVICE362": "bdYAVjvbP+SGLhtT1ob57xmN+FiFpa0roalEwaXLJXM"13453
+ },13454
+ "signatures": {13455
+ "@alice_362:hs1": {13456
+ "ed25519:ALICEDEVICE362": "9pzflHDWvY64L/2yQHdPVxjksQri0v1pQTbCF+gByFMdAKuymy9QIOLh0tu8cu1Ny2eDVTpcrhilGViokQN0CA"13457
+ }13458
+ },13459
+ "user_id": "@alice_362:hs1",13460
+ "unsigned": {}13461
+ }13462
+ },13463
+ "@alice_368:hs1": {13464
+ "ALICEDEVICE368": {13465
+ "algorithms": [13466
+ "m.olm.v1.curve25519-aes-sha2",13467
+ "m.megolm.v1.aes-sha2"13468
+ ],13469
+ "device_id": "ALICEDEVICE368",13470
+ "keys": {13471
+ "curve25519:ALICEDEVICE368": "QIMm/QSjR4Ba9N5dK0DUGi/RmduZ3jCW2VRy87qmYww",13472
+ "ed25519:ALICEDEVICE368": "mw4ut1SP1R1bQnLghCRVcsK4oTY6yMrZ18z4q6NHQJ4"13473
+ },13474
+ "signatures": {13475
+ "@alice_368:hs1": {13476
+ "ed25519:ALICEDEVICE368": "uHEIvJse53kgdrW3XNcXM9Lg5lwHYoecBqlStsIMLKjN4xh7oH0KOYrsjAuo4hrUWLUkCBBUDMKFALICB961Bw"13477
+ }13478
+ },13479
+ "user_id": "@alice_368:hs1",13480
+ "unsigned": {}13481
+ }13482
+ },13483
+ "@alice_377:hs1": {13484
+ "ALICEDEVICE377": {13485
+ "algorithms": [13486
+ "m.olm.v1.curve25519-aes-sha2",13487
+ "m.megolm.v1.aes-sha2"13488
+ ],13489
+ "device_id": "ALICEDEVICE377",13490
+ "keys": {13491
+ "curve25519:ALICEDEVICE377": "JrEvqlEdDtICHsuNrhfFMC6xqEy6otkNuNv8z1UT5xs",13492
+ "ed25519:ALICEDEVICE377": "d6AECqyk02A5YqISasemdUPdooGAWCm/mfLKmZl6tSY"13493
+ },13494
+ "signatures": {13495
+ "@alice_377:hs1": {13496
+ "ed25519:ALICEDEVICE377": "gp7HZO6sf/wYgOYRcOE3VvjAtd9NWIqdhvSM4HDVvx0sHymLoWTCuI6KbxRQVlbv1I+3pQ2n4Pqb5ZrEEMFmBA"13497
+ }13498
+ },13499
+ "user_id": "@alice_377:hs1",13500
+ "unsigned": {}13501
+ }13502
+ },13503
+ "@alice_386:hs1": {13504
+ "ALICEDEVICE386": {13505
+ "algorithms": [13506
+ "m.olm.v1.curve25519-aes-sha2",13507
+ "m.megolm.v1.aes-sha2"13508
+ ],13509
+ "device_id": "ALICEDEVICE386",13510
+ "keys": {13511
+ "curve25519:ALICEDEVICE386": "Sx8wS37pl32iEmM6V2HHq4b7AcBaUw49noUXUDbLHE8",13512
+ "ed25519:ALICEDEVICE386": "fll1v3r2DZKSfyEPP0sCEI/vXHvUIkn2evJ9lbCFIsE"13513
+ },13514
+ "signatures": {13515
+ "@alice_386:hs1": {13516
+ "ed25519:ALICEDEVICE386": "255zfsoLiLHVJk103IK0i2Sv2u4qUwQPXSCdtJPyI4BOYZnlnlkIL3b2LGa128I6Et/9DHawfD2wUA0UlZWQAw"13517
+ }13518
+ },13519
+ "user_id": "@alice_386:hs1",13520
+ "unsigned": {}13521
+ }13522
+ },13523
+ "@alice_389:hs1": {13524
+ "ALICEDEVICE389": {13525
+ "algorithms": [13526
+ "m.olm.v1.curve25519-aes-sha2",13527
+ "m.megolm.v1.aes-sha2"13528
+ ],13529
+ "device_id": "ALICEDEVICE389",13530
+ "keys": {13531
+ "curve25519:ALICEDEVICE389": "WwcSmKBMyOVAzg3hfjVUrY8HtYLSzPC4Ug18NRdCMGg",13532
+ "ed25519:ALICEDEVICE389": "UoCrKRhr7YmbT2MQPdDhCFgkQV8hseS3zgMp+RTWQ4Q"13533
+ },13534
+ "signatures": {13535
+ "@alice_389:hs1": {13536
+ "ed25519:ALICEDEVICE389": "Ujs2qhuPGKpVt7YPePUDxnhGPT65rEbUFls+QUoxcKVHLbgtteMOJMbbfQxMuApZ9d5CLqbb1iFcU2xJZeOvAw"13537
+ }13538
+ },13539
+ "user_id": "@alice_389:hs1",13540
+ "unsigned": {}13541
+ }13542
+ },13543
+ "@alice_39:hs1": {13544
+ "ALICEDEVICE39": {13545
+ "algorithms": [13546
+ "m.olm.v1.curve25519-aes-sha2",13547
+ "m.megolm.v1.aes-sha2"13548
+ ],13549
+ "device_id": "ALICEDEVICE39",13550
+ "keys": {13551
+ "curve25519:ALICEDEVICE39": "KZe/1xsutj59jR3R0LpZAl+J24l3ha9Vz+ZtzwOgkG4",13552
+ "ed25519:ALICEDEVICE39": "ibYQGm5/sCdeAbgfzNlUF25eHHYltksKPNmjRiU2mvg"13553
+ },13554
+ "signatures": {13555
+ "@alice_39:hs1": {13556
+ "ed25519:ALICEDEVICE39": "0T0hh7H6cNSGQ05nQ1dEEk12a4wnP8D71X+ccpQUjcO+Az4VD4uyw6M3GGKGDNPocGHMLb+n3I0dqdBkZKXbBQ"13557
+ }13558
+ },13559
+ "user_id": "@alice_39:hs1",13560
+ "unsigned": {}13561
+ }13562
+ },13563
+ "@alice_405:hs1": {13564
+ "ALICEDEVICE405": {13565
+ "algorithms": [13566
+ "m.olm.v1.curve25519-aes-sha2",13567
+ "m.megolm.v1.aes-sha2"13568
+ ],13569
+ "device_id": "ALICEDEVICE405",13570
+ "keys": {13571
+ "curve25519:ALICEDEVICE405": "U1RyiVvuE7jAXUEvMPXVWd7OJbDqS4tODdkbCi2c4Do",13572
+ "ed25519:ALICEDEVICE405": "Csj60zRSs/J7s0mNJm9q7D1ZK6Q6V9+p7nlW3arG/sM"13573
+ },13574
+ "signatures": {13575
+ "@alice_405:hs1": {13576
+ "ed25519:ALICEDEVICE405": "ZBLPvHcmSYVfcaKTuuIoVkz8+fAXJ5s//zrgYu4ksqJlfNiUTP1RiWeWSXWgahq26mmUxwxOS61+GakG7sk/DA"13577
+ }13578
+ },13579
+ "user_id": "@alice_405:hs1",13580
+ "unsigned": {}13581
+ }13582
+ },13583
+ "@alice_422:hs1": {13584
+ "ALICEDEVICE422": {13585
+ "algorithms": [13586
+ "m.olm.v1.curve25519-aes-sha2",13587
+ "m.megolm.v1.aes-sha2"13588
+ ],13589
+ "device_id": "ALICEDEVICE422",13590
+ "keys": {13591
+ "curve25519:ALICEDEVICE422": "znhJIRuJaedlgwbkHwtMU/Y9Tyxkzj9bVIvsGKc4E0Q",13592
+ "ed25519:ALICEDEVICE422": "jhFhMFxQ3/BibF+zzlgB00Wsvlfj0QdK9/YIS/xGn2w"13593
+ },13594
+ "signatures": {13595
+ "@alice_422:hs1": {13596
+ "ed25519:ALICEDEVICE422": "DfY1mVYK+lXb9aUUAMx9D7NNEt9HHGOlWcxP7HP/FYZbyYw19O2cOf3z+4mUstPZmovGqlosOYoaSBSz2aZADA"13597
+ }13598
+ },13599
+ "user_id": "@alice_422:hs1",13600
+ "unsigned": {}13601
+ }13602
+ },13603
+ "@alice_438:hs1": {13604
+ "ALICEDEVICE438": {13605
+ "algorithms": [13606
+ "m.olm.v1.curve25519-aes-sha2",13607
+ "m.megolm.v1.aes-sha2"13608
+ ],13609
+ "device_id": "ALICEDEVICE438",13610
+ "keys": {13611
+ "curve25519:ALICEDEVICE438": "QzpceMaO9xFMfXvUQmENfCPz81rNAG/nqp87YBaBIhM",13612
+ "ed25519:ALICEDEVICE438": "kACh3RSKkwiOAqzk0L0eaiZK62MhOHJzrAyGWzQXuwA"13613
+ },13614
+ "signatures": {13615
+ "@alice_438:hs1": {13616
+ "ed25519:ALICEDEVICE438": "1nwGdif3uQb5PowlxMh7e6jTGBrbym0IcUVPy350YdZUWuCED8sa62PYF9Na6uSkfKoU5a4P0F4DasqHLj6TCw"13617
+ }13618
+ },13619
+ "user_id": "@alice_438:hs1",13620
+ "unsigned": {}13621
+ }13622
+ },13623
+ "@alice_43:hs1": {13624
+ "ALICEDEVICE43": {13625
+ "algorithms": [13626
+ "m.olm.v1.curve25519-aes-sha2",13627
+ "m.megolm.v1.aes-sha2"13628
+ ],13629
+ "device_id": "ALICEDEVICE43",13630
+ "keys": {13631
+ "curve25519:ALICEDEVICE43": "kXNY+V5BoBe0jSxCLbddxE0bSn2orxTNWhrn8Ace5yo",13632
+ "ed25519:ALICEDEVICE43": "2naTaUQqsgh/rjIhXxaK/fjakRfrTegNSWRdkuDCMQQ"13633
+ },13634
+ "signatures": {13635
+ "@alice_43:hs1": {13636
+ "ed25519:ALICEDEVICE43": "T5spUexNuyKi2YO5zDmDmhNcip2dbf2gs5gQQAdTeDLWuoSnUORlarIWDWB4cXpA/rKXrlOWY+9JOOe3KSv+DA"13637
+ }13638
+ },13639
+ "user_id": "@alice_43:hs1",13640
+ "unsigned": {}13641
+ }13642
+ },13643
+ "@alice_443:hs1": {13644
+ "ALICEDEVICE443": {13645
+ "algorithms": [13646
+ "m.olm.v1.curve25519-aes-sha2",13647
+ "m.megolm.v1.aes-sha2"13648
+ ],13649
+ "device_id": "ALICEDEVICE443",13650
+ "keys": {13651
+ "curve25519:ALICEDEVICE443": "Tqgp+SrLZ9hcqg2gT0E60DOhnmF7PQzMlozMIg8RNHE",13652
+ "ed25519:ALICEDEVICE443": "TwB5DKcDPJ4I+PbrNpd5IMJY3x3AAjp2GBqFb7FLiBo"13653
+ },13654
+ "signatures": {13655
+ "@alice_443:hs1": {13656
+ "ed25519:ALICEDEVICE443": "X1Ti0ym0/UTk1qnMAxoIlSTkQdWUKxsKlOKfHIqFZxKubwtwN1rWraG5rbWMEwgi5UyziHosjtcX+yKC7kMTAw"13657
+ }13658
+ },13659
+ "user_id": "@alice_443:hs1",13660
+ "unsigned": {}13661
+ }13662
+ },13663
+ "@alice_448:hs1": {13664
+ "ALICEDEVICE448": {13665
+ "algorithms": [13666
+ "m.olm.v1.curve25519-aes-sha2",13667
+ "m.megolm.v1.aes-sha2"13668
+ ],13669
+ "device_id": "ALICEDEVICE448",13670
+ "keys": {13671
+ "curve25519:ALICEDEVICE448": "D2y/gvrbltg2dQIZMWTVmE/kgK+9R7xsBHtD4Rj09iA",13672
+ "ed25519:ALICEDEVICE448": "De3NxCe68JpWYQQz4Q5xnUHJS+mSiOXfrmxeWu8Fm80"13673
+ },13674
+ "signatures": {13675
+ "@alice_448:hs1": {13676
+ "ed25519:ALICEDEVICE448": "LhvniDyBOsDPnQdyX7SblfK1up2q+xwaKBJpsOYm3nUcKJObMrjqgzwDt4K1q7/r5eX5FASrgVY0ZgUvhERNCg"13677
+ }13678
+ },13679
+ "user_id": "@alice_448:hs1",13680
+ "unsigned": {}13681
+ }13682
+ },13683
+ "@alice_450:hs1": {13684
+ "ALICEDEVICE450": {13685
+ "algorithms": [13686
+ "m.olm.v1.curve25519-aes-sha2",13687
+ "m.megolm.v1.aes-sha2"13688
+ ],13689
+ "device_id": "ALICEDEVICE450",13690
+ "keys": {13691
+ "curve25519:ALICEDEVICE450": "72Kd4+wSePmmUteFIidP0/1nb761QXf2ykUtw9XAVFQ",13692
+ "ed25519:ALICEDEVICE450": "DGNxTmgbA1mKylaQzisUTXuBXX6uNurujxYrs6ZINHk"13693
+ },13694
+ "signatures": {13695
+ "@alice_450:hs1": {13696
+ "ed25519:ALICEDEVICE450": "ElII48ioRtATkxtnIO/pmHKI5LJ+DiOazPOl9UhT5K9yqYma8LVdBGsfT0pJ1iy4OdNK0CRH7U7K5lbqUC77CQ"13697
+ }13698
+ },13699
+ "user_id": "@alice_450:hs1",13700
+ "unsigned": {}13701
+ }13702
+ },13703
+ "@alice_459:hs1": {13704
+ "ALICEDEVICE459": {13705
+ "algorithms": [13706
+ "m.olm.v1.curve25519-aes-sha2",13707
+ "m.megolm.v1.aes-sha2"13708
+ ],13709
+ "device_id": "ALICEDEVICE459",13710
+ "keys": {13711
+ "curve25519:ALICEDEVICE459": "06gLHX4XC8F40V3f9cYtDBytqmkDwLlQgTqhwBhRzCA",13712
+ "ed25519:ALICEDEVICE459": "VtFHvxF/tTRRFPAvrExMpgaibbC0BB3EnzqrAbhYvxU"13713
+ },13714
+ "signatures": {13715
+ "@alice_459:hs1": {13716
+ "ed25519:ALICEDEVICE459": "Z/suUs4T3EnKIjl0WDou++ruBE3DtagO8VLxgVGQQJ646BJVAHvXxK7NxQjyyEXWlUkky/3/33pYW5ITZQhpDA"13717
+ }13718
+ },13719
+ "user_id": "@alice_459:hs1",13720
+ "unsigned": {}13721
+ }13722
+ },13723
+ "@alice_45:hs1": {13724
+ "ALICEDEVICE45": {13725
+ "algorithms": [13726
+ "m.olm.v1.curve25519-aes-sha2",13727
+ "m.megolm.v1.aes-sha2"13728
+ ],13729
+ "device_id": "ALICEDEVICE45",13730
+ "keys": {13731
+ "curve25519:ALICEDEVICE45": "+7DmnxBeQp+vNyJncJ8IlgPjtm5vm4NQm/Xkc1b4SEs",13732
+ "ed25519:ALICEDEVICE45": "F8NURTKfHyaaPSM7rLOKF4Q9ZCcDHZSYNoCcouN9QpY"13733
+ },13734
+ "signatures": {13735
+ "@alice_45:hs1": {13736
+ "ed25519:ALICEDEVICE45": "OqE/q2VwI5NLsHhDYYSVXQ1OIrABV1i2i/BwINhvRxrMbRwJh8rpMf0KGU1wP368eiGtBfnk0ZOIcyPvWKTgBg"13737
+ }13738
+ },13739
+ "user_id": "@alice_45:hs1",13740
+ "unsigned": {}13741
+ }13742
+ },13743
+ "@alice_466:hs1": {13744
+ "ALICEDEVICE466": {13745
+ "algorithms": [13746
+ "m.olm.v1.curve25519-aes-sha2",13747
+ "m.megolm.v1.aes-sha2"13748
+ ],13749
+ "device_id": "ALICEDEVICE466",13750
+ "keys": {13751
+ "curve25519:ALICEDEVICE466": "pM3CtXGiwjYIZ1CV8j/CxIzbtcKQ004t/vpdwH6nEiA",13752
+ "ed25519:ALICEDEVICE466": "LqP6+0VNWNX14/gAO4SHb2vd7FzEQI8P6skz2ZtunKQ"13753
+ },13754
+ "signatures": {13755
+ "@alice_466:hs1": {13756
+ "ed25519:ALICEDEVICE466": "HjvubrnP9NQNo8h46UHTnvW/bB/0HjkrxJPriSYV5hZfNuMDm4V1ayX2IQoCZSf6Wy8j3sFRBQMOZdJ/Xj/CAA"13757
+ }13758
+ },13759
+ "user_id": "@alice_466:hs1",13760
+ "unsigned": {}13761
+ }13762
+ },13763
+ "@alice_473:hs1": {13764
+ "ALICEDEVICE473": {13765
+ "algorithms": [13766
+ "m.olm.v1.curve25519-aes-sha2",13767
+ "m.megolm.v1.aes-sha2"13768
+ ],13769
+ "device_id": "ALICEDEVICE473",13770
+ "keys": {13771
+ "curve25519:ALICEDEVICE473": "skRdwpuFTyzwz0ochFYmF6SlC1uic0u7vwbOp7LvU04",13772
+ "ed25519:ALICEDEVICE473": "RgbClgBgHfqwkDuFPDtCkNhgO5vqLH11WwvtkCfPhGE"13773
+ },13774
+ "signatures": {13775
+ "@alice_473:hs1": {13776
+ "ed25519:ALICEDEVICE473": "Z36E8ft+2jrWUdRiytrApEIEjCs5vn0ZeiP2nUmTwMGxGqrgrx7JG8eifEvElWH5CG24H5LV3H/Y19LgyWYSBg"13777
+ }13778
+ },13779
+ "user_id": "@alice_473:hs1",13780
+ "unsigned": {}13781
+ }13782
+ },13783
+ "@alice_485:hs1": {13784
+ "ALICEDEVICE485": {13785
+ "algorithms": [13786
+ "m.olm.v1.curve25519-aes-sha2",13787
+ "m.megolm.v1.aes-sha2"13788
+ ],13789
+ "device_id": "ALICEDEVICE485",13790
+ "keys": {13791
+ "curve25519:ALICEDEVICE485": "JDFu1PqhUNBn9cFQ2IhJX3Exhwb+XL9HEuQX5J5YsVM",13792
+ "ed25519:ALICEDEVICE485": "olEE7cr/TLiicvx3/Riweq0qMoORtUzHQYr6HBIGHl0"13793
+ },13794
+ "signatures": {13795
+ "@alice_485:hs1": {13796
+ "ed25519:ALICEDEVICE485": "ivQpag53PON2yhtCXddVPARG81qTu2BWJUsshUUESJYitULsg+fBoNtQ8/IjZFDEq2rhKauKTSF9WSr07cCCAQ"13797
+ }13798
+ },13799
+ "user_id": "@alice_485:hs1",13800
+ "unsigned": {}13801
+ }13802
+ },13803
+ "@alice_48:hs1": {13804
+ "ALICEDEVICE48": {13805
+ "algorithms": [13806
+ "m.olm.v1.curve25519-aes-sha2",13807
+ "m.megolm.v1.aes-sha2"13808
+ ],13809
+ "device_id": "ALICEDEVICE48",13810
+ "keys": {13811
+ "curve25519:ALICEDEVICE48": "62nQm+3mL0bAdR4yFvrULjpTx2VbC07DH5e3UpVvzA8",13812
+ "ed25519:ALICEDEVICE48": "ys9iFSMQUvnZkEVUCDrl6qcxnl7l6o/WGah/96nHJ+w"13813
+ },13814
+ "signatures": {13815
+ "@alice_48:hs1": {13816
+ "ed25519:ALICEDEVICE48": "yXIVNaGripPiVPB4lnAYdLFFJ2USR+Xg0ci5oGXXzSgvsOGPfM30eKsVYEVkUwfTGfiFYF/PnmsVUZhzp8S5BA"13817
+ }13818
+ },13819
+ "user_id": "@alice_48:hs1",13820
+ "unsigned": {}13821
+ }13822
+ },13823
+ "@alice_491:hs1": {13824
+ "ALICEDEVICE491": {13825
+ "algorithms": [13826
+ "m.olm.v1.curve25519-aes-sha2",13827
+ "m.megolm.v1.aes-sha2"13828
+ ],13829
+ "device_id": "ALICEDEVICE491",13830
+ "keys": {13831
+ "curve25519:ALICEDEVICE491": "LkUlT/SPDRs5zQGfAQIGGSzMbn8a7joAaB28FkY/7Uk",13832
+ "ed25519:ALICEDEVICE491": "B16AeGv0aAtz7TIGlLcO0WI9+XHb0+4yTYuI7Y6YSVA"13833
+ },13834
+ "signatures": {13835
+ "@alice_491:hs1": {13836
+ "ed25519:ALICEDEVICE491": "m+ywz76+P6Z5UofzBWYEgn+M3gggOhcxhgb04j6Jwei8MqH31ETuH8Eh7RLADn6byaZYxoC7YChxkbRf3k3EAQ"13837
+ }13838
+ },13839
+ "user_id": "@alice_491:hs1",13840
+ "unsigned": {}13841
+ }13842
+ },13843
+ "@alice_492:hs1": {13844
+ "ALICEDEVICE492": {13845
+ "algorithms": [13846
+ "m.olm.v1.curve25519-aes-sha2",13847
+ "m.megolm.v1.aes-sha2"13848
+ ],13849
+ "device_id": "ALICEDEVICE492",13850
+ "keys": {13851
+ "curve25519:ALICEDEVICE492": "b2+XSWNTt7erkoAwFOq1XAY/Tvhz5E/DE7fPN5EEI2k",13852
+ "ed25519:ALICEDEVICE492": "+DjjIDC6yZfaYRJZzp9LHWh2ViIFJTd+ojr3fcVpR2w"13853
+ },13854
+ "signatures": {13855
+ "@alice_492:hs1": {13856
+ "ed25519:ALICEDEVICE492": "fZsgIxhbkB9EuJqrl79riYhQz3hd5dwtmj0ybRy4c0YhiNgXscS/OOSHNV3mWhYV2jHnaNYewXWW0SwcHwcdBw"13857
+ }13858
+ },13859
+ "user_id": "@alice_492:hs1",13860
+ "unsigned": {}13861
+ }13862
+ },13863
+ "@alice_502:hs1": {13864
+ "ALICEDEVICE502": {13865
+ "algorithms": [13866
+ "m.olm.v1.curve25519-aes-sha2",13867
+ "m.megolm.v1.aes-sha2"13868
+ ],13869
+ "device_id": "ALICEDEVICE502",13870
+ "keys": {13871
+ "curve25519:ALICEDEVICE502": "YkQG97wxEU3jdpJOxh8il9TI7ST4OmyV2g+g7cOValI",13872
+ "ed25519:ALICEDEVICE502": "2gP9ayuJuPmX5lXOg9r/T9+sAenbmq9G4fBBoiceBRU"13873
+ },13874
+ "signatures": {13875
+ "@alice_502:hs1": {13876
+ "ed25519:ALICEDEVICE502": "Ss//Be7rWEgq+knHM0QDCKZnKgjpvziWzmp4Qtm2zfwlqMAGgRlMiT2wUzmllNPHXknjHkeieJxfsAtSlyo/BA"13877
+ }13878
+ },13879
+ "user_id": "@alice_502:hs1",13880
+ "unsigned": {}13881
+ }13882
+ },13883
+ "@alice_512:hs1": {13884
+ "ALICEDEVICE512": {13885
+ "algorithms": [13886
+ "m.olm.v1.curve25519-aes-sha2",13887
+ "m.megolm.v1.aes-sha2"13888
+ ],13889
+ "device_id": "ALICEDEVICE512",13890
+ "keys": {13891
+ "curve25519:ALICEDEVICE512": "v33UsVI8hxU+lTarZ7H0NoVA8otiYAzuA4BzdE3YgA4",13892
+ "ed25519:ALICEDEVICE512": "+NS0ACzY9+Mnxucg7IfreQQJ2XI9uknMWku6+jkSGyM"13893
+ },13894
+ "signatures": {13895
+ "@alice_512:hs1": {13896
+ "ed25519:ALICEDEVICE512": "vJohaVaIzTu7aUU7YF8J7OrpYomH6elBN+b4PKywsMDwEcYfybsjkoOsuysxEkUZNpdX3PLUFYi3HQ+jY9ZoBQ"13897
+ }13898
+ },13899
+ "user_id": "@alice_512:hs1",13900
+ "unsigned": {}13901
+ }13902
+ },13903
+ "@alice_514:hs1": {13904
+ "ALICEDEVICE514": {13905
+ "algorithms": [13906
+ "m.olm.v1.curve25519-aes-sha2",13907
+ "m.megolm.v1.aes-sha2"13908
+ ],13909
+ "device_id": "ALICEDEVICE514",13910
+ "keys": {13911
+ "curve25519:ALICEDEVICE514": "VqaPiqtrvSCnP9X7IMnVAUnFvDuNaIkU8Aa6RftIdWQ",13912
+ "ed25519:ALICEDEVICE514": "swj7O4RCDahA4ojS4tR1Mh26Bhx0FqxfrBNgzjbF5tk"13913
+ },13914
+ "signatures": {13915
+ "@alice_514:hs1": {13916
+ "ed25519:ALICEDEVICE514": "4uApHlTLLuUsKgnrW6udyZ2oJGbESGtF8aEDDmDNVn+oz1BBbhUlPDydkmzy5gisyWYzNOGTrFaUTn3qTgbICg"13917
+ }13918
+ },13919
+ "user_id": "@alice_514:hs1",13920
+ "unsigned": {}13921
+ }13922
+ },13923
+ "@alice_516:hs1": {13924
+ "ALICEDEVICE516": {13925
+ "algorithms": [13926
+ "m.olm.v1.curve25519-aes-sha2",13927
+ "m.megolm.v1.aes-sha2"13928
+ ],13929
+ "device_id": "ALICEDEVICE516",13930
+ "keys": {13931
+ "curve25519:ALICEDEVICE516": "JevbR8z/Z6Wmlvj7FIsuFqwC7q9/Vs3Sly2+u/s7KiI",13932
+ "ed25519:ALICEDEVICE516": "Qo7s8skK8Qe8ujfyHuC1baX5gcO6m5YcZcztHZa4AsM"13933
+ },13934
+ "signatures": {13935
+ "@alice_516:hs1": {13936
+ "ed25519:ALICEDEVICE516": "REMSLjFWzJDrHWNP78qJI4FWV9Nzal2G1nkkZpf9VEwjrn28N+XowK2Qu36Q+gnYch5vIHQwXiX4x4dJaNHhBQ"13937
+ }13938
+ },13939
+ "user_id": "@alice_516:hs1",13940
+ "unsigned": {}13941
+ }13942
+ },13943
+ "@alice_540:hs1": {13944
+ "ALICEDEVICE540": {13945
+ "algorithms": [13946
+ "m.olm.v1.curve25519-aes-sha2",13947
+ "m.megolm.v1.aes-sha2"13948
+ ],13949
+ "device_id": "ALICEDEVICE540",13950
+ "keys": {13951
+ "curve25519:ALICEDEVICE540": "cs+HI3vO87C4/pMnzudguB4gMZmMTJPLqPQ+BlYgPyQ",13952
+ "ed25519:ALICEDEVICE540": "T3zJL9cfzciqihbeHa2zinEu3c/RjfSuRIWAL73rdSE"13953
+ },13954
+ "signatures": {13955
+ "@alice_540:hs1": {13956
+ "ed25519:ALICEDEVICE540": "QhFu2UZg5nUI/P05jPqi3MvnWCplf2P0XFouywWSMmJDzUlW39l8jUs9KN01uRqE9wLhNa0OVsVrRRbEQRq9Bw"13957
+ }13958
+ },13959
+ "user_id": "@alice_540:hs1",13960
+ "unsigned": {}13961
+ }13962
+ },13963
+ "@alice_543:hs1": {13964
+ "ALICEDEVICE543": {13965
+ "algorithms": [13966
+ "m.olm.v1.curve25519-aes-sha2",13967
+ "m.megolm.v1.aes-sha2"13968
+ ],13969
+ "device_id": "ALICEDEVICE543",13970
+ "keys": {13971
+ "curve25519:ALICEDEVICE543": "Jm+FUXsCCEPWBKGxLN6kIO2Evl9hRnu1zlN6+ORt1Q0",13972
+ "ed25519:ALICEDEVICE543": "6QTt9Z0rJRyoueX9eNtiawHUGd0z4etcePFQARk8txk"13973
+ },13974
+ "signatures": {13975
+ "@alice_543:hs1": {13976
+ "ed25519:ALICEDEVICE543": "DLaTP5gshmGDz0ziNqjaQgS0i7h4mfRWcywUxtNTcdHb5LZFtbdMMnF+KL8qeq/Q0bbzOWD9ramycRYcm8BtBQ"13977
+ }13978
+ },13979
+ "user_id": "@alice_543:hs1",13980
+ "unsigned": {}13981
+ }13982
+ },13983
+ "@alice_555:hs1": {13984
+ "ALICEDEVICE555": {13985
+ "algorithms": [13986
+ "m.olm.v1.curve25519-aes-sha2",13987
+ "m.megolm.v1.aes-sha2"13988
+ ],13989
+ "device_id": "ALICEDEVICE555",13990
+ "keys": {13991
+ "curve25519:ALICEDEVICE555": "jR5JwtPGN5TTBl3L6KNkEIf6i5/U/CSZeWijIvHfSFQ",13992
+ "ed25519:ALICEDEVICE555": "1br1wNY6aoaMwFfqa6UpVAtIsjGw2wLVkkSfeG/GTDY"13993
+ },13994
+ "signatures": {13995
+ "@alice_555:hs1": {13996
+ "ed25519:ALICEDEVICE555": "ZeeUZ2BAXn9DHqZdG+KbOdqVmnnUDEpt2awMSfKGKoWGr2/CyLU0rMnT7ZE/1IlXFVCXMFtiaCschV8EpJwWBg"13997
+ }13998
+ },13999
+ "user_id": "@alice_555:hs1",14000
+ "unsigned": {}14001
+ }14002
+ },14003
+ "@alice_558:hs1": {14004
+ "ALICEDEVICE558": {14005
+ "algorithms": [14006
+ "m.olm.v1.curve25519-aes-sha2",14007
+ "m.megolm.v1.aes-sha2"14008
+ ],14009
+ "device_id": "ALICEDEVICE558",14010
+ "keys": {14011
+ "curve25519:ALICEDEVICE558": "PZYenV39fWTrkErNdH4VPY4kFg281TSjrcJ0aASVvFo",14012
+ "ed25519:ALICEDEVICE558": "GPATFIjKmOQhMOYmFoLbkJRJULXSxSQVfNtvlmzv4KQ"14013
+ },14014
+ "signatures": {14015
+ "@alice_558:hs1": {14016
+ "ed25519:ALICEDEVICE558": "Ivjg0HDlVK1h8/GIQAeXbn0OhUGbq8X6AczWf2p8MLUabHGU7PElQvb7QhNi/6aV5V4YaTcRa8Y+K+ZZajYLBQ"14017
+ }14018
+ },14019
+ "user_id": "@alice_558:hs1",14020
+ "unsigned": {}14021
+ }14022
+ },14023
+ "@alice_560:hs1": {14024
+ "ALICEDEVICE560": {14025
+ "algorithms": [14026
+ "m.olm.v1.curve25519-aes-sha2",14027
+ "m.megolm.v1.aes-sha2"14028
+ ],14029
+ "device_id": "ALICEDEVICE560",14030
+ "keys": {14031
+ "curve25519:ALICEDEVICE560": "b+XuDPXKg5Agk4juyXnQAy+R7Ie3+rxZzTrqaqUohhs",14032
+ "ed25519:ALICEDEVICE560": "ru3E0fcPHYP5QZF1+2OhUwaAlYRy48jS53i3R8CGL50"14033
+ },14034
+ "signatures": {14035
+ "@alice_560:hs1": {14036
+ "ed25519:ALICEDEVICE560": "luQeKYZtOnj4Kj/l1IdcMzjEI/BXtPh0DJDAmPW3kAG4gS6k4YdaNZbZTsMpfBz8iePjb+WT5pvZYGkda6YiAw"14037
+ }14038
+ },14039
+ "user_id": "@alice_560:hs1",14040
+ "unsigned": {}14041
+ }14042
+ },14043
+ "@alice_590:hs1": {14044
+ "ALICEDEVICE590": {14045
+ "algorithms": [14046
+ "m.olm.v1.curve25519-aes-sha2",14047
+ "m.megolm.v1.aes-sha2"14048
+ ],14049
+ "device_id": "ALICEDEVICE590",14050
+ "keys": {14051
+ "curve25519:ALICEDEVICE590": "2Xstbp5zGspslTf2xRoWQJgMz3SoejF8pM1NfAQ84zw",14052
+ "ed25519:ALICEDEVICE590": "ZKatHYw2z4e9rF6PMp9sJYqvxEZJN4CsuLy6YhUNTVw"14053
+ },14054
+ "signatures": {14055
+ "@alice_590:hs1": {14056
+ "ed25519:ALICEDEVICE590": "3CqqQiqXhAQ9HWN18TWGI2Rzp1B9AwLoqjGTgoGPHTOHZJ+K+NulBmt/A2jvwCvVzCeKSoE5zuIO7QzBtxRNCw"14057
+ }14058
+ },14059
+ "user_id": "@alice_590:hs1",14060
+ "unsigned": {}14061
+ }14062
+ },14063
+ "@alice_596:hs1": {14064
+ "ALICEDEVICE596": {14065
+ "algorithms": [14066
+ "m.olm.v1.curve25519-aes-sha2",14067
+ "m.megolm.v1.aes-sha2"14068
+ ],14069
+ "device_id": "ALICEDEVICE596",14070
+ "keys": {14071
+ "curve25519:ALICEDEVICE596": "6F3gZZZp9jYgpMGTDEXRL/OAum9paahMbcIMhMhgdCA",14072
+ "ed25519:ALICEDEVICE596": "7FRxrO9zKRGaC6ngEFt9HksIrqpVq9AcWCImTClJZHQ"14073
+ },14074
+ "signatures": {14075
+ "@alice_596:hs1": {14076
+ "ed25519:ALICEDEVICE596": "lGQTAL0FHygsNgC0RJtl2zzssguPAXLs5h+s27bgkEIBSR6mjc1jkIauW584oPzPLdwC+224freyLJbW0Q1dAg"14077
+ }14078
+ },14079
+ "user_id": "@alice_596:hs1",14080
+ "unsigned": {}14081
+ }14082
+ },14083
+ "@alice_598:hs1": {14084
+ "ALICEDEVICE598": {14085
+ "algorithms": [14086
+ "m.olm.v1.curve25519-aes-sha2",14087
+ "m.megolm.v1.aes-sha2"14088
+ ],14089
+ "device_id": "ALICEDEVICE598",14090
+ "keys": {14091
+ "curve25519:ALICEDEVICE598": "2fMHT2TVrZgVI8+HLLJ7t19LPmYgFLH6VK40WABO9Vw",14092
+ "ed25519:ALICEDEVICE598": "bKEZ6HjEjkAzDNE6/H54hqMmwuhMtIZ6jqBUvQ/58YM"14093
+ },14094
+ "signatures": {14095
+ "@alice_598:hs1": {14096
+ "ed25519:ALICEDEVICE598": "PTPuQWDG60aZ7KbWeHqp5A0rc1iC8OGB/lrIw7t8dSLUalvJMHHKRqgRbPUpAhucGCPoWlyzI3VaqrSvMmLRDg"14097
+ }14098
+ },14099
+ "user_id": "@alice_598:hs1",14100
+ "unsigned": {}14101
+ }14102
+ },14103
+ "@alice_599:hs1": {14104
+ "ALICEDEVICE599": {14105
+ "algorithms": [14106
+ "m.olm.v1.curve25519-aes-sha2",14107
+ "m.megolm.v1.aes-sha2"14108
+ ],14109
+ "device_id": "ALICEDEVICE599",14110
+ "keys": {14111
+ "curve25519:ALICEDEVICE599": "v3KknLJjrXmCYhGyqwNRqclm23iBXSJt7AI9Wvh48nI",14112
+ "ed25519:ALICEDEVICE599": "NKvdgWtxo/6smMae9ieZZKYJA63TJiCof/jVH9E2HXo"14113
+ },14114
+ "signatures": {14115
+ "@alice_599:hs1": {14116
+ "ed25519:ALICEDEVICE599": "OdZuMtA0TQM8VceyQCfw70o9sbNzczzwH+Mje+m4wYiR3lzM6RDv//HZFu06Yy8ilL7dC2AOWXSinVcgsuuKCQ"14117
+ }14118
+ },14119
+ "user_id": "@alice_599:hs1",14120
+ "unsigned": {}14121
+ }14122
+ },14123
+ "@alice_617:hs1": {14124
+ "ALICEDEVICE617": {14125
+ "algorithms": [14126
+ "m.olm.v1.curve25519-aes-sha2",14127
+ "m.megolm.v1.aes-sha2"14128
+ ],14129
+ "device_id": "ALICEDEVICE617",14130
+ "keys": {14131
+ "curve25519:ALICEDEVICE617": "TzBOzbJnhPB42UHj3YZZkUQ7HBbCVo6z6m1JBhI0Clc",14132
+ "ed25519:ALICEDEVICE617": "z4ZkmHL3hn6PHO3vacEY3oyu+asSXG5U4cO617u1gnA"14133
+ },14134
+ "signatures": {14135
+ "@alice_617:hs1": {14136
+ "ed25519:ALICEDEVICE617": "JxyarrUHNquVTu0Owp+IN6KtgT+J1CEamKYZsoe9RJZfPmh4pVilk9oMiPmuT4IpRswWfMagulINoDcbVUdXDA"14137
+ }14138
+ },14139
+ "user_id": "@alice_617:hs1",14140
+ "unsigned": {}14141
+ }14142
+ },14143
+ "@alice_627:hs1": {14144
+ "ALICEDEVICE627": {14145
+ "algorithms": [14146
+ "m.olm.v1.curve25519-aes-sha2",14147
+ "m.megolm.v1.aes-sha2"14148
+ ],14149
+ "device_id": "ALICEDEVICE627",14150
+ "keys": {14151
+ "curve25519:ALICEDEVICE627": "Eyjz2OoOKHiETQEFhXlE6GDRnvjiOc4fXyHqwNRm6BA",14152
+ "ed25519:ALICEDEVICE627": "MqbqUOBCgDD26Kb6Ov7cK4ThmlB5OBogoRWN4ms/xqo"14153
+ },14154
+ "signatures": {14155
+ "@alice_627:hs1": {14156
+ "ed25519:ALICEDEVICE627": "AHR82bUxZt56lkd1VLEKUuXd4S6kq/35cIVbpOjvmEkKCH03lee1WC3jRDUq5oazg8dyTX5Q73P3Kk6HiYwcAQ"14157
+ }14158
+ },14159
+ "user_id": "@alice_627:hs1",14160
+ "unsigned": {}14161
+ }14162
+ },14163
+ "@alice_633:hs1": {14164
+ "ALICEDEVICE633": {14165
+ "algorithms": [14166
+ "m.olm.v1.curve25519-aes-sha2",14167
+ "m.megolm.v1.aes-sha2"14168
+ ],14169
+ "device_id": "ALICEDEVICE633",14170
+ "keys": {14171
+ "curve25519:ALICEDEVICE633": "HSwDO+fR7xIsCpIAeoD+lEAmx+rDDREIsrQP6du1Q28",14172
+ "ed25519:ALICEDEVICE633": "SUkM+ARWs4CXc1mch/pYrtiFnIWu610CABWHmEatkhw"14173
+ },14174
+ "signatures": {14175
+ "@alice_633:hs1": {14176
+ "ed25519:ALICEDEVICE633": "eyErp1d9+B5csGLMCacyr4KBRtWluUoMcPPonHo0VICN9q7cK/umPz2niZIYOiNEEj1wGZSQCjL+6rU1JkHqCg"14177
+ }14178
+ },14179
+ "user_id": "@alice_633:hs1",14180
+ "unsigned": {}14181
+ }14182
+ },14183
+ "@alice_638:hs1": {14184
+ "ALICEDEVICE638": {14185
+ "algorithms": [14186
+ "m.olm.v1.curve25519-aes-sha2",14187
+ "m.megolm.v1.aes-sha2"14188
+ ],14189
+ "device_id": "ALICEDEVICE638",14190
+ "keys": {14191
+ "curve25519:ALICEDEVICE638": "zdCwhcg4q+RjtD4ma8mbnp5J7qPfvtbPHRwE8AUHKCg",14192
+ "ed25519:ALICEDEVICE638": "UnPBI9CZGI8mBmd2kngBlIy76e5Qa+ZqKr43PFW4zvI"14193
+ },14194
+ "signatures": {14195
+ "@alice_638:hs1": {14196
+ "ed25519:ALICEDEVICE638": "EAI1R6+66pL8VFcqLn2e447B4ynM3qZKYTa5rKnqSJa0Bn0k9p+s3Oxw77TCaxP74U2zkNaNDO/E10Ed7gPMCA"14197
+ }14198
+ },14199
+ "user_id": "@alice_638:hs1",14200
+ "unsigned": {}14201
+ }14202
+ },14203
+ "@alice_63:hs1": {14204
+ "ALICEDEVICE63": {14205
+ "algorithms": [14206
+ "m.olm.v1.curve25519-aes-sha2",14207
+ "m.megolm.v1.aes-sha2"14208
+ ],14209
+ "device_id": "ALICEDEVICE63",14210
+ "keys": {14211
+ "curve25519:ALICEDEVICE63": "TOU9b1eeO5yjyVSLIaMF79TAkxS2nrFJrJds+eZtYEI",14212
+ "ed25519:ALICEDEVICE63": "QSjIjqK1/0zNfQtI1egWUtgRFT1/+4WKTomTllIyZZY"14213
+ },14214
+ "signatures": {14215
+ "@alice_63:hs1": {14216
+ "ed25519:ALICEDEVICE63": "9VugwZWq6L7jpPl6CEy+YEdj7oh7lLu3LqOoY5fE+mpwZ8sx5jVJxV6+8SGb91enFxr3XYv+mPRqFR1YZ5NTDw"14217
+ }14218
+ },14219
+ "user_id": "@alice_63:hs1",14220
+ "unsigned": {}14221
+ }14222
+ },14223
+ "@alice_641:hs1": {14224
+ "ALICEDEVICE641": {14225
+ "algorithms": [14226
+ "m.olm.v1.curve25519-aes-sha2",14227
+ "m.megolm.v1.aes-sha2"14228
+ ],14229
+ "device_id": "ALICEDEVICE641",14230
+ "keys": {14231
+ "curve25519:ALICEDEVICE641": "J+xSLpECSLpwFty4/qtlVWtxYZz4WfDM7iYXpgRAywM",14232
+ "ed25519:ALICEDEVICE641": "SqQvGp1ST4UPIcIMltOhvp8BnX4PWH/7amrxnmjxkiQ"14233
+ },14234
+ "signatures": {14235
+ "@alice_641:hs1": {14236
+ "ed25519:ALICEDEVICE641": "rkf1MPlkJRMPE5Nc+kW/rYkLz4dK1wKD3GVL/1BOhqkfILIsOSZgvuVI8jTcV4D/kqLuniUOc37T93gcjNA2Dg"14237
+ }14238
+ },14239
+ "user_id": "@alice_641:hs1",14240
+ "unsigned": {}14241
+ }14242
+ },14243
+ "@alice_656:hs1": {14244
+ "ALICEDEVICE656": {14245
+ "algorithms": [14246
+ "m.olm.v1.curve25519-aes-sha2",14247
+ "m.megolm.v1.aes-sha2"14248
+ ],14249
+ "device_id": "ALICEDEVICE656",14250
+ "keys": {14251
+ "curve25519:ALICEDEVICE656": "C+JBLMXjctIXAKTs0X8qaZOwBCwV3VFoo3JdXRFZwWQ",14252
+ "ed25519:ALICEDEVICE656": "edxtFeW+GCgpfKSrIiEwKX+bYRwC6XDnkSOBBtXG4GY"14253
+ },14254
+ "signatures": {14255
+ "@alice_656:hs1": {14256
+ "ed25519:ALICEDEVICE656": "5tOCHd2WtaY8jWMh8tNNeK1ziIDGpeIT2co7HFeTwpOd161M5OwGeVxr7M8d2KERkI1jWVBltyXkVhl/oANHDg"14257
+ }14258
+ },14259
+ "user_id": "@alice_656:hs1",14260
+ "unsigned": {}14261
+ }14262
+ },14263
+ "@alice_668:hs1": {14264
+ "ALICEDEVICE668": {14265
+ "algorithms": [14266
+ "m.olm.v1.curve25519-aes-sha2",14267
+ "m.megolm.v1.aes-sha2"14268
+ ],14269
+ "device_id": "ALICEDEVICE668",14270
+ "keys": {14271
+ "curve25519:ALICEDEVICE668": "HPcU5LW/KjSNQFfz5YaC8ChPZ0MGSUcn98iy6p+PUQI",14272
+ "ed25519:ALICEDEVICE668": "opLMi85bp0JPnvmxW20ez7vnRDZ/nuLh4n0FKsm6QGw"14273
+ },14274
+ "signatures": {14275
+ "@alice_668:hs1": {14276
+ "ed25519:ALICEDEVICE668": "2HG1l94v+rU5+1ZbZUzZZw6zuTwGcUiKAp8FCl2nN2WMOoXNoKwHiyF6mVfLpmhWP7J/uhW8MyJRC285AAz7AA"14277
+ }14278
+ },14279
+ "user_id": "@alice_668:hs1",14280
+ "unsigned": {}14281
+ }14282
+ },14283
+ "@alice_672:hs1": {14284
+ "ALICEDEVICE672": {14285
+ "algorithms": [14286
+ "m.olm.v1.curve25519-aes-sha2",14287
+ "m.megolm.v1.aes-sha2"14288
+ ],14289
+ "device_id": "ALICEDEVICE672",14290
+ "keys": {14291
+ "curve25519:ALICEDEVICE672": "XHJg0P9FQvykb5AjpSirNS8N+UoTY8R0Lmijh6cR6nM",14292
+ "ed25519:ALICEDEVICE672": "wfuEUvl19v07/XQHlf0RYyFaISFdAhl6sirmrRmH42A"14293
+ },14294
+ "signatures": {14295
+ "@alice_672:hs1": {14296
+ "ed25519:ALICEDEVICE672": "v8C+qTBduXqqx8e5mtlYFna0OXZLpmPX/H7o8PFJqo0kI1OeUawmOJ0LRznv3BuNN9Snlmb2ToONa1eLV3CIBw"14297
+ }14298
+ },14299
+ "user_id": "@alice_672:hs1",14300
+ "unsigned": {}14301
+ }14302
+ },14303
+ "@alice_675:hs1": {14304
+ "ALICEDEVICE675": {14305
+ "algorithms": [14306
+ "m.olm.v1.curve25519-aes-sha2",14307
+ "m.megolm.v1.aes-sha2"14308
+ ],14309
+ "device_id": "ALICEDEVICE675",14310
+ "keys": {14311
+ "curve25519:ALICEDEVICE675": "miuwTblGYZi55Dq3RXOM23VOnXPgboWXwpibapqFDhg",14312
+ "ed25519:ALICEDEVICE675": "XOG5e5SFR/+jr5DIVf/Cv3rVVclInjzfsunjo5EsMhc"14313
+ },14314
+ "signatures": {14315
+ "@alice_675:hs1": {14316
+ "ed25519:ALICEDEVICE675": "rx5sck57Nb8NFgSeywUIk+T7LIkNvKVWSiR5haqGp6mnptNvzmNLrS4jNOgUt7Rn43KaXiN8y2xNMS2aJmCaAQ"14317
+ }14318
+ },14319
+ "user_id": "@alice_675:hs1",14320
+ "unsigned": {}14321
+ }14322
+ },14323
+ "@alice_677:hs1": {14324
+ "ALICEDEVICE677": {14325
+ "algorithms": [14326
+ "m.olm.v1.curve25519-aes-sha2",14327
+ "m.megolm.v1.aes-sha2"14328
+ ],14329
+ "device_id": "ALICEDEVICE677",14330
+ "keys": {14331
+ "curve25519:ALICEDEVICE677": "WDqgIKfaqxxx+1NnZRVpe0f49nmb5R690+Et6xzmW0A",14332
+ "ed25519:ALICEDEVICE677": "2fvrSOitb8/C2w9P8JzxyNuV5f8oDKaikHUk5c1mvGU"14333
+ },14334
+ "signatures": {14335
+ "@alice_677:hs1": {14336
+ "ed25519:ALICEDEVICE677": "ZfC3sIgcprsFjPAKDTMZwoMoUVkSRO2pGCrcWrV9R7KZQQwSVFcWKOLQImJ0NkPE8GFySeZvvIw1I0mVR0QhBg"14337
+ }14338
+ },14339
+ "user_id": "@alice_677:hs1",14340
+ "unsigned": {}14341
+ }14342
+ },14343
+ "@alice_681:hs1": {14344
+ "ALICEDEVICE681": {14345
+ "algorithms": [14346
+ "m.olm.v1.curve25519-aes-sha2",14347
+ "m.megolm.v1.aes-sha2"14348
+ ],14349
+ "device_id": "ALICEDEVICE681",14350
+ "keys": {14351
+ "curve25519:ALICEDEVICE681": "l3LE6vJ5icTA1cT9iY90qX25AdwJUo06uWqd9UUwRj0",14352
+ "ed25519:ALICEDEVICE681": "fd7/XViwjodqcNVzL2mSMzVLc7CTIdQH47oGDhwgGTw"14353
+ },14354
+ "signatures": {14355
+ "@alice_681:hs1": {14356
+ "ed25519:ALICEDEVICE681": "heDvS9xnLsaPIqVLcdhrQ0DwlcLJJqXkFsYgQue3G7S0nohUXzMXFnCFrF/nXiV0530isIBiRDztLgNzMxlcCA"14357
+ }14358
+ },14359
+ "user_id": "@alice_681:hs1",14360
+ "unsigned": {}14361
+ }14362
+ },14363
+ "@alice_705:hs1": {14364
+ "ALICEDEVICE705": {14365
+ "algorithms": [14366
+ "m.olm.v1.curve25519-aes-sha2",14367
+ "m.megolm.v1.aes-sha2"14368
+ ],14369
+ "device_id": "ALICEDEVICE705",14370
+ "keys": {14371
+ "curve25519:ALICEDEVICE705": "N60LZ/wg7uVozIGjd4lgptwO2qSRqMlbR3JVdKTMuzI",14372
+ "ed25519:ALICEDEVICE705": "rAG5vXjriDUpvFAeF5sJ6By1JTgTUta7oeIUwVl1LSY"14373
+ },14374
+ "signatures": {14375
+ "@alice_705:hs1": {14376
+ "ed25519:ALICEDEVICE705": "VjWveIXZ8IRjPLmk6V23je1URGpKVyRuL6Z9SnxUAdhjOzFPsZx9U0HNPiD8AZv28AtpAWj80bUQIJgc5U54Aw"14377
+ }14378
+ },14379
+ "user_id": "@alice_705:hs1",14380
+ "unsigned": {}14381
+ }14382
+ },14383
+ "@alice_716:hs1": {14384
+ "ALICEDEVICE716": {14385
+ "algorithms": [14386
+ "m.olm.v1.curve25519-aes-sha2",14387
+ "m.megolm.v1.aes-sha2"14388
+ ],14389
+ "device_id": "ALICEDEVICE716",14390
+ "keys": {14391
+ "curve25519:ALICEDEVICE716": "zoQ7c3kc3AJFFSV+uIoGSbOYyRCEYZx/nMv+gSrWMVU",14392
+ "ed25519:ALICEDEVICE716": "kE0eJ5pH5K/vwEkqcie/QeKcLbqFe+4ehUeVwsobgJ8"14393
+ },14394
+ "signatures": {14395
+ "@alice_716:hs1": {14396
+ "ed25519:ALICEDEVICE716": "utaojCJeoMUMW9TDRpcL6+/zMP/T6+oPCZoi+H4Gx6m4xceMY8BOKaN1cBlYX+XihIopMZH/HqSjHfd3+LKZAg"14397
+ }14398
+ },14399
+ "user_id": "@alice_716:hs1",14400
+ "unsigned": {}14401
+ }14402
+ },14403
+ "@alice_721:hs1": {14404
+ "ALICEDEVICE721": {14405
+ "algorithms": [14406
+ "m.olm.v1.curve25519-aes-sha2",14407
+ "m.megolm.v1.aes-sha2"14408
+ ],14409
+ "device_id": "ALICEDEVICE721",14410
+ "keys": {14411
+ "curve25519:ALICEDEVICE721": "vi0c0esc7foXPeSrIziXqxikiYBlxrEz6s22ftrp1Fs",14412
+ "ed25519:ALICEDEVICE721": "XTNANq+OkP6RWtNAO2rg1QGoo0R0Pra2NE+//X/C20A"14413
+ },14414
+ "signatures": {14415
+ "@alice_721:hs1": {14416
+ "ed25519:ALICEDEVICE721": "SiFkeV8g/g3dOmIov3bj5bskO2wALtCHacGzRM9gg8e12LgSHl/xfqq/9uXUloG/jRdkrkxk4mHLm6UQ3H65CQ"14417
+ }14418
+ },14419
+ "user_id": "@alice_721:hs1",14420
+ "unsigned": {}14421
+ }14422
+ },14423
+ "@alice_725:hs1": {14424
+ "ALICEDEVICE725": {14425
+ "algorithms": [14426
+ "m.olm.v1.curve25519-aes-sha2",14427
+ "m.megolm.v1.aes-sha2"14428
+ ],14429
+ "device_id": "ALICEDEVICE725",14430
+ "keys": {14431
+ "curve25519:ALICEDEVICE725": "QoIVAJYcLnjNeFEK00camGQ0QfpWgy3gzPnPaagwJzk",14432
+ "ed25519:ALICEDEVICE725": "Sckbsp75LL7PnYj8sBjismICu5f2eNKPAIx/FFRXuG4"14433
+ },14434
+ "signatures": {14435
+ "@alice_725:hs1": {14436
+ "ed25519:ALICEDEVICE725": "beTnf4+ENg5uByN4lCNuS1fK/Xgl9J+ZFRGrELUB7lbzWYK9J+hH1f3DaP8pDzjadwbPD46ti5R3d+bRF+Y6Bw"14437
+ }14438
+ },14439
+ "user_id": "@alice_725:hs1",14440
+ "unsigned": {}14441
+ }14442
+ },14443
+ "@alice_728:hs1": {14444
+ "ALICEDEVICE728": {14445
+ "algorithms": [14446
+ "m.olm.v1.curve25519-aes-sha2",14447
+ "m.megolm.v1.aes-sha2"14448
+ ],14449
+ "device_id": "ALICEDEVICE728",14450
+ "keys": {14451
+ "curve25519:ALICEDEVICE728": "o66Vyqawa72IUZ5UrgB/64pHbyve3KwIdhQFdGqUHyc",14452
+ "ed25519:ALICEDEVICE728": "FA6hl8yt4qzi0RH/U6US5pJJzLLslSYWDZAIJG++354"14453
+ },14454
+ "signatures": {14455
+ "@alice_728:hs1": {14456
+ "ed25519:ALICEDEVICE728": "kcRITZSlVzzpzFSUcG8Fv1IVnYxN7v5aaRgk+u3WgnbowUR/T8OZFwwK98OvFKUlACwc6Uc/uur673YYMqXQCQ"14457
+ }14458
+ },14459
+ "user_id": "@alice_728:hs1",14460
+ "unsigned": {}14461
+ }14462
+ },14463
+ "@alice_72:hs1": {14464
+ "ALICEDEVICE72": {14465
+ "algorithms": [14466
+ "m.olm.v1.curve25519-aes-sha2",14467
+ "m.megolm.v1.aes-sha2"14468
+ ],14469
+ "device_id": "ALICEDEVICE72",14470
+ "keys": {14471
+ "curve25519:ALICEDEVICE72": "t4x4irBG4wxOrvzvrV9JMkbpNwZjXLlJlMiVg7QM2Qw",14472
+ "ed25519:ALICEDEVICE72": "1Gi3EPSjCwn3tnByuYz4xDhTD2JkLr1RBxyhflLsN+E"14473
+ },14474
+ "signatures": {14475
+ "@alice_72:hs1": {14476
+ "ed25519:ALICEDEVICE72": "TBqseynumnM6VztjkqImyyex0TS/EKPvAu6D6k+XWFF/wHF4i0pPTXPzG60G5m/xlhQUPHrW+3e8I2LYtaENDQ"14477
+ }14478
+ },14479
+ "user_id": "@alice_72:hs1",14480
+ "unsigned": {}14481
+ }14482
+ },14483
+ "@alice_730:hs1": {14484
+ "ALICEDEVICE730": {14485
+ "algorithms": [14486
+ "m.olm.v1.curve25519-aes-sha2",14487
+ "m.megolm.v1.aes-sha2"14488
+ ],14489
+ "device_id": "ALICEDEVICE730",14490
+ "keys": {14491
+ "curve25519:ALICEDEVICE730": "qOrsbACo6i/xjJB632SwNAV3i/U5obmNuA6ufSjUOHE",14492
+ "ed25519:ALICEDEVICE730": "FcyieQVsXrTy9R9lKkcFQUmOGnprPGBdfducZEvVbIA"14493
+ },14494
+ "signatures": {14495
+ "@alice_730:hs1": {14496
+ "ed25519:ALICEDEVICE730": "xLGUZd5e2EiAepLETXVsz2www5G5dh6kNGD+hl+orAxnILQcQHOvhfEz5piStHdpJct9BcjQ4GU0gao/sYQ6Cw"14497
+ }14498
+ },14499
+ "user_id": "@alice_730:hs1",14500
+ "unsigned": {}14501
+ }14502
+ },14503
+ "@alice_746:hs1": {14504
+ "ALICEDEVICE746": {14505
+ "algorithms": [14506
+ "m.olm.v1.curve25519-aes-sha2",14507
+ "m.megolm.v1.aes-sha2"14508
+ ],14509
+ "device_id": "ALICEDEVICE746",14510
+ "keys": {14511
+ "curve25519:ALICEDEVICE746": "fRslzYsk4g7bB4LU8puXKngF5og0pGHUgoVfj8kT8Rs",14512
+ "ed25519:ALICEDEVICE746": "erjgG8lF2sgbciy03J7RGI5P/o42ukva28kQanmN5G0"14513
+ },14514
+ "signatures": {14515
+ "@alice_746:hs1": {14516
+ "ed25519:ALICEDEVICE746": "33SL2t2Qe/bWUX8sAnN6Nw3Zs1Svi943k0dr2UocPxnNQzNagVosSBJsZfVFTo4hKYW90L/6E6kXGg3Y5r7GAg"14517
+ }14518
+ },14519
+ "user_id": "@alice_746:hs1",14520
+ "unsigned": {}14521
+ }14522
+ },14523
+ "@alice_766:hs1": {14524
+ "ALICEDEVICE766": {14525
+ "algorithms": [14526
+ "m.olm.v1.curve25519-aes-sha2",14527
+ "m.megolm.v1.aes-sha2"14528
+ ],14529
+ "device_id": "ALICEDEVICE766",14530
+ "keys": {14531
+ "curve25519:ALICEDEVICE766": "RFnBJMbr2x2NrjYbmpsErV6Bxe35AX8/QA2up7Cu3iI",14532
+ "ed25519:ALICEDEVICE766": "3hwXI8OZqTnHQtSfwl5sMhPsKvvADDrteMOzkMiy5ig"14533
+ },14534
+ "signatures": {14535
+ "@alice_766:hs1": {14536
+ "ed25519:ALICEDEVICE766": "XYOrLn+C1ItvZDr5+D+MGtVJPFo4NCeeiPcOF3y/pFRmpSzX1G9rO8dxHf6PTKUf5a3+DBfphGocHAipD7GtDA"14537
+ }14538
+ },14539
+ "user_id": "@alice_766:hs1",14540
+ "unsigned": {}14541
+ }14542
+ },14543
+ "@alice_768:hs1": {14544
+ "ALICEDEVICE768": {14545
+ "algorithms": [14546
+ "m.olm.v1.curve25519-aes-sha2",14547
+ "m.megolm.v1.aes-sha2"14548
+ ],14549
+ "device_id": "ALICEDEVICE768",14550
+ "keys": {14551
+ "curve25519:ALICEDEVICE768": "KGRp1Ru2J/7hDfgHockGHVoOb93G8YgR8mlhHrzi4FU",14552
+ "ed25519:ALICEDEVICE768": "2IQH6oBhD4UPfc6M0JOYhrSHVwNzX3IgcCpp/QQ7+As"14553
+ },14554
+ "signatures": {14555
+ "@alice_768:hs1": {14556
+ "ed25519:ALICEDEVICE768": "zl97cLW/BUsTZl9+wanTq+AtBeaxXzLTuD02QynSk4TWEftmDnYDE7sjqKgxjpVzbYz+a95oYF0wngsAEHt6CQ"14557
+ }14558
+ },14559
+ "user_id": "@alice_768:hs1",14560
+ "unsigned": {}14561
+ }14562
+ },14563
+ "@alice_776:hs1": {14564
+ "ALICEDEVICE776": {14565
+ "algorithms": [14566
+ "m.olm.v1.curve25519-aes-sha2",14567
+ "m.megolm.v1.aes-sha2"14568
+ ],14569
+ "device_id": "ALICEDEVICE776",14570
+ "keys": {14571
+ "curve25519:ALICEDEVICE776": "w0Yws4/+lyYB/6bTrsh9ydLTCCWDKRKB1vcFtOlWkTM",14572
+ "ed25519:ALICEDEVICE776": "dLqtCa6ACyRJ84qofiKEU/y6+BzEdU6irPPse0tTedc"14573
+ },14574
+ "signatures": {14575
+ "@alice_776:hs1": {14576
+ "ed25519:ALICEDEVICE776": "Pt9OvZNwLOBQEuWDJiWKlxo/PIeTo8+omtzeSN/vgOu/czNYV7Uoj4t7Cr6TWpDZmo6DGgQPfqYJuJBl7f7oDQ"14577
+ }14578
+ },14579
+ "user_id": "@alice_776:hs1",14580
+ "unsigned": {}14581
+ }14582
+ },14583
+ "@alice_782:hs1": {14584
+ "ALICEDEVICE782": {14585
+ "algorithms": [14586
+ "m.olm.v1.curve25519-aes-sha2",14587
+ "m.megolm.v1.aes-sha2"14588
+ ],14589
+ "device_id": "ALICEDEVICE782",14590
+ "keys": {14591
+ "curve25519:ALICEDEVICE782": "OjYZPdDXCJQQuOZHEOfrZd5HNqY67C2fY+1kX5s9b30",14592
+ "ed25519:ALICEDEVICE782": "YwTJ1yZhx+oyo45xs4i8j4B946Fr9NdwIbYNAeHmaJI"14593
+ },14594
+ "signatures": {14595
+ "@alice_782:hs1": {14596
+ "ed25519:ALICEDEVICE782": "KvMy2+iWxVZwZApEahqWvVPma+mw5BGxEYIjF1FKOfz37wy7L/TE1qmUZqVC0Hqssx71iJ5r0nsaGfDfPDc2Dg"14597
+ }14598
+ },14599
+ "user_id": "@alice_782:hs1",14600
+ "unsigned": {}14601
+ }14602
+ },14603
+ "@alice_784:hs1": {14604
+ "ALICEDEVICE784": {14605
+ "algorithms": [14606
+ "m.olm.v1.curve25519-aes-sha2",14607
+ "m.megolm.v1.aes-sha2"14608
+ ],14609
+ "device_id": "ALICEDEVICE784",14610
+ "keys": {14611
+ "curve25519:ALICEDEVICE784": "Vo+jnQRThMabUB9UtoFC7d7PzFmgL+pHbns9SkKRQBI",14612
+ "ed25519:ALICEDEVICE784": "CjzO9o+Q16lT/m8p8+ZXU8BG94k+kmQVyaR1nHwnhbI"14613
+ },14614
+ "signatures": {14615
+ "@alice_784:hs1": {14616
+ "ed25519:ALICEDEVICE784": "6Px5mBq9Wo1AC85ezld1u7FYVd/6p7H45IPXsG6Qmh0jvkXxyDQopE19W8pEda2gs2Ed7EBgM/JP+17gargECg"14617
+ }14618
+ },14619
+ "user_id": "@alice_784:hs1",14620
+ "unsigned": {}14621
+ }14622
+ },14623
+ "@alice_785:hs1": {14624
+ "ALICEDEVICE785": {14625
+ "algorithms": [14626
+ "m.olm.v1.curve25519-aes-sha2",14627
+ "m.megolm.v1.aes-sha2"14628
+ ],14629
+ "device_id": "ALICEDEVICE785",14630
+ "keys": {14631
+ "curve25519:ALICEDEVICE785": "slWQ+COytxhEaEC7gvRSmFnJ5wAdr1swJzX85T58zzA",14632
+ "ed25519:ALICEDEVICE785": "Pivz1bfObCyplDLqsLAt6DwrMHUJErbcWVnZBqtgzow"14633
+ },14634
+ "signatures": {14635
+ "@alice_785:hs1": {14636
+ "ed25519:ALICEDEVICE785": "PTcz4TZUCkUAFwXq/kPh2/4A3anoHaGxUc+bgVW3EoKO1Qi38i9TFNM8wLxL5Rgpw2lL6BWRjaxil2Rwt9F2BA"14637
+ }14638
+ },14639
+ "user_id": "@alice_785:hs1",14640
+ "unsigned": {}14641
+ }14642
+ },14643
+ "@alice_790:hs1": {14644
+ "ALICEDEVICE790": {14645
+ "algorithms": [14646
+ "m.olm.v1.curve25519-aes-sha2",14647
+ "m.megolm.v1.aes-sha2"14648
+ ],14649
+ "device_id": "ALICEDEVICE790",14650
+ "keys": {14651
+ "curve25519:ALICEDEVICE790": "iE+23Afo1/n3QwwkU9Z9zBDUrJTiIDviV+Ja0RmFW3I",14652
+ "ed25519:ALICEDEVICE790": "LIp7/vvptUynzL3qITI6NHQgrPsV4S+5kvwRYPe6MTg"14653
+ },14654
+ "signatures": {14655
+ "@alice_790:hs1": {14656
+ "ed25519:ALICEDEVICE790": "yYPyvsusrVM24dmwsNDI3bKMHuRkNOpPaByvDFjEvAXl5+nvtmn4w0GJnX5Bk3rWNe9EfJv8gae2qe+Q+rgHDw"14657
+ }14658
+ },14659
+ "user_id": "@alice_790:hs1",14660
+ "unsigned": {}14661
+ }14662
+ },14663
+ "@alice_795:hs1": {14664
+ "ALICEDEVICE795": {14665
+ "algorithms": [14666
+ "m.olm.v1.curve25519-aes-sha2",14667
+ "m.megolm.v1.aes-sha2"14668
+ ],14669
+ "device_id": "ALICEDEVICE795",14670
+ "keys": {14671
+ "curve25519:ALICEDEVICE795": "DdwfMX+V63jGECENC582yT96ze2LCbj2hsR5E2xIgGg",14672
+ "ed25519:ALICEDEVICE795": "nC/vjgACOvhu4PZS4fppneg5xE4aTfWo3OZXqxeFSR0"14673
+ },14674
+ "signatures": {14675
+ "@alice_795:hs1": {14676
+ "ed25519:ALICEDEVICE795": "ZuhFcfaL9GxTkemrERE8UAvnGPSms04w4qEU5QvghI4Fu1De3FB1Xo2MYg+kSRFg0ZQZLUIBy5UBTaRf+msdBg"14677
+ }14678
+ },14679
+ "user_id": "@alice_795:hs1",14680
+ "unsigned": {}14681
+ }14682
+ },14683
+ "@alice_796:hs1": {14684
+ "ALICEDEVICE796": {14685
+ "algorithms": [14686
+ "m.olm.v1.curve25519-aes-sha2",14687
+ "m.megolm.v1.aes-sha2"14688
+ ],14689
+ "device_id": "ALICEDEVICE796",14690
+ "keys": {14691
+ "curve25519:ALICEDEVICE796": "3crDD+GcUp7DVALKUW5KaUTdJBKahOgzS7t5ytX4YTw",14692
+ "ed25519:ALICEDEVICE796": "vRqhUEnKActL8RBXkcYBJA9VxSVMlypd4N6/lLP3DyY"14693
+ },14694
+ "signatures": {14695
+ "@alice_796:hs1": {14696
+ "ed25519:ALICEDEVICE796": "IgmfULvNSB24CFAeRMcm4ryxPKsYvrNdEuwTJiYlL+fWePVxniV48XvN9bOsdQn5bgkO4anigJA4egBFgc3SBA"14697
+ }14698
+ },14699
+ "user_id": "@alice_796:hs1",14700
+ "unsigned": {}14701
+ }14702
+ },14703
+ "@alice_813:hs1": {14704
+ "ALICEDEVICE813": {14705
+ "algorithms": [14706
+ "m.olm.v1.curve25519-aes-sha2",14707
+ "m.megolm.v1.aes-sha2"14708
+ ],14709
+ "device_id": "ALICEDEVICE813",14710
+ "keys": {14711
+ "curve25519:ALICEDEVICE813": "kvcW8iDCMGkdwlVgbvfSO5Nb91qSPItJ6eSWXS9GYzc",14712
+ "ed25519:ALICEDEVICE813": "s0+ThNKF0vD4DlHqQVnaP6DE8VE0taBFInDEvGUOmz8"14713
+ },14714
+ "signatures": {14715
+ "@alice_813:hs1": {14716
+ "ed25519:ALICEDEVICE813": "CMpLOiMN9A9GKmbojMEkLORX691tRYMMrO03exOdOjE7pMC+Uhv2Je6VjYyuWKO/DPeBnClSxheEnt5PxoeHBg"14717
+ }14718
+ },14719
+ "user_id": "@alice_813:hs1",14720
+ "unsigned": {}14721
+ }14722
+ },14723
+ "@alice_820:hs1": {14724
+ "ALICEDEVICE820": {14725
+ "algorithms": [14726
+ "m.olm.v1.curve25519-aes-sha2",14727
+ "m.megolm.v1.aes-sha2"14728
+ ],14729
+ "device_id": "ALICEDEVICE820",14730
+ "keys": {14731
+ "curve25519:ALICEDEVICE820": "xt35iGHhtWkhMfxOFSST2oDvqAX/mXCC0EQd5Z6yJQs",14732
+ "ed25519:ALICEDEVICE820": "ryMBWf4+UnwmDQdVMn47aOoSU38Nc+2oK3VovI7DWaw"14733
+ },14734
+ "signatures": {14735
+ "@alice_820:hs1": {14736
+ "ed25519:ALICEDEVICE820": "P6N96ml5tDroJH5BLoGvzg1RXW9htUL2gIWkxeMKjHqMRlofv5+sHk2kF5TgeKe8QJ2UntExHiWvq0ntbT7mCA"14737
+ }14738
+ },14739
+ "user_id": "@alice_820:hs1",14740
+ "unsigned": {}14741
+ }14742
+ },14743
+ "@alice_828:hs1": {14744
+ "ALICEDEVICE828": {14745
+ "algorithms": [14746
+ "m.olm.v1.curve25519-aes-sha2",14747
+ "m.megolm.v1.aes-sha2"14748
+ ],14749
+ "device_id": "ALICEDEVICE828",14750
+ "keys": {14751
+ "curve25519:ALICEDEVICE828": "f/BnLoRaWuVPG1QLMgLBseUa4Svsf4MPr0NxHkLGWww",14752
+ "ed25519:ALICEDEVICE828": "JOSc17A50aGWE3GqNMlvp3uLjQc04lm2v3rJNW2eGps"14753
+ },14754
+ "signatures": {14755
+ "@alice_828:hs1": {14756
+ "ed25519:ALICEDEVICE828": "BKQ94FJ+woJ1OYp6IMn2+bGr+Jxias3Kj/2foeKmpzSFpDX1ohBPNjasCwN95XzpSevToVdmbaNk5Blk8YTrBg"14757
+ }14758
+ },14759
+ "user_id": "@alice_828:hs1",14760
+ "unsigned": {}14761
+ }14762
+ },14763
+ "@alice_845:hs1": {14764
+ "ALICEDEVICE845": {14765
+ "algorithms": [14766
+ "m.olm.v1.curve25519-aes-sha2",14767
+ "m.megolm.v1.aes-sha2"14768
+ ],14769
+ "device_id": "ALICEDEVICE845",14770
+ "keys": {14771
+ "curve25519:ALICEDEVICE845": "d9qokMYMofZWhSuNK92PgB9MplVFdoYlaYQSHf3kLV8",14772
+ "ed25519:ALICEDEVICE845": "rXHREdLzvJO8wip/1wOucsVXVe76B3/6h2yBhiVrtIs"14773
+ },14774
+ "signatures": {14775
+ "@alice_845:hs1": {14776
+ "ed25519:ALICEDEVICE845": "qBhp5No9jOb9Ns99X6lc7zuAuFkImMEjZQILGTiwRAula/sSO8UjqenACx2i7NoRSZfafJI1RnQUvBb6WXGQDA"14777
+ }14778
+ },14779
+ "user_id": "@alice_845:hs1",14780
+ "unsigned": {}14781
+ }14782
+ },14783
+ "@alice_849:hs1": {14784
+ "ALICEDEVICE849": {14785
+ "algorithms": [14786
+ "m.olm.v1.curve25519-aes-sha2",14787
+ "m.megolm.v1.aes-sha2"14788
+ ],14789
+ "device_id": "ALICEDEVICE849",14790
+ "keys": {14791
+ "curve25519:ALICEDEVICE849": "lWUArr0L9Pjpg3Oai+DZakxw3tYiWQcQ4NQfU37AFWM",14792
+ "ed25519:ALICEDEVICE849": "GV+TiW0Pfvv5ebBdt9GkGgRRg2JCqcznBu62MZinCAw"14793
+ },14794
+ "signatures": {14795
+ "@alice_849:hs1": {14796
+ "ed25519:ALICEDEVICE849": "cdfliAYzh0xnXBIZDzGhNQCXlQW4oxneGFx9IQGuJ/NGyF1gZFl1GBOj0erKx4f3bpM5mxTfZEYm/Rx1Zb7kBg"14797
+ }14798
+ },14799
+ "user_id": "@alice_849:hs1",14800
+ "unsigned": {}14801
+ }14802
+ },14803
+ "@alice_851:hs1": {14804
+ "ALICEDEVICE851": {14805
+ "algorithms": [14806
+ "m.olm.v1.curve25519-aes-sha2",14807
+ "m.megolm.v1.aes-sha2"14808
+ ],14809
+ "device_id": "ALICEDEVICE851",14810
+ "keys": {14811
+ "curve25519:ALICEDEVICE851": "aaTlfhFtSHdhb/x3Zu8iGTtbSgR1vhtbBUJzCOQjv0M",14812
+ "ed25519:ALICEDEVICE851": "8wz4Sz/ngQFyOc9KQwks8XS2GeCVskqqxTgcdZFjDH8"14813
+ },14814
+ "signatures": {14815
+ "@alice_851:hs1": {14816
+ "ed25519:ALICEDEVICE851": "KiqllLL34KMr9ynD44NXnzuXhc+zFfcOKAsEEUBUwXOQc9znP5ITRAOxCM/FMLS29eWJ6PVKx1hN8sWFF0FZCw"14817
+ }14818
+ },14819
+ "user_id": "@alice_851:hs1",14820
+ "unsigned": {}14821
+ }14822
+ },14823
+ "@alice_85:hs1": {14824
+ "ALICEDEVICE85": {14825
+ "algorithms": [14826
+ "m.olm.v1.curve25519-aes-sha2",14827
+ "m.megolm.v1.aes-sha2"14828
+ ],14829
+ "device_id": "ALICEDEVICE85",14830
+ "keys": {14831
+ "curve25519:ALICEDEVICE85": "UlFoo65knvTodr1K640KkfHvJd85cj5g86cjdTbjw0w",14832
+ "ed25519:ALICEDEVICE85": "62BMSFj+lprsljxCbkOZhedvH7phi7+lhOA2cS39tn8"14833
+ },14834
+ "signatures": {14835
+ "@alice_85:hs1": {14836
+ "ed25519:ALICEDEVICE85": "a/LYxk0OQhItgujxDPR7oakuDfbO6sZyzgApnY+dKvnRnHJVALraINVZb8QUmi9tzLerzcAC02nJc4fiajsuBw"14837
+ }14838
+ },14839
+ "user_id": "@alice_85:hs1",14840
+ "unsigned": {}14841
+ }14842
+ },14843
+ "@alice_862:hs1": {14844
+ "ALICEDEVICE862": {14845
+ "algorithms": [14846
+ "m.olm.v1.curve25519-aes-sha2",14847
+ "m.megolm.v1.aes-sha2"14848
+ ],14849
+ "device_id": "ALICEDEVICE862",14850
+ "keys": {14851
+ "curve25519:ALICEDEVICE862": "oa7+Vwd0drOGrVhHTn9RNeIZrIH6rgdFQvyU43z8ahI",14852
+ "ed25519:ALICEDEVICE862": "kgJznh8qQnIkE0zaCqPeZpUa6Xygri/aLaH5XQCbALc"14853
+ },14854
+ "signatures": {14855
+ "@alice_862:hs1": {14856
+ "ed25519:ALICEDEVICE862": "wgd32dvk2pSjlj1jjgWSNcSAtEMObC2Q3vsOXwJcDNz/GnUkGEdCq9eZyys/ik3mN0F+IQf9X5DmN4jFUQQpAw"14857
+ }14858
+ },14859
+ "user_id": "@alice_862:hs1",14860
+ "unsigned": {}14861
+ }14862
+ },14863
+ "@alice_869:hs1": {14864
+ "ALICEDEVICE869": {14865
+ "algorithms": [14866
+ "m.olm.v1.curve25519-aes-sha2",14867
+ "m.megolm.v1.aes-sha2"14868
+ ],14869
+ "device_id": "ALICEDEVICE869",14870
+ "keys": {14871
+ "curve25519:ALICEDEVICE869": "x4ziFr4YRyKB4ugkEHcwh4Q/LNxySu6wrB1Vfflnzx4",14872
+ "ed25519:ALICEDEVICE869": "zot243WL46ktsCZjVUTC58oaxs/UhQBd5jSTyCPET/Q"14873
+ },14874
+ "signatures": {14875
+ "@alice_869:hs1": {14876
+ "ed25519:ALICEDEVICE869": "0wi9mZ37bYGJwj8EDmD5xVDOdbCjkD4lEQhvKY8v2IYYR1o+xNDcnx/W7Vu+PODShoRcziQvJoeyqH++gJSpDQ"14877
+ }14878
+ },14879
+ "user_id": "@alice_869:hs1",14880
+ "unsigned": {}14881
+ }14882
+ },14883
+ "@alice_876:hs1": {14884
+ "ALICEDEVICE876": {14885
+ "algorithms": [14886
+ "m.olm.v1.curve25519-aes-sha2",14887
+ "m.megolm.v1.aes-sha2"14888
+ ],14889
+ "device_id": "ALICEDEVICE876",14890
+ "keys": {14891
+ "curve25519:ALICEDEVICE876": "sXGlHg9Pr9yE8i9p2kEWMhE3W31CofRkXb7/V5MzZwQ",14892
+ "ed25519:ALICEDEVICE876": "gReOI1rJBH3Gqbybi5rjdH/1Sg8DkeAYdzRe2uis8fg"14893
+ },14894
+ "signatures": {14895
+ "@alice_876:hs1": {14896
+ "ed25519:ALICEDEVICE876": "fikA5SKg645JjoH2FO0YQGrfHn449F+Zi+1ncfGhNmJHysdcbFvIBHaRlBy9BYiT7ElJ8iIgLqU/ycLyZ5wlAg"14897
+ }14898
+ },14899
+ "user_id": "@alice_876:hs1",14900
+ "unsigned": {}14901
+ }14902
+ },14903
+ "@alice_878:hs1": {14904
+ "ALICEDEVICE878": {14905
+ "algorithms": [14906
+ "m.olm.v1.curve25519-aes-sha2",14907
+ "m.megolm.v1.aes-sha2"14908
+ ],14909
+ "device_id": "ALICEDEVICE878",14910
+ "keys": {14911
+ "curve25519:ALICEDEVICE878": "4Islt65/icvST4fObFNAgsmYQzlcGNRaASV7jUrnR08",14912
+ "ed25519:ALICEDEVICE878": "Mtj09W2N27vNu9HuKGiPl44gnbBXm2iHwA5fWvcyBYg"14913
+ },14914
+ "signatures": {14915
+ "@alice_878:hs1": {14916
+ "ed25519:ALICEDEVICE878": "I3Y64elSQjZdm9gYM8uwM6AYHBCM/Sx8CFgUD65vIDLNI7uo0Rp+FV3yOPatup3dl/PudcqBuPAqkuyQfRJnCw"14917
+ }14918
+ },14919
+ "user_id": "@alice_878:hs1",14920
+ "unsigned": {}14921
+ }14922
+ },14923
+ "@alice_880:hs1": {14924
+ "ALICEDEVICE880": {14925
+ "algorithms": [14926
+ "m.olm.v1.curve25519-aes-sha2",14927
+ "m.megolm.v1.aes-sha2"14928
+ ],14929
+ "device_id": "ALICEDEVICE880",14930
+ "keys": {14931
+ "curve25519:ALICEDEVICE880": "1R+InQDKBLmAxVDYsQoFypDBIf7ov3ZGHJSVAhNsDVs",14932
+ "ed25519:ALICEDEVICE880": "USdpdxkQVZUAA/1edqKfeg3XowyQ6bzkPmcws+sqA5A"14933
+ },14934
+ "signatures": {14935
+ "@alice_880:hs1": {14936
+ "ed25519:ALICEDEVICE880": "4a1TadxiC/NFSQptzL6yRGFhq0JdijlAgQ6K2sem3zpUZFfVndZu8lURzRXnNAoUv4ouHfzmcavA9MP+2/w3BA"14937
+ }14938
+ },14939
+ "user_id": "@alice_880:hs1",14940
+ "unsigned": {}14941
+ }14942
+ },14943
+ "@alice_882:hs1": {14944
+ "ALICEDEVICE882": {14945
+ "algorithms": [14946
+ "m.olm.v1.curve25519-aes-sha2",14947
+ "m.megolm.v1.aes-sha2"14948
+ ],14949
+ "device_id": "ALICEDEVICE882",14950
+ "keys": {14951
+ "curve25519:ALICEDEVICE882": "iVpuIJ0EJQeK3B0mawMKOuQocsG/DGQWwWsTTcw281Q",14952
+ "ed25519:ALICEDEVICE882": "7tJMegI1D/0WSNNMbk3qIU0mpZ3fUuclR/MzWQQg6Ns"14953
+ },14954
+ "signatures": {14955
+ "@alice_882:hs1": {14956
+ "ed25519:ALICEDEVICE882": "nQ9tArNVrKLqWGkYhQTAbtFeCcu4cLLYbYg1Q1VcQQZmqNHLv9a0WLyiGfTkKFomOlKK5VrbrQAGJh1OFPSgBg"14957
+ }14958
+ },14959
+ "user_id": "@alice_882:hs1",14960
+ "unsigned": {}14961
+ }14962
+ },14963
+ "@alice_890:hs1": {14964
+ "ALICEDEVICE890": {14965
+ "algorithms": [14966
+ "m.olm.v1.curve25519-aes-sha2",14967
+ "m.megolm.v1.aes-sha2"14968
+ ],14969
+ "device_id": "ALICEDEVICE890",14970
+ "keys": {14971
+ "curve25519:ALICEDEVICE890": "2/r1MELKDBfSLJSy152jldf3UBKlFT6QW6347XfY2F8",14972
+ "ed25519:ALICEDEVICE890": "NJ3wUUeAmijRz/0cN95Oc1FC4XYlQLyxnFKuYWlytxw"14973
+ },14974
+ "signatures": {14975
+ "@alice_890:hs1": {14976
+ "ed25519:ALICEDEVICE890": "5lMPZ/zqUKu+kiF0g1b0nIN665LWlYnk/o0Ig4ieiHoYIGQuxojtIa60objub4AAqfVZoviQqOpJSZDUBTZbCA"14977
+ }14978
+ },14979
+ "user_id": "@alice_890:hs1",14980
+ "unsigned": {}14981
+ }14982
+ },14983
+ "@alice_893:hs1": {14984
+ "ALICEDEVICE893": {14985
+ "algorithms": [14986
+ "m.olm.v1.curve25519-aes-sha2",14987
+ "m.megolm.v1.aes-sha2"14988
+ ],14989
+ "device_id": "ALICEDEVICE893",14990
+ "keys": {14991
+ "curve25519:ALICEDEVICE893": "8wWFLV0HxaBm+qf3Nj1d1d4HtiXVo43ZyE/Y2M/BaRc",14992
+ "ed25519:ALICEDEVICE893": "Qc881Pe6hykvLNtNhD4d6TCYetRnExSU49LPknBlvpE"14993
+ },14994
+ "signatures": {14995
+ "@alice_893:hs1": {14996
+ "ed25519:ALICEDEVICE893": "mCFPohy6KoXAgQGiHs8Io9rjwAIsyKusUEmbIoSCxJchsaYrMWtXtvEu2U3SaI/u858ZINaTY0N3flBDt3x2Aw"14997
+ }14998
+ },14999
+ "user_id": "@alice_893:hs1",15000
+ "unsigned": {}15001
+ }15002
+ },15003
+ "@alice_896:hs1": {15004
+ "ALICEDEVICE896": {15005
+ "algorithms": [15006
+ "m.olm.v1.curve25519-aes-sha2",15007
+ "m.megolm.v1.aes-sha2"15008
+ ],15009
+ "device_id": "ALICEDEVICE896",15010
+ "keys": {15011
+ "curve25519:ALICEDEVICE896": "OWImP0OnwIBmqJ+ZVgIDGOyKAYC5Xxk3DT6tcFn7x3Q",15012
+ "ed25519:ALICEDEVICE896": "HrZwASh49mbItrIB731y/Rq92DTTJIJiYQS0R25rEzc"15013
+ },15014
+ "signatures": {15015
+ "@alice_896:hs1": {15016
+ "ed25519:ALICEDEVICE896": "S0MJY4Fdg9qp7dUOkDmdNcoDYOH9nJzeVL7XKeRWV6EIujJIR2+DzMq2V16o1eALrdYG9YCNZK+3Gao2okZiCw"15017
+ }15018
+ },15019
+ "user_id": "@alice_896:hs1",15020
+ "unsigned": {}15021
+ }15022
+ },15023
+ "@alice_908:hs1": {15024
+ "ALICEDEVICE908": {15025
+ "algorithms": [15026
+ "m.olm.v1.curve25519-aes-sha2",15027
+ "m.megolm.v1.aes-sha2"15028
+ ],15029
+ "device_id": "ALICEDEVICE908",15030
+ "keys": {15031
+ "curve25519:ALICEDEVICE908": "2AmwCe3Tom+eNBm2U1M3HrnT3NRpcDGhRtuKVOIa0GY",15032
+ "ed25519:ALICEDEVICE908": "sPMgcSfsmLYreVxtmcty9Lw+wYkuQqCs8p0zscfIIEM"15033
+ },15034
+ "signatures": {15035
+ "@alice_908:hs1": {15036
+ "ed25519:ALICEDEVICE908": "aS6CT3gnILL/nyXsUIlXXbRFLPbyBe2WUtELGdpSAA90NCh5VdKylX4ZMMnQOufkO6Yk/W69AUqscN7sG9pTAA"15037
+ }15038
+ },15039
+ "user_id": "@alice_908:hs1",15040
+ "unsigned": {}15041
+ }15042
+ },15043
+ "@alice_916:hs1": {15044
+ "ALICEDEVICE916": {15045
+ "algorithms": [15046
+ "m.olm.v1.curve25519-aes-sha2",15047
+ "m.megolm.v1.aes-sha2"15048
+ ],15049
+ "device_id": "ALICEDEVICE916",15050
+ "keys": {15051
+ "curve25519:ALICEDEVICE916": "K7aJnh+e2K0fSj9g1Hpk3X81dhTKpJd0OM7ev8pXsg8",15052
+ "ed25519:ALICEDEVICE916": "7egBgqeCiYmX+ty/lTKl6KWZWOVpS7BO/9hY0fsbl9Q"15053
+ },15054
+ "signatures": {15055
+ "@alice_916:hs1": {15056
+ "ed25519:ALICEDEVICE916": "G3X2OJ0y4fBEGgN7ojPS8myfJxqP0UGye4SsJAFI1dgR1RVwVKTD0mn4TYZzMa3LqMlzJYTYR8Tk2xR3uImkDw"15057
+ }15058
+ },15059
+ "user_id": "@alice_916:hs1",15060
+ "unsigned": {}15061
+ }15062
+ },15063
+ "@alice_941:hs1": {15064
+ "ALICEDEVICE941": {15065
+ "algorithms": [15066
+ "m.olm.v1.curve25519-aes-sha2",15067
+ "m.megolm.v1.aes-sha2"15068
+ ],15069
+ "device_id": "ALICEDEVICE941",15070
+ "keys": {15071
+ "curve25519:ALICEDEVICE941": "BptZZNW3lo8cNlAYVF2tQuSYePat9dNDSXRi+ho6vkc",15072
+ "ed25519:ALICEDEVICE941": "DWNICXjXb+Vwf9c2d6V1cnZna5vkZHE3WkUzaiP5qgg"15073
+ },15074
+ "signatures": {15075
+ "@alice_941:hs1": {15076
+ "ed25519:ALICEDEVICE941": "rpwxwirws6UwOkpjoWaLy6tvbnrFq4dHYxKuJdAaXCr+FOb+yjTU2Rh649068fmsdZC1q6AQFFvJe6HeT2uODA"15077
+ }15078
+ },15079
+ "user_id": "@alice_941:hs1",15080
+ "unsigned": {}15081
+ }15082
+ },15083
+ "@alice_945:hs1": {15084
+ "ALICEDEVICE945": {15085
+ "algorithms": [15086
+ "m.olm.v1.curve25519-aes-sha2",15087
+ "m.megolm.v1.aes-sha2"15088
+ ],15089
+ "device_id": "ALICEDEVICE945",15090
+ "keys": {15091
+ "curve25519:ALICEDEVICE945": "/TGSAe7FBq9zFB3Uy5j+Oj2u/BnLPDVuQl02Pn6okXc",15092
+ "ed25519:ALICEDEVICE945": "O0NjKbC6K0iHvYvvz3SEppsHzbpVeY+9K1gozZHEpK8"15093
+ },15094
+ "signatures": {15095
+ "@alice_945:hs1": {15096
+ "ed25519:ALICEDEVICE945": "y+/Ww0/XBKKSACao0yoY4RL8dbgRbVyz94EQfeeAXjjJ3CcYZXVJea21VXHg/FADOWeYpBvB3lkIoVMQYPdKDg"15097
+ }15098
+ },15099
+ "user_id": "@alice_945:hs1",15100
+ "unsigned": {}15101
+ }15102
+ },15103
+ "@alice_963:hs1": {15104
+ "ALICEDEVICE963": {15105
+ "algorithms": [15106
+ "m.olm.v1.curve25519-aes-sha2",15107
+ "m.megolm.v1.aes-sha2"15108
+ ],15109
+ "device_id": "ALICEDEVICE963",15110
+ "keys": {15111
+ "curve25519:ALICEDEVICE963": "92eAdafu6humlgySUClsdnmEsaZr9NX/W5jPTWFiang",15112
+ "ed25519:ALICEDEVICE963": "kdW0eQHmSqqCO2JCYzTv5SMv+PoTSNzVT7CumA7+NEs"15113
+ },15114
+ "signatures": {15115
+ "@alice_963:hs1": {15116
+ "ed25519:ALICEDEVICE963": "YlpEv1rmOyBLrF/BrHKvNjI6qfXgGGsTZ0AWxKAwZVxnI3c2vIosouuW8TexhzPm+LBwYCcxYLDejipf3m0UCg"15117
+ }15118
+ },15119
+ "user_id": "@alice_963:hs1",15120
+ "unsigned": {}15121
+ }15122
+ },15123
+ "@alice_964:hs1": {15124
+ "ALICEDEVICE964": {15125
+ "algorithms": [15126
+ "m.olm.v1.curve25519-aes-sha2",15127
+ "m.megolm.v1.aes-sha2"15128
+ ],15129
+ "device_id": "ALICEDEVICE964",15130
+ "keys": {15131
+ "curve25519:ALICEDEVICE964": "W/5VxPQbOow0e3kxtmm7/ORz8UO8mky2xl9fd8JKwX0",15132
+ "ed25519:ALICEDEVICE964": "hbAU9nccaRGj0NfhrmVUhOflWbQSx9Nw/INQOP47SyY"15133
+ },15134
+ "signatures": {15135
+ "@alice_964:hs1": {15136
+ "ed25519:ALICEDEVICE964": "9KP6i4l9SdJ0mxMusjmfABEYk8Jb2mqVlXJdozzUN0ew+VZeENCXrQD/ysDVSJm6/8tRa3ctBrxxB77y2BnxBw"15137
+ }15138
+ },15139
+ "user_id": "@alice_964:hs1",15140
+ "unsigned": {}15141
+ }15142
+ },15143
+ "@alice_965:hs1": {15144
+ "ALICEDEVICE965": {15145
+ "algorithms": [15146
+ "m.olm.v1.curve25519-aes-sha2",15147
+ "m.megolm.v1.aes-sha2"15148
+ ],15149
+ "device_id": "ALICEDEVICE965",15150
+ "keys": {15151
+ "curve25519:ALICEDEVICE965": "Gwmp2xg7ls9gTaTS7rUpIhyjYJ++xDMdWsG23SSUW14",15152
+ "ed25519:ALICEDEVICE965": "ljZlRu+d4E84FPHKSINLaBSssln3FeNFtwlZOsZb6i4"15153
+ },15154
+ "signatures": {15155
+ "@alice_965:hs1": {15156
+ "ed25519:ALICEDEVICE965": "hSs42wZbg7mwIHQUezg0FpaU9SxLgtGiigQ3tPpQe37dj38Nv6yJeBVPL4PgJudi7XhNPyjIhC4NOLmqhBguBg"15157
+ }15158
+ },15159
+ "user_id": "@alice_965:hs1",15160
+ "unsigned": {}15161
+ }15162
+ },15163
+ "@alice_969:hs1": {15164
+ "ALICEDEVICE969": {15165
+ "algorithms": [15166
+ "m.olm.v1.curve25519-aes-sha2",15167
+ "m.megolm.v1.aes-sha2"15168
+ ],15169
+ "device_id": "ALICEDEVICE969",15170
+ "keys": {15171
+ "curve25519:ALICEDEVICE969": "uPZdlCpk+Q8krFzMyBY11KywRbTraw0MeMAtlHvUBAU",15172
+ "ed25519:ALICEDEVICE969": "YZFx98VYAAQmGgwcW84vmYuvJ9zyznOLmJPI/804igc"15173
+ },15174
+ "signatures": {15175
+ "@alice_969:hs1": {15176
+ "ed25519:ALICEDEVICE969": "HghtkJ29ml+qZnUKA8Zv8c0kYFQChCyyOtjP6j06zTypwyY0QdVXDRmteoRrSRF0qjo+11VOI+r35fdSUxzUCA"15177
+ }15178
+ },15179
+ "user_id": "@alice_969:hs1",15180
+ "unsigned": {}15181
+ }15182
+ },15183
+ "@alice_970:hs1": {15184
+ "ALICEDEVICE970": {15185
+ "algorithms": [15186
+ "m.olm.v1.curve25519-aes-sha2",15187
+ "m.megolm.v1.aes-sha2"15188
+ ],15189
+ "device_id": "ALICEDEVICE970",15190
+ "keys": {15191
+ "curve25519:ALICEDEVICE970": "PosPyXEhAohi1HgCZN3j6/9jzYrkZhpvifF5SeB4x00",15192
+ "ed25519:ALICEDEVICE970": "E7s3sJo0If2hFdDI3MyMEp6LFDSHFMgUaz6ash28pkc"15193
+ },15194
+ "signatures": {15195
+ "@alice_970:hs1": {15196
+ "ed25519:ALICEDEVICE970": "3draLhccMxtwzZEFuTfrPg+zhpz73UhN4Kc4rufmGpkJwrXr9k3vTvHXBn17DtJDhJEx1R9JqeUp8cPe1GBOAA"15197
+ }15198
+ },15199
+ "user_id": "@alice_970:hs1",15200
+ "unsigned": {}15201
+ }15202
+ },15203
+ "@alice_979:hs1": {15204
+ "ALICEDEVICE979": {15205
+ "algorithms": [15206
+ "m.olm.v1.curve25519-aes-sha2",15207
+ "m.megolm.v1.aes-sha2"15208
+ ],15209
+ "device_id": "ALICEDEVICE979",15210
+ "keys": {15211
+ "curve25519:ALICEDEVICE979": "D0S9AE/CcFlc5UCqmHJdoO+GvNGBuYLr5cb+Gpm2LEs",15212
+ "ed25519:ALICEDEVICE979": "i+2A+KdpnrUz8AC8eD7/+26AvFacNh+NZRLtOmUMSyw"15213
+ },15214
+ "signatures": {15215
+ "@alice_979:hs1": {15216
+ "ed25519:ALICEDEVICE979": "HYoJxLYXRelCzr19JteBMkKbKmj65ZwkCUkQk1OovAG3jOVu+Nhb56zFAJRcJ4UMkvhhS7WtvrdRmFITCme3BQ"15217
+ }15218
+ },15219
+ "user_id": "@alice_979:hs1",15220
+ "unsigned": {}15221
+ }15222
+ },15223
+ "@alice_97:hs1": {15224
+ "ALICEDEVICE97": {15225
+ "algorithms": [15226
+ "m.olm.v1.curve25519-aes-sha2",15227
+ "m.megolm.v1.aes-sha2"15228
+ ],15229
+ "device_id": "ALICEDEVICE97",15230
+ "keys": {15231
+ "curve25519:ALICEDEVICE97": "FrXFoLJWvkXo6Sc3YhW6s6/IS9v7cURNocInwaetGFg",15232
+ "ed25519:ALICEDEVICE97": "p9rAqGCYNoc3jo/7NxPQ95J6jgpVcGVuoZMVAPXspgw"15233
+ },15234
+ "signatures": {15235
+ "@alice_97:hs1": {15236
+ "ed25519:ALICEDEVICE97": "W0uNjZUjHLn0wDbQwX8Smaagy2W3KnazqmQGReBnZc7FZQzeeGHUNmipxU3ENU2+bUuGw/o/hv2l2hHcKjL9Aw"15237
+ }15238
+ },15239
+ "user_id": "@alice_97:hs1",15240
+ "unsigned": {}15241
+ }15242
+ },15243
+ "@alice_983:hs1": {15244
+ "ALICEDEVICE983": {15245
+ "algorithms": [15246
+ "m.olm.v1.curve25519-aes-sha2",15247
+ "m.megolm.v1.aes-sha2"15248
+ ],15249
+ "device_id": "ALICEDEVICE983",15250
+ "keys": {15251
+ "curve25519:ALICEDEVICE983": "yjHAb3qg1S1QwvfCafMhFWDH2bf/Ommjsfo74a9jklo",15252
+ "ed25519:ALICEDEVICE983": "3JKlLhFEPWACGdx26vLJWa4U1kIp265sIrdecaznSM0"15253
+ },15254
+ "signatures": {15255
+ "@alice_983:hs1": {15256
+ "ed25519:ALICEDEVICE983": "UOxRZtH1+aXhvVUqFFaruvrogzL+lKoUn+5wPvYT0Sky7BxR2p3RodOmj7UdB6+zQcXOGxikjWbeFRpUB2GaDA"15257
+ }15258
+ },15259
+ "user_id": "@alice_983:hs1",15260
+ "unsigned": {}15261
+ }15262
+ },15263
+ "@alice_987:hs1": {15264
+ "ALICEDEVICE987": {15265
+ "algorithms": [15266
+ "m.olm.v1.curve25519-aes-sha2",15267
+ "m.megolm.v1.aes-sha2"15268
+ ],15269
+ "device_id": "ALICEDEVICE987",15270
+ "keys": {15271
+ "curve25519:ALICEDEVICE987": "ye78Fy7jV1lzhXAAgwlATPBsZ6pwLMKlqGvUXcsRzQY",15272
+ "ed25519:ALICEDEVICE987": "T3/qFjJOLFsWkxh3bh07mz4QpMtq+vS5l25Vsc6rhR0"15273
+ },15274
+ "signatures": {15275
+ "@alice_987:hs1": {15276
+ "ed25519:ALICEDEVICE987": "uz3xQgr0TNB46f7LmfXiZUMH/+oCjRhMZPcIQwMmRahew0kRxDYORsBsL3qVBOkRWTzkOtHBbxxfyOxDWmAvDw"15277
+ }15278
+ },15279
+ "user_id": "@alice_987:hs1",15280
+ "unsigned": {}15281
+ }15282
+ },15283
+ "@alice_98:hs1": {15284
+ "ALICEDEVICE98": {15285
+ "algorithms": [15286
+ "m.olm.v1.curve25519-aes-sha2",15287
+ "m.megolm.v1.aes-sha2"15288
+ ],15289
+ "device_id": "ALICEDEVICE98",15290
+ "keys": {15291
+ "curve25519:ALICEDEVICE98": "I2XwdVdSBaVHgfiHzqixkGDKcHOq9vZuGTu3BmDpOlU",15292
+ "ed25519:ALICEDEVICE98": "Q0l485Y34yRmcOKYZ5Rbgyiz+l5WHvu85rw3cfl0kOA"15293
+ },15294
+ "signatures": {15295
+ "@alice_98:hs1": {15296
+ "ed25519:ALICEDEVICE98": "gCsUMPqlrmAiA0FVnMjesXaEDU3cKS1xB+vMaZ0Nu3IiMLTz9kLH9KwMe60xZtcxuxgQSthN28CxEZFhDVn7Aw"15297
+ }15298
+ },15299
+ "user_id": "@alice_98:hs1",15300
+ "unsigned": {}15301
+ }15302
+ },15303
+ "@alice_1005:hs1": {15304
+ "ALICEDEVICE1005": {15305
+ "algorithms": [15306
+ "m.olm.v1.curve25519-aes-sha2",15307
+ "m.megolm.v1.aes-sha2"15308
+ ],15309
+ "device_id": "ALICEDEVICE1005",15310
+ "keys": {15311
+ "curve25519:ALICEDEVICE1005": "1uta1s2OfqmV9oqPXJjXJMyYEwOiJeYAFumiSXYXIwI",15312
+ "ed25519:ALICEDEVICE1005": "Xa+m36Hwn7GRxyW08Z28AQOBOCMOCDWh76U7BzH4ifg"15313
+ },15314
+ "signatures": {15315
+ "@alice_1005:hs1": {15316
+ "ed25519:ALICEDEVICE1005": "LLT56QNmb+Knlzp3s47eMdlGXklXLXjwIaQjiomraPAPUDF4KRgg+6Dn5SYo4lyWF97jL8cnxdykYcE1NMY7Bg"15317
+ }15318
+ },15319
+ "user_id": "@alice_1005:hs1",15320
+ "unsigned": {}15321
+ }15322
+ },15323
+ "@alice_101:hs1": {15324
+ "ALICEDEVICE101": {15325
+ "algorithms": [15326
+ "m.olm.v1.curve25519-aes-sha2",15327
+ "m.megolm.v1.aes-sha2"15328
+ ],15329
+ "device_id": "ALICEDEVICE101",15330
+ "keys": {15331
+ "curve25519:ALICEDEVICE101": "PMoZdlcgiLtzg53OKh/D6vMCyPxpjC/Yy+Pka0JBNh4",15332
+ "ed25519:ALICEDEVICE101": "LAxiw/YBZv9M8c76zWcztvwUjyux55BJiI3CNNSyp24"15333
+ },15334
+ "signatures": {15335
+ "@alice_101:hs1": {15336
+ "ed25519:ALICEDEVICE101": "xc7JQaFujStTs0qIhgZSQy4rXggms8ZysiJWy1kpQXWPIUl9njKoZ2MAR2lQ9UeFwGQa2iHsVqwGcn+uHIpRAg"15337
+ }15338
+ },15339
+ "user_id": "@alice_101:hs1",15340
+ "unsigned": {}15341
+ }15342
+ },15343
+ "@alice_1022:hs1": {15344
+ "ALICEDEVICE1022": {15345
+ "algorithms": [15346
+ "m.olm.v1.curve25519-aes-sha2",15347
+ "m.megolm.v1.aes-sha2"15348
+ ],15349
+ "device_id": "ALICEDEVICE1022",15350
+ "keys": {15351
+ "curve25519:ALICEDEVICE1022": "nonNWRvBlPeMK8cgOWvg8KTxbJezWaiHUekzib7trG4",15352
+ "ed25519:ALICEDEVICE1022": "qUs+y5ishHZLiis5Q6NJKhyzbK+jlaH1+hL4MQCMMQ4"15353
+ },15354
+ "signatures": {15355
+ "@alice_1022:hs1": {15356
+ "ed25519:ALICEDEVICE1022": "tuv9mN/C9Pm7kC5v3bCXZeGAKoiAulXljz8AqJg2yQP6YVzL5RbLt+eWBAvHxxqhKuE69StnWXWHgsoektJuCw"15357
+ }15358
+ },15359
+ "user_id": "@alice_1022:hs1",15360
+ "unsigned": {}15361
+ }15362
+ },15363
+ "@alice_1023:hs1": {15364
+ "ALICEDEVICE1023": {15365
+ "algorithms": [15366
+ "m.olm.v1.curve25519-aes-sha2",15367
+ "m.megolm.v1.aes-sha2"15368
+ ],15369
+ "device_id": "ALICEDEVICE1023",15370
+ "keys": {15371
+ "curve25519:ALICEDEVICE1023": "cZwiYG/zf9houAVO5wxyxRt/l7wjtp3D0qIqD8I2sDk",15372
+ "ed25519:ALICEDEVICE1023": "SZ8hCZACHGg8MOe3/HTae1luSciXzEZpk7hgW7DYmvQ"15373
+ },15374
+ "signatures": {15375
+ "@alice_1023:hs1": {15376
+ "ed25519:ALICEDEVICE1023": "T3zLBvMYkJajcCaVSdeGwENGusrO5CnNmzLWO/OcL/Z4jJkgnSQXYUJUAnxqsJfEt7QA67WcUcR3aNGWqIdeCw"15377
+ }15378
+ },15379
+ "user_id": "@alice_1023:hs1",15380
+ "unsigned": {}15381
+ }15382
+ },15383
+ "@alice_1025:hs1": {15384
+ "ALICEDEVICE1025": {15385
+ "algorithms": [15386
+ "m.olm.v1.curve25519-aes-sha2",15387
+ "m.megolm.v1.aes-sha2"15388
+ ],15389
+ "device_id": "ALICEDEVICE1025",15390
+ "keys": {15391
+ "curve25519:ALICEDEVICE1025": "0DeqQbcWn9JQGJwqSOcEDEn+i8Iz+cckllOoU8jRySE",15392
+ "ed25519:ALICEDEVICE1025": "KGNoCK6rQKbelmD8HGYJAYM9gljihqMEL3pPi80O/AU"15393
+ },15394
+ "signatures": {15395
+ "@alice_1025:hs1": {15396
+ "ed25519:ALICEDEVICE1025": "5E93WB0l/aIRyAZTExFOLbNypXH3DGr0sdtw/xjQYxpoOjDcogUfmlvxW6mNwGQ0lbDnDNV+2LD5eo7GgoKqDA"15397
+ }15398
+ },15399
+ "user_id": "@alice_1025:hs1",15400
+ "unsigned": {}15401
+ }15402
+ },15403
+ "@alice_1044:hs1": {15404
+ "ALICEDEVICE1044": {15405
+ "algorithms": [15406
+ "m.olm.v1.curve25519-aes-sha2",15407
+ "m.megolm.v1.aes-sha2"15408
+ ],15409
+ "device_id": "ALICEDEVICE1044",15410
+ "keys": {15411
+ "curve25519:ALICEDEVICE1044": "FK5QsuokxT4RcsCRcRNH/R/m2npI6jGqHMLi66X5VU8",15412
+ "ed25519:ALICEDEVICE1044": "MXTA5Ph+jPVKWPBxDCYRpmG9HqubaQipjpPkBo2YHOE"15413
+ },15414
+ "signatures": {15415
+ "@alice_1044:hs1": {15416
+ "ed25519:ALICEDEVICE1044": "3UUqT/rm0emNr/uc5654kr3Po3fNsESjfCgTClIjWxs5j4Kldkq3JJb07ErEm+CRXeEk6sbv9q6mqvV0RXXdAQ"15417
+ }15418
+ },15419
+ "user_id": "@alice_1044:hs1",15420
+ "unsigned": {}15421
+ }15422
+ },15423
+ "@alice_1072:hs1": {15424
+ "ALICEDEVICE1072": {15425
+ "algorithms": [15426
+ "m.olm.v1.curve25519-aes-sha2",15427
+ "m.megolm.v1.aes-sha2"15428
+ ],15429
+ "device_id": "ALICEDEVICE1072",15430
+ "keys": {15431
+ "curve25519:ALICEDEVICE1072": "nqzEjydlCMDw4PVBHeyVKKWBXKeU+Lcw/qtoNJlsPnY",15432
+ "ed25519:ALICEDEVICE1072": "aa3DkNYTNfR4iHRnOgumeXYVQiCeGd57yoaPuLi4ISM"15433
+ },15434
+ "signatures": {15435
+ "@alice_1072:hs1": {15436
+ "ed25519:ALICEDEVICE1072": "Xhq/PeeHPUNkFF1uFnEBBIOVKRzQEuGLLcsHCrf4dJpIDtbdpLgvllaFtF9Mfa2DTpYZNDiJuXZ04GLsoPtbBQ"15437
+ }15438
+ },15439
+ "user_id": "@alice_1072:hs1",15440
+ "unsigned": {}15441
+ }15442
+ },15443
+ "@alice_1102:hs1": {15444
+ "ALICEDEVICE1102": {15445
+ "algorithms": [15446
+ "m.olm.v1.curve25519-aes-sha2",15447
+ "m.megolm.v1.aes-sha2"15448
+ ],15449
+ "device_id": "ALICEDEVICE1102",15450
+ "keys": {15451
+ "curve25519:ALICEDEVICE1102": "xsx4B5aFFipLmKEwvwgmBCOZBzS7y6uBZwxQSgZPzX0",15452
+ "ed25519:ALICEDEVICE1102": "APB7hrFd69qaEBcbWhpICAhzhRYeKxkFPRjvccLwKrc"15453
+ },15454
+ "signatures": {15455
+ "@alice_1102:hs1": {15456
+ "ed25519:ALICEDEVICE1102": "XWXVNSxDqd4L+4rr2UezPgmW11CPgon+Db/Pf9ClGqIzmMDGqToYWYbHLMNvEe5lBVgji+x1mtzoUENLjE75Ag"15457
+ }15458
+ },15459
+ "user_id": "@alice_1102:hs1",15460
+ "unsigned": {}15461
+ }15462
+ },15463
+ "@alice_1122:hs1": {15464
+ "ALICEDEVICE1122": {15465
+ "algorithms": [15466
+ "m.olm.v1.curve25519-aes-sha2",15467
+ "m.megolm.v1.aes-sha2"15468
+ ],15469
+ "device_id": "ALICEDEVICE1122",15470
+ "keys": {15471
+ "curve25519:ALICEDEVICE1122": "G/QDNJJnVWKCy2IcPMRrGhEUIQWzrCSUwvFWSvngngU",15472
+ "ed25519:ALICEDEVICE1122": "6r/xELHI34OgH7upxOwOqelewZW5OZ5t12bc5xtAql4"15473
+ },15474
+ "signatures": {15475
+ "@alice_1122:hs1": {15476
+ "ed25519:ALICEDEVICE1122": "ysm+/q+miYq5Sfz6k1/7W4chLmzlviJ9jAzvEdIuv2A0j5+E746M4ebrmEnbGUvUbqQVuSUNhsjhjk0U4Q62Ag"15477
+ }15478
+ },15479
+ "user_id": "@alice_1122:hs1",15480
+ "unsigned": {}15481
+ }15482
+ },15483
+ "@alice_1135:hs1": {15484
+ "ALICEDEVICE1135": {15485
+ "algorithms": [15486
+ "m.olm.v1.curve25519-aes-sha2",15487
+ "m.megolm.v1.aes-sha2"15488
+ ],15489
+ "device_id": "ALICEDEVICE1135",15490
+ "keys": {15491
+ "curve25519:ALICEDEVICE1135": "dnenkmjqSPjrekzSMdM3YFPva0hFJL1vAghSzO4vZ24",15492
+ "ed25519:ALICEDEVICE1135": "Vtaw72QJpDWgw3aOT88LnRTywSj6y4aYsDUuILBWLa0"15493
+ },15494
+ "signatures": {15495
+ "@alice_1135:hs1": {15496
+ "ed25519:ALICEDEVICE1135": "Jb3R7dxd6JhIsnsI4DOczrF4DmnYwMDmGDzjy5yU06i/TKb8SqkgmAK5GpNlZItGWpEn62LaexSZWH0ZIZsVBA"15497
+ }15498
+ },15499
+ "user_id": "@alice_1135:hs1",15500
+ "unsigned": {}15501
+ }15502
+ },15503
+ "@alice_1148:hs1": {15504
+ "ALICEDEVICE1148": {15505
+ "algorithms": [15506
+ "m.olm.v1.curve25519-aes-sha2",15507
+ "m.megolm.v1.aes-sha2"15508
+ ],15509
+ "device_id": "ALICEDEVICE1148",15510
+ "keys": {15511
+ "curve25519:ALICEDEVICE1148": "f1QrKEuoHJjKYiyamNdBi7cASZUW1cdnUOzD6N365kE",15512
+ "ed25519:ALICEDEVICE1148": "q5FKqfZX31BF+Ww081Q5y36Z1qZui+kkPwllQZ1fS+8"15513
+ },15514
+ "signatures": {15515
+ "@alice_1148:hs1": {15516
+ "ed25519:ALICEDEVICE1148": "p4MgmbovTtbnldiYwVeWOngYlR83ldHb/40/jjryIK8lUCHYrvkKwEiYBRkZUSE4ZYL/q9SM4gSXzkEj3en6Ag"15517
+ }15518
+ },15519
+ "user_id": "@alice_1148:hs1",15520
+ "unsigned": {}15521
+ }15522
+ },15523
+ "@alice_1155:hs1": {15524
+ "ALICEDEVICE1155": {15525
+ "algorithms": [15526
+ "m.olm.v1.curve25519-aes-sha2",15527
+ "m.megolm.v1.aes-sha2"15528
+ ],15529
+ "device_id": "ALICEDEVICE1155",15530
+ "keys": {15531
+ "curve25519:ALICEDEVICE1155": "50W2RLO06kiQ/7OF35IkVUWpWU5fOZdJLbxtFS0mQB0",15532
+ "ed25519:ALICEDEVICE1155": "arHzk4ilnNcHzZzn3HLazAjHz1DjVvcI//sPAIirBKM"15533
+ },15534
+ "signatures": {15535
+ "@alice_1155:hs1": {15536
+ "ed25519:ALICEDEVICE1155": "zCFVA7ht+Te5p0xhiGzY7skZu6bYN5RTqJWANROXflBpr6hrXxLM+1PViSi2aDosIGxj8Pnlsbf6SJWhbp9iAg"15537
+ }15538
+ },15539
+ "user_id": "@alice_1155:hs1",15540
+ "unsigned": {}15541
+ }15542
+ },15543
+ "@alice_1165:hs1": {15544
+ "ALICEDEVICE1165": {15545
+ "algorithms": [15546
+ "m.olm.v1.curve25519-aes-sha2",15547
+ "m.megolm.v1.aes-sha2"15548
+ ],15549
+ "device_id": "ALICEDEVICE1165",15550
+ "keys": {15551
+ "curve25519:ALICEDEVICE1165": "5/PKlkbHfVi4BKPW/DsdSRvAkToMYbaH5jit+STFhF0",15552
+ "ed25519:ALICEDEVICE1165": "sCKY0+cLHr0E5+JAGynUQBblZSftuowvVKtlu/OIMUQ"15553
+ },15554
+ "signatures": {15555
+ "@alice_1165:hs1": {15556
+ "ed25519:ALICEDEVICE1165": "mfUCbC62sFARsks7a8xE2boTe65AMUAowlrzCMHmfliNgD8cQeciFKjri5dG8rovWZalvptsDpTtlNkupQBrBA"15557
+ }15558
+ },15559
+ "user_id": "@alice_1165:hs1",15560
+ "unsigned": {}15561
+ }15562
+ },15563
+ "@alice_1174:hs1": {15564
+ "ALICEDEVICE1174": {15565
+ "algorithms": [15566
+ "m.olm.v1.curve25519-aes-sha2",15567
+ "m.megolm.v1.aes-sha2"15568
+ ],15569
+ "device_id": "ALICEDEVICE1174",15570
+ "keys": {15571
+ "curve25519:ALICEDEVICE1174": "dEKiGcTpioYd0CYae8EPk4c0GFWW3LeFfJF5EwVZG34",15572
+ "ed25519:ALICEDEVICE1174": "DrCi8O7+kx7Tlkp/ofAaZuLHXOl/3q20OLcsUMSgmEw"15573
+ },15574
+ "signatures": {15575
+ "@alice_1174:hs1": {15576
+ "ed25519:ALICEDEVICE1174": "mb+P4lDay4nOO1HM33uf1L2MsAxR9nQ3cNCTqYn0EnGLg9cdWXp9MYc0Jiua+8EuFaZPvvy6zqgT/SQjD7fgCw"15577
+ }15578
+ },15579
+ "user_id": "@alice_1174:hs1",15580
+ "unsigned": {}15581
+ }15582
+ },15583
+ "@alice_1191:hs1": {15584
+ "ALICEDEVICE1191": {15585
+ "algorithms": [15586
+ "m.olm.v1.curve25519-aes-sha2",15587
+ "m.megolm.v1.aes-sha2"15588
+ ],15589
+ "device_id": "ALICEDEVICE1191",15590
+ "keys": {15591
+ "curve25519:ALICEDEVICE1191": "i3PW2JS9mNMYDmsmWLQGOqL1PmYd0h6QRIO9Jnj4qBc",15592
+ "ed25519:ALICEDEVICE1191": "wURVUp7OiEQfrE+brnXDpcyaXQhfzoO5luLFzQGgfto"15593
+ },15594
+ "signatures": {15595
+ "@alice_1191:hs1": {15596
+ "ed25519:ALICEDEVICE1191": "uMCIkIAnGGplDf36pwZ432Ge8gxAZIkNeytm2I7CYtIFhdCUtHZlB6buvvL+6BxhqHUunGpAH/QF7bPC+C0BDg"15597
+ }15598
+ },15599
+ "user_id": "@alice_1191:hs1",15600
+ "unsigned": {}15601
+ }15602
+ },15603
+ "@alice_1198:hs1": {15604
+ "ALICEDEVICE1198": {15605
+ "algorithms": [15606
+ "m.olm.v1.curve25519-aes-sha2",15607
+ "m.megolm.v1.aes-sha2"15608
+ ],15609
+ "device_id": "ALICEDEVICE1198",15610
+ "keys": {15611
+ "curve25519:ALICEDEVICE1198": "ngw/ozfP60cSnEVq9tJdUtbr0dC0f07GrhHt6efXAgE",15612
+ "ed25519:ALICEDEVICE1198": "6lWbgEwZZbSoE6ru0ENHr/YP3HnGXbW5l6v2Yu9GiB0"15613
+ },15614
+ "signatures": {15615
+ "@alice_1198:hs1": {15616
+ "ed25519:ALICEDEVICE1198": "MoiIA5Ucls10gU9jEVy8YlAeFbmUNGYtZ47hP3lC+mMvLL49CixsKoyZVq+2J/fssNjejBycYJPcSQ/Mm/XKDw"15617
+ }15618
+ },15619
+ "user_id": "@alice_1198:hs1",15620
+ "unsigned": {}15621
+ }15622
+ },15623
+ "@alice_1200:hs1": {15624
+ "ALICEDEVICE1200": {15625
+ "algorithms": [15626
+ "m.olm.v1.curve25519-aes-sha2",15627
+ "m.megolm.v1.aes-sha2"15628
+ ],15629
+ "device_id": "ALICEDEVICE1200",15630
+ "keys": {15631
+ "curve25519:ALICEDEVICE1200": "1jqDyEBg+7s9j7wRQgLcceuANZJcaylISVY+D6j6Oms",15632
+ "ed25519:ALICEDEVICE1200": "lWa5BHy+3x1Qx4sJ7PRt27tmoq+c71WWgJI4NaSZ0Q4"15633
+ },15634
+ "signatures": {15635
+ "@alice_1200:hs1": {15636
+ "ed25519:ALICEDEVICE1200": "4oFLRPxgKWfUr8uH56j8seG6H5yGCkj3b+7yMbt45S55ixUe73+ZhKs+Q92h6lV9slZcuBV/bazJ3BvKbEyACw"15637
+ }15638
+ },15639
+ "user_id": "@alice_1200:hs1",15640
+ "unsigned": {}15641
+ }15642
+ },15643
+ "@alice_1204:hs1": {15644
+ "ALICEDEVICE1204": {15645
+ "algorithms": [15646
+ "m.olm.v1.curve25519-aes-sha2",15647
+ "m.megolm.v1.aes-sha2"15648
+ ],15649
+ "device_id": "ALICEDEVICE1204",15650
+ "keys": {15651
+ "curve25519:ALICEDEVICE1204": "TiAtfQnJl7wM2kh6m35CmXibEcem9Holtm30vrJqnF4",15652
+ "ed25519:ALICEDEVICE1204": "AQl6FsNC+uGyvUZZDbSNMbXTl5AaBROFvI1dtNTf9HE"15653
+ },15654
+ "signatures": {15655
+ "@alice_1204:hs1": {15656
+ "ed25519:ALICEDEVICE1204": "PrvQuSQ8NqEHOsN1qy3Kb7DrGOGHFbGzgaFGyk6DvGsljOMOi4sfhpt6KMsczZBoMFz2kJbTJbz+BGn0J2XLAA"15657
+ }15658
+ },15659
+ "user_id": "@alice_1204:hs1",15660
+ "unsigned": {}15661
+ }15662
+ },15663
+ "@alice_1206:hs1": {15664
+ "ALICEDEVICE1206": {15665
+ "algorithms": [15666
+ "m.olm.v1.curve25519-aes-sha2",15667
+ "m.megolm.v1.aes-sha2"15668
+ ],15669
+ "device_id": "ALICEDEVICE1206",15670
+ "keys": {15671
+ "curve25519:ALICEDEVICE1206": "fN7G4QNePkeXAUgpcXuKgO3KEPjalUEO/2GKfkTV/Us",15672
+ "ed25519:ALICEDEVICE1206": "aY20Yf+fuD9mhk1qb+7mXwUXZbbGqGStssEKlJD5SK0"15673
+ },15674
+ "signatures": {15675
+ "@alice_1206:hs1": {15676
+ "ed25519:ALICEDEVICE1206": "JxOd0o/aOxIyrqx/wC5chu91c+0vChz0QqFMv4JxnmDaMTYhjn3OFBXFp++Po3mw9S6tcy1fGDv1ipK2DtyZDg"15677
+ }15678
+ },15679
+ "user_id": "@alice_1206:hs1",15680
+ "unsigned": {}15681
+ }15682
+ },15683
+ "@alice_1219:hs1": {15684
+ "ALICEDEVICE1219": {15685
+ "algorithms": [15686
+ "m.olm.v1.curve25519-aes-sha2",15687
+ "m.megolm.v1.aes-sha2"15688
+ ],15689
+ "device_id": "ALICEDEVICE1219",15690
+ "keys": {15691
+ "curve25519:ALICEDEVICE1219": "RP5D7bCNjsIvg1X1QHWmjG42LDL5+ef4PAnSjaAMMGQ",15692
+ "ed25519:ALICEDEVICE1219": "wXbJvSItBgWkWSHPySkWfLQo5hOi+fRJJsdWX5H0qzs"15693
+ },15694
+ "signatures": {15695
+ "@alice_1219:hs1": {15696
+ "ed25519:ALICEDEVICE1219": "8cCXA4BSXqOzIiqGYzupw8epVHsRX/99OwWZt9jO/HRbrcJG22ywpNStYBoyA1rDIgqnzaBP0Y0v6T42+GxGAQ"15697
+ }15698
+ },15699
+ "user_id": "@alice_1219:hs1",15700
+ "unsigned": {}15701
+ }15702
+ },15703
+ "@alice_1221:hs1": {15704
+ "ALICEDEVICE1221": {15705
+ "algorithms": [15706
+ "m.olm.v1.curve25519-aes-sha2",15707
+ "m.megolm.v1.aes-sha2"15708
+ ],15709
+ "device_id": "ALICEDEVICE1221",15710
+ "keys": {15711
+ "curve25519:ALICEDEVICE1221": "b4+TyWPnPUfXrtro4/ZElyvwNNS1NlJksmxZAJVzKFg",15712
+ "ed25519:ALICEDEVICE1221": "7s1Cc0Nrb5Eugf1Wt3t92d9mRusaF05B6uUEeJ0gvdI"15713
+ },15714
+ "signatures": {15715
+ "@alice_1221:hs1": {15716
+ "ed25519:ALICEDEVICE1221": "Av0+WW5eGWMocl6Mpmadkd+V76qRg0ot/9+49vdiHW6q2AhSEoHFmZWoKt+rtyJdnSsOkJ9TJxBdTt8YgsbCCg"15717
+ }15718
+ },15719
+ "user_id": "@alice_1221:hs1",15720
+ "unsigned": {}15721
+ }15722
+ },15723
+ "@alice_1226:hs1": {15724
+ "ALICEDEVICE1226": {15725
+ "algorithms": [15726
+ "m.olm.v1.curve25519-aes-sha2",15727
+ "m.megolm.v1.aes-sha2"15728
+ ],15729
+ "device_id": "ALICEDEVICE1226",15730
+ "keys": {15731
+ "curve25519:ALICEDEVICE1226": "I3Dfi4OYonU6/qn6Mvhu8lYrlCXgazYeZZJGlz/Nj3U",15732
+ "ed25519:ALICEDEVICE1226": "j8qiy9YDfWSw8yOY/Cmv7GduZdMtYiv/vfuXEsw1vJQ"15733
+ },15734
+ "signatures": {15735
+ "@alice_1226:hs1": {15736
+ "ed25519:ALICEDEVICE1226": "LZIoQnVHEBNpwSuSa3+SzHgAYdcDlzYMChrQfqkkrYnHBI3v9hldjlcgVHaYCRcY/AVZiW457WoCfNUVoTPdBQ"15737
+ }15738
+ },15739
+ "user_id": "@alice_1226:hs1",15740
+ "unsigned": {}15741
+ }15742
+ },15743
+ "@alice_1233:hs1": {15744
+ "ALICEDEVICE1233": {15745
+ "algorithms": [15746
+ "m.olm.v1.curve25519-aes-sha2",15747
+ "m.megolm.v1.aes-sha2"15748
+ ],15749
+ "device_id": "ALICEDEVICE1233",15750
+ "keys": {15751
+ "curve25519:ALICEDEVICE1233": "ZSBdQ+haA58bhiSyoWMOsxHEEjA6BjuiqxxgDOatJlQ",15752
+ "ed25519:ALICEDEVICE1233": "HC/4hg0Ze4wLOH/9vSYLs+Ct3pmK0m8avBof2y6L0mw"15753
+ },15754
+ "signatures": {15755
+ "@alice_1233:hs1": {15756
+ "ed25519:ALICEDEVICE1233": "tm7kTTiJnVgn+l5tNV9SfyvYoSQyCfwA2asOVyv48dN/WE9xqk/NHyL/hCUNLz6ceK4RwjZnp6lvSEQdof4oDQ"15757
+ }15758
+ },15759
+ "user_id": "@alice_1233:hs1",15760
+ "unsigned": {}15761
+ }15762
+ },15763
+ "@alice_1239:hs1": {15764
+ "ALICEDEVICE1239": {15765
+ "algorithms": [15766
+ "m.olm.v1.curve25519-aes-sha2",15767
+ "m.megolm.v1.aes-sha2"15768
+ ],15769
+ "device_id": "ALICEDEVICE1239",15770
+ "keys": {15771
+ "curve25519:ALICEDEVICE1239": "9662N9lBeLYedfkBxvQaWTMzFjU+FyZO2/8aZy6LZmc",15772
+ "ed25519:ALICEDEVICE1239": "Hl3ie7jZt6LN6G5MYxTxkQ+B2hj1N4rmM2gCr4/S1uw"15773
+ },15774
+ "signatures": {15775
+ "@alice_1239:hs1": {15776
+ "ed25519:ALICEDEVICE1239": "2fxWxHoARIPLVP2CIq9X3FvWjWG8XsWIuk30TsXsWLAT3swafw6iVeeOjkEzNIaE6U0vy+wWs7K0u2zy6FKsCg"15777
+ }15778
+ },15779
+ "user_id": "@alice_1239:hs1",15780
+ "unsigned": {}15781
+ }15782
+ },15783
+ "@alice_123:hs1": {15784
+ "ALICEDEVICE123": {15785
+ "algorithms": [15786
+ "m.olm.v1.curve25519-aes-sha2",15787
+ "m.megolm.v1.aes-sha2"15788
+ ],15789
+ "device_id": "ALICEDEVICE123",15790
+ "keys": {15791
+ "curve25519:ALICEDEVICE123": "c410As92emKdm5Bsub83OQJEQxSTHCB0tvbFcMWYzB0",15792
+ "ed25519:ALICEDEVICE123": "W5orWRJnatXs5wpvPjv3udgb6siKqFPhFR9Bt8QebUw"15793
+ },15794
+ "signatures": {15795
+ "@alice_123:hs1": {15796
+ "ed25519:ALICEDEVICE123": "yna9Oi25k4+E3MiiU3Vi452TXHY+mIR3cfLoWb/YRy9RJQamq/lPqY6lAlF+APnVq1K1gbO6Ydt6ucKtag6MCg"15797
+ }15798
+ },15799
+ "user_id": "@alice_123:hs1",15800
+ "unsigned": {}15801
+ }15802
+ },15803
+ "@alice_1241:hs1": {15804
+ "ALICEDEVICE1241": {15805
+ "algorithms": [15806
+ "m.olm.v1.curve25519-aes-sha2",15807
+ "m.megolm.v1.aes-sha2"15808
+ ],15809
+ "device_id": "ALICEDEVICE1241",15810
+ "keys": {15811
+ "curve25519:ALICEDEVICE1241": "QLAb1xiTdfKnHun64v0/s6XyWsn55wX2mSig70BaHzU",15812
+ "ed25519:ALICEDEVICE1241": "olzpH61PvmHiIdbRLeBNYr/y7TrbwSKj6PzH+7BrBUo"15813
+ },15814
+ "signatures": {15815
+ "@alice_1241:hs1": {15816
+ "ed25519:ALICEDEVICE1241": "lR0ZQ2GVv+C3xX9O9qdZgtrgm9AHitRwchCvdyX4wlD6GrJoYDGuaLwAUUEoO+t0MoLFzS9Lv04Vmv8mUvZjCg"15817
+ }15818
+ },15819
+ "user_id": "@alice_1241:hs1",15820
+ "unsigned": {}15821
+ }15822
+ },15823
+ "@alice_1245:hs1": {15824
+ "ALICEDEVICE1245": {15825
+ "algorithms": [15826
+ "m.olm.v1.curve25519-aes-sha2",15827
+ "m.megolm.v1.aes-sha2"15828
+ ],15829
+ "device_id": "ALICEDEVICE1245",15830
+ "keys": {15831
+ "curve25519:ALICEDEVICE1245": "ju4SgNyMZbpSc/I9TmgjbVDp9XvWGg19vB4Vp6EknDE",15832
+ "ed25519:ALICEDEVICE1245": "cRHdCADETgASf8qAKuF5XsaZgvmBCW3HDE8a2n7bmnk"15833
+ },15834
+ "signatures": {15835
+ "@alice_1245:hs1": {15836
+ "ed25519:ALICEDEVICE1245": "rx6+y16ZAJAUm52Y2lUIEdba7xaf1YpMUmFXzDb/NPpkt3T6WlOJjcY2NHNPAHYD+SDsRPF95o4T41OmrXwBAg"15837
+ }15838
+ },15839
+ "user_id": "@alice_1245:hs1",15840
+ "unsigned": {}15841
+ }15842
+ },15843
+ "@alice_1252:hs1": {15844
+ "ALICEDEVICE1252": {15845
+ "algorithms": [15846
+ "m.olm.v1.curve25519-aes-sha2",15847
+ "m.megolm.v1.aes-sha2"15848
+ ],15849
+ "device_id": "ALICEDEVICE1252",15850
+ "keys": {15851
+ "curve25519:ALICEDEVICE1252": "JZ6gqkkNYkSrjjF8bBn9WWJvVDoEZ1gg7wEPFl53GBw",15852
+ "ed25519:ALICEDEVICE1252": "bfRP128PaTwrCeCdnmQRy1L4sMycwZGfBK/z6y7KVB0"15853
+ },15854
+ "signatures": {15855
+ "@alice_1252:hs1": {15856
+ "ed25519:ALICEDEVICE1252": "thICflj3vBo5XxoI4b7qDHU4qpCvWvSzgJuK17BT+/Vr5bonFt/R8zBVh767I0endj6fHVaouEtetUiSKKEKCg"15857
+ }15858
+ },15859
+ "user_id": "@alice_1252:hs1",15860
+ "unsigned": {}15861
+ }15862
+ },15863
+ "@alice_1269:hs1": {15864
+ "ALICEDEVICE1269": {15865
+ "algorithms": [15866
+ "m.olm.v1.curve25519-aes-sha2",15867
+ "m.megolm.v1.aes-sha2"15868
+ ],15869
+ "device_id": "ALICEDEVICE1269",15870
+ "keys": {15871
+ "curve25519:ALICEDEVICE1269": "OVjYrR16pRCRkI7NobOA7T1pxw2X2pwcXHbOOn58unE",15872
+ "ed25519:ALICEDEVICE1269": "RmAE6qJu4leNKuKvktCG36+bUgh8qsoPkyYOHVWGAs4"15873
+ },15874
+ "signatures": {15875
+ "@alice_1269:hs1": {15876
+ "ed25519:ALICEDEVICE1269": "QixDcRZXgbmOvGrxUfOVIk0ORDzEIv18JBqIYWaJGz8pZXgkxPfcDLjzI8/QneUNxfpoG6Rmm7UrTqrg4uGaBw"15877
+ }15878
+ },15879
+ "user_id": "@alice_1269:hs1",15880
+ "unsigned": {}15881
+ }15882
+ },15883
+ "@alice_1270:hs1": {15884
+ "ALICEDEVICE1270": {15885
+ "algorithms": [15886
+ "m.olm.v1.curve25519-aes-sha2",15887
+ "m.megolm.v1.aes-sha2"15888
+ ],15889
+ "device_id": "ALICEDEVICE1270",15890
+ "keys": {15891
+ "curve25519:ALICEDEVICE1270": "GQIm62kmfZa2ETBy0va36Y6FLlawjMwwPi9V/QpaMDw",15892
+ "ed25519:ALICEDEVICE1270": "tf9lgzVA48B9U1iOtjGq3x31lk0fw657ZE8Sm3/B6yQ"15893
+ },15894
+ "signatures": {15895
+ "@alice_1270:hs1": {15896
+ "ed25519:ALICEDEVICE1270": "tJ7q+nBXvqr4oBWo7+Ed1PhfpqsyDPU6C1yuJw4pKGzncqD3WpuvGZqJJLCrRye2caYWTvgiLpmW44u2eQruCg"15897
+ }15898
+ },15899
+ "user_id": "@alice_1270:hs1",15900
+ "unsigned": {}15901
+ }15902
+ },15903
+ "@alice_1277:hs1": {15904
+ "ALICEDEVICE1277": {15905
+ "algorithms": [15906
+ "m.olm.v1.curve25519-aes-sha2",15907
+ "m.megolm.v1.aes-sha2"15908
+ ],15909
+ "device_id": "ALICEDEVICE1277",15910
+ "keys": {15911
+ "curve25519:ALICEDEVICE1277": "eS4Ok4obmPG0LkaRMIu9Lepvy0uIihcDaqcSAayqIj0",15912
+ "ed25519:ALICEDEVICE1277": "sIjP9/SpBhFWK5dTlaFHIV5E1KQ/CS3WFSz6OvAOJio"15913
+ },15914
+ "signatures": {15915
+ "@alice_1277:hs1": {15916
+ "ed25519:ALICEDEVICE1277": "zQvvNLvww7U+bS3Til9WgC/w984M5A65I4JDVhKtoWcd/GTh2PviXbkzfUUE0So++uK31UiIkUZ7eGhdbCRmBA"15917
+ }15918
+ },15919
+ "user_id": "@alice_1277:hs1",15920
+ "unsigned": {}15921
+ }15922
+ },15923
+ "@alice_1278:hs1": {15924
+ "ALICEDEVICE1278": {15925
+ "algorithms": [15926
+ "m.olm.v1.curve25519-aes-sha2",15927
+ "m.megolm.v1.aes-sha2"15928
+ ],15929
+ "device_id": "ALICEDEVICE1278",15930
+ "keys": {15931
+ "curve25519:ALICEDEVICE1278": "KjSZCqWrafv4cvq+uyDQMPpGIu2P7WNtPttwpMu6Wnw",15932
+ "ed25519:ALICEDEVICE1278": "bSXJI+DRYlylKXZSDcsrz7Aa54q9yWWrMRUka62CetA"15933
+ },15934
+ "signatures": {15935
+ "@alice_1278:hs1": {15936
+ "ed25519:ALICEDEVICE1278": "SpWjC6W3fSWsyYCpYTaEa5APdSYG73dgDEUZkRPZYDsZzYrRYJ8kiKob+j1i46iuy3h79aI1/d8wE6EF7Yl4DQ"15937
+ }15938
+ },15939
+ "user_id": "@alice_1278:hs1",15940
+ "unsigned": {}15941
+ }15942
+ },15943
+ "@alice_128:hs1": {15944
+ "ALICEDEVICE128": {15945
+ "algorithms": [15946
+ "m.olm.v1.curve25519-aes-sha2",15947
+ "m.megolm.v1.aes-sha2"15948
+ ],15949
+ "device_id": "ALICEDEVICE128",15950
+ "keys": {15951
+ "curve25519:ALICEDEVICE128": "ANNv7FkwOnd8h0YSmoD9elfytCNGYIqoNLyWk/qfbDw",15952
+ "ed25519:ALICEDEVICE128": "+RrHziJAFaHwF22pQCJmafBAhSxY99qYsPrZJBCTFT4"15953
+ },15954
+ "signatures": {15955
+ "@alice_128:hs1": {15956
+ "ed25519:ALICEDEVICE128": "i/Cqe8VLEiFxC7OFeI1JbqeKfgzLeNfmEk5ZsDDKkTDm3rj+Iocv+9Sv3fE0IJ56Buqldw1Vjqc8XHsjXRGYBw"15957
+ }15958
+ },15959
+ "user_id": "@alice_128:hs1",15960
+ "unsigned": {}15961
+ }15962
+ },15963
+ "@alice_1293:hs1": {15964
+ "ALICEDEVICE1293": {15965
+ "algorithms": [15966
+ "m.olm.v1.curve25519-aes-sha2",15967
+ "m.megolm.v1.aes-sha2"15968
+ ],15969
+ "device_id": "ALICEDEVICE1293",15970
+ "keys": {15971
+ "curve25519:ALICEDEVICE1293": "Ik639Bv/ERMaQp6iT1Zf2nRR7xT58ucQrnnbhwNtmSs",15972
+ "ed25519:ALICEDEVICE1293": "+6mQ2Kt9mQhxOrgiKAgkB87mwktRc+VGiLDE5UMWlow"15973
+ },15974
+ "signatures": {15975
+ "@alice_1293:hs1": {15976
+ "ed25519:ALICEDEVICE1293": "DgVJmGT0I5YbbLbKKbJutsndefVHz2bjiVD7zb6TQffejRPUtXmpcCESwVXLmd6qxHLK8h/EW7nKt0f5y5U7DQ"15977
+ }15978
+ },15979
+ "user_id": "@alice_1293:hs1",15980
+ "unsigned": {}15981
+ }15982
+ },15983
+ "@alice_1317:hs1": {15984
+ "ALICEDEVICE1317": {15985
+ "algorithms": [15986
+ "m.olm.v1.curve25519-aes-sha2",15987
+ "m.megolm.v1.aes-sha2"15988
+ ],15989
+ "device_id": "ALICEDEVICE1317",15990
+ "keys": {15991
+ "curve25519:ALICEDEVICE1317": "99tINBHviTeyMkc8fwqxScD2myz7sEVZgJ1g6CYvJXY",15992
+ "ed25519:ALICEDEVICE1317": "VCru7wx7ncCLPqnugypmPZhkvxmdU6YGgWPqhOR1A/4"15993
+ },15994
+ "signatures": {15995
+ "@alice_1317:hs1": {15996
+ "ed25519:ALICEDEVICE1317": "fjm3C51psDFUxEJsFQ+T75lqaCrNjd/RNUnBxU6PHEtZ6+BDax8Ff03aYjcvc7TtSmklqEAmg7rBsnnMadZjDg"15997
+ }15998
+ },15999
+ "user_id": "@alice_1317:hs1",16000
+ "unsigned": {}16001
+ }16002
+ },16003
+ "@alice_1323:hs1": {16004
+ "ALICEDEVICE1323": {16005
+ "algorithms": [16006
+ "m.olm.v1.curve25519-aes-sha2",16007
+ "m.megolm.v1.aes-sha2"16008
+ ],16009
+ "device_id": "ALICEDEVICE1323",16010
+ "keys": {16011
+ "curve25519:ALICEDEVICE1323": "Ku0B2lLFCM01t3W/erVxULxJByx9mSdUowCSYFw2ZHs",16012
+ "ed25519:ALICEDEVICE1323": "OlAEj9EORTAERXcxJiZfnypZS73R8gP4PP610dtEbuw"16013
+ },16014
+ "signatures": {16015
+ "@alice_1323:hs1": {16016
+ "ed25519:ALICEDEVICE1323": "kmTO3V6e8nIrs9HMaZ0tj3FwPm1U84TmlhtOXwlbkZ6kmUbZNB1gPOHsfoBCcrGY1X9p+0G5u0hL5V/qqqlZCw"16017
+ }16018
+ },16019
+ "user_id": "@alice_1323:hs1",16020
+ "unsigned": {}16021
+ }16022
+ },16023
+ "@alice_1324:hs1": {16024
+ "ALICEDEVICE1324": {16025
+ "algorithms": [16026
+ "m.olm.v1.curve25519-aes-sha2",16027
+ "m.megolm.v1.aes-sha2"16028
+ ],16029
+ "device_id": "ALICEDEVICE1324",16030
+ "keys": {16031
+ "curve25519:ALICEDEVICE1324": "2z/EMLuU2DaymBXS32jvkL0Xr8ieiGfaLTACxiKAREE",16032
+ "ed25519:ALICEDEVICE1324": "ypZ+J7P0f3tkKNwnhMCk82f4Wj+2Ff/fAo7eNAg6nro"16033
+ },16034
+ "signatures": {16035
+ "@alice_1324:hs1": {16036
+ "ed25519:ALICEDEVICE1324": "aiFsvKpGJ04PFdopbpife9zvtiL3IV0tWl5ekPGeRgUiVkNh5wEXe4t5TNRwi/aeG8ES3+xwFYuTqiIuz5/IDA"16037
+ }16038
+ },16039
+ "user_id": "@alice_1324:hs1",16040
+ "unsigned": {}16041
+ }16042
+ },16043
+ "@alice_1326:hs1": {16044
+ "ALICEDEVICE1326": {16045
+ "algorithms": [16046
+ "m.olm.v1.curve25519-aes-sha2",16047
+ "m.megolm.v1.aes-sha2"16048
+ ],16049
+ "device_id": "ALICEDEVICE1326",16050
+ "keys": {16051
+ "curve25519:ALICEDEVICE1326": "qKgNBPLb2+gIk88q/wlJZeWQfYxuXa3hoFjbbdNeoA0",16052
+ "ed25519:ALICEDEVICE1326": "swD6SpeJ3K9b3/t2e1Qhy/TWWTdfiEkTtlxoK7GP6uA"16053
+ },16054
+ "signatures": {16055
+ "@alice_1326:hs1": {16056
+ "ed25519:ALICEDEVICE1326": "e+lQV3mph6WJsVrPNUq8VU7FF+Wgb2Xc0f3ifnIXDoTnRyPKiaBw6AbwZfSJsAI8ETCSLowDii4xV7JWJ3eiBg"16057
+ }16058
+ },16059
+ "user_id": "@alice_1326:hs1",16060
+ "unsigned": {}16061
+ }16062
+ },16063
+ "@alice_1328:hs1": {16064
+ "ALICEDEVICE1328": {16065
+ "algorithms": [16066
+ "m.olm.v1.curve25519-aes-sha2",16067
+ "m.megolm.v1.aes-sha2"16068
+ ],16069
+ "device_id": "ALICEDEVICE1328",16070
+ "keys": {16071
+ "curve25519:ALICEDEVICE1328": "kdynyPJfChrbq07yhmU6ycmaDdKA8MSEZ+5aEWzuWBE",16072
+ "ed25519:ALICEDEVICE1328": "hZGtPuwYhhIMX8iqT1+CvMVER/oVpn8j4m5PW0poElU"16073
+ },16074
+ "signatures": {16075
+ "@alice_1328:hs1": {16076
+ "ed25519:ALICEDEVICE1328": "+BN7DvvJh6iTxlH4zUcQIDFXEbIWM/jx01sgudtKfFDW2wRnXaGXDZ54oRtO/fCJw8UmhgHeOeWziP8+go2fDg"16077
+ }16078
+ },16079
+ "user_id": "@alice_1328:hs1",16080
+ "unsigned": {}16081
+ }16082
+ },16083
+ "@alice_1337:hs1": {16084
+ "ALICEDEVICE1337": {16085
+ "algorithms": [16086
+ "m.olm.v1.curve25519-aes-sha2",16087
+ "m.megolm.v1.aes-sha2"16088
+ ],16089
+ "device_id": "ALICEDEVICE1337",16090
+ "keys": {16091
+ "curve25519:ALICEDEVICE1337": "IoamEv6O43xBmg8ppxEJvsGeY2EpUbhMLhTtP4cCuFo",16092
+ "ed25519:ALICEDEVICE1337": "6ktn8vyEgAGTUOoP95+tmm/BKB88kbqNq6hNYMavBcY"16093
+ },16094
+ "signatures": {16095
+ "@alice_1337:hs1": {16096
+ "ed25519:ALICEDEVICE1337": "8gXN7E0VFQ7sJSK74TeP4BXyiilFn9+vHZrYKlof28Q25nqnhbDaYgvALcWZglOTXxTg4yTR/nI1fsdaJnNYBQ"16097
+ }16098
+ },16099
+ "user_id": "@alice_1337:hs1",16100
+ "unsigned": {}16101
+ }16102
+ },16103
+ "@alice_1342:hs1": {16104
+ "ALICEDEVICE1342": {16105
+ "algorithms": [16106
+ "m.olm.v1.curve25519-aes-sha2",16107
+ "m.megolm.v1.aes-sha2"16108
+ ],16109
+ "device_id": "ALICEDEVICE1342",16110
+ "keys": {16111
+ "curve25519:ALICEDEVICE1342": "0QvHv1r4cT92QwSuhR2LfI/j4S23HTSgGuYDScnFdjE",16112
+ "ed25519:ALICEDEVICE1342": "Qob+rFw9UR9YJjL+m/I7FBbTRykgS3mjh6SivfD3S7E"16113
+ },16114
+ "signatures": {16115
+ "@alice_1342:hs1": {16116
+ "ed25519:ALICEDEVICE1342": "c4fmPtdWSWnQHAx/+YAuVoXhGcYdv3MstTX43EeFHAnsouvjxOaVuLroi5TgwX3dehGSMCvnhkiebCW6SvhpDw"16117
+ }16118
+ },16119
+ "user_id": "@alice_1342:hs1",16120
+ "unsigned": {}16121
+ }16122
+ },16123
+ "@alice_1346:hs1": {16124
+ "ALICEDEVICE1346": {16125
+ "algorithms": [16126
+ "m.olm.v1.curve25519-aes-sha2",16127
+ "m.megolm.v1.aes-sha2"16128
+ ],16129
+ "device_id": "ALICEDEVICE1346",16130
+ "keys": {16131
+ "curve25519:ALICEDEVICE1346": "iF5B5omG1uVEXBrvM6QEXoPxYKGTGUDLU+XXLzxYr3A",16132
+ "ed25519:ALICEDEVICE1346": "dWMrWk9azdDgtUaQMeBNWUXYxx0XHYpEXxDS+bbEuRg"16133
+ },16134
+ "signatures": {16135
+ "@alice_1346:hs1": {16136
+ "ed25519:ALICEDEVICE1346": "AMwWTJULh8BIYVG+L4rn0iO/LVAQoqPCwW0OH4BARTKT2+vf6YyctkvKCDvd5sw+oE76jQ5tt+qlYeACK/kzCA"16137
+ }16138
+ },16139
+ "user_id": "@alice_1346:hs1",16140
+ "unsigned": {}16141
+ }16142
+ },16143
+ "@alice_1347:hs1": {16144
+ "ALICEDEVICE1347": {16145
+ "algorithms": [16146
+ "m.olm.v1.curve25519-aes-sha2",16147
+ "m.megolm.v1.aes-sha2"16148
+ ],16149
+ "device_id": "ALICEDEVICE1347",16150
+ "keys": {16151
+ "curve25519:ALICEDEVICE1347": "Jlvf26lX7mERLdPSxXlT8hmQWHgla01hAdcw+zX0Jzs",16152
+ "ed25519:ALICEDEVICE1347": "ADmN/MMHSeMQUHxvJfpiwMRGJgsuz8r2WQI3vnV2Py0"16153
+ },16154
+ "signatures": {16155
+ "@alice_1347:hs1": {16156
+ "ed25519:ALICEDEVICE1347": "8aTMLuDO/EcKl6I26Ruq/I6DkYIYzKPzIG4Eqyna8FITxxMriTUAUWu/B9fQHegeSyYIFHJV3kDbLSG69Xu3AQ"16157
+ }16158
+ },16159
+ "user_id": "@alice_1347:hs1",16160
+ "unsigned": {}16161
+ }16162
+ },16163
+ "@alice_1348:hs1": {16164
+ "ALICEDEVICE1348": {16165
+ "algorithms": [16166
+ "m.olm.v1.curve25519-aes-sha2",16167
+ "m.megolm.v1.aes-sha2"16168
+ ],16169
+ "device_id": "ALICEDEVICE1348",16170
+ "keys": {16171
+ "curve25519:ALICEDEVICE1348": "MfRfkkIjKJK0FbnGYBhbCvIu53HPPDx42HgJhOu79zg",16172
+ "ed25519:ALICEDEVICE1348": "GfHyWEy7p29eAi6izWAew+9n8/G49h1klc5C/qGqe9A"16173
+ },16174
+ "signatures": {16175
+ "@alice_1348:hs1": {16176
+ "ed25519:ALICEDEVICE1348": "62kV4ifffg2hJgIqPLWBrMK+ClMuDTy5yek38tdyHckT3vAGyRF5osRprAbFkFQbKYcWmPWuFLsNapjljN22Ag"16177
+ }16178
+ },16179
+ "user_id": "@alice_1348:hs1",16180
+ "unsigned": {}16181
+ }16182
+ },16183
+ "@alice_135:hs1": {16184
+ "ALICEDEVICE135": {16185
+ "algorithms": [16186
+ "m.olm.v1.curve25519-aes-sha2",16187
+ "m.megolm.v1.aes-sha2"16188
+ ],16189
+ "device_id": "ALICEDEVICE135",16190
+ "keys": {16191
+ "curve25519:ALICEDEVICE135": "fiBffB0whgcP0exVGkYy9r8E3xVeI0mx3Y9nCBgCTRc",16192
+ "ed25519:ALICEDEVICE135": "llSHbU9/we5bD9GnWH72atLR2Jg38Akz58zj3hFxmNA"16193
+ },16194
+ "signatures": {16195
+ "@alice_135:hs1": {16196
+ "ed25519:ALICEDEVICE135": "O9XgY2eQPlSsD+ZdtCZDTaqpTqn0q/4WsMMM62i3S+alZC913UtY94o/cemKqjjr+oyJLBKetgwhvgWK/EdhCA"16197
+ }16198
+ },16199
+ "user_id": "@alice_135:hs1",16200
+ "unsigned": {}16201
+ }16202
+ },16203
+ "@alice_136:hs1": {16204
+ "ALICEDEVICE136": {16205
+ "algorithms": [16206
+ "m.olm.v1.curve25519-aes-sha2",16207
+ "m.megolm.v1.aes-sha2"16208
+ ],16209
+ "device_id": "ALICEDEVICE136",16210
+ "keys": {16211
+ "curve25519:ALICEDEVICE136": "kSROXZhwZcQ648oG+HK5RVp9hghMuD0dmyoNDrGHIhM",16212
+ "ed25519:ALICEDEVICE136": "UYo35EzOnOXXYZo08T4MvfUGbgodNDwPrzyiW9f0RTI"16213
+ },16214
+ "signatures": {16215
+ "@alice_136:hs1": {16216
+ "ed25519:ALICEDEVICE136": "A+tT50ldOKpuHIiKD9Zu9P4hlHsBomB2g40ZPm5Fm/6Bfs0uzshvN25Jlj0KN+5U1bEjYoOjlvVkx/pO3vk5Bw"16217
+ }16218
+ },16219
+ "user_id": "@alice_136:hs1",16220
+ "unsigned": {}16221
+ }16222
+ },16223
+ "@alice_1370:hs1": {16224
+ "ALICEDEVICE1370": {16225
+ "algorithms": [16226
+ "m.olm.v1.curve25519-aes-sha2",16227
+ "m.megolm.v1.aes-sha2"16228
+ ],16229
+ "device_id": "ALICEDEVICE1370",16230
+ "keys": {16231
+ "curve25519:ALICEDEVICE1370": "v1+59Zf4WpVh78062fn0cl9P8MjuNiUQ+ek8NMCUjWo",16232
+ "ed25519:ALICEDEVICE1370": "W9adjo6lG5eN23Cr0a0mXQKWMfq8OFh0WkyVIHKGhXk"16233
+ },16234
+ "signatures": {16235
+ "@alice_1370:hs1": {16236
+ "ed25519:ALICEDEVICE1370": "SjXK0ZO/nWMBSFXzJwIBP71DoliUSaG92vMLv8q9lc8dzrA2uzsv4idGnc3EwTvQ6DojjiNt0MWzum0nQGliDg"16237
+ }16238
+ },16239
+ "user_id": "@alice_1370:hs1",16240
+ "unsigned": {}16241
+ }16242
+ },16243
+ "@alice_1387:hs1": {16244
+ "ALICEDEVICE1387": {16245
+ "algorithms": [16246
+ "m.olm.v1.curve25519-aes-sha2",16247
+ "m.megolm.v1.aes-sha2"16248
+ ],16249
+ "device_id": "ALICEDEVICE1387",16250
+ "keys": {16251
+ "curve25519:ALICEDEVICE1387": "ZH+nbesr9HCpO11EAobWlqYspy6o0oi9Ps9giNcBkHQ",16252
+ "ed25519:ALICEDEVICE1387": "eNQHIYsh3ran39r4+Hmd9nembrHOZ22Laccuoi7DyP8"16253
+ },16254
+ "signatures": {16255
+ "@alice_1387:hs1": {16256
+ "ed25519:ALICEDEVICE1387": "1BQd4G/lzLmqPd/W77yDGMl48UNtF+UttdaqEDhaoos5Y8vmohlogQVYfN8XIj+F4KAn8GE30ldO/RYlNl7WCg"16257
+ }16258
+ },16259
+ "user_id": "@alice_1387:hs1",16260
+ "unsigned": {}16261
+ }16262
+ },16263
+ "@alice_1389:hs1": {16264
+ "ALICEDEVICE1389": {16265
+ "algorithms": [16266
+ "m.olm.v1.curve25519-aes-sha2",16267
+ "m.megolm.v1.aes-sha2"16268
+ ],16269
+ "device_id": "ALICEDEVICE1389",16270
+ "keys": {16271
+ "curve25519:ALICEDEVICE1389": "n090V3XL6ICSTSKlpwl9Q8pMi+yB2y2NoQ9LSRv6Vmo",16272
+ "ed25519:ALICEDEVICE1389": "lE5DM5CTVb5UAXahO6XioFcE1eyg1JY5ZGE2/jP0c7U"16273
+ },16274
+ "signatures": {16275
+ "@alice_1389:hs1": {16276
+ "ed25519:ALICEDEVICE1389": "eCQfpQOnx9SPzoLhi3yHLYRijIA7VWzPaF5PjyLPAS47yInHO4rQOP6+IwTMI1tLLnWW/h098tMRq/BHgbdEAA"16277
+ }16278
+ },16279
+ "user_id": "@alice_1389:hs1",16280
+ "unsigned": {}16281
+ }16282
+ },16283
+ "@alice_140:hs1": {16284
+ "ALICEDEVICE140": {16285
+ "algorithms": [16286
+ "m.olm.v1.curve25519-aes-sha2",16287
+ "m.megolm.v1.aes-sha2"16288
+ ],16289
+ "device_id": "ALICEDEVICE140",16290
+ "keys": {16291
+ "curve25519:ALICEDEVICE140": "QotDrpQBlp0jWWJcLBZtZa50i4auJSH7zK749gZQ0BM",16292
+ "ed25519:ALICEDEVICE140": "kgTbMQFxPkHY97dK3jdTziognf4NZ2T5rfrQtYFga7M"16293
+ },16294
+ "signatures": {16295
+ "@alice_140:hs1": {16296
+ "ed25519:ALICEDEVICE140": "LwVaLPgUtGAHLYD4CfyLsB+nmt8UssLHHQe1U1qWnqNO6zzZDXmd0k5QmLg7xigseRFhSlH8pojLgZKlSdTHAA"16297
+ }16298
+ },16299
+ "user_id": "@alice_140:hs1",16300
+ "unsigned": {}16301
+ }16302
+ },16303
+ "@alice_1414:hs1": {16304
+ "ALICEDEVICE1414": {16305
+ "algorithms": [16306
+ "m.olm.v1.curve25519-aes-sha2",16307
+ "m.megolm.v1.aes-sha2"16308
+ ],16309
+ "device_id": "ALICEDEVICE1414",16310
+ "keys": {16311
+ "curve25519:ALICEDEVICE1414": "YDv0znpDUqOL2aFoJtxVfEd8ALrjzgGzSrO7LzwPIG8",16312
+ "ed25519:ALICEDEVICE1414": "IyeMCjjLkpaEsN7EAV3vVmzEuj7JSMzgQ5z+bhTeW7w"16313
+ },16314
+ "signatures": {16315
+ "@alice_1414:hs1": {16316
+ "ed25519:ALICEDEVICE1414": "ihpjYDmYDQCotToDRm9JZVbFwKL0DsD+J/0Mk2I5M6VLm4GDV5ffz9CjGOLzrP8UK/Ggn0mYzqnsUvclGWRiCQ"16317
+ }16318
+ },16319
+ "user_id": "@alice_1414:hs1",16320
+ "unsigned": {}16321
+ }16322
+ },16323
+ "@alice_1416:hs1": {16324
+ "ALICEDEVICE1416": {16325
+ "algorithms": [16326
+ "m.olm.v1.curve25519-aes-sha2",16327
+ "m.megolm.v1.aes-sha2"16328
+ ],16329
+ "device_id": "ALICEDEVICE1416",16330
+ "keys": {16331
+ "curve25519:ALICEDEVICE1416": "Um7G1MQFZfcdjduuKUUlBPpJPWUhCCifVnWDY5ezikc",16332
+ "ed25519:ALICEDEVICE1416": "MedIcLHij3c8+5q8qTrRrVmQWPVp+zOKT8ONTb8WZ4c"16333
+ },16334
+ "signatures": {16335
+ "@alice_1416:hs1": {16336
+ "ed25519:ALICEDEVICE1416": "uv6u+DzBlmJaUqBhFLU3JWDiR5tnto14YUs/p3c19OYJiNcidj6MyL5LbKwOuMS463+dVlHBRkSmCbzhqhllDw"16337
+ }16338
+ },16339
+ "user_id": "@alice_1416:hs1",16340
+ "unsigned": {}16341
+ }16342
+ },16343
+ "@alice_1417:hs1": {16344
+ "ALICEDEVICE1417": {16345
+ "algorithms": [16346
+ "m.olm.v1.curve25519-aes-sha2",16347
+ "m.megolm.v1.aes-sha2"16348
+ ],16349
+ "device_id": "ALICEDEVICE1417",16350
+ "keys": {16351
+ "curve25519:ALICEDEVICE1417": "iUxa7mEzTuAIQ3nMjowso8eJn54TvRh/wv4NaDvO2RE",16352
+ "ed25519:ALICEDEVICE1417": "IhLuzWxfLT7JWnARfQU1VUu3xkbNXR3T7j4ChRS+2GY"16353
+ },16354
+ "signatures": {16355
+ "@alice_1417:hs1": {16356
+ "ed25519:ALICEDEVICE1417": "WGhPaX4+Iyvq/OU4rGh/5EUVJOoXpED7oSg+Yvg6NYRAuW1TwNMGkcyRoumyX5oi/YcH77ctEnqve9dQuOsJBg"16357
+ }16358
+ },16359
+ "user_id": "@alice_1417:hs1",16360
+ "unsigned": {}16361
+ }16362
+ },16363
+ "@alice_1418:hs1": {16364
+ "ALICEDEVICE1418": {16365
+ "algorithms": [16366
+ "m.olm.v1.curve25519-aes-sha2",16367
+ "m.megolm.v1.aes-sha2"16368
+ ],16369
+ "device_id": "ALICEDEVICE1418",16370
+ "keys": {16371
+ "curve25519:ALICEDEVICE1418": "66DpsaCE8VDOlIHBsQux7M+Q5VYfLr2mVgxI3VEk3RE",16372
+ "ed25519:ALICEDEVICE1418": "h+1RiKiEEtr0gkIBxX5ew24y3punAVbZC1mpoydsV7w"16373
+ },16374
+ "signatures": {16375
+ "@alice_1418:hs1": {16376
+ "ed25519:ALICEDEVICE1418": "VEUyzn2+jwlXdZ8TisZ5Zr2SKkZ0nyLKOhNNO3x+JRMwn+oaTjtm/sXindFw2cwWFL8x+wvXTFfKiLgr4zxXDQ"16377
+ }16378
+ },16379
+ "user_id": "@alice_1418:hs1",16380
+ "unsigned": {}16381
+ }16382
+ },16383
+ "@alice_1423:hs1": {16384
+ "ALICEDEVICE1423": {16385
+ "algorithms": [16386
+ "m.olm.v1.curve25519-aes-sha2",16387
+ "m.megolm.v1.aes-sha2"16388
+ ],16389
+ "device_id": "ALICEDEVICE1423",16390
+ "keys": {16391
+ "curve25519:ALICEDEVICE1423": "QJl5kGv6JnTbP3/nNZSZOdREgGQKbY5SBvZeS+weMDg",16392
+ "ed25519:ALICEDEVICE1423": "vv9E076Mjpr+irKJ/zRK/ydgmx66q5NuG6ovRF4eGUc"16393
+ },16394
+ "signatures": {16395
+ "@alice_1423:hs1": {16396
+ "ed25519:ALICEDEVICE1423": "YoL7ufVxVOkXbIUku7jolz0TNbismEsyGNMQZ5+49HL24zTVNb/bjlnmWTXAHMtMmTehfiK3xu3JPxDnB4lwCQ"16397
+ }16398
+ },16399
+ "user_id": "@alice_1423:hs1",16400
+ "unsigned": {}16401
+ }16402
+ },16403
+ "@alice_1430:hs1": {16404
+ "ALICEDEVICE1430": {16405
+ "algorithms": [16406
+ "m.olm.v1.curve25519-aes-sha2",16407
+ "m.megolm.v1.aes-sha2"16408
+ ],16409
+ "device_id": "ALICEDEVICE1430",16410
+ "keys": {16411
+ "curve25519:ALICEDEVICE1430": "mwG0u1pyiQ8BLAPLruQUriXslxvY/dQYeXDhx2Ovemg",16412
+ "ed25519:ALICEDEVICE1430": "mB0SBSqWM98nuU7Cqj/N6vxCbr+OhxurB5yRxWa5WPI"16413
+ },16414
+ "signatures": {16415
+ "@alice_1430:hs1": {16416
+ "ed25519:ALICEDEVICE1430": "0Ysfk2xUTZI0H0NDSXzVg7OkGyU2cuAtAP9/Th5rkiyCF5BrKPk53HmewATpt9SqEiJJi304YSNcx7vzujOfAQ"16417
+ }16418
+ },16419
+ "user_id": "@alice_1430:hs1",16420
+ "unsigned": {}16421
+ }16422
+ },16423
+ "@alice_1435:hs1": {16424
+ "ALICEDEVICE1435": {16425
+ "algorithms": [16426
+ "m.olm.v1.curve25519-aes-sha2",16427
+ "m.megolm.v1.aes-sha2"16428
+ ],16429
+ "device_id": "ALICEDEVICE1435",16430
+ "keys": {16431
+ "curve25519:ALICEDEVICE1435": "ic+6Za7pI69ff0NhbQGxw08kPuRYeoAXzUGv1UqLHWw",16432
+ "ed25519:ALICEDEVICE1435": "S572IT09SgLZYetbyfxr725Eemko/H4WK1rkr2eP1n0"16433
+ },16434
+ "signatures": {16435
+ "@alice_1435:hs1": {16436
+ "ed25519:ALICEDEVICE1435": "UnP39/kSnqXLLe8w/vHkQIthU9comUiNIc88LIbAp0088O4VEabpC7MHSnHCOgfE9OA8H29Sq8/xcjyTE3hpAA"16437
+ }16438
+ },16439
+ "user_id": "@alice_1435:hs1",16440
+ "unsigned": {}16441
+ }16442
+ },16443
+ "@alice_1441:hs1": {16444
+ "ALICEDEVICE1441": {16445
+ "algorithms": [16446
+ "m.olm.v1.curve25519-aes-sha2",16447
+ "m.megolm.v1.aes-sha2"16448
+ ],16449
+ "device_id": "ALICEDEVICE1441",16450
+ "keys": {16451
+ "curve25519:ALICEDEVICE1441": "6CTRXWfO5PvCFl3zhYjC9/l3HiAGUqF8FaiBR9B0q18",16452
+ "ed25519:ALICEDEVICE1441": "bywOrUq1dc6Cdj2QTvayp/IqC559pH30oPv1umCeTaI"16453
+ },16454
+ "signatures": {16455
+ "@alice_1441:hs1": {16456
+ "ed25519:ALICEDEVICE1441": "JfS2ClQdAznUXXNzPc8IyO/TfvE/N4mayz7ZIgAd8g4acDAfdqvgJa+Pw9oPFZ8156+dXFIf6GUCn1duE7C0Bw"16457
+ }16458
+ },16459
+ "user_id": "@alice_1441:hs1",16460
+ "unsigned": {}16461
+ }16462
+ },16463
+ "@alice_1444:hs1": {16464
+ "ALICEDEVICE1444": {16465
+ "algorithms": [16466
+ "m.olm.v1.curve25519-aes-sha2",16467
+ "m.megolm.v1.aes-sha2"16468
+ ],16469
+ "device_id": "ALICEDEVICE1444",16470
+ "keys": {16471
+ "curve25519:ALICEDEVICE1444": "8hpVH3IUSFhQQSDDj3J1S75+LCwrPIPthFwSIcDl1gY",16472
+ "ed25519:ALICEDEVICE1444": "ZcXUJq7QVcz64LgYL9f5/ikzEseYSCZTrAOyGADzEK8"16473
+ },16474
+ "signatures": {16475
+ "@alice_1444:hs1": {16476
+ "ed25519:ALICEDEVICE1444": "2EKBsIaZYDqF6Hw8i7Kj85ggC3bH/S5GeaDDt2PoGGn+UqkqHkmKfkNtSuYu3+vYbgfJ02KbZ+8+YDgLFF8SBw"16477
+ }16478
+ },16479
+ "user_id": "@alice_1444:hs1",16480
+ "unsigned": {}16481
+ }16482
+ },16483
+ "@alice_1445:hs1": {16484
+ "ALICEDEVICE1445": {16485
+ "algorithms": [16486
+ "m.olm.v1.curve25519-aes-sha2",16487
+ "m.megolm.v1.aes-sha2"16488
+ ],16489
+ "device_id": "ALICEDEVICE1445",16490
+ "keys": {16491
+ "curve25519:ALICEDEVICE1445": "6/9ghnauL4n3sYSonEsp1S+lUuJxh8t5tke7cPQXCiQ",16492
+ "ed25519:ALICEDEVICE1445": "59q5GNtwWnM4D/ukDLAXfzPPvLHOKRu/qO1fC6xlTDA"16493
+ },16494
+ "signatures": {16495
+ "@alice_1445:hs1": {16496
+ "ed25519:ALICEDEVICE1445": "lbz/nimJItT7GtDlBxiwm4UHAsSxQdy1PcTb8Pw78b4k+Q4AVHlCB/ff3MEeVPbpHcFqKTZsXhcdlmfkvKyYDw"16497
+ }16498
+ },16499
+ "user_id": "@alice_1445:hs1",16500
+ "unsigned": {}16501
+ }16502
+ },16503
+ "@alice_1449:hs1": {16504
+ "ALICEDEVICE1449": {16505
+ "algorithms": [16506
+ "m.olm.v1.curve25519-aes-sha2",16507
+ "m.megolm.v1.aes-sha2"16508
+ ],16509
+ "device_id": "ALICEDEVICE1449",16510
+ "keys": {16511
+ "curve25519:ALICEDEVICE1449": "XxwKnoWBr87leYO+h+YX2vX1UbUIEMABUMirKPpFcx8",16512
+ "ed25519:ALICEDEVICE1449": "se244gk1ZOvU2olmH+TQGJjNMo2ioEqloCYodC+gkY8"16513
+ },16514
+ "signatures": {16515
+ "@alice_1449:hs1": {16516
+ "ed25519:ALICEDEVICE1449": "tsSIxgvn7fRuqlMJQvA/gODmo6biKLM65mE/lXjs4sx7SdvQJVTIuh/10/TgVUHPveOhZQdfwjZU4lrX75qmDA"16517
+ }16518
+ },16519
+ "user_id": "@alice_1449:hs1",16520
+ "unsigned": {}16521
+ }16522
+ },16523
+ "@alice_1450:hs1": {16524
+ "ALICEDEVICE1450": {16525
+ "algorithms": [16526
+ "m.olm.v1.curve25519-aes-sha2",16527
+ "m.megolm.v1.aes-sha2"16528
+ ],16529
+ "device_id": "ALICEDEVICE1450",16530
+ "keys": {16531
+ "curve25519:ALICEDEVICE1450": "Mccpu7Fn+I58PvkObUzDWy6EE1AFq5DDl8mVNeByQ3U",16532
+ "ed25519:ALICEDEVICE1450": "DQWGzJVETa9COSW1BMd1W3VvMbMoCombzJUQCoAg4WU"16533
+ },16534
+ "signatures": {16535
+ "@alice_1450:hs1": {16536
+ "ed25519:ALICEDEVICE1450": "DVU1ScWLbbYZwftEPNuGZJZp4bc1V0bEzRrbJ6f40743bRIV4vA9Jh9D2clBEjG/UALYmrZq38G5vsPl/lZ9Aw"16537
+ }16538
+ },16539
+ "user_id": "@alice_1450:hs1",16540
+ "unsigned": {}16541
+ }16542
+ },16543
+ "@alice_1457:hs1": {16544
+ "ALICEDEVICE1457": {16545
+ "algorithms": [16546
+ "m.olm.v1.curve25519-aes-sha2",16547
+ "m.megolm.v1.aes-sha2"16548
+ ],16549
+ "device_id": "ALICEDEVICE1457",16550
+ "keys": {16551
+ "curve25519:ALICEDEVICE1457": "iwNhFiJEvcMzxmN1bDUN50agARxTHhjJAkmyZFQiIF8",16552
+ "ed25519:ALICEDEVICE1457": "dIV5Yx11z/dYPqOaxnBpIxQs8grbom+XHTPUzCeKTAw"16553
+ },16554
+ "signatures": {16555
+ "@alice_1457:hs1": {16556
+ "ed25519:ALICEDEVICE1457": "HrJjP2m9tuQJSPF2fg9CGerpDXM9WhHJgveImEJetQGsPFunCqaqkJFSgbuXeoMRhTFqal6b5Xj/KJ/apTRRDg"16557
+ }16558
+ },16559
+ "user_id": "@alice_1457:hs1",16560
+ "unsigned": {}16561
+ }16562
+ },16563
+ "@alice_1458:hs1": {16564
+ "ALICEDEVICE1458": {16565
+ "algorithms": [16566
+ "m.olm.v1.curve25519-aes-sha2",16567
+ "m.megolm.v1.aes-sha2"16568
+ ],16569
+ "device_id": "ALICEDEVICE1458",16570
+ "keys": {16571
+ "curve25519:ALICEDEVICE1458": "n+sjVZ0eXt9p1nAxsidPYIr93aamsDaBY9eRi4GUInU",16572
+ "ed25519:ALICEDEVICE1458": "6glWGC6tQ2YQ7ZCJWAHaktc2HA/6821u7HHIwKRNiXc"16573
+ },16574
+ "signatures": {16575
+ "@alice_1458:hs1": {16576
+ "ed25519:ALICEDEVICE1458": "b2N95I1rYxkuw7hngth3b3jSBbXQCB97sTd/xmoaNyTB7bt5RChj5U5lAkwou0Py62gXk9xHw+8F64KuYX9IBg"16577
+ }16578
+ },16579
+ "user_id": "@alice_1458:hs1",16580
+ "unsigned": {}16581
+ }16582
+ },16583
+ "@alice_1463:hs1": {16584
+ "ALICEDEVICE1463": {16585
+ "algorithms": [16586
+ "m.olm.v1.curve25519-aes-sha2",16587
+ "m.megolm.v1.aes-sha2"16588
+ ],16589
+ "device_id": "ALICEDEVICE1463",16590
+ "keys": {16591
+ "curve25519:ALICEDEVICE1463": "xW5RpUq9L67ytvqD4ZH1onOSPVWZ0xQjSIh1rQnRymc",16592
+ "ed25519:ALICEDEVICE1463": "08DFKTyGDsUIQXxfI/6i0f3+UrLQ7BioMsfjh+wxsG0"16593
+ },16594
+ "signatures": {16595
+ "@alice_1463:hs1": {16596
+ "ed25519:ALICEDEVICE1463": "8xNDwkDmwEhH7V0+F1N/FpPWga46SQYXlUUgVOaR2iodKeuhqk+nG+84LJnPcjregKrnf2GEA0UobWKiNLm2Cw"16597
+ }16598
+ },16599
+ "user_id": "@alice_1463:hs1",16600
+ "unsigned": {}16601
+ }16602
+ },16603
+ "@alice_1477:hs1": {16604
+ "ALICEDEVICE1477": {16605
+ "algorithms": [16606
+ "m.olm.v1.curve25519-aes-sha2",16607
+ "m.megolm.v1.aes-sha2"16608
+ ],16609
+ "device_id": "ALICEDEVICE1477",16610
+ "keys": {16611
+ "curve25519:ALICEDEVICE1477": "HTQMVLG+SMzGmab3DZP0jIcEQpzz9GHPTOWW+L45Jgs",16612
+ "ed25519:ALICEDEVICE1477": "o+0WcEeWTmwsOUylac8aU/9THbTh8Xvl4jJ8p1a7XMU"16613
+ },16614
+ "signatures": {16615
+ "@alice_1477:hs1": {16616
+ "ed25519:ALICEDEVICE1477": "utC6vUPCqXiE/m00tCIqY1uArJL7sum0ayqwygWF4hLRq/wOH+JNKDUYrEjekGyqHST+XXkr8Kw6GOHzVL8eBQ"16617
+ }16618
+ },16619
+ "user_id": "@alice_1477:hs1",16620
+ "unsigned": {}16621
+ }16622
+ },16623
+ "@alice_1496:hs1": {16624
+ "ALICEDEVICE1496": {16625
+ "algorithms": [16626
+ "m.olm.v1.curve25519-aes-sha2",16627
+ "m.megolm.v1.aes-sha2"16628
+ ],16629
+ "device_id": "ALICEDEVICE1496",16630
+ "keys": {16631
+ "curve25519:ALICEDEVICE1496": "NQO2oTRQTvLrTg6HX/MhkLCbcEIjWadqJkU7SJx1f1Y",16632
+ "ed25519:ALICEDEVICE1496": "Fu2MMmKciK/cqZRdJgKaRORaXcSqTLkwQEPYjNh4Svg"16633
+ },16634
+ "signatures": {16635
+ "@alice_1496:hs1": {16636
+ "ed25519:ALICEDEVICE1496": "ig9QBljum7W7cW/1sdvPg5m87qMuFEyQE0EUO6KV5Iyy8C1cHBzQd8bTISKdsNecykLyBstEvho8j98O5WmVBg"16637
+ }16638
+ },16639
+ "user_id": "@alice_1496:hs1",16640
+ "unsigned": {}16641
+ }16642
+ },16643
+ "@alice_1499:hs1": {16644
+ "ALICEDEVICE1499": {16645
+ "algorithms": [16646
+ "m.olm.v1.curve25519-aes-sha2",16647
+ "m.megolm.v1.aes-sha2"16648
+ ],16649
+ "device_id": "ALICEDEVICE1499",16650
+ "keys": {16651
+ "curve25519:ALICEDEVICE1499": "XrvNAcyCM90+jZTYG8pO6437da0EAXrTfZ7E304akzc",16652
+ "ed25519:ALICEDEVICE1499": "1w5JEQ22u9Qt/fz8vXdJxFk5QTH5O14Xv7FgG/GpF40"16653
+ },16654
+ "signatures": {16655
+ "@alice_1499:hs1": {16656
+ "ed25519:ALICEDEVICE1499": "ZdU3HNuyCeja/mD5d2BlUPPfzjwwjz8id0PKR70UV6hDzghv6b5PRFVPANHsSLPmosp9OzR7Oe6mVxd8ShCBCg"16657
+ }16658
+ },16659
+ "user_id": "@alice_1499:hs1",16660
+ "unsigned": {}16661
+ }16662
+ },16663
+ "@alice_149:hs1": {16664
+ "ALICEDEVICE149": {16665
+ "algorithms": [16666
+ "m.olm.v1.curve25519-aes-sha2",16667
+ "m.megolm.v1.aes-sha2"16668
+ ],16669
+ "device_id": "ALICEDEVICE149",16670
+ "keys": {16671
+ "curve25519:ALICEDEVICE149": "yYlVJRuyHqo6oCFajPRWfld1mwForSFY00uOhMMQilo",16672
+ "ed25519:ALICEDEVICE149": "tg7QH7GrnfxUFY5wG8kJ+Lg9/aMb7NrZ3pXXXG5vdO4"16673
+ },16674
+ "signatures": {16675
+ "@alice_149:hs1": {16676
+ "ed25519:ALICEDEVICE149": "1bua1N/w9ApDIdbhm0j/mX7/4PS0zKB3sRyFvcIMRmBA49l0OoqTkKv5jjdcFQoIUKF6iK5RfalmFHfYDTXpAw"16677
+ }16678
+ },16679
+ "user_id": "@alice_149:hs1",16680
+ "unsigned": {}16681
+ }16682
+ },16683
+ "@alice_1508:hs1": {16684
+ "ALICEDEVICE1508": {16685
+ "algorithms": [16686
+ "m.olm.v1.curve25519-aes-sha2",16687
+ "m.megolm.v1.aes-sha2"16688
+ ],16689
+ "device_id": "ALICEDEVICE1508",16690
+ "keys": {16691
+ "curve25519:ALICEDEVICE1508": "q9pHXaEV6qzeRMi1dap4De8zErnHcCUz09HP8rgBHlw",16692
+ "ed25519:ALICEDEVICE1508": "PDUfJ9RZcEhYcNeD1GRCTl0mD3LfHXcJqe88+qYqVcg"16693
+ },16694
+ "signatures": {16695
+ "@alice_1508:hs1": {16696
+ "ed25519:ALICEDEVICE1508": "ylglEYUJO1rxSw6QxZJZujoAUxRkv28mE9/yRhu82p7zW+C8glHbE8qeNsXU/mD8Sz7j0Jk2xlOzG50nlwX0Ag"16697
+ }16698
+ },16699
+ "user_id": "@alice_1508:hs1",16700
+ "unsigned": {}16701
+ }16702
+ },16703
+ "@alice_1519:hs1": {16704
+ "ALICEDEVICE1519": {16705
+ "algorithms": [16706
+ "m.olm.v1.curve25519-aes-sha2",16707
+ "m.megolm.v1.aes-sha2"16708
+ ],16709
+ "device_id": "ALICEDEVICE1519",16710
+ "keys": {16711
+ "curve25519:ALICEDEVICE1519": "pQfXfIr14LZ9iM4TM1tLRALtDMM5iHW1p/rEDN2C9Hc",16712
+ "ed25519:ALICEDEVICE1519": "7Q6htYT6eoNXYrB+/6r1OuhhYxBj4yAJy1zWmUa4Dr0"16713
+ },16714
+ "signatures": {16715
+ "@alice_1519:hs1": {16716
+ "ed25519:ALICEDEVICE1519": "z8I4fKEzNGIma/VEFzk3VAhW+gzVsBwtOHiCNBzBAHPJWdOX8wuzzhbl3wIRpGaQtEoxobNFCi24pOuHshO8BQ"16717
+ }16718
+ },16719
+ "user_id": "@alice_1519:hs1",16720
+ "unsigned": {}16721
+ }16722
+ },16723
+ "@alice_151:hs1": {16724
+ "ALICEDEVICE151": {16725
+ "algorithms": [16726
+ "m.olm.v1.curve25519-aes-sha2",16727
+ "m.megolm.v1.aes-sha2"16728
+ ],16729
+ "device_id": "ALICEDEVICE151",16730
+ "keys": {16731
+ "curve25519:ALICEDEVICE151": "eiF5LQqCP+CmMSyIc2MyaKz9VUw1bHmlMslPWRdhwTE",16732
+ "ed25519:ALICEDEVICE151": "l6N5U9Xw0aVhHU+aQCNbYQMMF0tTeYu5p/89QPejOOg"16733
+ },16734
+ "signatures": {16735
+ "@alice_151:hs1": {16736
+ "ed25519:ALICEDEVICE151": "9064aQSltCOOoUsOm9nu/by7iyDvpYn+eXVjWTBR4ioFrtRp3ZL/6joIe2xrgiF+Tu2vCS9siYlthR7NJbgJCQ"16737
+ }16738
+ },16739
+ "user_id": "@alice_151:hs1",16740
+ "unsigned": {}16741
+ }16742
+ },16743
+ "@alice_1520:hs1": {16744
+ "ALICEDEVICE1520": {16745
+ "algorithms": [16746
+ "m.olm.v1.curve25519-aes-sha2",16747
+ "m.megolm.v1.aes-sha2"16748
+ ],16749
+ "device_id": "ALICEDEVICE1520",16750
+ "keys": {16751
+ "curve25519:ALICEDEVICE1520": "OYW0AhgRzTqiDg/fgl/HPklaPNuSNXewj1rlTapNZH4",16752
+ "ed25519:ALICEDEVICE1520": "0rdmsPkU7yJyRKJVnw2NLLJjuoVGzRpn/H+ljzJ8fVE"16753
+ },16754
+ "signatures": {16755
+ "@alice_1520:hs1": {16756
+ "ed25519:ALICEDEVICE1520": "PdLOXbIE0EMR0edVgukSxAE1uZyZyb3LyudvQkPcho/UB3H59rBTSKEssJQz/cGJKuqDQy4Blo8+Ipx3ewQsBg"16757
+ }16758
+ },16759
+ "user_id": "@alice_1520:hs1",16760
+ "unsigned": {}16761
+ }16762
+ },16763
+ "@alice_1542:hs1": {16764
+ "ALICEDEVICE1542": {16765
+ "algorithms": [16766
+ "m.olm.v1.curve25519-aes-sha2",16767
+ "m.megolm.v1.aes-sha2"16768
+ ],16769
+ "device_id": "ALICEDEVICE1542",16770
+ "keys": {16771
+ "curve25519:ALICEDEVICE1542": "4L5kkXEOVteuuYOzxdmiPeRj4tTpZGlk/9dTTOnBEkk",16772
+ "ed25519:ALICEDEVICE1542": "O3Ufu62z8/EDPsU5wKXU6Rcx2D1UjXvOmfOaRcsF2yE"16773
+ },16774
+ "signatures": {16775
+ "@alice_1542:hs1": {16776
+ "ed25519:ALICEDEVICE1542": "c6sbICk7JTDPbEKKQ7efmo6Cv7nmYFBaZE1duKPltJf76Bt3Fl/sBNnElc3BsDYMjfVa8y5e8MewphuFIOmcCg"16777
+ }16778
+ },16779
+ "user_id": "@alice_1542:hs1",16780
+ "unsigned": {}16781
+ }16782
+ },16783
+ "@alice_1549:hs1": {16784
+ "ALICEDEVICE1549": {16785
+ "algorithms": [16786
+ "m.olm.v1.curve25519-aes-sha2",16787
+ "m.megolm.v1.aes-sha2"16788
+ ],16789
+ "device_id": "ALICEDEVICE1549",16790
+ "keys": {16791
+ "curve25519:ALICEDEVICE1549": "poIsxWOc7VNL0/F3huS8+N+KnnSKCUWU2yJAUnqSEjE",16792
+ "ed25519:ALICEDEVICE1549": "u+5Ywb/O38tCC8DJiQbrV8kQTyWqYmSruZng2koIoPQ"16793
+ },16794
+ "signatures": {16795
+ "@alice_1549:hs1": {16796
+ "ed25519:ALICEDEVICE1549": "P8QC77JBYFu5V7mDcaIfQu+zy5NjawdP0X3XBwppHPLYL2GK2LCIWez6L/iaTW4Npm9cQcOiBuT9k2bUxAVIBA"16797
+ }16798
+ },16799
+ "user_id": "@alice_1549:hs1",16800
+ "unsigned": {}16801
+ }16802
+ },16803
+ "@alice_1560:hs1": {16804
+ "ALICEDEVICE1560": {16805
+ "algorithms": [16806
+ "m.olm.v1.curve25519-aes-sha2",16807
+ "m.megolm.v1.aes-sha2"16808
+ ],16809
+ "device_id": "ALICEDEVICE1560",16810
+ "keys": {16811
+ "curve25519:ALICEDEVICE1560": "RbaMYvF5PSeHrk8sOZDjF7Xle3GycqLR8f9kzfJ7hGA",16812
+ "ed25519:ALICEDEVICE1560": "uq4MH0Cp5+1ndVidziV0m+rXv6wcyJ69ge+unFbEfmI"16813
+ },16814
+ "signatures": {16815
+ "@alice_1560:hs1": {16816
+ "ed25519:ALICEDEVICE1560": "JRkeTUTYqlr7CwNwvYLEiw+xQA27UjBV5z9K0fqCxWTjbELlSepm86oaOxvTeUJl6oBNWshEOBXe0Q1vJoBAAw"16817
+ }16818
+ },16819
+ "user_id": "@alice_1560:hs1",16820
+ "unsigned": {}16821
+ }16822
+ },16823
+ "@alice_1565:hs1": {16824
+ "ALICEDEVICE1565": {16825
+ "algorithms": [16826
+ "m.olm.v1.curve25519-aes-sha2",16827
+ "m.megolm.v1.aes-sha2"16828
+ ],16829
+ "device_id": "ALICEDEVICE1565",16830
+ "keys": {16831
+ "curve25519:ALICEDEVICE1565": "3aXR13j7NHQVBqcxfC1uXLfugJBkYXqoZwWwUJe1T3c",16832
+ "ed25519:ALICEDEVICE1565": "QrwWQOrNbyy3kivI1PAkW3hjdXpLBFn5UoPAUj7v+SY"16833
+ },16834
+ "signatures": {16835
+ "@alice_1565:hs1": {16836
+ "ed25519:ALICEDEVICE1565": "FgpasFx1CmCWJ1tAdKoEXpMl62dWwG8Dpt7nlwzAgPl4I/iy1qgPNhM6N1KNkdDEvfis2YiKjQECBa18y5ZSDw"16837
+ }16838
+ },16839
+ "user_id": "@alice_1565:hs1",16840
+ "unsigned": {}16841
+ }16842
+ },16843
+ "@alice_156:hs1": {16844
+ "ALICEDEVICE156": {16845
+ "algorithms": [16846
+ "m.olm.v1.curve25519-aes-sha2",16847
+ "m.megolm.v1.aes-sha2"16848
+ ],16849
+ "device_id": "ALICEDEVICE156",16850
+ "keys": {16851
+ "curve25519:ALICEDEVICE156": "s8eZWFnvwUcjNVExaSrblopRYD8HjBn4hdr4vv8xBX0",16852
+ "ed25519:ALICEDEVICE156": "hyw+q+Pw93WvmCsXNhg0bX1e2QompTlJEptNGcFIm9w"16853
+ },16854
+ "signatures": {16855
+ "@alice_156:hs1": {16856
+ "ed25519:ALICEDEVICE156": "/8otYFKqLR/4IiRXBac4QFA1uyAXetQ+WzToepDlUFRvHqeCRwqzKG8I5FjDWGd1XpnL5wpTJAgma8klYHn0BA"16857
+ }16858
+ },16859
+ "user_id": "@alice_156:hs1",16860
+ "unsigned": {}16861
+ }16862
+ },16863
+ "@alice_1574:hs1": {16864
+ "ALICEDEVICE1574": {16865
+ "algorithms": [16866
+ "m.olm.v1.curve25519-aes-sha2",16867
+ "m.megolm.v1.aes-sha2"16868
+ ],16869
+ "device_id": "ALICEDEVICE1574",16870
+ "keys": {16871
+ "curve25519:ALICEDEVICE1574": "6oVG8+5sSOMVVWIxAMZM/M2oBQ2rbyY7rRzZ3ehR5gA",16872
+ "ed25519:ALICEDEVICE1574": "oLodrN2sNEfLav9dwDhl9W0TJ6Iu3roBacQ7sU1vtyI"16873
+ },16874
+ "signatures": {16875
+ "@alice_1574:hs1": {16876
+ "ed25519:ALICEDEVICE1574": "d3rBVS5/bPT+dHEu0NQZn3mjLpwLjM/DnYl52Y16n4jOdmoqfXrWv434olReiGtvzjbijzg34CiA+m/XSng7Bw"16877
+ }16878
+ },16879
+ "user_id": "@alice_1574:hs1",16880
+ "unsigned": {}16881
+ }16882
+ },16883
+ "@alice_1579:hs1": {16884
+ "ALICEDEVICE1579": {16885
+ "algorithms": [16886
+ "m.olm.v1.curve25519-aes-sha2",16887
+ "m.megolm.v1.aes-sha2"16888
+ ],16889
+ "device_id": "ALICEDEVICE1579",16890
+ "keys": {16891
+ "curve25519:ALICEDEVICE1579": "eLBJpggoI9/rruOxHd1HI6pR7Q4rnxoYvTYFLbWmyDs",16892
+ "ed25519:ALICEDEVICE1579": "e8X7IghIj7U2R8iQDL6Ag2nBWWrb/P78KUXMbhy7rsw"16893
+ },16894
+ "signatures": {16895
+ "@alice_1579:hs1": {16896
+ "ed25519:ALICEDEVICE1579": "J3SP7Kf13b56+PiTmSfkn+qvQQrFB2OajCRUzAu3GBZcAyPRXzyVuZdyjZPp2Nrpx6tpbqonrhiBEKWm3fd2DA"16897
+ }16898
+ },16899
+ "user_id": "@alice_1579:hs1",16900
+ "unsigned": {}16901
+ }16902
+ },16903
+ "@alice_1607:hs1": {16904
+ "ALICEDEVICE1607": {16905
+ "algorithms": [16906
+ "m.olm.v1.curve25519-aes-sha2",16907
+ "m.megolm.v1.aes-sha2"16908
+ ],16909
+ "device_id": "ALICEDEVICE1607",16910
+ "keys": {16911
+ "curve25519:ALICEDEVICE1607": "Q/mfA9AB/MGbvU02zqu/7KMVpuD6S8A+s7LIn09oYhk",16912
+ "ed25519:ALICEDEVICE1607": "2ho72lZMc2TwCAr86cvbWxKLwgiMWpODx+TLgaJr+Ew"16913
+ },16914
+ "signatures": {16915
+ "@alice_1607:hs1": {16916
+ "ed25519:ALICEDEVICE1607": "SijFr0P73ZTB112mbxi121h50zLzGrB98GZ+h5jOyDWypVxQefI6go6BagN2pzCAVNkhsYKqx6k7/D13nc5YCA"16917
+ }16918
+ },16919
+ "user_id": "@alice_1607:hs1",16920
+ "unsigned": {}16921
+ }16922
+ },16923
+ "@alice_1612:hs1": {16924
+ "ALICEDEVICE1612": {16925
+ "algorithms": [16926
+ "m.olm.v1.curve25519-aes-sha2",16927
+ "m.megolm.v1.aes-sha2"16928
+ ],16929
+ "device_id": "ALICEDEVICE1612",16930
+ "keys": {16931
+ "curve25519:ALICEDEVICE1612": "eAWmb8yA1h0Ri9RHwkk0XGOq1q+qPKrg6HGjAq7tV3A",16932
+ "ed25519:ALICEDEVICE1612": "Y1nDrM7LiNcisBMTKZONwiZlROB3XXVZdTxOXHpFWlQ"16933
+ },16934
+ "signatures": {16935
+ "@alice_1612:hs1": {16936
+ "ed25519:ALICEDEVICE1612": "lhTqcpdB5zYBnG11Jw8OaFoJuvNlcokKZGbxu6HdCiGogj/5P9j4h1McrlsIdPRB1KWUDEcCGfHd+ZcDSjhyCw"16937
+ }16938
+ },16939
+ "user_id": "@alice_1612:hs1",16940
+ "unsigned": {}16941
+ }16942
+ },16943
+ "@alice_1625:hs1": {16944
+ "ALICEDEVICE1625": {16945
+ "algorithms": [16946
+ "m.olm.v1.curve25519-aes-sha2",16947
+ "m.megolm.v1.aes-sha2"16948
+ ],16949
+ "device_id": "ALICEDEVICE1625",16950
+ "keys": {16951
+ "curve25519:ALICEDEVICE1625": "hMImA77TH2y9eu1uucczfItVqZGe7pBuvgvVD0p6eQM",16952
+ "ed25519:ALICEDEVICE1625": "xa1SMTgl+WzXdzZ4yJSAgT0onxctToBpekLHNATeUPA"16953
+ },16954
+ "signatures": {16955
+ "@alice_1625:hs1": {16956
+ "ed25519:ALICEDEVICE1625": "exu+7ZQhLX7I+laPT9p0M8q7toLYNd9QuoEF09lzvAWo6m1/xa8Ci1aAUt7z6ZTgh05DhXjEhjbVuSeQpdMxAw"16957
+ }16958
+ },16959
+ "user_id": "@alice_1625:hs1",16960
+ "unsigned": {}16961
+ }16962
+ },16963
+ "@alice_1637:hs1": {16964
+ "ALICEDEVICE1637": {16965
+ "algorithms": [16966
+ "m.olm.v1.curve25519-aes-sha2",16967
+ "m.megolm.v1.aes-sha2"16968
+ ],16969
+ "device_id": "ALICEDEVICE1637",16970
+ "keys": {16971
+ "curve25519:ALICEDEVICE1637": "PzI1q46Ev8q0afX5KP8iGnSDJkXo03ujmBeT9PXoQjE",16972
+ "ed25519:ALICEDEVICE1637": "+Ls3bihYjFKmr9+ffN2lWet+zoHxrGK3NDDigKz43N4"16973
+ },16974
+ "signatures": {16975
+ "@alice_1637:hs1": {16976
+ "ed25519:ALICEDEVICE1637": "EYOLBMAtjGnLK66c3yaePYYJDEKuUT6KykkWgGEqyX/4S12INMigZsbUPPo9flvzVUqKuCdAEY8hdfmpQIf+Bw"16977
+ }16978
+ },16979
+ "user_id": "@alice_1637:hs1",16980
+ "unsigned": {}16981
+ }16982
+ },16983
+ "@alice_1644:hs1": {16984
+ "ALICEDEVICE1644": {16985
+ "algorithms": [16986
+ "m.olm.v1.curve25519-aes-sha2",16987
+ "m.megolm.v1.aes-sha2"16988
+ ],16989
+ "device_id": "ALICEDEVICE1644",16990
+ "keys": {16991
+ "curve25519:ALICEDEVICE1644": "gCv9sYSjCSSY/1+gyWrcJEk9iSs6otBtOG/rNb2XQBg",16992
+ "ed25519:ALICEDEVICE1644": "ZFA57f8F3qfVXoeW7CUeEYc/u8A4tLPF1bnviVXxcmk"16993
+ },16994
+ "signatures": {16995
+ "@alice_1644:hs1": {16996
+ "ed25519:ALICEDEVICE1644": "X7awfccBUe6NsQ6qiljkiccTS5EInRm2viUO/K9txvdhypnszPm8pq1hYy+5mGDNho0NKff2mZMUFET9cV1BCw"16997
+ }16998
+ },16999
+ "user_id": "@alice_1644:hs1",17000
+ "unsigned": {}17001
+ }17002
+ },17003
+ "@alice_1655:hs1": {17004
+ "ALICEDEVICE1655": {17005
+ "algorithms": [17006
+ "m.olm.v1.curve25519-aes-sha2",17007
+ "m.megolm.v1.aes-sha2"17008
+ ],17009
+ "device_id": "ALICEDEVICE1655",17010
+ "keys": {17011
+ "curve25519:ALICEDEVICE1655": "oRFOK7dBZ4gM7YywvSxbfHZ5mT+INbxWsjgKFm2HzzI",17012
+ "ed25519:ALICEDEVICE1655": "TNeo7aa81AUAyPwDzXQIpFbVUyIRejLnVyw3M3bCZ4s"17013
+ },17014
+ "signatures": {17015
+ "@alice_1655:hs1": {17016
+ "ed25519:ALICEDEVICE1655": "ycPQV9oZ1+HUdGIavfHSZTyFQ2JojqbTUNb+9PxH8gFy6myI0a8I6U92k4l7WfXB7bpa2jItlQvkqHOt21vfAA"17017
+ }17018
+ },17019
+ "user_id": "@alice_1655:hs1",17020
+ "unsigned": {}17021
+ }17022
+ },17023
+ "@alice_166:hs1": {17024
+ "ALICEDEVICE166": {17025
+ "algorithms": [17026
+ "m.olm.v1.curve25519-aes-sha2",17027
+ "m.megolm.v1.aes-sha2"17028
+ ],17029
+ "device_id": "ALICEDEVICE166",17030
+ "keys": {17031
+ "curve25519:ALICEDEVICE166": "wkwEd3Tulc2jc1ZHydc1rDQd0ATqvdGBspBtxjt9UD4",17032
+ "ed25519:ALICEDEVICE166": "m/wpLcY+EkhcrxVn96SSDMbKFsX1zDXxY1XgLAH6ldo"17033
+ },17034
+ "signatures": {17035
+ "@alice_166:hs1": {17036
+ "ed25519:ALICEDEVICE166": "ZoU0NnXYFeUGLeptV4P2637Lh9OPgj5q31MOBA2yG8xPZSrjX27IwMpBR5im2IQGRA2/6B7jwh8S+kFytp3NBw"17037
+ }17038
+ },17039
+ "user_id": "@alice_166:hs1",17040
+ "unsigned": {}17041
+ }17042
+ },17043
+ "@alice_1681:hs1": {17044
+ "ALICEDEVICE1681": {17045
+ "algorithms": [17046
+ "m.olm.v1.curve25519-aes-sha2",17047
+ "m.megolm.v1.aes-sha2"17048
+ ],17049
+ "device_id": "ALICEDEVICE1681",17050
+ "keys": {17051
+ "curve25519:ALICEDEVICE1681": "u1xY7F4uFC3inumJt+Ta8P1G+T7hEZkxQljdaz8d514",17052
+ "ed25519:ALICEDEVICE1681": "qKW3q4dSZUDqasq3mIqKDC6VB0HCnLDcgR0SJOcPPiA"17053
+ },17054
+ "signatures": {17055
+ "@alice_1681:hs1": {17056
+ "ed25519:ALICEDEVICE1681": "XSfX8sSZmUwMBX/kBEl0yM36vcJOrX4VibPanzzl06lJoqzTHP1KZh9KhxmnOTyT8qJu0q3oC8N6aQkNFUlMBA"17057
+ }17058
+ },17059
+ "user_id": "@alice_1681:hs1",17060
+ "unsigned": {}17061
+ }17062
+ },17063
+ "@alice_1685:hs1": {17064
+ "ALICEDEVICE1685": {17065
+ "algorithms": [17066
+ "m.olm.v1.curve25519-aes-sha2",17067
+ "m.megolm.v1.aes-sha2"17068
+ ],17069
+ "device_id": "ALICEDEVICE1685",17070
+ "keys": {17071
+ "curve25519:ALICEDEVICE1685": "AArcMwNrjtPihkhGb2Yjnyb/WVRKCZm1I0WXFbFJBm4",17072
+ "ed25519:ALICEDEVICE1685": "2Wrtyt4o4xXiZ+BgexIFXpWq5g/gAunc+qs+6RbvDTU"17073
+ },17074
+ "signatures": {17075
+ "@alice_1685:hs1": {17076
+ "ed25519:ALICEDEVICE1685": "67sn/ilEBRciT6t9clVs3P3g+7xFXz/z6hh7NXGr3nmkYZU3CWErGjeO3y22wWSYaCue/7kdiV6FBTcLNPytCg"17077
+ }17078
+ },17079
+ "user_id": "@alice_1685:hs1",17080
+ "unsigned": {}17081
+ }17082
+ },17083
+ "@alice_1689:hs1": {17084
+ "ALICEDEVICE1689": {17085
+ "algorithms": [17086
+ "m.olm.v1.curve25519-aes-sha2",17087
+ "m.megolm.v1.aes-sha2"17088
+ ],17089
+ "device_id": "ALICEDEVICE1689",17090
+ "keys": {17091
+ "curve25519:ALICEDEVICE1689": "Qv1l4/8EDeDu2DzPNuK6SwxpSLWYIJaZUzLofU7UsCg",17092
+ "ed25519:ALICEDEVICE1689": "diRJTn+tcvJ4X7YYYPAFAoPsR/tYJMr1T9/BEaBHGAc"17093
+ },17094
+ "signatures": {17095
+ "@alice_1689:hs1": {17096
+ "ed25519:ALICEDEVICE1689": "g2OJ+kYu8wtTzpWMUeLid9ShQAw8mM448BlqaTm1QdxwDErSH9ph1iLLYDObxoArkl2dZGmrtMfsm1OcueKsAA"17097
+ }17098
+ },17099
+ "user_id": "@alice_1689:hs1",17100
+ "unsigned": {}17101
+ }17102
+ },17103
+ "@alice_168:hs1": {17104
+ "ALICEDEVICE168": {17105
+ "algorithms": [17106
+ "m.olm.v1.curve25519-aes-sha2",17107
+ "m.megolm.v1.aes-sha2"17108
+ ],17109
+ "device_id": "ALICEDEVICE168",17110
+ "keys": {17111
+ "curve25519:ALICEDEVICE168": "m3cF8YHRNHs64MYcLIpz3ysTIgxGvH7MFJpvGmcj9iY",17112
+ "ed25519:ALICEDEVICE168": "qATYblV0IXJJXB5S1f9ykIiX3qgRXciYkGsnTLAxjzI"17113
+ },17114
+ "signatures": {17115
+ "@alice_168:hs1": {17116
+ "ed25519:ALICEDEVICE168": "WtOgYwI7/egrLIateAAxvuJ80mRGpg2zPwPhahtvg/gYjkLgPYSzHAKiwh3LGf7r4yz8oUjg0kvjAZy+YX2TCA"17117
+ }17118
+ },17119
+ "user_id": "@alice_168:hs1",17120
+ "unsigned": {}17121
+ }17122
+ },17123
+ "@alice_1690:hs1": {17124
+ "ALICEDEVICE1690": {17125
+ "algorithms": [17126
+ "m.olm.v1.curve25519-aes-sha2",17127
+ "m.megolm.v1.aes-sha2"17128
+ ],17129
+ "device_id": "ALICEDEVICE1690",17130
+ "keys": {17131
+ "curve25519:ALICEDEVICE1690": "edn6AQ695GV8MOrldRc4yNdhGUJo1anXOCGfnBhGI3M",17132
+ "ed25519:ALICEDEVICE1690": "2AE3O7NnSe4qwsx0pa3T7gSYzEUY//vNingPSZ+hGes"17133
+ },17134
+ "signatures": {17135
+ "@alice_1690:hs1": {17136
+ "ed25519:ALICEDEVICE1690": "m8Ldo3eM22DDTWDo1Bn7HWWUiX2njwiR5AQAELXWJqRUnKSkbVf4jqYz+vYayTO+sq1M+0QNogGhFyuosZgoDw"17137
+ }17138
+ },17139
+ "user_id": "@alice_1690:hs1",17140
+ "unsigned": {}17141
+ }17142
+ },17143
+ "@alice_1692:hs1": {17144
+ "ALICEDEVICE1692": {17145
+ "algorithms": [17146
+ "m.olm.v1.curve25519-aes-sha2",17147
+ "m.megolm.v1.aes-sha2"17148
+ ],17149
+ "device_id": "ALICEDEVICE1692",17150
+ "keys": {17151
+ "curve25519:ALICEDEVICE1692": "bMe65D+87aBpFCKvJojLcuMLhIDWJud9KiHgqKVDhG4",17152
+ "ed25519:ALICEDEVICE1692": "/F/3oGNn0NEDs7x0b3Q5PaFUfnwbZ7QNryNEzKG5mNg"17153
+ },17154
+ "signatures": {17155
+ "@alice_1692:hs1": {17156
+ "ed25519:ALICEDEVICE1692": "ntL63RkUvEQc7cLu571pWsOHm3GEN5cROXmKpaM784VQMgPr0e/Hd8qFPPAEU8rTf2J1tGlRSaBxJLcPYJv6CA"17157
+ }17158
+ },17159
+ "user_id": "@alice_1692:hs1",17160
+ "unsigned": {}17161
+ }17162
+ },17163
+ "@alice_1695:hs1": {17164
+ "ALICEDEVICE1695": {17165
+ "algorithms": [17166
+ "m.olm.v1.curve25519-aes-sha2",17167
+ "m.megolm.v1.aes-sha2"17168
+ ],17169
+ "device_id": "ALICEDEVICE1695",17170
+ "keys": {17171
+ "curve25519:ALICEDEVICE1695": "jaWL00OxctWr00ukywHI1rDVoWWmZpA4AcY3oOGt1mM",17172
+ "ed25519:ALICEDEVICE1695": "ZnwV+JoIoo2WKDIxrkLEhYxWzmpV7mbcaf6qeSx+zRM"17173
+ },17174
+ "signatures": {17175
+ "@alice_1695:hs1": {17176
+ "ed25519:ALICEDEVICE1695": "FxJDOq1THQnS9raBygxnxLwRXP06p4LOKtsKBbqgZ/prTN63C6WohAwO25OYx19PWvWVt+wWsZmLlzqsVSUYBw"17177
+ }17178
+ },17179
+ "user_id": "@alice_1695:hs1",17180
+ "unsigned": {}17181
+ }17182
+ },17183
+ "@alice_1698:hs1": {17184
+ "ALICEDEVICE1698": {17185
+ "algorithms": [17186
+ "m.olm.v1.curve25519-aes-sha2",17187
+ "m.megolm.v1.aes-sha2"17188
+ ],17189
+ "device_id": "ALICEDEVICE1698",17190
+ "keys": {17191
+ "curve25519:ALICEDEVICE1698": "nNtxMA0pbIuZBnHryrK7bwdg9k5S5+BJNz14VWAN0ws",17192
+ "ed25519:ALICEDEVICE1698": "wCHGG/gVhZirpWhnAf019b82fVfLGRNe5dYhbAeH65o"17193
+ },17194
+ "signatures": {17195
+ "@alice_1698:hs1": {17196
+ "ed25519:ALICEDEVICE1698": "ZeX1erIlXJm7d5OchLT8TYHBViclsa3sRDkjb+0HtwYaL14ygYOzNwTZqUvs7ehR7Ae0CkJqVqT0GSl6XySwDA"17197
+ }17198
+ },17199
+ "user_id": "@alice_1698:hs1",17200
+ "unsigned": {}17201
+ }17202
+ },17203
+ "@alice_1700:hs1": {17204
+ "ALICEDEVICE1700": {17205
+ "algorithms": [17206
+ "m.olm.v1.curve25519-aes-sha2",17207
+ "m.megolm.v1.aes-sha2"17208
+ ],17209
+ "device_id": "ALICEDEVICE1700",17210
+ "keys": {17211
+ "curve25519:ALICEDEVICE1700": "Js7EOrN1xWZGeyMD5EkPAhiMXOegvqrkelFvTbb89kk",17212
+ "ed25519:ALICEDEVICE1700": "SBAiNJPGiZl4hB+QOBQU9B5AKuPYOl9h+S6T0RX4pCE"17213
+ },17214
+ "signatures": {17215
+ "@alice_1700:hs1": {17216
+ "ed25519:ALICEDEVICE1700": "cLnoRfbe9Zeh/5pKbo+vVPkNuNCfBB8hWkMAzOnTVEUSXrGykzcLcZ9XPGS/X7ezIgNxnBBusZYnGS06Tb0dDA"17217
+ }17218
+ },17219
+ "user_id": "@alice_1700:hs1",17220
+ "unsigned": {}17221
+ }17222
+ },17223
+ "@alice_1709:hs1": {17224
+ "ALICEDEVICE1709": {17225
+ "algorithms": [17226
+ "m.olm.v1.curve25519-aes-sha2",17227
+ "m.megolm.v1.aes-sha2"17228
+ ],17229
+ "device_id": "ALICEDEVICE1709",17230
+ "keys": {17231
+ "curve25519:ALICEDEVICE1709": "aeXEdxaFKa+4pEC9xUwdfirwUtOVirnnVYT15mD2J3I",17232
+ "ed25519:ALICEDEVICE1709": "K7RZNtyh6dGnW1D43cGXMEjKgY9dg5bNByGtTNH8meI"17233
+ },17234
+ "signatures": {17235
+ "@alice_1709:hs1": {17236
+ "ed25519:ALICEDEVICE1709": "9E8koUGX6IBZDU+U5QTv3/fvWMQ+BijnkJ5D5yCcO9jHTOMByHHcI9tlzRul0m/FXdLFylWcdubOMKSH/gWACw"17237
+ }17238
+ },17239
+ "user_id": "@alice_1709:hs1",17240
+ "unsigned": {}17241
+ }17242
+ },17243
+ "@alice_1721:hs1": {17244
+ "ALICEDEVICE1721": {17245
+ "algorithms": [17246
+ "m.olm.v1.curve25519-aes-sha2",17247
+ "m.megolm.v1.aes-sha2"17248
+ ],17249
+ "device_id": "ALICEDEVICE1721",17250
+ "keys": {17251
+ "curve25519:ALICEDEVICE1721": "g2vbLmtBdPCOcNPAnE/2Dx9gtw90IS7VoYSTGrBRc3o",17252
+ "ed25519:ALICEDEVICE1721": "qJv1k6fG9ugRYQEWCI2VamnyvpCExcL6l4uuOxw4g+w"17253
+ },17254
+ "signatures": {17255
+ "@alice_1721:hs1": {17256
+ "ed25519:ALICEDEVICE1721": "/Md5dAditJT2A1nH8ULfpObJFC4VMUjDZkvKf3hvDd8/LDiyS9xYLiPrvILR85VYyGEPcWj+aJ1Ucd5V3QQSAA"17257
+ }17258
+ },17259
+ "user_id": "@alice_1721:hs1",17260
+ "unsigned": {}17261
+ }17262
+ },17263
+ "@alice_1722:hs1": {17264
+ "ALICEDEVICE1722": {17265
+ "algorithms": [17266
+ "m.olm.v1.curve25519-aes-sha2",17267
+ "m.megolm.v1.aes-sha2"17268
+ ],17269
+ "device_id": "ALICEDEVICE1722",17270
+ "keys": {17271
+ "curve25519:ALICEDEVICE1722": "vkmLIreA5VOUedOzHeTLWQBVE8hoO4xA8bauawf14jE",17272
+ "ed25519:ALICEDEVICE1722": "By6q16uTkBH3/C3bBAnel+VXJTviqmXfiPVZ30pLeBw"17273
+ },17274
+ "signatures": {17275
+ "@alice_1722:hs1": {17276
+ "ed25519:ALICEDEVICE1722": "C/TRgakCTysToqQe+teTcda1GXOf5dVT94jti6YVvg6yhpq2TRJPh5X3DuC2sXWwoK2XSdCpw8SlSaJFoS0JBA"17277
+ }17278
+ },17279
+ "user_id": "@alice_1722:hs1",17280
+ "unsigned": {}17281
+ }17282
+ },17283
+ "@alice_172:hs1": {17284
+ "ALICEDEVICE172": {17285
+ "algorithms": [17286
+ "m.olm.v1.curve25519-aes-sha2",17287
+ "m.megolm.v1.aes-sha2"17288
+ ],17289
+ "device_id": "ALICEDEVICE172",17290
+ "keys": {17291
+ "curve25519:ALICEDEVICE172": "ZSTFXgBu7Y+8VcHvX2yVadSEnIhDW/0aGQrRQNwKfjA",17292
+ "ed25519:ALICEDEVICE172": "+yJW2onxuGJFpiDLg0aDOynZV2mUoOlXjaAJ7OOtH4M"17293
+ },17294
+ "signatures": {17295
+ "@alice_172:hs1": {17296
+ "ed25519:ALICEDEVICE172": "D/WWB+CGWIsoTTuhLW2OzYwAus3ZrRi+pirYkmyswW5gsp3lB9M+kqG4B/sqXs4TmbQYetG+luKkTOUyUX0dCQ"17297
+ }17298
+ },17299
+ "user_id": "@alice_172:hs1",17300
+ "unsigned": {}17301
+ }17302
+ },17303
+ "@alice_1733:hs1": {17304
+ "ALICEDEVICE1733": {17305
+ "algorithms": [17306
+ "m.olm.v1.curve25519-aes-sha2",17307
+ "m.megolm.v1.aes-sha2"17308
+ ],17309
+ "device_id": "ALICEDEVICE1733",17310
+ "keys": {17311
+ "curve25519:ALICEDEVICE1733": "3unp9bWp3rcumo8pJpW8kfzeCeEbVCUImJCYhRelhXk",17312
+ "ed25519:ALICEDEVICE1733": "w10lcLZs5o8+jylOiBuCgV63JINrwqBk9E6MIx8JNr8"17313
+ },17314
+ "signatures": {17315
+ "@alice_1733:hs1": {17316
+ "ed25519:ALICEDEVICE1733": "adCma0xoHJnQy/pAFxJWI5kAWIl/2xHh6x2DgL4kr478ZeK6MM6y2PEkch0dlLl2AkWGIfUb8eZhVVbIpQi1DQ"17317
+ }17318
+ },17319
+ "user_id": "@alice_1733:hs1",17320
+ "unsigned": {}17321
+ }17322
+ },17323
+ "@alice_1735:hs1": {17324
+ "ALICEDEVICE1735": {17325
+ "algorithms": [17326
+ "m.olm.v1.curve25519-aes-sha2",17327
+ "m.megolm.v1.aes-sha2"17328
+ ],17329
+ "device_id": "ALICEDEVICE1735",17330
+ "keys": {17331
+ "curve25519:ALICEDEVICE1735": "2lhZdnVCgOTj7MoAIAfE5PPKlMauFAnlREHx1W35vR0",17332
+ "ed25519:ALICEDEVICE1735": "rXrjlLaIzHewW6X/aU9jK6G8/sA5BBRTQvSrD/9xcGM"17333
+ },17334
+ "signatures": {17335
+ "@alice_1735:hs1": {17336
+ "ed25519:ALICEDEVICE1735": "0wG+O2wyaRcm75xP2QxeTCbvWlrM2xEczHIJE6QwwoxnI+7aM85QJ1QDwQRJaGiBv8Xznuu7DdOff+ocQeZjBA"17337
+ }17338
+ },17339
+ "user_id": "@alice_1735:hs1",17340
+ "unsigned": {}17341
+ }17342
+ },17343
+ "@alice_1739:hs1": {17344
+ "ALICEDEVICE1739": {17345
+ "algorithms": [17346
+ "m.olm.v1.curve25519-aes-sha2",17347
+ "m.megolm.v1.aes-sha2"17348
+ ],17349
+ "device_id": "ALICEDEVICE1739",17350
+ "keys": {17351
+ "curve25519:ALICEDEVICE1739": "bfdxX+EVsovDfsdj1+nHUx38lITWMg4VkI7xlhh7nQk",17352
+ "ed25519:ALICEDEVICE1739": "Z09EbHz93dIfLpn6udnxMqlp338qJrkvu42jq3L56TE"17353
+ },17354
+ "signatures": {17355
+ "@alice_1739:hs1": {17356
+ "ed25519:ALICEDEVICE1739": "TOWIBAhkSBInVkIx9ALzz4TcEiKjHAH45crtivu5TyOquN5Hm6CNqQ5zgc/kNHgKFCS1YoOrcWVOVqkRIwOeDA"17357
+ }17358
+ },17359
+ "user_id": "@alice_1739:hs1",17360
+ "unsigned": {}17361
+ }17362
+ },17363
+ "@alice_173:hs1": {17364
+ "ALICEDEVICE173": {17365
+ "algorithms": [17366
+ "m.olm.v1.curve25519-aes-sha2",17367
+ "m.megolm.v1.aes-sha2"17368
+ ],17369
+ "device_id": "ALICEDEVICE173",17370
+ "keys": {17371
+ "curve25519:ALICEDEVICE173": "q82hiZFJWVSihhBHuFAc+cOwR4HkKXTrC/yE7bxRkEE",17372
+ "ed25519:ALICEDEVICE173": "pNDIszXa7WenU+kgNaBzDAM97+Rxhd7hbEcBQuJv4dI"17373
+ },17374
+ "signatures": {17375
+ "@alice_173:hs1": {17376
+ "ed25519:ALICEDEVICE173": "KSwxORXNuVa58G+C+fJcWSqZPXBeFlxNQwz5vV7eGB9q46KSXQYK9P9WKj+hwbyPwdkOq2KJSo1gzKAP+rCRBw"17377
+ }17378
+ },17379
+ "user_id": "@alice_173:hs1",17380
+ "unsigned": {}17381
+ }17382
+ },17383
+ "@alice_1756:hs1": {17384
+ "ALICEDEVICE1756": {17385
+ "algorithms": [17386
+ "m.olm.v1.curve25519-aes-sha2",17387
+ "m.megolm.v1.aes-sha2"17388
+ ],17389
+ "device_id": "ALICEDEVICE1756",17390
+ "keys": {17391
+ "curve25519:ALICEDEVICE1756": "OzsDunwAjt1aEdWRRL0rut8B8MbHfY0Q0sY8IwR68ls",17392
+ "ed25519:ALICEDEVICE1756": "ux09ap8/cL83aDLFIojx310eaH9XxxD9sccT+33gJ8c"17393
+ },17394
+ "signatures": {17395
+ "@alice_1756:hs1": {17396
+ "ed25519:ALICEDEVICE1756": "VQ1BvJPUfVfnYxAiY8BCw3m2vrxlQciO89+LZnhcWQlMcN+McuujM8n5S7x5aZ0zHMJUTViHqSkYNt+JngV8Ag"17397
+ }17398
+ },17399
+ "user_id": "@alice_1756:hs1",17400
+ "unsigned": {}17401
+ }17402
+ },17403
+ "@alice_1757:hs1": {17404
+ "ALICEDEVICE1757": {17405
+ "algorithms": [17406
+ "m.olm.v1.curve25519-aes-sha2",17407
+ "m.megolm.v1.aes-sha2"17408
+ ],17409
+ "device_id": "ALICEDEVICE1757",17410
+ "keys": {17411
+ "curve25519:ALICEDEVICE1757": "f3Q+42/z6+751g37Vo9/Nu4s6dvE2sUABUy38Smeqxw",17412
+ "ed25519:ALICEDEVICE1757": "HBaa3UAZQOwuIN1FWe4dnzJDZh7SM6TI/gMBw66fsZY"17413
+ },17414
+ "signatures": {17415
+ "@alice_1757:hs1": {17416
+ "ed25519:ALICEDEVICE1757": "37luGwZvWClQiOKd5ukrceuWcJ8yp5WPHPAAJZjr5mvRROgh3npl/hf9O6ExPbSDL1xfX9t6NGjW63//BpCSAw"17417
+ }17418
+ },17419
+ "user_id": "@alice_1757:hs1",17420
+ "unsigned": {}17421
+ }17422
+ },17423
+ "@alice_1762:hs1": {17424
+ "ALICEDEVICE1762": {17425
+ "algorithms": [17426
+ "m.olm.v1.curve25519-aes-sha2",17427
+ "m.megolm.v1.aes-sha2"17428
+ ],17429
+ "device_id": "ALICEDEVICE1762",17430
+ "keys": {17431
+ "curve25519:ALICEDEVICE1762": "HrcKmyDfmJ0cAwwvipOby+2nCqRFCuLMzYM8F6cZrTo",17432
+ "ed25519:ALICEDEVICE1762": "xs1FDVosJ4dAwMhw/9jUtzwK9W2WYFFIMjvT99QSlCw"17433
+ },17434
+ "signatures": {17435
+ "@alice_1762:hs1": {17436
+ "ed25519:ALICEDEVICE1762": "UtNgbT+igAb/F+MZmRQ4RDZqqURi2DuFsk0qzdAHNyyJ6S+gB5WG1ni3vCVwDLi9QR1e0aA6IjY7Yyhgix8QAg"17437
+ }17438
+ },17439
+ "user_id": "@alice_1762:hs1",17440
+ "unsigned": {}17441
+ }17442
+ },17443
+ "@alice_1763:hs1": {17444
+ "ALICEDEVICE1763": {17445
+ "algorithms": [17446
+ "m.olm.v1.curve25519-aes-sha2",17447
+ "m.megolm.v1.aes-sha2"17448
+ ],17449
+ "device_id": "ALICEDEVICE1763",17450
+ "keys": {17451
+ "curve25519:ALICEDEVICE1763": "DsBp+Br3/zW7EngbGEUA0btzwLSezx60aDSVxPOmUyc",17452
+ "ed25519:ALICEDEVICE1763": "0aFa3twpJvc9nJWuuPdw1lZcsLi+5b16RnE2HYebl5g"17453
+ },17454
+ "signatures": {17455
+ "@alice_1763:hs1": {17456
+ "ed25519:ALICEDEVICE1763": "wCUdBbfEN9Cnx5d9Tekn+0va24eyvHgfVLCt7T2fAGgU4SOCwt/4C8utAn0oklfa5McL64VVVnPbLhcOKG3WDA"17457
+ }17458
+ },17459
+ "user_id": "@alice_1763:hs1",17460
+ "unsigned": {}17461
+ }17462
+ },17463
+ "@alice_1764:hs1": {17464
+ "ALICEDEVICE1764": {17465
+ "algorithms": [17466
+ "m.olm.v1.curve25519-aes-sha2",17467
+ "m.megolm.v1.aes-sha2"17468
+ ],17469
+ "device_id": "ALICEDEVICE1764",17470
+ "keys": {17471
+ "curve25519:ALICEDEVICE1764": "9dGUAwM2YCDrPOStlr//NRkqaLvgVAMRP6ivl6gPVjQ",17472
+ "ed25519:ALICEDEVICE1764": "mMekLm5YUDDkzsPbgTz+qpHjqcnfSLCC9+9lidMrYJA"17473
+ },17474
+ "signatures": {17475
+ "@alice_1764:hs1": {17476
+ "ed25519:ALICEDEVICE1764": "8TmxSPk0NdqxfSQM46dyNqOJKXsHccHrjrmmSQOl6BVykWOKfq6kHeYi4rHK5NXtiOudSekNDnab+hyjgZpnDg"17477
+ }17478
+ },17479
+ "user_id": "@alice_1764:hs1",17480
+ "unsigned": {}17481
+ }17482
+ },17483
+ "@alice_1768:hs1": {17484
+ "ALICEDEVICE1768": {17485
+ "algorithms": [17486
+ "m.olm.v1.curve25519-aes-sha2",17487
+ "m.megolm.v1.aes-sha2"17488
+ ],17489
+ "device_id": "ALICEDEVICE1768",17490
+ "keys": {17491
+ "curve25519:ALICEDEVICE1768": "LqdRwoG+EXFeF8Q/x0yPjgqdPAwxhlVUb+Igxp5vCTA",17492
+ "ed25519:ALICEDEVICE1768": "0zOUEI3GOn7yo9VW00/y312nbmFtgIOuBcV5Sih7o7Y"17493
+ },17494
+ "signatures": {17495
+ "@alice_1768:hs1": {17496
+ "ed25519:ALICEDEVICE1768": "TffeR05GuY/1h2Y90l8lDwJ+x/hjAg3IsBj5pRtXelLr6LpTkEdCkEsRBdtoh8JBc624FEh3kwhSCMLPKA+4CQ"17497
+ }17498
+ },17499
+ "user_id": "@alice_1768:hs1",17500
+ "unsigned": {}17501
+ }17502
+ },17503
+ "@alice_1771:hs1": {17504
+ "ALICEDEVICE1771": {17505
+ "algorithms": [17506
+ "m.olm.v1.curve25519-aes-sha2",17507
+ "m.megolm.v1.aes-sha2"17508
+ ],17509
+ "device_id": "ALICEDEVICE1771",17510
+ "keys": {17511
+ "curve25519:ALICEDEVICE1771": "3SST7ehnMQRhSWeh3N4AuyMmub7g2xLpJrEG/dVW+F8",17512
+ "ed25519:ALICEDEVICE1771": "D/WS/UWg+8FyFkHtXWubN+1RwQiBCGNlB4w4Upe5u4Y"17513
+ },17514
+ "signatures": {17515
+ "@alice_1771:hs1": {17516
+ "ed25519:ALICEDEVICE1771": "PKi4boJw4mpPKQid3kpRiYZzok/64ZUBL2gZKaqpXhZS6zL0dBZYiRkHGH/mm/kg2ypzaV6G8+kodFVMPZEYBQ"17517
+ }17518
+ },17519
+ "user_id": "@alice_1771:hs1",17520
+ "unsigned": {}17521
+ }17522
+ },17523
+ "@alice_1775:hs1": {17524
+ "ALICEDEVICE1775": {17525
+ "algorithms": [17526
+ "m.olm.v1.curve25519-aes-sha2",17527
+ "m.megolm.v1.aes-sha2"17528
+ ],17529
+ "device_id": "ALICEDEVICE1775",17530
+ "keys": {17531
+ "curve25519:ALICEDEVICE1775": "xwPzBGP+tvH2hLd/EBubR66CSxIVhmMyiERSNcR5TCc",17532
+ "ed25519:ALICEDEVICE1775": "PHwrymhPLwfwYnRUINBI2YW2SdpPCy1q2C0ufWWhBLQ"17533
+ },17534
+ "signatures": {17535
+ "@alice_1775:hs1": {17536
+ "ed25519:ALICEDEVICE1775": "oO9Fk59v1oH0n/WfIqQe6LhYyIvXEKH4xYFliif07YMAqyyLraYSqWSWsR/u6fkbmZG1YBtwCWCmOmm++OchAQ"17537
+ }17538
+ },17539
+ "user_id": "@alice_1775:hs1",17540
+ "unsigned": {}17541
+ }17542
+ },17543
+ "@alice_1782:hs1": {17544
+ "ALICEDEVICE1782": {17545
+ "algorithms": [17546
+ "m.olm.v1.curve25519-aes-sha2",17547
+ "m.megolm.v1.aes-sha2"17548
+ ],17549
+ "device_id": "ALICEDEVICE1782",17550
+ "keys": {17551
+ "curve25519:ALICEDEVICE1782": "Vh2HaL8mqTD073tHdrH8zG2+/HVEeaGu7oIC3Pjc2yM",17552
+ "ed25519:ALICEDEVICE1782": "Spql/xDtZQuSkVsWendIytkRIVb3eAWna9a71k1CWOI"17553
+ },17554
+ "signatures": {17555
+ "@alice_1782:hs1": {17556
+ "ed25519:ALICEDEVICE1782": "LBabF/ZvJv5zH05S1db19Q1ANLENY8trzpVCS1WlwZWL14tcOUIFXlRvez7sbkN6TJvZFbElsIzbqPEgtRVPCg"17557
+ }17558
+ },17559
+ "user_id": "@alice_1782:hs1",17560
+ "unsigned": {}17561
+ }17562
+ },17563
+ "@alice_1804:hs1": {17564
+ "ALICEDEVICE1804": {17565
+ "algorithms": [17566
+ "m.olm.v1.curve25519-aes-sha2",17567
+ "m.megolm.v1.aes-sha2"17568
+ ],17569
+ "device_id": "ALICEDEVICE1804",17570
+ "keys": {17571
+ "curve25519:ALICEDEVICE1804": "lusKtBMghz61UWz6m85O9WsPMKXbnA9njfUaz54buCE",17572
+ "ed25519:ALICEDEVICE1804": "1kAn2TPN/r/8B/6OnaLh023cKdvwoddi2Zya1lWbyZ0"17573
+ },17574
+ "signatures": {17575
+ "@alice_1804:hs1": {17576
+ "ed25519:ALICEDEVICE1804": "QNHsK25g/f3hK3QsXZIimi7lfKeJxQKKOARcO1lsM6aEGtZ1Erl6sYXe95XmGyjk9PWQybsJFdZdfJrVX/PjCg"17577
+ }17578
+ },17579
+ "user_id": "@alice_1804:hs1",17580
+ "unsigned": {}17581
+ }17582
+ },17583
+ "@alice_1815:hs1": {17584
+ "ALICEDEVICE1815": {17585
+ "algorithms": [17586
+ "m.olm.v1.curve25519-aes-sha2",17587
+ "m.megolm.v1.aes-sha2"17588
+ ],17589
+ "device_id": "ALICEDEVICE1815",17590
+ "keys": {17591
+ "curve25519:ALICEDEVICE1815": "qyGZ0DXtzZA28ncAxWD1+4W3/3SAurtdwcQmAyMYZTw",17592
+ "ed25519:ALICEDEVICE1815": "Dx/lkGP4wwMPwDMoI8X3hQm8qSniRfc+BkLpHG7WN38"17593
+ },17594
+ "signatures": {17595
+ "@alice_1815:hs1": {17596
+ "ed25519:ALICEDEVICE1815": "5hP+huAAbgfEkG08Z1G46Ibtey++HqJC2kC93L1MQ3mwvUeHkY/sX8Rk/rL44Sc9bOoclpaERPeVd9uKNk0oAg"17597
+ }17598
+ },17599
+ "user_id": "@alice_1815:hs1",17600
+ "unsigned": {}17601
+ }17602
+ },17603
+ "@alice_1821:hs1": {17604
+ "ALICEDEVICE1821": {17605
+ "algorithms": [17606
+ "m.olm.v1.curve25519-aes-sha2",17607
+ "m.megolm.v1.aes-sha2"17608
+ ],17609
+ "device_id": "ALICEDEVICE1821",17610
+ "keys": {17611
+ "curve25519:ALICEDEVICE1821": "V53fxnp1aTibZB5mwzTOMVeGK5NrsXnBGzBpXd6KB3E",17612
+ "ed25519:ALICEDEVICE1821": "iUBIw5OE5gTnUCFpWf9hXNtXIdvgw5sl8fKuFackTCo"17613
+ },17614
+ "signatures": {17615
+ "@alice_1821:hs1": {17616
+ "ed25519:ALICEDEVICE1821": "IKnM1NIz/Vn/0vvkcMYrmxf1RDBEdAY/2JyQBEvet9qXxWUgl6LgCSQ7lM6du4CwMa2RyPvHBZxjhlwxKtfTDQ"17617
+ }17618
+ },17619
+ "user_id": "@alice_1821:hs1",17620
+ "unsigned": {}17621
+ }17622
+ },17623
+ "@alice_1837:hs1": {17624
+ "ALICEDEVICE1837": {17625
+ "algorithms": [17626
+ "m.olm.v1.curve25519-aes-sha2",17627
+ "m.megolm.v1.aes-sha2"17628
+ ],17629
+ "device_id": "ALICEDEVICE1837",17630
+ "keys": {17631
+ "curve25519:ALICEDEVICE1837": "mygG6ZiCrPzYdPLWdpMMuAYKuYJlbBybiUojR6qGAjA",17632
+ "ed25519:ALICEDEVICE1837": "21bSPfYmbgbWY5Z1tF5/GwKWLQh4QGjGxZK6rhU04N8"17633
+ },17634
+ "signatures": {17635
+ "@alice_1837:hs1": {17636
+ "ed25519:ALICEDEVICE1837": "8UcwU5vEtPnhjjMbE572NI1nbd+ZyVmhg9kkzk5s3+DUUi1J9sCMir3rtSaS3EIQ2tUCRkXi/KyqByq5v1gTDQ"17637
+ }17638
+ },17639
+ "user_id": "@alice_1837:hs1",17640
+ "unsigned": {}17641
+ }17642
+ },17643
+ "@alice_1856:hs1": {17644
+ "ALICEDEVICE1856": {17645
+ "algorithms": [17646
+ "m.olm.v1.curve25519-aes-sha2",17647
+ "m.megolm.v1.aes-sha2"17648
+ ],17649
+ "device_id": "ALICEDEVICE1856",17650
+ "keys": {17651
+ "curve25519:ALICEDEVICE1856": "0lEsqwCbPNqFCGP6Vb/AobAq+GYiFZpw9xfB8Bhtdno",17652
+ "ed25519:ALICEDEVICE1856": "JB8oRjEuL/TpcNmSQlGYLzCWBfr4Vtminx8jAYX9R1c"17653
+ },17654
+ "signatures": {17655
+ "@alice_1856:hs1": {17656
+ "ed25519:ALICEDEVICE1856": "IWCud5WSDsM9/WEBxWJIQyZz+VrJwM4Jw0ZkGgAEMTzZ0R355bAvoBd05pjOajrb1mB+BSkGBqmxcPE1XGUTCQ"17657
+ }17658
+ },17659
+ "user_id": "@alice_1856:hs1",17660
+ "unsigned": {}17661
+ }17662
+ },17663
+ "@alice_1860:hs1": {17664
+ "ALICEDEVICE1860": {17665
+ "algorithms": [17666
+ "m.olm.v1.curve25519-aes-sha2",17667
+ "m.megolm.v1.aes-sha2"17668
+ ],17669
+ "device_id": "ALICEDEVICE1860",17670
+ "keys": {17671
+ "curve25519:ALICEDEVICE1860": "C5Go1Q/DGbRLiyuFG0Vj7pW0Kmm1JkM+rIU6+QLCQ1Y",17672
+ "ed25519:ALICEDEVICE1860": "sP7ciE10JJpSuUEMg3W5hItM2yUin0+5b1BZpK77XfA"17673
+ },17674
+ "signatures": {17675
+ "@alice_1860:hs1": {17676
+ "ed25519:ALICEDEVICE1860": "6FRDZrfMyV49dYEgiqSxOqz74oGvVfXFHI90WrXSPy0iseWDajfnzUKtzQmz/ZxAXIK/3ZyfEOoDfF9xrp2rAw"17677
+ }17678
+ },17679
+ "user_id": "@alice_1860:hs1",17680
+ "unsigned": {}17681
+ }17682
+ },17683
+ "@alice_1873:hs1": {17684
+ "ALICEDEVICE1873": {17685
+ "algorithms": [17686
+ "m.olm.v1.curve25519-aes-sha2",17687
+ "m.megolm.v1.aes-sha2"17688
+ ],17689
+ "device_id": "ALICEDEVICE1873",17690
+ "keys": {17691
+ "curve25519:ALICEDEVICE1873": "QqX92rsYtEh9+S9yi6CE5e0ZOOMkf0NhWRuMv16vOis",17692
+ "ed25519:ALICEDEVICE1873": "XMcdm6xQYrjDjhpgiBz0MDeFR3vAZPIizmrKDXjShLM"17693
+ },17694
+ "signatures": {17695
+ "@alice_1873:hs1": {17696
+ "ed25519:ALICEDEVICE1873": "eWJpjbVMIB/PFX6bitfMcSd3tOzphr+mXhwH5/Y48XU0u26fpAlHOSPbH+ELxwfK48lJghHxOJKDBbOzqj5+BA"17697
+ }17698
+ },17699
+ "user_id": "@alice_1873:hs1",17700
+ "unsigned": {}17701
+ }17702
+ },17703
+ "@alice_1878:hs1": {17704
+ "ALICEDEVICE1878": {17705
+ "algorithms": [17706
+ "m.olm.v1.curve25519-aes-sha2",17707
+ "m.megolm.v1.aes-sha2"17708
+ ],17709
+ "device_id": "ALICEDEVICE1878",17710
+ "keys": {17711
+ "curve25519:ALICEDEVICE1878": "q8cHpn2L+PUtge9ax+ZlQdzLra0Ms6oWKQiqq/oodhg",17712
+ "ed25519:ALICEDEVICE1878": "f4sHABO+ImmX5b/i9CPQYP3LXkuLYZ9JAQWoN9KBBbM"17713
+ },17714
+ "signatures": {17715
+ "@alice_1878:hs1": {17716
+ "ed25519:ALICEDEVICE1878": "Jb0RtVF1jfDiaxZmcTBJg/0Olp+Q9AglJ8WzlmxJ/5+nRN6V+rsdypD0NbcYyoUSs/nxFXkGofOGi5pc1P+VBg"17717
+ }17718
+ },17719
+ "user_id": "@alice_1878:hs1",17720
+ "unsigned": {}17721
+ }17722
+ },17723
+ "@alice_188:hs1": {17724
+ "ALICEDEVICE188": {17725
+ "algorithms": [17726
+ "m.olm.v1.curve25519-aes-sha2",17727
+ "m.megolm.v1.aes-sha2"17728
+ ],17729
+ "device_id": "ALICEDEVICE188",17730
+ "keys": {17731
+ "curve25519:ALICEDEVICE188": "kS+rY5yDbxLVFPShW6YVc4kGKjQxjf/vFyR4Qauxkmo",17732
+ "ed25519:ALICEDEVICE188": "MS9iYwF4r+1Nq0mUpV19aZidlGYcAN+2GRdV0QP5akY"17733
+ },17734
+ "signatures": {17735
+ "@alice_188:hs1": {17736
+ "ed25519:ALICEDEVICE188": "MSAoO9CKmBcK7Vz7QR7tL6muUfyIYenULSv8Sb5Yy+OvGaZcyTrl8g/4sL0bUJ2LGoEh83RdW0VgG8VL0qmQBw"17737
+ }17738
+ },17739
+ "user_id": "@alice_188:hs1",17740
+ "unsigned": {}17741
+ }17742
+ },17743
+ "@alice_1894:hs1": {17744
+ "ALICEDEVICE1894": {17745
+ "algorithms": [17746
+ "m.olm.v1.curve25519-aes-sha2",17747
+ "m.megolm.v1.aes-sha2"17748
+ ],17749
+ "device_id": "ALICEDEVICE1894",17750
+ "keys": {17751
+ "curve25519:ALICEDEVICE1894": "r7WYDEBLpdZSPwwxMS+876maJU62pTRYp1CBQubwang",17752
+ "ed25519:ALICEDEVICE1894": "GROOZEs9SmI/fCCfkBVfBopiQYcV12KDTqRwNU2W4cw"17753
+ },17754
+ "signatures": {17755
+ "@alice_1894:hs1": {17756
+ "ed25519:ALICEDEVICE1894": "xPz6+SSyfneZG/5AMYnq6S9BQPE3bb3aHu309TJWUqdD0siT9y6UKUHAupOhZ1z2X+aSuCYp5F9B/MUGqq3qCw"17757
+ }17758
+ },17759
+ "user_id": "@alice_1894:hs1",17760
+ "unsigned": {}17761
+ }17762
+ },17763
+ "@alice_1897:hs1": {17764
+ "ALICEDEVICE1897": {17765
+ "algorithms": [17766
+ "m.olm.v1.curve25519-aes-sha2",17767
+ "m.megolm.v1.aes-sha2"17768
+ ],17769
+ "device_id": "ALICEDEVICE1897",17770
+ "keys": {17771
+ "curve25519:ALICEDEVICE1897": "JWdNYgSzTPkYy9m4p7mK9ddEkIfQLBS6qr3XGkpHBU0",17772
+ "ed25519:ALICEDEVICE1897": "eZSPh2MJN3xruEbcIIkpk0v8qgAwaLu0hObsA+fSpoU"17773
+ },17774
+ "signatures": {17775
+ "@alice_1897:hs1": {17776
+ "ed25519:ALICEDEVICE1897": "XKolUy0cju6OmNIGvPVtVDCn6ZkX8oSgRMFo8KdHKeo7qzgWyKJQ0qxNURSO+HruwPq7d6TJsY+qFFjawnkcCw"17777
+ }17778
+ },17779
+ "user_id": "@alice_1897:hs1",17780
+ "unsigned": {}17781
+ }17782
+ },17783
+ "@alice_189:hs1": {17784
+ "ALICEDEVICE189": {17785
+ "algorithms": [17786
+ "m.olm.v1.curve25519-aes-sha2",17787
+ "m.megolm.v1.aes-sha2"17788
+ ],17789
+ "device_id": "ALICEDEVICE189",17790
+ "keys": {17791
+ "curve25519:ALICEDEVICE189": "vgrSPdOxvcQpSxlIdbejXKVPa15txNw3jrohpynt7SU",17792
+ "ed25519:ALICEDEVICE189": "byTm92XiHrMwsGv2xySfkK1aSgTc8gEhmVxxI8b4smc"17793
+ },17794
+ "signatures": {17795
+ "@alice_189:hs1": {17796
+ "ed25519:ALICEDEVICE189": "PBi377Df/CVQVkXMylJLX1Zf42IdPu94fqEGkGPPRlsugchRjn6XLGqKh3q4STM7vGFGx3yCtA2X5i3iyqFoAA"17797
+ }17798
+ },17799
+ "user_id": "@alice_189:hs1",17800
+ "unsigned": {}17801
+ }17802
+ },17803
+ "@alice_1914:hs1": {17804
+ "ALICEDEVICE1914": {17805
+ "algorithms": [17806
+ "m.olm.v1.curve25519-aes-sha2",17807
+ "m.megolm.v1.aes-sha2"17808
+ ],17809
+ "device_id": "ALICEDEVICE1914",17810
+ "keys": {17811
+ "curve25519:ALICEDEVICE1914": "2lURI+mdUU9CHGB8kAnkwFCPKq9+N+hCMA4L263Xgkw",17812
+ "ed25519:ALICEDEVICE1914": "tojwTEfTX8wYpx8K7IdQ9sZ8keKSSFZtYqrAhXKvDEQ"17813
+ },17814
+ "signatures": {17815
+ "@alice_1914:hs1": {17816
+ "ed25519:ALICEDEVICE1914": "NRCfqV7oIwzDFTOKf7VKH/weDjhb/R59q9vH7TrTYYLiU8OBYcH/xMMSTz2nUEbAhPicEkv8fuMB/6N0eifTDg"17817
+ }17818
+ },17819
+ "user_id": "@alice_1914:hs1",17820
+ "unsigned": {}17821
+ }17822
+ },17823
+ "@alice_1916:hs1": {17824
+ "ALICEDEVICE1916": {17825
+ "algorithms": [17826
+ "m.olm.v1.curve25519-aes-sha2",17827
+ "m.megolm.v1.aes-sha2"17828
+ ],17829
+ "device_id": "ALICEDEVICE1916",17830
+ "keys": {17831
+ "curve25519:ALICEDEVICE1916": "PWDY/bohz3yetVS414nFJgs0tVf0+D8CSUhZspQNn3c",17832
+ "ed25519:ALICEDEVICE1916": "NA6JQMG6oYYLqUVB3CHfNidv31IQX5qcfaAga9TAuno"17833
+ },17834
+ "signatures": {17835
+ "@alice_1916:hs1": {17836
+ "ed25519:ALICEDEVICE1916": "+JzjK1g3P2Igzrh2WAkRaTbfTn7QVsjTPBHwbEN7Dvdybfa9j/hUNP3zMbac2MfdySTWr7qmAxj9/LdC1B00Cw"17837
+ }17838
+ },17839
+ "user_id": "@alice_1916:hs1",17840
+ "unsigned": {}17841
+ }17842
+ },17843
+ "@alice_191:hs1": {17844
+ "ALICEDEVICE191": {17845
+ "algorithms": [17846
+ "m.olm.v1.curve25519-aes-sha2",17847
+ "m.megolm.v1.aes-sha2"17848
+ ],17849
+ "device_id": "ALICEDEVICE191",17850
+ "keys": {17851
+ "curve25519:ALICEDEVICE191": "DsmuAb/yaMKsY4MeFX1wPd7Aoe9zQkLDgRGERjtZWC4",17852
+ "ed25519:ALICEDEVICE191": "ajR5APTgYmOQODgzVvhIpAmkyJY9tFSP1pphOyVyuYw"17853
+ },17854
+ "signatures": {17855
+ "@alice_191:hs1": {17856
+ "ed25519:ALICEDEVICE191": "mC8yXVFkDeCrnjaPdOCB0fcvR4ovU+RnQeSZ1CSSt0+KKI15eZF07QPaw1F5ODsWLaVur5rJFgxfZVLpJLYcAw"17857
+ }17858
+ },17859
+ "user_id": "@alice_191:hs1",17860
+ "unsigned": {}17861
+ }17862
+ },17863
+ "@alice_1921:hs1": {17864
+ "ALICEDEVICE1921": {17865
+ "algorithms": [17866
+ "m.olm.v1.curve25519-aes-sha2",17867
+ "m.megolm.v1.aes-sha2"17868
+ ],17869
+ "device_id": "ALICEDEVICE1921",17870
+ "keys": {17871
+ "curve25519:ALICEDEVICE1921": "AqOeve+dcjqstdGdE1ynt3XZmR5VkQ5sSpstlynx1WU",17872
+ "ed25519:ALICEDEVICE1921": "+YCMoXrp7Qyq8WiCCsZxgHZyrGIHuux/WQOMqSZqHN4"17873
+ },17874
+ "signatures": {17875
+ "@alice_1921:hs1": {17876
+ "ed25519:ALICEDEVICE1921": "r3qZPBxAXXDAcDAauflW8BMvjbz1pyuuF3RyTlgLjjL6g/8iBnEkV8xTHh2JQq2nOyDaAJdlMDE3BBl4Kz7ZDw"17877
+ }17878
+ },17879
+ "user_id": "@alice_1921:hs1",17880
+ "unsigned": {}17881
+ }17882
+ },17883
+ "@alice_1923:hs1": {17884
+ "ALICEDEVICE1923": {17885
+ "algorithms": [17886
+ "m.olm.v1.curve25519-aes-sha2",17887
+ "m.megolm.v1.aes-sha2"17888
+ ],17889
+ "device_id": "ALICEDEVICE1923",17890
+ "keys": {17891
+ "curve25519:ALICEDEVICE1923": "NzrL4VIRcEwTpygVD6jIVeHnT8LTHBb9S56SlH7gr2o",17892
+ "ed25519:ALICEDEVICE1923": "gmO7JDMvUnrYCPbK69MALrFzargvkt3ywOHlm1L4LU8"17893
+ },17894
+ "signatures": {17895
+ "@alice_1923:hs1": {17896
+ "ed25519:ALICEDEVICE1923": "ut9L/cvh5FpyKhHtdAbVNTe0dz9fNl79ICuXe9Nhbubt3eoAsVdMsCErM7HwA5xcYjhm+drYCQfNOOuaR+pPDw"17897
+ }17898
+ },17899
+ "user_id": "@alice_1923:hs1",17900
+ "unsigned": {}17901
+ }17902
+ },17903
+ "@alice_1928:hs1": {17904
+ "ALICEDEVICE1928": {17905
+ "algorithms": [17906
+ "m.olm.v1.curve25519-aes-sha2",17907
+ "m.megolm.v1.aes-sha2"17908
+ ],17909
+ "device_id": "ALICEDEVICE1928",17910
+ "keys": {17911
+ "curve25519:ALICEDEVICE1928": "BnQwl8JcYJHBIKjmcrydXzhGqepofEiCbCiXaxQhtzA",17912
+ "ed25519:ALICEDEVICE1928": "rGSKJ25oAgmcb9iVJ/Gg6/Ikvfxny/SJ6K/rWfW1EwI"17913
+ },17914
+ "signatures": {17915
+ "@alice_1928:hs1": {17916
+ "ed25519:ALICEDEVICE1928": "z1Ty0tWEIq1zM4FqL8fUKxuXeSrhWMdNaL5iZffMf890s7WTeevkaFywqNFK0FHUVJB/9n4nYGS4AUmJJiOSBw"17917
+ }17918
+ },17919
+ "user_id": "@alice_1928:hs1",17920
+ "unsigned": {}17921
+ }17922
+ },17923
+ "@alice_1943:hs1": {17924
+ "ALICEDEVICE1943": {17925
+ "algorithms": [17926
+ "m.olm.v1.curve25519-aes-sha2",17927
+ "m.megolm.v1.aes-sha2"17928
+ ],17929
+ "device_id": "ALICEDEVICE1943",17930
+ "keys": {17931
+ "curve25519:ALICEDEVICE1943": "OXQdXnTYNE7boUQzEM2F+vLDLcSkU4+IaOioWjOj51A",17932
+ "ed25519:ALICEDEVICE1943": "m2H1yUjhWdyIhUkvPtRA6eRyLki8gFNzJ1TA2BaOIaQ"17933
+ },17934
+ "signatures": {17935
+ "@alice_1943:hs1": {17936
+ "ed25519:ALICEDEVICE1943": "UL5fReklpSLXDePfjE8SJGz4vp3wXg16XLmbLKbrsPr7u1K5v2WOeYextASjDZhgZOfv7+FE7yokxD9r2UOgCg"17937
+ }17938
+ },17939
+ "user_id": "@alice_1943:hs1",17940
+ "unsigned": {}17941
+ }17942
+ },17943
+ "@alice_1954:hs1": {17944
+ "ALICEDEVICE1954": {17945
+ "algorithms": [17946
+ "m.olm.v1.curve25519-aes-sha2",17947
+ "m.megolm.v1.aes-sha2"17948
+ ],17949
+ "device_id": "ALICEDEVICE1954",17950
+ "keys": {17951
+ "curve25519:ALICEDEVICE1954": "ee7WLH4QWf252NOpRP9eaF0zLRbqUgOPZ3MT6Y9L3l4",17952
+ "ed25519:ALICEDEVICE1954": "kKbsoJSMaSV4zePoFEKP53/RwyUULtgPLK9F1kLcyDw"17953
+ },17954
+ "signatures": {17955
+ "@alice_1954:hs1": {17956
+ "ed25519:ALICEDEVICE1954": "rmhovn+VqZzJg+FyanlfJ2zqqtbjiSqsASCAL9A/bcGKP1wpPQ9caGAp7bKOyBS/Rd6gjOF+uSSfbmTYcR3PDA"17957
+ }17958
+ },17959
+ "user_id": "@alice_1954:hs1",17960
+ "unsigned": {}17961
+ }17962
+ },17963
+ "@alice_195:hs1": {17964
+ "ALICEDEVICE195": {17965
+ "algorithms": [17966
+ "m.olm.v1.curve25519-aes-sha2",17967
+ "m.megolm.v1.aes-sha2"17968
+ ],17969
+ "device_id": "ALICEDEVICE195",17970
+ "keys": {17971
+ "curve25519:ALICEDEVICE195": "e34MhxCAoGrlZfRKd0Z5Cdnq3LlFVtF+x/LxHuiA/Qw",17972
+ "ed25519:ALICEDEVICE195": "lamI5dVZQ7ysIRCzHzGOSe0VHDX4EvHh6W1nHFiwSrQ"17973
+ },17974
+ "signatures": {17975
+ "@alice_195:hs1": {17976
+ "ed25519:ALICEDEVICE195": "35Q0y9HjrM+9ziM/+IFoQI8qQ8IHJikIHW2+Wzzqouk1rft6ypcUb+uTN8RM/kRcRhiOpG0dDI46HtTS+f9NBA"17977
+ }17978
+ },17979
+ "user_id": "@alice_195:hs1",17980
+ "unsigned": {}17981
+ }17982
+ },17983
+ "@alice_1960:hs1": {17984
+ "ALICEDEVICE1960": {17985
+ "algorithms": [17986
+ "m.olm.v1.curve25519-aes-sha2",17987
+ "m.megolm.v1.aes-sha2"17988
+ ],17989
+ "device_id": "ALICEDEVICE1960",17990
+ "keys": {17991
+ "curve25519:ALICEDEVICE1960": "s8lVkRn40KsChTGocgjBsrs1UuHe8bHmbEHOU+U3fTo",17992
+ "ed25519:ALICEDEVICE1960": "ssaQ0wQmwK/bMsGa7FZPZgvE98E4G9/fz2T1AKxkIlY"17993
+ },17994
+ "signatures": {17995
+ "@alice_1960:hs1": {17996
+ "ed25519:ALICEDEVICE1960": "q4QcGPHbm5Qw7Kj3sku2YhkLIWqa3vKuWgcXQ0yOfvtYCT1yUEOHi4IjLM/un1QTxDw+Qq8DeRiwcHF9ERn+Dw"17997
+ }17998
+ },17999
+ "user_id": "@alice_1960:hs1",18000
+ "unsigned": {}18001
+ }18002
+ },18003
+ "@alice_1965:hs1": {18004
+ "ALICEDEVICE1965": {18005
+ "algorithms": [18006
+ "m.olm.v1.curve25519-aes-sha2",18007
+ "m.megolm.v1.aes-sha2"18008
+ ],18009
+ "device_id": "ALICEDEVICE1965",18010
+ "keys": {18011
+ "curve25519:ALICEDEVICE1965": "Os+sYIjSSXgmM+jJufgKm87X53fakPztDnmpHVPc8X0",18012
+ "ed25519:ALICEDEVICE1965": "CReYla8XkFRUT234ak1Ri2xN/EOaDyCOhQdUSIeQKyY"18013
+ },18014
+ "signatures": {18015
+ "@alice_1965:hs1": {18016
+ "ed25519:ALICEDEVICE1965": "/BINlw9An4sDDxCVmWRvtioEzxDbCTUsJspm6eA5qAvLVrW2QpwrjrrdtsziMLjetiiJtR5xEtP/AaMxuGZzBg"18017
+ }18018
+ },18019
+ "user_id": "@alice_1965:hs1",18020
+ "unsigned": {}18021
+ }18022
+ },18023
+ "@alice_1968:hs1": {18024
+ "ALICEDEVICE1968": {18025
+ "algorithms": [18026
+ "m.olm.v1.curve25519-aes-sha2",18027
+ "m.megolm.v1.aes-sha2"18028
+ ],18029
+ "device_id": "ALICEDEVICE1968",18030
+ "keys": {18031
+ "curve25519:ALICEDEVICE1968": "c+yjE+sx9KEf39fnjEdXa7wMf+fxIQNaJm1riWj/8WY",18032
+ "ed25519:ALICEDEVICE1968": "EVUGssC1Etn5+bMtfOy+M0TdXtcJKXFclwxUGokRzpA"18033
+ },18034
+ "signatures": {18035
+ "@alice_1968:hs1": {18036
+ "ed25519:ALICEDEVICE1968": "YFiFJSP2o/u+Ak7aQkhDToZlx62XI5NoJixcOZ3YO3HAYtDEE9/y1Tt9fC6yGKoWDvklpJCl7sfI3lW2QAzxCA"18037
+ }18038
+ },18039
+ "user_id": "@alice_1968:hs1",18040
+ "unsigned": {}18041
+ }18042
+ },18043
+ "@alice_1971:hs1": {18044
+ "ALICEDEVICE1971": {18045
+ "algorithms": [18046
+ "m.olm.v1.curve25519-aes-sha2",18047
+ "m.megolm.v1.aes-sha2"18048
+ ],18049
+ "device_id": "ALICEDEVICE1971",18050
+ "keys": {18051
+ "curve25519:ALICEDEVICE1971": "WkZHVwl0sGZ0DGggh+S6/4F0j1zVp9iOw3LXWB2/+1c",18052
+ "ed25519:ALICEDEVICE1971": "jWrhrRciVQ1ypbL68h1ZOUfT6+9B390umQhKaNYVpuU"18053
+ },18054
+ "signatures": {18055
+ "@alice_1971:hs1": {18056
+ "ed25519:ALICEDEVICE1971": "kBJsC4Ie/sxVFyrztcx+YwhmTqFhJE1YfVoO7PPgsEIwbljLmbgmMpZ+FauxrzplJow+SAmmXRbMEyBgpBysBw"18057
+ }18058
+ },18059
+ "user_id": "@alice_1971:hs1",18060
+ "unsigned": {}18061
+ }18062
+ },18063
+ "@alice_1976:hs1": {18064
+ "ALICEDEVICE1976": {18065
+ "algorithms": [18066
+ "m.olm.v1.curve25519-aes-sha2",18067
+ "m.megolm.v1.aes-sha2"18068
+ ],18069
+ "device_id": "ALICEDEVICE1976",18070
+ "keys": {18071
+ "curve25519:ALICEDEVICE1976": "JfiEEoPQzCO5S305wfcvsG3IagWSM8q5r9gNbxce6SM",18072
+ "ed25519:ALICEDEVICE1976": "1LFxGjcZOu51yckf1vtXTawOePU8eA2Bj1Vlw48mow0"18073
+ },18074
+ "signatures": {18075
+ "@alice_1976:hs1": {18076
+ "ed25519:ALICEDEVICE1976": "u1B2VU+36J7W3CEqxWJ2IR+/yPLQ7F3I5FyQxQX0BCHyHOSUfzXkus+vBJgnnxo9XClkVCYhPIO73BdiWTCLDA"18077
+ }18078
+ },18079
+ "user_id": "@alice_1976:hs1",18080
+ "unsigned": {}18081
+ }18082
+ },18083
+ "@alice_1980:hs1": {18084
+ "ALICEDEVICE1980": {18085
+ "algorithms": [18086
+ "m.olm.v1.curve25519-aes-sha2",18087
+ "m.megolm.v1.aes-sha2"18088
+ ],18089
+ "device_id": "ALICEDEVICE1980",18090
+ "keys": {18091
+ "curve25519:ALICEDEVICE1980": "VWm96mGRoKoRLrmdIK6KkAfbGYH5S8qdu83VHsl42xI",18092
+ "ed25519:ALICEDEVICE1980": "nw7n8bDr6JPxonF/Z08Am8fsbWNTxWgoDcU7wP9BWdc"18093
+ },18094
+ "signatures": {18095
+ "@alice_1980:hs1": {18096
+ "ed25519:ALICEDEVICE1980": "Jq4//cB4Emh093NH4wTwg56v/m7YpH6pRXi6Wc27sK1B6vfXAdIQGF23ooGWaTpeYyBVEuUnWxyiJReHv3VvDg"18097
+ }18098
+ },18099
+ "user_id": "@alice_1980:hs1",18100
+ "unsigned": {}18101
+ }18102
+ },18103
+ "@alice_20:hs1": {18104
+ "ALICEDEVICE20": {18105
+ "algorithms": [18106
+ "m.olm.v1.curve25519-aes-sha2",18107
+ "m.megolm.v1.aes-sha2"18108
+ ],18109
+ "device_id": "ALICEDEVICE20",18110
+ "keys": {18111
+ "curve25519:ALICEDEVICE20": "Nlx96wgpDrv78HvfdCt7Y7h0lZoJW3pUGK57IYQphgc",18112
+ "ed25519:ALICEDEVICE20": "INkfpMp9cPTzyjzbCEnASkT/9rwaCsk+BoYLnfoOWn4"18113
+ },18114
+ "signatures": {18115
+ "@alice_20:hs1": {18116
+ "ed25519:ALICEDEVICE20": "DSnC/hXwNA9G/eR6V5zQRlyZ2qwo3+14RLESLDtDADZ4tjUJl6GoABJVGpDAYCaxZ/C+MFfROkm6NI7pvuT2Aw"18117
+ }18118
+ },18119
+ "user_id": "@alice_20:hs1",18120
+ "unsigned": {}18121
+ }18122
+ },18123
+ "@alice_216:hs1": {18124
+ "ALICEDEVICE216": {18125
+ "algorithms": [18126
+ "m.olm.v1.curve25519-aes-sha2",18127
+ "m.megolm.v1.aes-sha2"18128
+ ],18129
+ "device_id": "ALICEDEVICE216",18130
+ "keys": {18131
+ "curve25519:ALICEDEVICE216": "ydh9e6CZyQZNLAKsqN/KkzrL46+w3U/fRdcNXo+7cgY",18132
+ "ed25519:ALICEDEVICE216": "M1SVfLU3ka57OCV1NhjTg3bs2SH3CNs3QMnxWGrLRXo"18133
+ },18134
+ "signatures": {18135
+ "@alice_216:hs1": {18136
+ "ed25519:ALICEDEVICE216": "15jkEnDDsZ2hE9BbmbhvrzlWKtOksGtMEoOAEIu3tmvjmcBGCGaQRrvv1+j2DEvH21nXfcud+81XMPIUH6s9BQ"18137
+ }18138
+ },18139
+ "user_id": "@alice_216:hs1",18140
+ "unsigned": {}18141
+ }18142
+ },18143
+ "@alice_219:hs1": {18144
+ "ALICEDEVICE219": {18145
+ "algorithms": [18146
+ "m.olm.v1.curve25519-aes-sha2",18147
+ "m.megolm.v1.aes-sha2"18148
+ ],18149
+ "device_id": "ALICEDEVICE219",18150
+ "keys": {18151
+ "curve25519:ALICEDEVICE219": "/FyNQaEcOcb2nMA+2iHXc5bJpTue0WaNnFqqiiLmZkc",18152
+ "ed25519:ALICEDEVICE219": "Io7S0H/Vj0garbVYCiPH1ORT9t7wfZOF+Mh7wOhJTRg"18153
+ },18154
+ "signatures": {18155
+ "@alice_219:hs1": {18156
+ "ed25519:ALICEDEVICE219": "XJkInYHpqyL7cAmaJTKgANBdl3XPXzAMweLyCkJnowudK2ru9Ks6SK8Q2CarJB0gQSkduj7E8/xWvl6KpmAlBA"18157
+ }18158
+ },18159
+ "user_id": "@alice_219:hs1",18160
+ "unsigned": {}18161
+ }18162
+ },18163
+ "@alice_223:hs1": {18164
+ "ALICEDEVICE223": {18165
+ "algorithms": [18166
+ "m.olm.v1.curve25519-aes-sha2",18167
+ "m.megolm.v1.aes-sha2"18168
+ ],18169
+ "device_id": "ALICEDEVICE223",18170
+ "keys": {18171
+ "curve25519:ALICEDEVICE223": "nAVmkbdMbRF5SbSKDCTBzQ2mOGyfhofi19TOI1FDECk",18172
+ "ed25519:ALICEDEVICE223": "oGbyVkRibL4kWoLWKkDGm+ZaiYFx73ijttuDgLrjIrQ"18173
+ },18174
+ "signatures": {18175
+ "@alice_223:hs1": {18176
+ "ed25519:ALICEDEVICE223": "WI0vmH4GOMFafPn07pMacLGGWc95rhdN3wRqvoiioDJGsBR2m8eYyAAw/IpcpCNc8oyIGxJwJcTi3oNdve76Dw"18177
+ }18178
+ },18179
+ "user_id": "@alice_223:hs1",18180
+ "unsigned": {}18181
+ }18182
+ },18183
+ "@alice_224:hs1": {18184
+ "ALICEDEVICE224": {18185
+ "algorithms": [18186
+ "m.olm.v1.curve25519-aes-sha2",18187
+ "m.megolm.v1.aes-sha2"18188
+ ],18189
+ "device_id": "ALICEDEVICE224",18190
+ "keys": {18191
+ "curve25519:ALICEDEVICE224": "6aM+RF6C6gsIAY/F9jAvaeSqbTdvK8D1vVQmqHSo5BU",18192
+ "ed25519:ALICEDEVICE224": "LQk3iyTY4d+2seVjnzIi/aDnUGkVyd9yXCP02T8c6qI"18193
+ },18194
+ "signatures": {18195
+ "@alice_224:hs1": {18196
+ "ed25519:ALICEDEVICE224": "VmsSCIrrYsvy1yK3igt44u/UFhIylORvHml6bObFExdDYXSqwRx3zbaS8kGyvLUcVPCdnyuEJd1JmI8iBIH9DQ"18197
+ }18198
+ },18199
+ "user_id": "@alice_224:hs1",18200
+ "unsigned": {}18201
+ }18202
+ },18203
+ "@alice_241:hs1": {18204
+ "ALICEDEVICE241": {18205
+ "algorithms": [18206
+ "m.olm.v1.curve25519-aes-sha2",18207
+ "m.megolm.v1.aes-sha2"18208
+ ],18209
+ "device_id": "ALICEDEVICE241",18210
+ "keys": {18211
+ "curve25519:ALICEDEVICE241": "HpFG8i43prh096iKE/1WXXQp7skCn3WmVAsEDeJKrDs",18212
+ "ed25519:ALICEDEVICE241": "t7bVyI+ZhrCEEvT9mLbgRvpxd/s9iE+P8vdL/OE0Ykc"18213
+ },18214
+ "signatures": {18215
+ "@alice_241:hs1": {18216
+ "ed25519:ALICEDEVICE241": "qi2/r7yTKM004JZ03zPoi8HwmVOoWElo8mTfieOhNFz22xFjLwuqrfTELBzoH1JBscwodB7/pHP6XnT9JvRQBA"18217
+ }18218
+ },18219
+ "user_id": "@alice_241:hs1",18220
+ "unsigned": {}18221
+ }18222
+ },18223
+ "@alice_242:hs1": {18224
+ "ALICEDEVICE242": {18225
+ "algorithms": [18226
+ "m.olm.v1.curve25519-aes-sha2",18227
+ "m.megolm.v1.aes-sha2"18228
+ ],18229
+ "device_id": "ALICEDEVICE242",18230
+ "keys": {18231
+ "curve25519:ALICEDEVICE242": "xAH4Yc8OVuH0rliM3jDyuBwO62Lxe2bg9RpdJ7oixUE",18232
+ "ed25519:ALICEDEVICE242": "RjdZSA+m/NPj0L89qGsQBVAQMQwqbhVPTT3yEtxm5xw"18233
+ },18234
+ "signatures": {18235
+ "@alice_242:hs1": {18236
+ "ed25519:ALICEDEVICE242": "dCzKTmov9Z+PTFyUa9uMjrdus8GDpXMAbmLb+SXChgmY7tlxkaLwWD3A2BCEpJSSufR6Iao4y2fEMysWx/MtBg"18237
+ }18238
+ },18239
+ "user_id": "@alice_242:hs1",18240
+ "unsigned": {}18241
+ }18242
+ },18243
+ "@alice_244:hs1": {18244
+ "ALICEDEVICE244": {18245
+ "algorithms": [18246
+ "m.olm.v1.curve25519-aes-sha2",18247
+ "m.megolm.v1.aes-sha2"18248
+ ],18249
+ "device_id": "ALICEDEVICE244",18250
+ "keys": {18251
+ "curve25519:ALICEDEVICE244": "uit7bplg6F6g70YJ1ca03eOlB15n9LCcG0glL32YOSU",18252
+ "ed25519:ALICEDEVICE244": "kHWIcb2XnxCEy1xPwGLxBQGNhEq0KCA8nQtpgohr/p0"18253
+ },18254
+ "signatures": {18255
+ "@alice_244:hs1": {18256
+ "ed25519:ALICEDEVICE244": "zmdBICd/KVaCWrrjWNXXMWTu7lrDBrse1AUGCww8c6vlxBSXedOebYQroIGrqFx6eTRbenykqz4F8NvYLH4jDQ"18257
+ }18258
+ },18259
+ "user_id": "@alice_244:hs1",18260
+ "unsigned": {}18261
+ }18262
+ },18263
+ "@alice_246:hs1": {18264
+ "ALICEDEVICE246": {18265
+ "algorithms": [18266
+ "m.olm.v1.curve25519-aes-sha2",18267
+ "m.megolm.v1.aes-sha2"18268
+ ],18269
+ "device_id": "ALICEDEVICE246",18270
+ "keys": {18271
+ "curve25519:ALICEDEVICE246": "4Gc8b98cWOlYigGiXv3JuEdRFC07Tl7htMyZS1tM4G4",18272
+ "ed25519:ALICEDEVICE246": "Ii5vpP+IF4nmfyXBu7euiAnEuqzro9mrkMuNJyGQYTU"18273
+ },18274
+ "signatures": {18275
+ "@alice_246:hs1": {18276
+ "ed25519:ALICEDEVICE246": "GTnXbzqrQhUBwjKBPHAx0xz82QWYILmJmJvHWJgmDQwlAo/kMiu7pPCdbDPpwFJmqzfZacSV3bUUJTUwgpNaAA"18277
+ }18278
+ },18279
+ "user_id": "@alice_246:hs1",18280
+ "unsigned": {}18281
+ }18282
+ },18283
+ "@alice_249:hs1": {18284
+ "ALICEDEVICE249": {18285
+ "algorithms": [18286
+ "m.olm.v1.curve25519-aes-sha2",18287
+ "m.megolm.v1.aes-sha2"18288
+ ],18289
+ "device_id": "ALICEDEVICE249",18290
+ "keys": {18291
+ "curve25519:ALICEDEVICE249": "YX81rISugA0Asl2XIi7smN0WYB+E6jNWIOFTu1+85lY",18292
+ "ed25519:ALICEDEVICE249": "tU4CtszBiNeiY0Lq/nafElPFLPdbNz9k1/I5WkZXpt0"18293
+ },18294
+ "signatures": {18295
+ "@alice_249:hs1": {18296
+ "ed25519:ALICEDEVICE249": "MHV3EUspMe4LYu+QfSJKgU19f3ueIdCjDfuRRQ3IZaNZy+NtSgeXdyEeauxSbj0zKZOyy3NVKNng47XTkubrBg"18297
+ }18298
+ },18299
+ "user_id": "@alice_249:hs1",18300
+ "unsigned": {}18301
+ }18302
+ },18303
+ "@alice_253:hs1": {18304
+ "ALICEDEVICE253": {18305
+ "algorithms": [18306
+ "m.olm.v1.curve25519-aes-sha2",18307
+ "m.megolm.v1.aes-sha2"18308
+ ],18309
+ "device_id": "ALICEDEVICE253",18310
+ "keys": {18311
+ "curve25519:ALICEDEVICE253": "H8rQ2tdfwzHiYntRONznA6E583LUAIkgToHy9ex7c0s",18312
+ "ed25519:ALICEDEVICE253": "abE2Qe+/P0/7io/F0TVMhG1NLAF3BGsFlH/L9epqHEM"18313
+ },18314
+ "signatures": {18315
+ "@alice_253:hs1": {18316
+ "ed25519:ALICEDEVICE253": "xNoP0gc+3bx2WWnYr/mdBPNGOeYuPlJRrbKdtilo8pW6JpZpo6OcC4+SYZ3UTr611lMOhaQbnOHoKVEOEAzQDw"18317
+ }18318
+ },18319
+ "user_id": "@alice_253:hs1",18320
+ "unsigned": {}18321
+ }18322
+ },18323
+ "@alice_265:hs1": {18324
+ "ALICEDEVICE265": {18325
+ "algorithms": [18326
+ "m.olm.v1.curve25519-aes-sha2",18327
+ "m.megolm.v1.aes-sha2"18328
+ ],18329
+ "device_id": "ALICEDEVICE265",18330
+ "keys": {18331
+ "curve25519:ALICEDEVICE265": "SevVG3P82TW4k1r3wj5RpclG5gUjaWqufwql9sZB2AA",18332
+ "ed25519:ALICEDEVICE265": "K5qIDpqWGDOkuzPabx6q7Wux1fhgb7og/QpBmkAlraU"18333
+ },18334
+ "signatures": {18335
+ "@alice_265:hs1": {18336
+ "ed25519:ALICEDEVICE265": "2YROszpJxv7jHzMVAbot09glwybuQSDNqp2yonfajH/J+UtCD0QNUJY8x7EVlgM7RmwEy6/YL2OY7v0WYPPsCA"18337
+ }18338
+ },18339
+ "user_id": "@alice_265:hs1",18340
+ "unsigned": {}18341
+ }18342
+ },18343
+ "@alice_272:hs1": {18344
+ "ALICEDEVICE272": {18345
+ "algorithms": [18346
+ "m.olm.v1.curve25519-aes-sha2",18347
+ "m.megolm.v1.aes-sha2"18348
+ ],18349
+ "device_id": "ALICEDEVICE272",18350
+ "keys": {18351
+ "curve25519:ALICEDEVICE272": "ef+cmt9nu+QpUGkyGzaSIZX+TjY1ufqIdfFgRVjE7lg",18352
+ "ed25519:ALICEDEVICE272": "GrK8liryMXMhcWwwKhfL3Roeu9TSVeNp9ITpOk7dowE"18353
+ },18354
+ "signatures": {18355
+ "@alice_272:hs1": {18356
+ "ed25519:ALICEDEVICE272": "tZyc43R57KvlCXd/8EFKvY+2YfWBlyTj4vmB48BY33QEsSupayovnyiUvg0vGzb51OANhMhidCg2W9GMOW91CQ"18357
+ }18358
+ },18359
+ "user_id": "@alice_272:hs1",18360
+ "unsigned": {}18361
+ }18362
+ },18363
+ "@alice_279:hs1": {18364
+ "ALICEDEVICE279": {18365
+ "algorithms": [18366
+ "m.olm.v1.curve25519-aes-sha2",18367
+ "m.megolm.v1.aes-sha2"18368
+ ],18369
+ "device_id": "ALICEDEVICE279",18370
+ "keys": {18371
+ "curve25519:ALICEDEVICE279": "fX8zf1mjVK6gurPYgzOTCbZxeeeKHtFoA8p3EtkOlT0",18372
+ "ed25519:ALICEDEVICE279": "YOqhrOTEsr/qzn/H0YzPvpkmMaWDAX13/ZmInmR6mh8"18373
+ },18374
+ "signatures": {18375
+ "@alice_279:hs1": {18376
+ "ed25519:ALICEDEVICE279": "IE7eLticQYoqNGwRrFYA2isnhDVSsV7WFfR64RATxYhNKzmNBBiLJ+POLCNrftXM3IWDovIYP7T9mvbhEUHpAQ"18377
+ }18378
+ },18379
+ "user_id": "@alice_279:hs1",18380
+ "unsigned": {}18381
+ }18382
+ },18383
+ "@alice_281:hs1": {18384
+ "ALICEDEVICE281": {18385
+ "algorithms": [18386
+ "m.olm.v1.curve25519-aes-sha2",18387
+ "m.megolm.v1.aes-sha2"18388
+ ],18389
+ "device_id": "ALICEDEVICE281",18390
+ "keys": {18391
+ "curve25519:ALICEDEVICE281": "dggH2Gb47E2aGk/nb4Bn8N3zDpPsAQAjjZ+fxw3OVTQ",18392
+ "ed25519:ALICEDEVICE281": "GJXaVgOKKPBY6DsSgyGRrkwIoe1TOi62DMBApFPO97Q"18393
+ },18394
+ "signatures": {18395
+ "@alice_281:hs1": {18396
+ "ed25519:ALICEDEVICE281": "/V2wFn3MGEFa4fZJTOZWvf69SfaJ9AVxUclYo2ixb2BgaEgPGA0CE9doIeKqs4IFPDznb8B5vneR+WZEWc5VAA"18397
+ }18398
+ },18399
+ "user_id": "@alice_281:hs1",18400
+ "unsigned": {}18401
+ }18402
+ },18403
+ "@alice_315:hs1": {18404
+ "ALICEDEVICE315": {18405
+ "algorithms": [18406
+ "m.olm.v1.curve25519-aes-sha2",18407
+ "m.megolm.v1.aes-sha2"18408
+ ],18409
+ "device_id": "ALICEDEVICE315",18410
+ "keys": {18411
+ "curve25519:ALICEDEVICE315": "6zj43x84Qg0NJ9tiiN9oe9DMh7+7lT/kn28fXfB3BQU",18412
+ "ed25519:ALICEDEVICE315": "rxC21eHFJQuAIKPYmQeD6uTHCgvPQ0z3GhDFLAM5Gwk"18413
+ },18414
+ "signatures": {18415
+ "@alice_315:hs1": {18416
+ "ed25519:ALICEDEVICE315": "J45MzRNrLX9PRNCZY5O4DVZTWeaJS3R9jh5UdqSwm0Ly+oeX85Q8xpc60gqMtF/smM5Vi/MigaAci7gM5J2uBw"18417
+ }18418
+ },18419
+ "user_id": "@alice_315:hs1",18420
+ "unsigned": {}18421
+ }18422
+ },18423
+ "@alice_328:hs1": {18424
+ "ALICEDEVICE328": {18425
+ "algorithms": [18426
+ "m.olm.v1.curve25519-aes-sha2",18427
+ "m.megolm.v1.aes-sha2"18428
+ ],18429
+ "device_id": "ALICEDEVICE328",18430
+ "keys": {18431
+ "curve25519:ALICEDEVICE328": "5fTiWdm/4LUwLIMNu4U9V0xGyaa3R5RklMKz5jfyhww",18432
+ "ed25519:ALICEDEVICE328": "CYYQOl1+/C/kSCLqriIVKvR1wlkVunVMBNpl2GjB4Es"18433
+ },18434
+ "signatures": {18435
+ "@alice_328:hs1": {18436
+ "ed25519:ALICEDEVICE328": "pjgRTWUof2Nq6vPN3w16wOxbtyQEFH0yfpwsB/QL6S23zZDsob7VxsC6E5yqW9R8T8j5Ved+Zm81imoRNvo/Cg"18437
+ }18438
+ },18439
+ "user_id": "@alice_328:hs1",18440
+ "unsigned": {}18441
+ }18442
+ },18443
+ "@alice_341:hs1": {18444
+ "ALICEDEVICE341": {18445
+ "algorithms": [18446
+ "m.olm.v1.curve25519-aes-sha2",18447
+ "m.megolm.v1.aes-sha2"18448
+ ],18449
+ "device_id": "ALICEDEVICE341",18450
+ "keys": {18451
+ "curve25519:ALICEDEVICE341": "4u8wFIfpo1Ls/j+0Cgz+jIxPbPjwtUfeG+XfSYHk2Sk",18452
+ "ed25519:ALICEDEVICE341": "G+jZknL+G2Cjf8tj3+WwwW7nv9hZ7Jq4siUk3m7R+5M"18453
+ },18454
+ "signatures": {18455
+ "@alice_341:hs1": {18456
+ "ed25519:ALICEDEVICE341": "RsqQYPO1lF/vgSe07aqgnkzrcCHckivacCEFPGp9J1cYtwCGBJMevXe4bk+XhsD15Igcwsi2JrnU7H6pVTPxBw"18457
+ }18458
+ },18459
+ "user_id": "@alice_341:hs1",18460
+ "unsigned": {}18461
+ }18462
+ },18463
+ "@alice_363:hs1": {18464
+ "ALICEDEVICE363": {18465
+ "algorithms": [18466
+ "m.olm.v1.curve25519-aes-sha2",18467
+ "m.megolm.v1.aes-sha2"18468
+ ],18469
+ "device_id": "ALICEDEVICE363",18470
+ "keys": {18471
+ "curve25519:ALICEDEVICE363": "ANaoYuTDPr3YZm6+nDuNN618eRm9WJmk/K/nQ/nwP10",18472
+ "ed25519:ALICEDEVICE363": "aqTRTM65WUgqmeTU+PX3fhXX+mdYWGf+RE5WBvdq+wI"18473
+ },18474
+ "signatures": {18475
+ "@alice_363:hs1": {18476
+ "ed25519:ALICEDEVICE363": "zQCy+Fk0EM37WSEVHKD791NbPXhiRKGC52rT7TMuYoKSC8QIVBxnADUDOcAk1EMkQJg/5uFbPuiVeFwWOTuRBw"18477
+ }18478
+ },18479
+ "user_id": "@alice_363:hs1",18480
+ "unsigned": {}18481
+ }18482
+ },18483
+ "@alice_367:hs1": {18484
+ "ALICEDEVICE367": {18485
+ "algorithms": [18486
+ "m.olm.v1.curve25519-aes-sha2",18487
+ "m.megolm.v1.aes-sha2"18488
+ ],18489
+ "device_id": "ALICEDEVICE367",18490
+ "keys": {18491
+ "curve25519:ALICEDEVICE367": "67HdpLFrnJsUnPiFoOM1tSVdMEix2r26nReNn90AhD0",18492
+ "ed25519:ALICEDEVICE367": "Jlzlff2Jsh6fzkO9unR3aI1lfW4OxTu9KV2KUB+lL9s"18493
+ },18494
+ "signatures": {18495
+ "@alice_367:hs1": {18496
+ "ed25519:ALICEDEVICE367": "UZ9cdtNlIFp0fWs7QoYUvCH5FryVzdQvyIfamalqoMVDlzzSYK90lGs+ClScru8g/Qp+GFPdwrhAfin9bFN/Dw"18497
+ }18498
+ },18499
+ "user_id": "@alice_367:hs1",18500
+ "unsigned": {}18501
+ }18502
+ },18503
+ "@alice_373:hs1": {18504
+ "ALICEDEVICE373": {18505
+ "algorithms": [18506
+ "m.olm.v1.curve25519-aes-sha2",18507
+ "m.megolm.v1.aes-sha2"18508
+ ],18509
+ "device_id": "ALICEDEVICE373",18510
+ "keys": {18511
+ "curve25519:ALICEDEVICE373": "Kh/yLv69ke2VZje3sV/c5XF9rmfgF/M6uHbKtfITCzA",18512
+ "ed25519:ALICEDEVICE373": "rLMVGgmvhSU73GIJbdWEN3UxETocvRwPcfk/F+S95Us"18513
+ },18514
+ "signatures": {18515
+ "@alice_373:hs1": {18516
+ "ed25519:ALICEDEVICE373": "vT5iXdKSHJOEWEBKBb8G/voMbv9RKrUj0hE7ovW+gSGt8h5OTQ1v59+gPwD0NwD9OIgBXXh2fBjR9WnRhqgRBA"18517
+ }18518
+ },18519
+ "user_id": "@alice_373:hs1",18520
+ "unsigned": {}18521
+ }18522
+ },18523
+ "@alice_384:hs1": {18524
+ "ALICEDEVICE384": {18525
+ "algorithms": [18526
+ "m.olm.v1.curve25519-aes-sha2",18527
+ "m.megolm.v1.aes-sha2"18528
+ ],18529
+ "device_id": "ALICEDEVICE384",18530
+ "keys": {18531
+ "curve25519:ALICEDEVICE384": "sYKeTxke778Iowz5qKggs1xKBSZvuKC09UpRMkfUp10",18532
+ "ed25519:ALICEDEVICE384": "/Ag9VKZuRq071s68WvhkBgHUN+rbzpOHVBqH7upeAHk"18533
+ },18534
+ "signatures": {18535
+ "@alice_384:hs1": {18536
+ "ed25519:ALICEDEVICE384": "eEOmce0f8t1CrJs1AtA65up0cD8IpO0h7r3lHK1zdZIazJHNHG+mwiGiC4M5+li8WwELT3ntADHMNunnixDwDw"18537
+ }18538
+ },18539
+ "user_id": "@alice_384:hs1",18540
+ "unsigned": {}18541
+ }18542
+ },18543
+ "@alice_391:hs1": {18544
+ "ALICEDEVICE391": {18545
+ "algorithms": [18546
+ "m.olm.v1.curve25519-aes-sha2",18547
+ "m.megolm.v1.aes-sha2"18548
+ ],18549
+ "device_id": "ALICEDEVICE391",18550
+ "keys": {18551
+ "curve25519:ALICEDEVICE391": "0FcRmdnbwmj+J+QlAjWHcrOjo++I/kqrWNAIPuEuRWk",18552
+ "ed25519:ALICEDEVICE391": "mc+twaKgnAwdVI1yQg5gJyFCiKgCcYND2Vu1+yhd2G4"18553
+ },18554
+ "signatures": {18555
+ "@alice_391:hs1": {18556
+ "ed25519:ALICEDEVICE391": "lBAp+rYLZukXizRM7rlwHiQbOhEJFHjOir1YxOv7G/iQXeWZ1ZgqpI3boPmuLkGllMaDW2WTsal7w11ZMcgOBg"18557
+ }18558
+ },18559
+ "user_id": "@alice_391:hs1",18560
+ "unsigned": {}18561
+ }18562
+ },18563
+ "@alice_394:hs1": {18564
+ "ALICEDEVICE394": {18565
+ "algorithms": [18566
+ "m.olm.v1.curve25519-aes-sha2",18567
+ "m.megolm.v1.aes-sha2"18568
+ ],18569
+ "device_id": "ALICEDEVICE394",18570
+ "keys": {18571
+ "curve25519:ALICEDEVICE394": "WNn1H3IbHeouwqPTMtiSnRhBlml+1JFB5qvSZpqEmGc",18572
+ "ed25519:ALICEDEVICE394": "21DYpCJNE2gp1PAuuhoIObvt9mfEQJADcSBh4Pne8J8"18573
+ },18574
+ "signatures": {18575
+ "@alice_394:hs1": {18576
+ "ed25519:ALICEDEVICE394": "BKbiLfA0DEFIN4LUyYxhifEDwqc2163mZiNrimZAZm6KX1gXC29KdkRemvPyy6c1Se0zShIsbnNq0/f+gN3RCQ"18577
+ }18578
+ },18579
+ "user_id": "@alice_394:hs1",18580
+ "unsigned": {}18581
+ }18582
+ },18583
+ "@alice_395:hs1": {18584
+ "ALICEDEVICE395": {18585
+ "algorithms": [18586
+ "m.olm.v1.curve25519-aes-sha2",18587
+ "m.megolm.v1.aes-sha2"18588
+ ],18589
+ "device_id": "ALICEDEVICE395",18590
+ "keys": {18591
+ "curve25519:ALICEDEVICE395": "KLPN35LmFdktUJLZM2ywvNdyoJqBqZD25NAsqgRZVCc",18592
+ "ed25519:ALICEDEVICE395": "r6eyLvzxS1bLzzzizdDKUzFmfyUNvTS+H+SJvmLsLo0"18593
+ },18594
+ "signatures": {18595
+ "@alice_395:hs1": {18596
+ "ed25519:ALICEDEVICE395": "Ftdamd9Tf4IGvV1LvKW/rYq9jsRX3VtXCnvBX9HYn4nBUzLUSmlJD8fS6aZVgayMhtERo5TQZAlnS6sZTwcuCA"18597
+ }18598
+ },18599
+ "user_id": "@alice_395:hs1",18600
+ "unsigned": {}18601
+ }18602
+ },18603
+ "@alice_402:hs1": {18604
+ "ALICEDEVICE402": {18605
+ "algorithms": [18606
+ "m.olm.v1.curve25519-aes-sha2",18607
+ "m.megolm.v1.aes-sha2"18608
+ ],18609
+ "device_id": "ALICEDEVICE402",18610
+ "keys": {18611
+ "curve25519:ALICEDEVICE402": "dQllvJD6MoRGMLHANw0pDlnLu0xb7MqOAB2u2zw5/F0",18612
+ "ed25519:ALICEDEVICE402": "jfzD5b3p4L2SiprcaEPKap/gx1UCRdcWHWZ4YuZ6IY0"18613
+ },18614
+ "signatures": {18615
+ "@alice_402:hs1": {18616
+ "ed25519:ALICEDEVICE402": "cnzE5ZZqOFC3rQimsy9B+zurfyJ3EwE0FyGLfgOBa38uydQiIHbu+tf0TE24wnVobq2Xq1+jekdMpCcV1cwiBg"18617
+ }18618
+ },18619
+ "user_id": "@alice_402:hs1",18620
+ "unsigned": {}18621
+ }18622
+ },18623
+ "@alice_411:hs1": {18624
+ "ALICEDEVICE411": {18625
+ "algorithms": [18626
+ "m.olm.v1.curve25519-aes-sha2",18627
+ "m.megolm.v1.aes-sha2"18628
+ ],18629
+ "device_id": "ALICEDEVICE411",18630
+ "keys": {18631
+ "curve25519:ALICEDEVICE411": "05rTmHvtuWSwgsoz3aM7giTC/R2aT1PsEf9d17+a1Ck",18632
+ "ed25519:ALICEDEVICE411": "8vLLJYN3EYufj+zCqFhPWzqbFS561Lcl0nvsKVKUHa8"18633
+ },18634
+ "signatures": {18635
+ "@alice_411:hs1": {18636
+ "ed25519:ALICEDEVICE411": "rFyu+3sM5EGFry1RODZ7axzaQAhaDvFQ1anpX8E5h8lKmkkB8UlQ7ORPQLplSNHNW1/yU+dfXJa/meq9nUCQAw"18637
+ }18638
+ },18639
+ "user_id": "@alice_411:hs1",18640
+ "unsigned": {}18641
+ }18642
+ },18643
+ "@alice_417:hs1": {18644
+ "ALICEDEVICE417": {18645
+ "algorithms": [18646
+ "m.olm.v1.curve25519-aes-sha2",18647
+ "m.megolm.v1.aes-sha2"18648
+ ],18649
+ "device_id": "ALICEDEVICE417",18650
+ "keys": {18651
+ "curve25519:ALICEDEVICE417": "BGDO4RYnE6el3tYvOSt2taem7M4C3Yya+m//V3PY5W0",18652
+ "ed25519:ALICEDEVICE417": "pT8iEgrJONsuaTX5sVyaRIMWHFxg/2HwvZJd13zYNiE"18653
+ },18654
+ "signatures": {18655
+ "@alice_417:hs1": {18656
+ "ed25519:ALICEDEVICE417": "etmJ9Xw+y+yFSVzEUYQfZ5+42bAHU2iybKofF3XFpscDF6NRa1U0zgqUCFWB4zAXvFU9brvgaSwoMwVXsE7tBg"18657
+ }18658
+ },18659
+ "user_id": "@alice_417:hs1",18660
+ "unsigned": {}18661
+ }18662
+ },18663
+ "@alice_421:hs1": {18664
+ "ALICEDEVICE421": {18665
+ "algorithms": [18666
+ "m.olm.v1.curve25519-aes-sha2",18667
+ "m.megolm.v1.aes-sha2"18668
+ ],18669
+ "device_id": "ALICEDEVICE421",18670
+ "keys": {18671
+ "curve25519:ALICEDEVICE421": "4YJoBS+Ixi8hkVETq7OUhrWLhc/hkWIQ/VKvXkyBOFs",18672
+ "ed25519:ALICEDEVICE421": "l1OC/62bke9kNBcW5mA3madYftn5Fk/h3Ei6Ka7+Q/w"18673
+ },18674
+ "signatures": {18675
+ "@alice_421:hs1": {18676
+ "ed25519:ALICEDEVICE421": "YxHZeDgHC3LJEnE5h/ePazGZ9xgmX/oTYikHTHPIH4FNGl9t4w906WeCsSGwxI9AKignvHZqpc9W5NNhKMHdBw"18677
+ }18678
+ },18679
+ "user_id": "@alice_421:hs1",18680
+ "unsigned": {}18681
+ }18682
+ },18683
+ "@alice_440:hs1": {18684
+ "ALICEDEVICE440": {18685
+ "algorithms": [18686
+ "m.olm.v1.curve25519-aes-sha2",18687
+ "m.megolm.v1.aes-sha2"18688
+ ],18689
+ "device_id": "ALICEDEVICE440",18690
+ "keys": {18691
+ "curve25519:ALICEDEVICE440": "6HIRDGP3EXrpVri1ZF4SOLlO5dcbyiPp0kC4YAr/QE4",18692
+ "ed25519:ALICEDEVICE440": "pwypWp0FHkVnlkgqsGKoLgHG+E1f+X/6bl4WNkTpFiQ"18693
+ },18694
+ "signatures": {18695
+ "@alice_440:hs1": {18696
+ "ed25519:ALICEDEVICE440": "SzYlXAm/RZh5rJi9wuRzQo5xf/soF0uqMcrnNMdFYIrocaxScBvOvclN5Sg1e+697AbvhLuxpm0eZbhKNlZ9Cw"18697
+ }18698
+ },18699
+ "user_id": "@alice_440:hs1",18700
+ "unsigned": {}18701
+ }18702
+ },18703
+ "@alice_449:hs1": {18704
+ "ALICEDEVICE449": {18705
+ "algorithms": [18706
+ "m.olm.v1.curve25519-aes-sha2",18707
+ "m.megolm.v1.aes-sha2"18708
+ ],18709
+ "device_id": "ALICEDEVICE449",18710
+ "keys": {18711
+ "curve25519:ALICEDEVICE449": "9qwG8gPbwrzy3lw3jVsP5eQ+7mHhPh/cUt4PuGEUqyE",18712
+ "ed25519:ALICEDEVICE449": "4If+fIzkiD1YJtZcSy4mb8F+qBC+uLRnKKK5UMghYpE"18713
+ },18714
+ "signatures": {18715
+ "@alice_449:hs1": {18716
+ "ed25519:ALICEDEVICE449": "0n1e49tVZhxEd1RSq8tOjUsDgHog1L6+8MWf2dBFjFMN+xWoDPeWDLXM8ukBD37SqEoAfWdOq4BoF4d2ffzVBQ"18717
+ }18718
+ },18719
+ "user_id": "@alice_449:hs1",18720
+ "unsigned": {}18721
+ }18722
+ },18723
+ "@alice_456:hs1": {18724
+ "ALICEDEVICE456": {18725
+ "algorithms": [18726
+ "m.olm.v1.curve25519-aes-sha2",18727
+ "m.megolm.v1.aes-sha2"18728
+ ],18729
+ "device_id": "ALICEDEVICE456",18730
+ "keys": {18731
+ "curve25519:ALICEDEVICE456": "0lfH9na4bpubo+5GaGYwO3i2j99BWRaDr6pOmuy3/QI",18732
+ "ed25519:ALICEDEVICE456": "zKIdVP7yTkoH/cXh1og/hK8zYSG0DVAhzdGwiwePy1k"18733
+ },18734
+ "signatures": {18735
+ "@alice_456:hs1": {18736
+ "ed25519:ALICEDEVICE456": "UGkBYob3dgMoqg9cNg/Ok9iLfWVFhq8r9MVP0NSql/8FcNO9h8iWb2BxcgKbIZ33zP+ZAy8BGTdWMlOjB9SBCQ"18737
+ }18738
+ },18739
+ "user_id": "@alice_456:hs1",18740
+ "unsigned": {}18741
+ }18742
+ },18743
+ "@alice_476:hs1": {18744
+ "ALICEDEVICE476": {18745
+ "algorithms": [18746
+ "m.olm.v1.curve25519-aes-sha2",18747
+ "m.megolm.v1.aes-sha2"18748
+ ],18749
+ "device_id": "ALICEDEVICE476",18750
+ "keys": {18751
+ "curve25519:ALICEDEVICE476": "iIcOV/e8jixq2aS7GrvrUKk3k7qg51nfshk0Cw8jhFw",18752
+ "ed25519:ALICEDEVICE476": "F+FicFc0qjsouvDL8ThRaXQu+R0T2Ws7NixMOxnGzgM"18753
+ },18754
+ "signatures": {18755
+ "@alice_476:hs1": {18756
+ "ed25519:ALICEDEVICE476": "m94nZctzIpZvY5JSDYFD7famHmsVLVli+VfN655ZqcxISR/G3xdbJFMCJ/QQOSn6ukIhah2FEB4WRZ/WE0EvBg"18757
+ }18758
+ },18759
+ "user_id": "@alice_476:hs1",18760
+ "unsigned": {}18761
+ }18762
+ },18763
+ "@alice_478:hs1": {18764
+ "ALICEDEVICE478": {18765
+ "algorithms": [18766
+ "m.olm.v1.curve25519-aes-sha2",18767
+ "m.megolm.v1.aes-sha2"18768
+ ],18769
+ "device_id": "ALICEDEVICE478",18770
+ "keys": {18771
+ "curve25519:ALICEDEVICE478": "QbFTIQzbWe93M7her+22IZhdkYR3RWCZUOEHPbWU0mQ",18772
+ "ed25519:ALICEDEVICE478": "pD9vvXqCbnvk2uX1SvpDts+zzkGAPyG5dqAzQkAPszI"18773
+ },18774
+ "signatures": {18775
+ "@alice_478:hs1": {18776
+ "ed25519:ALICEDEVICE478": "oJ+d/QYMKkXvkRcCPC3IzRYo7WDei+TvoA31k+8wS2g/T0+UcmniWUJubLRjNHnMyOyuUC9NuFY2BlE/JF+pAg"18777
+ }18778
+ },18779
+ "user_id": "@alice_478:hs1",18780
+ "unsigned": {}18781
+ }18782
+ },18783
+ "@alice_490:hs1": {18784
+ "ALICEDEVICE490": {18785
+ "algorithms": [18786
+ "m.olm.v1.curve25519-aes-sha2",18787
+ "m.megolm.v1.aes-sha2"18788
+ ],18789
+ "device_id": "ALICEDEVICE490",18790
+ "keys": {18791
+ "curve25519:ALICEDEVICE490": "o7jd0WHIJvV9n1ZC0JexnERFSOxGJc4Esg75FWeZWSc",18792
+ "ed25519:ALICEDEVICE490": "XPgd7yrgC/Ro/Ndbbybo+LdRRoJ0ZiEKR0FnCie8dSo"18793
+ },18794
+ "signatures": {18795
+ "@alice_490:hs1": {18796
+ "ed25519:ALICEDEVICE490": "aq1OtRmoF0+ehV+QOLs7Oc2Q+tGkoTep4hjEo4oWcwyI5PQeIMdCvzQwbsUS0BUT7BAUMzRKbVuAw8QOuhkeBA"18797
+ }18798
+ },18799
+ "user_id": "@alice_490:hs1",18800
+ "unsigned": {}18801
+ }18802
+ },18803
+ "@alice_4:hs1": {18804
+ "ALICEDEVICE4": {18805
+ "algorithms": [18806
+ "m.olm.v1.curve25519-aes-sha2",18807
+ "m.megolm.v1.aes-sha2"18808
+ ],18809
+ "device_id": "ALICEDEVICE4",18810
+ "keys": {18811
+ "curve25519:ALICEDEVICE4": "iDg0ocLBSX6+mpUnRl9TfVnDjdpJc+E15SALuY3cUB0",18812
+ "ed25519:ALICEDEVICE4": "UPM9nHD6jmsq5Rk6K9w51YaGU2Y2JePUwcTQHvXELlM"18813
+ },18814
+ "signatures": {18815
+ "@alice_4:hs1": {18816
+ "ed25519:ALICEDEVICE4": "hcWF5KSZzj/wvHLtqw+5ntbC3r5uGtwlCKT3wKdsrkjDL/6qbapJXl1fBVVpBnrZW/REi4Qqbl+2PbgXwZEQDw"18817
+ }18818
+ },18819
+ "user_id": "@alice_4:hs1",18820
+ "unsigned": {}18821
+ }18822
+ },18823
+ "@alice_503:hs1": {18824
+ "ALICEDEVICE503": {18825
+ "algorithms": [18826
+ "m.olm.v1.curve25519-aes-sha2",18827
+ "m.megolm.v1.aes-sha2"18828
+ ],18829
+ "device_id": "ALICEDEVICE503",18830
+ "keys": {18831
+ "curve25519:ALICEDEVICE503": "pqgyqfydHGeJamzoywjUH+7POxP3lULi7YQRS5r/WyM",18832
+ "ed25519:ALICEDEVICE503": "hnp2aBqM9KL1QQ1jk/PWzHPb8moGPlO2LuZ+h44nkQg"18833
+ },18834
+ "signatures": {18835
+ "@alice_503:hs1": {18836
+ "ed25519:ALICEDEVICE503": "jypK7fJxnHpxeWkLMzJnutkbmoDwaqKE0vs8XBrjfQ+nnK35UvDg691vAkRRl+Qd0YC7Y819zvc3fuYLn0pzAg"18837
+ }18838
+ },18839
+ "user_id": "@alice_503:hs1",18840
+ "unsigned": {}18841
+ }18842
+ },18843
+ "@alice_504:hs1": {18844
+ "ALICEDEVICE504": {18845
+ "algorithms": [18846
+ "m.olm.v1.curve25519-aes-sha2",18847
+ "m.megolm.v1.aes-sha2"18848
+ ],18849
+ "device_id": "ALICEDEVICE504",18850
+ "keys": {18851
+ "curve25519:ALICEDEVICE504": "8UEvqXaJtNsXG55RFVxkZ8tmsqvYJzpTv5ZXEGjtLFQ",18852
+ "ed25519:ALICEDEVICE504": "xK1vhODzCiJ160O4i/Rvpt4kL8cjvFb1S4wmrxUWZcY"18853
+ },18854
+ "signatures": {18855
+ "@alice_504:hs1": {18856
+ "ed25519:ALICEDEVICE504": "TdtYzh2UqS4X6ADGYmiYYjAJSVZkakUS88fzVC/VchTNSyeYE84WLn47v/dUe8OuEmlx0gOL0pVG7l85a7PFAA"18857
+ }18858
+ },18859
+ "user_id": "@alice_504:hs1",18860
+ "unsigned": {}18861
+ }18862
+ },18863
+ "@alice_506:hs1": {18864
+ "ALICEDEVICE506": {18865
+ "algorithms": [18866
+ "m.olm.v1.curve25519-aes-sha2",18867
+ "m.megolm.v1.aes-sha2"18868
+ ],18869
+ "device_id": "ALICEDEVICE506",18870
+ "keys": {18871
+ "curve25519:ALICEDEVICE506": "vYF//pxXpYnQgKrHjLR+KpW0QiGPUOmRYqzPXt4g+js",18872
+ "ed25519:ALICEDEVICE506": "tPuYqcTi3JBeFB0wV3W3etgZrdZRrGlcaAvcn7+1aQc"18873
+ },18874
+ "signatures": {18875
+ "@alice_506:hs1": {18876
+ "ed25519:ALICEDEVICE506": "ELjO/i3K38SD2TToxmrab8kejSmpCDjsg4LiBkG2ftZi/pwCg78+LMQfUd0Y5TaHFit9EF3kJsHstviBXGCnBA"18877
+ }18878
+ },18879
+ "user_id": "@alice_506:hs1",18880
+ "unsigned": {}18881
+ }18882
+ },18883
+ "@alice_519:hs1": {18884
+ "ALICEDEVICE519": {18885
+ "algorithms": [18886
+ "m.olm.v1.curve25519-aes-sha2",18887
+ "m.megolm.v1.aes-sha2"18888
+ ],18889
+ "device_id": "ALICEDEVICE519",18890
+ "keys": {18891
+ "curve25519:ALICEDEVICE519": "m4tohdhsp3r7uQGZune4cgYg6Wri1LGj6/5IYM+m+SU",18892
+ "ed25519:ALICEDEVICE519": "KroMsAvJDld0ddzKmcxzZh32nDcI64K/XEAhhf4Qq3M"18893
+ },18894
+ "signatures": {18895
+ "@alice_519:hs1": {18896
+ "ed25519:ALICEDEVICE519": "GAfY3HA8qIJbhUqMiIDXc4qJdukYO5rYoN7QpekPu/r95zQt3q92P5+zXqt2c+WUiB/0H+mC9q12w5YgA1iaCQ"18897
+ }18898
+ },18899
+ "user_id": "@alice_519:hs1",18900
+ "unsigned": {}18901
+ }18902
+ },18903
+ "@alice_523:hs1": {18904
+ "ALICEDEVICE523": {18905
+ "algorithms": [18906
+ "m.olm.v1.curve25519-aes-sha2",18907
+ "m.megolm.v1.aes-sha2"18908
+ ],18909
+ "device_id": "ALICEDEVICE523",18910
+ "keys": {18911
+ "curve25519:ALICEDEVICE523": "cz28ZrF6npOJwzQ9+vmLMc/wHjmu4psQB2mG8aUvBQE",18912
+ "ed25519:ALICEDEVICE523": "oeIrNeXpiJ1SsjTEawpNhTLVQGc053np1Iaa26nAHLk"18913
+ },18914
+ "signatures": {18915
+ "@alice_523:hs1": {18916
+ "ed25519:ALICEDEVICE523": "aQL8Xfjn/rlkQ9gyo18kgL3HMLjj74e+Ic+l0H5B2vYrmHgvxlr31GaYKXG7kbo8NMdLO/HTYc0cCzuPCDFiDg"18917
+ }18918
+ },18919
+ "user_id": "@alice_523:hs1",18920
+ "unsigned": {}18921
+ }18922
+ },18923
+ "@alice_524:hs1": {18924
+ "ALICEDEVICE524": {18925
+ "algorithms": [18926
+ "m.olm.v1.curve25519-aes-sha2",18927
+ "m.megolm.v1.aes-sha2"18928
+ ],18929
+ "device_id": "ALICEDEVICE524",18930
+ "keys": {18931
+ "curve25519:ALICEDEVICE524": "FAlJJjeLnguDomFoDBIB8wBGjqvUSrs+gnVuzUYG7jk",18932
+ "ed25519:ALICEDEVICE524": "T9l7jLM2g230GM4iL65qOLctWrqWVvf2s5zSP80QJkY"18933
+ },18934
+ "signatures": {18935
+ "@alice_524:hs1": {18936
+ "ed25519:ALICEDEVICE524": "GMmoIaUOIGIkhuuxCAJ1yeucyINF9bqqSenqMFK8320gNduQm17wb9nGRYTFsRInIs+bzH7GVg9QjKmAYAguAQ"18937
+ }18938
+ },18939
+ "user_id": "@alice_524:hs1",18940
+ "unsigned": {}18941
+ }18942
+ },18943
+ "@alice_527:hs1": {18944
+ "ALICEDEVICE527": {18945
+ "algorithms": [18946
+ "m.olm.v1.curve25519-aes-sha2",18947
+ "m.megolm.v1.aes-sha2"18948
+ ],18949
+ "device_id": "ALICEDEVICE527",18950
+ "keys": {18951
+ "curve25519:ALICEDEVICE527": "cBKvrblEWQaSTQ5/56pV78fZzUTuQ919C6fYPIG0RlI",18952
+ "ed25519:ALICEDEVICE527": "Ka4b/ZFfyAM/2VAj/ImxQ/uE9+NwOqK7am8WUCN4bCo"18953
+ },18954
+ "signatures": {18955
+ "@alice_527:hs1": {18956
+ "ed25519:ALICEDEVICE527": "hrH4VwIrWDO6BXJ9kuSuhaX69GWQ2Qjj5uml+kBf3gvZndj5/fk83r+BFCRKQpMBr4GQuUzNq1DPgC2wVuk8Bw"18957
+ }18958
+ },18959
+ "user_id": "@alice_527:hs1",18960
+ "unsigned": {}18961
+ }18962
+ },18963
+ "@alice_541:hs1": {18964
+ "ALICEDEVICE541": {18965
+ "algorithms": [18966
+ "m.olm.v1.curve25519-aes-sha2",18967
+ "m.megolm.v1.aes-sha2"18968
+ ],18969
+ "device_id": "ALICEDEVICE541",18970
+ "keys": {18971
+ "curve25519:ALICEDEVICE541": "2wfcX8QhA1XjHXPTFTlA3SZxBNRtv1aEdxOvuqiE4BI",18972
+ "ed25519:ALICEDEVICE541": "GU08LRt5khfGltSQ0sJ3z+UKwgyhhqdfl3Z06ptefxY"18973
+ },18974
+ "signatures": {18975
+ "@alice_541:hs1": {18976
+ "ed25519:ALICEDEVICE541": "VM8GVLR1HyBEnSlzkucXXKzVr6vTnzJTKgiVSttmtptnUMwKIGVGJ0XNRDBebzFG1azOd/Z+mqVMtJU3Yk1tCA"18977
+ }18978
+ },18979
+ "user_id": "@alice_541:hs1",18980
+ "unsigned": {}18981
+ }18982
+ },18983
+ "@alice_545:hs1": {18984
+ "ALICEDEVICE545": {18985
+ "algorithms": [18986
+ "m.olm.v1.curve25519-aes-sha2",18987
+ "m.megolm.v1.aes-sha2"18988
+ ],18989
+ "device_id": "ALICEDEVICE545",18990
+ "keys": {18991
+ "curve25519:ALICEDEVICE545": "N5Dz+ueMbRXiayZ8pg372Spn1VHWiF+wg4NjbtM27Dc",18992
+ "ed25519:ALICEDEVICE545": "CKS++BtVQ1Q2OO/vxyQEH9N1VnmcK+oNxig2NBMa5og"18993
+ },18994
+ "signatures": {18995
+ "@alice_545:hs1": {18996
+ "ed25519:ALICEDEVICE545": "3bjiE+OUMRTAGvQRHcHYjX3vnRKJXHm7Eub7trgY0hfLT1G2yPtij/BXckKrJKT7Sljn507JqU1upg9qES7NCg"18997
+ }18998
+ },18999
+ "user_id": "@alice_545:hs1",19000
+ "unsigned": {}19001
+ }19002
+ },19003
+ "@alice_546:hs1": {19004
+ "ALICEDEVICE546": {19005
+ "algorithms": [19006
+ "m.olm.v1.curve25519-aes-sha2",19007
+ "m.megolm.v1.aes-sha2"19008
+ ],19009
+ "device_id": "ALICEDEVICE546",19010
+ "keys": {19011
+ "curve25519:ALICEDEVICE546": "+BmObApw37cruXI4JB+DE/Qh92F2iCRs5Y6i5y75hws",19012
+ "ed25519:ALICEDEVICE546": "vkkFyyOOgZZcG+oRVykQb75W5HTdRZQyvplt2jcAJFo"19013
+ },19014
+ "signatures": {19015
+ "@alice_546:hs1": {19016
+ "ed25519:ALICEDEVICE546": "g3GXun1vN/YCeSl8h/7Knd2Qtnr6wbU61eRDO9A5wUqymguwlvV6pFOfCtd3duHSSx7BeZ+M6M8l+cAgF4qTDg"19017
+ }19018
+ },19019
+ "user_id": "@alice_546:hs1",19020
+ "unsigned": {}19021
+ }19022
+ },19023
+ "@alice_550:hs1": {19024
+ "ALICEDEVICE550": {19025
+ "algorithms": [19026
+ "m.olm.v1.curve25519-aes-sha2",19027
+ "m.megolm.v1.aes-sha2"19028
+ ],19029
+ "device_id": "ALICEDEVICE550",19030
+ "keys": {19031
+ "curve25519:ALICEDEVICE550": "/Jhhal6Kc8Me4D6I1YjUA4bwfwHlYD+BUescKTGV1WI",19032
+ "ed25519:ALICEDEVICE550": "Tt+7hX0kg8WUUATQIuDd16aR2mC8sLw5a9XvGYaplNM"19033
+ },19034
+ "signatures": {19035
+ "@alice_550:hs1": {19036
+ "ed25519:ALICEDEVICE550": "xKpcv55EgmdoBjh1elHRBdt5tqnTO6oCUtv/o7kXSDWJMXFvBhVrrhbZMoORfxl3Svf1FFWWI5g9kkz0bA1WAQ"19037
+ }19038
+ },19039
+ "user_id": "@alice_550:hs1",19040
+ "unsigned": {}19041
+ }19042
+ },19043
+ "@alice_561:hs1": {19044
+ "ALICEDEVICE561": {19045
+ "algorithms": [19046
+ "m.olm.v1.curve25519-aes-sha2",19047
+ "m.megolm.v1.aes-sha2"19048
+ ],19049
+ "device_id": "ALICEDEVICE561",19050
+ "keys": {19051
+ "curve25519:ALICEDEVICE561": "5TwjE6TklDUHUvSSrmxTeL1weWfUWo0DYotMT4rxvEw",19052
+ "ed25519:ALICEDEVICE561": "Co0gN0x8Cw1exo4yfhlK7aMCnq6h/0okCkqHonsO46E"19053
+ },19054
+ "signatures": {19055
+ "@alice_561:hs1": {19056
+ "ed25519:ALICEDEVICE561": "+8hY2Aqv0gmWyBoqxfWnyhD3xPEoloPCFCNh2AL8xdlbWkni4UXIFZi1/uxxaWG+m2HRP5Rgg4ya6KPCUgzCCQ"19057
+ }19058
+ },19059
+ "user_id": "@alice_561:hs1",19060
+ "unsigned": {}19061
+ }19062
+ },19063
+ "@alice_563:hs1": {19064
+ "ALICEDEVICE563": {19065
+ "algorithms": [19066
+ "m.olm.v1.curve25519-aes-sha2",19067
+ "m.megolm.v1.aes-sha2"19068
+ ],19069
+ "device_id": "ALICEDEVICE563",19070
+ "keys": {19071
+ "curve25519:ALICEDEVICE563": "xhh5NUnDUWm68NUOPwpmuYW+MHYWsqVazATzb690BE0",19072
+ "ed25519:ALICEDEVICE563": "E82YGiDM+WPMateB4fygE1jID+pKxozKLJTfl7iLhJs"19073
+ },19074
+ "signatures": {19075
+ "@alice_563:hs1": {19076
+ "ed25519:ALICEDEVICE563": "3HjDQOB7w2EvjSP9IEGmErS1Nw4YK/4WbbYf4mLd/RiVMbcWvPqcXlYUBQzkpdGHh4ZJDOY5lFeSFmqQKaqbBg"19077
+ }19078
+ },19079
+ "user_id": "@alice_563:hs1",19080
+ "unsigned": {}19081
+ }19082
+ },19083
+ "@alice_564:hs1": {19084
+ "ALICEDEVICE564": {19085
+ "algorithms": [19086
+ "m.olm.v1.curve25519-aes-sha2",19087
+ "m.megolm.v1.aes-sha2"19088
+ ],19089
+ "device_id": "ALICEDEVICE564",19090
+ "keys": {19091
+ "curve25519:ALICEDEVICE564": "g7mmqnxc/7N4fSm4/RiN0p9cg+TegC5Vr+nLhr+pFj0",19092
+ "ed25519:ALICEDEVICE564": "2zc7h9OkvfnTiX2dwUl55dzqfSSQOiFIcTz46LG3tlg"19093
+ },19094
+ "signatures": {19095
+ "@alice_564:hs1": {19096
+ "ed25519:ALICEDEVICE564": "eiT9kJZq/Vp+a30XvKfvUHRbjKM33hq+OjC0EYQXArSyV4iDXpOVybYCvz7+7mw8i8jkA0GlcLn85sMYY95nAg"19097
+ }19098
+ },19099
+ "user_id": "@alice_564:hs1",19100
+ "unsigned": {}19101
+ }19102
+ },19103
+ "@alice_575:hs1": {19104
+ "ALICEDEVICE575": {19105
+ "algorithms": [19106
+ "m.olm.v1.curve25519-aes-sha2",19107
+ "m.megolm.v1.aes-sha2"19108
+ ],19109
+ "device_id": "ALICEDEVICE575",19110
+ "keys": {19111
+ "curve25519:ALICEDEVICE575": "2k+2QFHY6XJVRUN3+lqC3nbiVo6ywyvNN1fdroYOYww",19112
+ "ed25519:ALICEDEVICE575": "4NlUSsdChXep4gcsz9pWesFqVK6A5tBPqFsBnu1GMJI"19113
+ },19114
+ "signatures": {19115
+ "@alice_575:hs1": {19116
+ "ed25519:ALICEDEVICE575": "vnj2RYjigeibbehOFlfzsCWgNW9lnXzllxIbjTAELr9z/Nc/muHNLy+OTFJVhHi64ecbKSkWi3xxgy1zvTcMBQ"19117
+ }19118
+ },19119
+ "user_id": "@alice_575:hs1",19120
+ "unsigned": {}19121
+ }19122
+ },19123
+ "@alice_577:hs1": {19124
+ "ALICEDEVICE577": {19125
+ "algorithms": [19126
+ "m.olm.v1.curve25519-aes-sha2",19127
+ "m.megolm.v1.aes-sha2"19128
+ ],19129
+ "device_id": "ALICEDEVICE577",19130
+ "keys": {19131
+ "curve25519:ALICEDEVICE577": "6yvqCFtl9Uenl8ziQOIl45fMxuvNc2RODFPAdIkFPTw",19132
+ "ed25519:ALICEDEVICE577": "w5aJBah8GJDP39JvTL/vd/NOSdyr6ZCYFTQqT6KPfRs"19133
+ },19134
+ "signatures": {19135
+ "@alice_577:hs1": {19136
+ "ed25519:ALICEDEVICE577": "+wEiq8n/4k7mZ1rb62eadzlIfcB3fnM5cebOeqk71XffVDNKU6bxx16RUmt1dnJ6waGzHoY1SRDW6m+n8BxDCQ"19137
+ }19138
+ },19139
+ "user_id": "@alice_577:hs1",19140
+ "unsigned": {}19141
+ }19142
+ },19143
+ "@alice_578:hs1": {19144
+ "ALICEDEVICE578": {19145
+ "algorithms": [19146
+ "m.olm.v1.curve25519-aes-sha2",19147
+ "m.megolm.v1.aes-sha2"19148
+ ],19149
+ "device_id": "ALICEDEVICE578",19150
+ "keys": {19151
+ "curve25519:ALICEDEVICE578": "66BnsOmTB6v88nlkyCKHG6/Js1K4OlsJ2OltDw/x0kA",19152
+ "ed25519:ALICEDEVICE578": "4K7ViwXRoHby5JvZY4bZjKtZmw6esZeXpwh8serFBfU"19153
+ },19154
+ "signatures": {19155
+ "@alice_578:hs1": {19156
+ "ed25519:ALICEDEVICE578": "70XZ5+jrO75BRiB8b8cNbd+bMr0QCQDcTqB5P5UB+43LrLWIzLxJd5CA/auQqLj9OJmYrfv+xfgYm1P1KCEkAg"19157
+ }19158
+ },19159
+ "user_id": "@alice_578:hs1",19160
+ "unsigned": {}19161
+ }19162
+ },19163
+ "@alice_580:hs1": {19164
+ "ALICEDEVICE580": {19165
+ "algorithms": [19166
+ "m.olm.v1.curve25519-aes-sha2",19167
+ "m.megolm.v1.aes-sha2"19168
+ ],19169
+ "device_id": "ALICEDEVICE580",19170
+ "keys": {19171
+ "curve25519:ALICEDEVICE580": "yryQiGhFTnEzBs7vjUK+LKWWOHGIcigXeASy9uUxeBg",19172
+ "ed25519:ALICEDEVICE580": "wnyuHMtG8ZE5TOgqksMdRZ3W9pGmit5l/TTzJPAdmAY"19173
+ },19174
+ "signatures": {19175
+ "@alice_580:hs1": {19176
+ "ed25519:ALICEDEVICE580": "kguA5PNsewwMDLnCXQD4x7hrXu9zjz74WenLf6vmUKPiDIZjFTMXzrXP/zeqSON6StMHXtbMA26ZCWzw7EQpBQ"19177
+ }19178
+ },19179
+ "user_id": "@alice_580:hs1",19180
+ "unsigned": {}19181
+ }19182
+ },19183
+ "@alice_586:hs1": {19184
+ "ALICEDEVICE586": {19185
+ "algorithms": [19186
+ "m.olm.v1.curve25519-aes-sha2",19187
+ "m.megolm.v1.aes-sha2"19188
+ ],19189
+ "device_id": "ALICEDEVICE586",19190
+ "keys": {19191
+ "curve25519:ALICEDEVICE586": "1zvfHfT91GlD4kRkdMYBLzqVFxaAFidOFv4V+0FfDxM",19192
+ "ed25519:ALICEDEVICE586": "hUhI1s48s+GqLve6G2BSx6QpTJNF6t65jIrPNU96ZjE"19193
+ },19194
+ "signatures": {19195
+ "@alice_586:hs1": {19196
+ "ed25519:ALICEDEVICE586": "wNy5eq4MFqOxeRW6/ADmDuJCTYR3wrFY+JbgB98D72g7aI7AtdCyDsSrdxIRY2sku5DW0ZuZfBiSIpMQRdK1Cg"19197
+ }19198
+ },19199
+ "user_id": "@alice_586:hs1",19200
+ "unsigned": {}19201
+ }19202
+ },19203
+ "@alice_588:hs1": {19204
+ "ALICEDEVICE588": {19205
+ "algorithms": [19206
+ "m.olm.v1.curve25519-aes-sha2",19207
+ "m.megolm.v1.aes-sha2"19208
+ ],19209
+ "device_id": "ALICEDEVICE588",19210
+ "keys": {19211
+ "curve25519:ALICEDEVICE588": "BRo2EhtPtSK5nkDD30lvy4dAkuZDFpkyWt1XoEKGxCQ",19212
+ "ed25519:ALICEDEVICE588": "VuMef4EHCJM6XZkDhc+fajI+cr4Coyp3bA7qbWf/+fM"19213
+ },19214
+ "signatures": {19215
+ "@alice_588:hs1": {19216
+ "ed25519:ALICEDEVICE588": "GNHs9G8PpmfTiu+owHPgPUJFHM33GXONUccUPDBKPKCN7W4Bo9pKDLkBepGvtSTH7lCfIx25D8a5LKELCIm/Bg"19217
+ }19218
+ },19219
+ "user_id": "@alice_588:hs1",19220
+ "unsigned": {}19221
+ }19222
+ },19223
+ "@alice_58:hs1": {19224
+ "ALICEDEVICE58": {19225
+ "algorithms": [19226
+ "m.olm.v1.curve25519-aes-sha2",19227
+ "m.megolm.v1.aes-sha2"19228
+ ],19229
+ "device_id": "ALICEDEVICE58",19230
+ "keys": {19231
+ "curve25519:ALICEDEVICE58": "VWB/BGRtVxfuk1KruNOgPQd/4oBSuH0pA06GXos25zQ",19232
+ "ed25519:ALICEDEVICE58": "CDXQZT+TkM55l6r5sB6278czpiOtrf94BkAXD4WVY78"19233
+ },19234
+ "signatures": {19235
+ "@alice_58:hs1": {19236
+ "ed25519:ALICEDEVICE58": "xrTJ66QrE1KCARAXOKIxVeMj9l5hAgfGoeh6JOd93/8tjvhBFX1oPHS6MvmT8VHd4db8ZpNaHOd6dqLs8HdUAQ"19237
+ }19238
+ },19239
+ "user_id": "@alice_58:hs1",19240
+ "unsigned": {}19241
+ }19242
+ },19243
+ "@alice_592:hs1": {19244
+ "ALICEDEVICE592": {19245
+ "algorithms": [19246
+ "m.olm.v1.curve25519-aes-sha2",19247
+ "m.megolm.v1.aes-sha2"19248
+ ],19249
+ "device_id": "ALICEDEVICE592",19250
+ "keys": {19251
+ "curve25519:ALICEDEVICE592": "CDWTlPrr8kPcujftnKikiRk7YhJT/CZl5lYOzNr+Ihs",19252
+ "ed25519:ALICEDEVICE592": "Ixxn+OaUoMKV5Q5K6dqM2EZCJK1iZRA2huYOzocHeho"19253
+ },19254
+ "signatures": {19255
+ "@alice_592:hs1": {19256
+ "ed25519:ALICEDEVICE592": "raXdmXntrOmS5wIYlfIfSWf/c+K74eUepzRBJjZSi2gsCYlTxStI1XNLKsr7Nu18mar1QIajK0+5rsRNv/ZBCg"19257
+ }19258
+ },19259
+ "user_id": "@alice_592:hs1",19260
+ "unsigned": {}19261
+ }19262
+ },19263
+ "@alice_648:hs1": {19264
+ "ALICEDEVICE648": {19265
+ "algorithms": [19266
+ "m.olm.v1.curve25519-aes-sha2",19267
+ "m.megolm.v1.aes-sha2"19268
+ ],19269
+ "device_id": "ALICEDEVICE648",19270
+ "keys": {19271
+ "curve25519:ALICEDEVICE648": "HyxRUgQFv0OUqijuRhGlVxQtZJc4RGxzfv0l8tuM5U4",19272
+ "ed25519:ALICEDEVICE648": "W9la+krd3r6SsDVhzudZbmRQPZvWMUMck6twzsXY8Wc"19273
+ },19274
+ "signatures": {19275
+ "@alice_648:hs1": {19276
+ "ed25519:ALICEDEVICE648": "SL39vSPJrn6bcJF+W2Sfh1NzYGP1IjYkkePQYI0WgtVAM7AmBe8fR99sni7Db+Atal+AqxBGCwFeobR4mhI6Cg"19277
+ }19278
+ },19279
+ "user_id": "@alice_648:hs1",19280
+ "unsigned": {}19281
+ }19282
+ },19283
+ "@alice_649:hs1": {19284
+ "ALICEDEVICE649": {19285
+ "algorithms": [19286
+ "m.olm.v1.curve25519-aes-sha2",19287
+ "m.megolm.v1.aes-sha2"19288
+ ],19289
+ "device_id": "ALICEDEVICE649",19290
+ "keys": {19291
+ "curve25519:ALICEDEVICE649": "TdaKA1gcaSmxkvq6zP/gwKUvbnnDOyJiB77/GI42elU",19292
+ "ed25519:ALICEDEVICE649": "O+7KkQ/6mE4yhQfliuXp64b5BrMofO77ApbNQov/VXE"19293
+ },19294
+ "signatures": {19295
+ "@alice_649:hs1": {19296
+ "ed25519:ALICEDEVICE649": "T1+Fdur5jW6glxzWj1aq3bQ8A3UxM8yVpDN+Z+Dq4O5k1sp+js5wsh8rZB1LMxtU7GjWUi26YYGCqIvrUtYLDA"19297
+ }19298
+ },19299
+ "user_id": "@alice_649:hs1",19300
+ "unsigned": {}19301
+ }19302
+ },19303
+ "@alice_651:hs1": {19304
+ "ALICEDEVICE651": {19305
+ "algorithms": [19306
+ "m.olm.v1.curve25519-aes-sha2",19307
+ "m.megolm.v1.aes-sha2"19308
+ ],19309
+ "device_id": "ALICEDEVICE651",19310
+ "keys": {19311
+ "curve25519:ALICEDEVICE651": "l2iVS3x3lXcW/46d8bUWy4io5hXAWB/WwQGDSPo7uCI",19312
+ "ed25519:ALICEDEVICE651": "WecvB2KMlCzUeCGMx44mdIU7SIJMjX8uz+kQnnmVg5A"19313
+ },19314
+ "signatures": {19315
+ "@alice_651:hs1": {19316
+ "ed25519:ALICEDEVICE651": "UtDsm+zhizlqOsFi/7lsQ0+zx4cHK16xeI6yxnRztXBfJWpwxDH28Ch1ntqKF8GR2HZ1sMJwUjIkSC0z4+wQCg"19317
+ }19318
+ },19319
+ "user_id": "@alice_651:hs1",19320
+ "unsigned": {}19321
+ }19322
+ },19323
+ "@alice_653:hs1": {19324
+ "ALICEDEVICE653": {19325
+ "algorithms": [19326
+ "m.olm.v1.curve25519-aes-sha2",19327
+ "m.megolm.v1.aes-sha2"19328
+ ],19329
+ "device_id": "ALICEDEVICE653",19330
+ "keys": {19331
+ "curve25519:ALICEDEVICE653": "SJfj2lH79L5yIgJbuHmRUOy5mCEzkRWcZc2JxrG+Pns",19332
+ "ed25519:ALICEDEVICE653": "g3zIDiR1VJX4mh8JGmpIgDeVHaRRehXmAFGJzn1PjiQ"19333
+ },19334
+ "signatures": {19335
+ "@alice_653:hs1": {19336
+ "ed25519:ALICEDEVICE653": "VebP1TSQJ4wSGJ37pbqUA0XaVDVKFYLdaiJgRaSn+JVGl2VFmQa1Tx01WUTXhL/9a2d6oyvxK7LXo5EEHLOsAQ"19337
+ }19338
+ },19339
+ "user_id": "@alice_653:hs1",19340
+ "unsigned": {}19341
+ }19342
+ },19343
+ "@alice_660:hs1": {19344
+ "ALICEDEVICE660": {19345
+ "algorithms": [19346
+ "m.olm.v1.curve25519-aes-sha2",19347
+ "m.megolm.v1.aes-sha2"19348
+ ],19349
+ "device_id": "ALICEDEVICE660",19350
+ "keys": {19351
+ "curve25519:ALICEDEVICE660": "MqVX4SgHDMjC4mt5r/jUiA4IiVbmKU8JYBhKFNxKBk4",19352
+ "ed25519:ALICEDEVICE660": "lpE6o77XAqh3Crr82GIU04SrHmKYPHlkyclD0R0c1+I"19353
+ },19354
+ "signatures": {19355
+ "@alice_660:hs1": {19356
+ "ed25519:ALICEDEVICE660": "HnOJYi+730/v47xjHlkJvP5lH61Rgy/g0X/PMtNpjO0NNDm/oupLNGTljXHiUrzo9h6zKA49urZX0OsNo2HlAA"19357
+ }19358
+ },19359
+ "user_id": "@alice_660:hs1",19360
+ "unsigned": {}19361
+ }19362
+ },19363
+ "@alice_676:hs1": {19364
+ "ALICEDEVICE676": {19365
+ "algorithms": [19366
+ "m.olm.v1.curve25519-aes-sha2",19367
+ "m.megolm.v1.aes-sha2"19368
+ ],19369
+ "device_id": "ALICEDEVICE676",19370
+ "keys": {19371
+ "curve25519:ALICEDEVICE676": "yOn6jnxdmb8zgXsnwazwo56SU1vIMxCoLsm6hgqowUA",19372
+ "ed25519:ALICEDEVICE676": "2LJcYqdg6ZhzkiML/CvNWQ93K+9EhB/nXgSgatb0l44"19373
+ },19374
+ "signatures": {19375
+ "@alice_676:hs1": {19376
+ "ed25519:ALICEDEVICE676": "4z7tZ3pbNNq8YiNDakRBcudh9cOOGZn59/Kc4Xjh+rZogK/C8KA6aFqhq6l+oVixH/TOSxUnR5nZ4hRdrFp+Dg"19377
+ }19378
+ },19379
+ "user_id": "@alice_676:hs1",19380
+ "unsigned": {}19381
+ }19382
+ },19383
+ "@alice_689:hs1": {19384
+ "ALICEDEVICE689": {19385
+ "algorithms": [19386
+ "m.olm.v1.curve25519-aes-sha2",19387
+ "m.megolm.v1.aes-sha2"19388
+ ],19389
+ "device_id": "ALICEDEVICE689",19390
+ "keys": {19391
+ "curve25519:ALICEDEVICE689": "ZsTnw5CPDufHdRyNbR2TE2Sd47cx/coPFTTjdcH1fAU",19392
+ "ed25519:ALICEDEVICE689": "4EIGytYhL3yD+Gf6wYQ5Y37beNZJ/bpPxCPl0vl+gNg"19393
+ },19394
+ "signatures": {19395
+ "@alice_689:hs1": {19396
+ "ed25519:ALICEDEVICE689": "2xggaoTaQ2WadMqSpe5m7Nekuj0RWg2B6p8c9YVM7+vnCjBhwLiySObnIrdG1K/jULTi19pjzLnv9KG50SaABQ"19397
+ }19398
+ },19399
+ "user_id": "@alice_689:hs1",19400
+ "unsigned": {}19401
+ }19402
+ },19403
+ "@alice_68:hs1": {19404
+ "ALICEDEVICE68": {19405
+ "algorithms": [19406
+ "m.olm.v1.curve25519-aes-sha2",19407
+ "m.megolm.v1.aes-sha2"19408
+ ],19409
+ "device_id": "ALICEDEVICE68",19410
+ "keys": {19411
+ "curve25519:ALICEDEVICE68": "Sg8Fhheu8GNAgDIzOxBrR2PWtpBSLd34bBCHCD8ZQmQ",19412
+ "ed25519:ALICEDEVICE68": "rWm4d605hWc8cNW7exE5FFOt0yBZZuqBB6HT/o/3LxY"19413
+ },19414
+ "signatures": {19415
+ "@alice_68:hs1": {19416
+ "ed25519:ALICEDEVICE68": "qq7fF6dYKpN43mLVUGpN4kc8R3f+inKgw8627X9xvoqhxVT1On3f5dOd4Z3SYQQJrxaQg5WNTrDixP309kItAQ"19417
+ }19418
+ },19419
+ "user_id": "@alice_68:hs1",19420
+ "unsigned": {}19421
+ }19422
+ },19423
+ "@alice_690:hs1": {19424
+ "ALICEDEVICE690": {19425
+ "algorithms": [19426
+ "m.olm.v1.curve25519-aes-sha2",19427
+ "m.megolm.v1.aes-sha2"19428
+ ],19429
+ "device_id": "ALICEDEVICE690",19430
+ "keys": {19431
+ "curve25519:ALICEDEVICE690": "OBxn+ihAB/eti+pCY8XHQqIZQ19iGx3BVKrG8dzsZUM",19432
+ "ed25519:ALICEDEVICE690": "1tryMEWTz74Jsi15mzmjYoWfXNFIUu38UvQYW/k9ykk"19433
+ },19434
+ "signatures": {19435
+ "@alice_690:hs1": {19436
+ "ed25519:ALICEDEVICE690": "+PI83u+e4/44a269IzzuFgsN2sznTdz+iPbmPaEXQP2jB8qnC2JxewCtKv+KP0LFjrSbYYHlmqTrbF+B2HMCDw"19437
+ }19438
+ },19439
+ "user_id": "@alice_690:hs1",19440
+ "unsigned": {}19441
+ }19442
+ },19443
+ "@alice_702:hs1": {19444
+ "ALICEDEVICE702": {19445
+ "algorithms": [19446
+ "m.olm.v1.curve25519-aes-sha2",19447
+ "m.megolm.v1.aes-sha2"19448
+ ],19449
+ "device_id": "ALICEDEVICE702",19450
+ "keys": {19451
+ "curve25519:ALICEDEVICE702": "POjgh/Nv28PM8g0NAJ4DwAaXKPbqaHJqTJMGGvzc6QU",19452
+ "ed25519:ALICEDEVICE702": "Qk6pTgkhVGeZJnllxh4oKqRiFl955FaOBRizC+Wyyoc"19453
+ },19454
+ "signatures": {19455
+ "@alice_702:hs1": {19456
+ "ed25519:ALICEDEVICE702": "OyuMUkrFXo+Ha/moP+GCDLlkQFadbV+RGHonZZ+2fJZrVhOPHGWHPdNXd0FQIUjjgAa9R9cpWaQsPFBu0m8PDg"19457
+ }19458
+ },19459
+ "user_id": "@alice_702:hs1",19460
+ "unsigned": {}19461
+ }19462
+ },19463
+ "@alice_718:hs1": {19464
+ "ALICEDEVICE718": {19465
+ "algorithms": [19466
+ "m.olm.v1.curve25519-aes-sha2",19467
+ "m.megolm.v1.aes-sha2"19468
+ ],19469
+ "device_id": "ALICEDEVICE718",19470
+ "keys": {19471
+ "curve25519:ALICEDEVICE718": "XaB/BRUKS2qMxK4yqhXA2/hN47SX14MMbfzwi2e9UVY",19472
+ "ed25519:ALICEDEVICE718": "eO8sZDuBUGVsLOkJB5Qkd2D30scJ4H/kqUeUddubzFQ"19473
+ },19474
+ "signatures": {19475
+ "@alice_718:hs1": {19476
+ "ed25519:ALICEDEVICE718": "iUMXbVt7rIVKiOcZlSCW3Vok2nYikOfefmAxnJRhdLptDJ5UBdfJupQ1CfDYlLKEP80Ycf/EgUkyJscT2v2lCA"19477
+ }19478
+ },19479
+ "user_id": "@alice_718:hs1",19480
+ "unsigned": {}19481
+ }19482
+ },19483
+ "@alice_731:hs1": {19484
+ "ALICEDEVICE731": {19485
+ "algorithms": [19486
+ "m.olm.v1.curve25519-aes-sha2",19487
+ "m.megolm.v1.aes-sha2"19488
+ ],19489
+ "device_id": "ALICEDEVICE731",19490
+ "keys": {19491
+ "curve25519:ALICEDEVICE731": "CcO0/8faHEII+xgcz2+lWIBJ041031QqtvadckNrURo",19492
+ "ed25519:ALICEDEVICE731": "GztnnbCTrMvJNsRTmkVik5BEdJ1hSEJiI021lQ2dtaI"19493
+ },19494
+ "signatures": {19495
+ "@alice_731:hs1": {19496
+ "ed25519:ALICEDEVICE731": "VJYcQCAj1w5VrAxTgAuPY06P6ASGO4lcPFqYWq3WlcEUthcteS6cRjmSaHpo5CkEan31vlzoo4Zt6zptl2t3Cg"19497
+ }19498
+ },19499
+ "user_id": "@alice_731:hs1",19500
+ "unsigned": {}19501
+ }19502
+ },19503
+ "@alice_734:hs1": {19504
+ "ALICEDEVICE734": {19505
+ "algorithms": [19506
+ "m.olm.v1.curve25519-aes-sha2",19507
+ "m.megolm.v1.aes-sha2"19508
+ ],19509
+ "device_id": "ALICEDEVICE734",19510
+ "keys": {19511
+ "curve25519:ALICEDEVICE734": "9JS/8jwvfQZ0/btQlJJVVxWxN+1jAY96A2YM+EYVMEk",19512
+ "ed25519:ALICEDEVICE734": "ugU2XvgmIluU+VJwvZ9uR3ESMss0kbRBcsxMY4SfvhA"19513
+ },19514
+ "signatures": {19515
+ "@alice_734:hs1": {19516
+ "ed25519:ALICEDEVICE734": "WdDhDHspX/euMWUjMxZQdkOsoegOiVIarEqggjK5I7qfwJaTdi2wkZ0ElgqC+iVjBaJ1hrVd9QjjYzmj7/Z9DQ"19517
+ }19518
+ },19519
+ "user_id": "@alice_734:hs1",19520
+ "unsigned": {}19521
+ }19522
+ },19523
+ "@alice_736:hs1": {19524
+ "ALICEDEVICE736": {19525
+ "algorithms": [19526
+ "m.olm.v1.curve25519-aes-sha2",19527
+ "m.megolm.v1.aes-sha2"19528
+ ],19529
+ "device_id": "ALICEDEVICE736",19530
+ "keys": {19531
+ "curve25519:ALICEDEVICE736": "Z8uCOmJlY0yKHiCjStjzpk8rUBY7sJ/n2IMRotFcaUg",19532
+ "ed25519:ALICEDEVICE736": "3+PNMk4GF6T5ktXPsa4EWd+7ofOa51Jy/qnOWIaW++c"19533
+ },19534
+ "signatures": {19535
+ "@alice_736:hs1": {19536
+ "ed25519:ALICEDEVICE736": "a39vjacgehE+r1DlqPAx4T+kEYSmtjnwpKDCsXvU1HqeM2u6Ewn+Hrw2EqRfkNRkGw1kmoasgpP1Qu3bgBaVCw"19537
+ }19538
+ },19539
+ "user_id": "@alice_736:hs1",19540
+ "unsigned": {}19541
+ }19542
+ },19543
+ "@alice_737:hs1": {19544
+ "ALICEDEVICE737": {19545
+ "algorithms": [19546
+ "m.olm.v1.curve25519-aes-sha2",19547
+ "m.megolm.v1.aes-sha2"19548
+ ],19549
+ "device_id": "ALICEDEVICE737",19550
+ "keys": {19551
+ "curve25519:ALICEDEVICE737": "prK2Jurzs5BLdDOW3z1MGypnOOnYqxBqU9yHK+sgC24",19552
+ "ed25519:ALICEDEVICE737": "sS2TkzbMuQXYCBAEQLCsqk/rq5HBc7Nrqc6WHLUHwyk"19553
+ },19554
+ "signatures": {19555
+ "@alice_737:hs1": {19556
+ "ed25519:ALICEDEVICE737": "CV1A2uF5u+8qwFYXDwLJ9DwcokA0YDt99+KITPWMOpg0IkBCWPvc3gB8fImiyi9IOo7U1nK+ljgw4wFtqJFfAg"19557
+ }19558
+ },19559
+ "user_id": "@alice_737:hs1",19560
+ "unsigned": {}19561
+ }19562
+ },19563
+ "@alice_747:hs1": {19564
+ "ALICEDEVICE747": {19565
+ "algorithms": [19566
+ "m.olm.v1.curve25519-aes-sha2",19567
+ "m.megolm.v1.aes-sha2"19568
+ ],19569
+ "device_id": "ALICEDEVICE747",19570
+ "keys": {19571
+ "curve25519:ALICEDEVICE747": "TBr7rD4LZkR3Epg1+WqVvPWWpXDmwsTh4/JK5Hen1wc",19572
+ "ed25519:ALICEDEVICE747": "VLZ13mtP0wzknksCTcBLKe/zY0aQAshmSjWHKqhGOaw"19573
+ },19574
+ "signatures": {19575
+ "@alice_747:hs1": {19576
+ "ed25519:ALICEDEVICE747": "64yBpmNtiVqVoVlaV1IVR3pt/Srh6rRQj5nw6wKpirsJaHJsp1LZl20+4zibrJWAD6rMtpvIXwN8YRrYlRKPBQ"19577
+ }19578
+ },19579
+ "user_id": "@alice_747:hs1",19580
+ "unsigned": {}19581
+ }19582
+ },19583
+ "@alice_750:hs1": {19584
+ "ALICEDEVICE750": {19585
+ "algorithms": [19586
+ "m.olm.v1.curve25519-aes-sha2",19587
+ "m.megolm.v1.aes-sha2"19588
+ ],19589
+ "device_id": "ALICEDEVICE750",19590
+ "keys": {19591
+ "curve25519:ALICEDEVICE750": "ay2Dlb7x7kChAmLuGUaAlbeseL/VoBGYnqjlyx5r6xc",19592
+ "ed25519:ALICEDEVICE750": "upun4eMXktGF4pFlAajtaHD/qfCtBOnF1IemDd7xVnw"19593
+ },19594
+ "signatures": {19595
+ "@alice_750:hs1": {19596
+ "ed25519:ALICEDEVICE750": "0bsqZVivS+HnGtPRc7AuDSSFM+gYS0h98YVHgVULRWQYf+F4gqUEiXAonRjfq93rVa3mrBMiDTGeGsjLZkH8DQ"19597
+ }19598
+ },19599
+ "user_id": "@alice_750:hs1",19600
+ "unsigned": {}19601
+ }19602
+ },19603
+ "@alice_760:hs1": {19604
+ "ALICEDEVICE760": {19605
+ "algorithms": [19606
+ "m.olm.v1.curve25519-aes-sha2",19607
+ "m.megolm.v1.aes-sha2"19608
+ ],19609
+ "device_id": "ALICEDEVICE760",19610
+ "keys": {19611
+ "curve25519:ALICEDEVICE760": "kOIHBpLqOEeDYOfmBXPI/xozaKjI7aoK1bx2o5Wuegk",19612
+ "ed25519:ALICEDEVICE760": "8scwcIPV9pEBe7hwdAh9XXi8903RT83EixE4TiJlbHc"19613
+ },19614
+ "signatures": {19615
+ "@alice_760:hs1": {19616
+ "ed25519:ALICEDEVICE760": "xXcYeCqFiEoyJCkz9LfoCJws5hixk6YeXXaluUvSmyyY4EhOuBoGBhOn/KVRC4KraMrecqu0KUhMEkGT9hSuDQ"19617
+ }19618
+ },19619
+ "user_id": "@alice_760:hs1",19620
+ "unsigned": {}19621
+ }19622
+ },19623
+ "@alice_76:hs1": {19624
+ "ALICEDEVICE76": {19625
+ "algorithms": [19626
+ "m.olm.v1.curve25519-aes-sha2",19627
+ "m.megolm.v1.aes-sha2"19628
+ ],19629
+ "device_id": "ALICEDEVICE76",19630
+ "keys": {19631
+ "curve25519:ALICEDEVICE76": "3eACOKHcQjeeYQqrvpcX8oVjoqWkuGG0JEM0tZpGIUw",19632
+ "ed25519:ALICEDEVICE76": "br+eFn+JuMp+Lklx5XnScLYuHTbUyCbew5SFelVH3I0"19633
+ },19634
+ "signatures": {19635
+ "@alice_76:hs1": {19636
+ "ed25519:ALICEDEVICE76": "k7s6JO6BDsLSdb97Qb/Ts4NcK9Gjo+1y2CaFS0hNR8iOlONyX1PV14/yoPyQ7vqWysJaCFdgu6QTXoBSBVGjBg"19637
+ }19638
+ },19639
+ "user_id": "@alice_76:hs1",19640
+ "unsigned": {}19641
+ }19642
+ },19643
+ "@alice_781:hs1": {19644
+ "ALICEDEVICE781": {19645
+ "algorithms": [19646
+ "m.olm.v1.curve25519-aes-sha2",19647
+ "m.megolm.v1.aes-sha2"19648
+ ],19649
+ "device_id": "ALICEDEVICE781",19650
+ "keys": {19651
+ "curve25519:ALICEDEVICE781": "WeNFTS8rqE+HnbW2/Br4wGUapiWVQOC4djmFjaWoJ2w",19652
+ "ed25519:ALICEDEVICE781": "c9qb7ykkpKWpN4gCBpqRtV1LBHK9iDxQuU9TRt6hHhY"19653
+ },19654
+ "signatures": {19655
+ "@alice_781:hs1": {19656
+ "ed25519:ALICEDEVICE781": "kgExA/vpC9zL/OyAizr0X0llzIZeBOFPKrDqnmeBLguT2U3TY2F4PSNv1ctZUPKPEjyVgeq9Ke+Tn+yTHeqiBw"19657
+ }19658
+ },19659
+ "user_id": "@alice_781:hs1",19660
+ "unsigned": {}19661
+ }19662
+ },19663
+ "@alice_787:hs1": {19664
+ "ALICEDEVICE787": {19665
+ "algorithms": [19666
+ "m.olm.v1.curve25519-aes-sha2",19667
+ "m.megolm.v1.aes-sha2"19668
+ ],19669
+ "device_id": "ALICEDEVICE787",19670
+ "keys": {19671
+ "curve25519:ALICEDEVICE787": "A8i+wFKXiuv61Ws0eZ6F9Uo4+8FxnD4/dDFIdORtlmI",19672
+ "ed25519:ALICEDEVICE787": "kHlZGFbViXHfsMJenwXa7WBm7DzYaLgAEiKttOHXv0A"19673
+ },19674
+ "signatures": {19675
+ "@alice_787:hs1": {19676
+ "ed25519:ALICEDEVICE787": "pq+VeDyhTRI1hVZuvUmFiJmVmKeEzv6prQ5Mq9oM6nM1m6x7QScSHHFCQlohlSTQZjqqi/N6JMJdV3Dx0mCXBA"19677
+ }19678
+ },19679
+ "user_id": "@alice_787:hs1",19680
+ "unsigned": {}19681
+ }19682
+ },19683
+ "@alice_800:hs1": {19684
+ "ALICEDEVICE800": {19685
+ "algorithms": [19686
+ "m.olm.v1.curve25519-aes-sha2",19687
+ "m.megolm.v1.aes-sha2"19688
+ ],19689
+ "device_id": "ALICEDEVICE800",19690
+ "keys": {19691
+ "curve25519:ALICEDEVICE800": "71SoJv3jSTvLwgbWGevOA7QGV/yYsoM22yc2RxMWMSk",19692
+ "ed25519:ALICEDEVICE800": "4HYKwti9HKsh2fAgOW///y1Gy24S8rcpGQTLiMUZDXE"19693
+ },19694
+ "signatures": {19695
+ "@alice_800:hs1": {19696
+ "ed25519:ALICEDEVICE800": "9WvKSyH+D1ujmPHM78Dy+JDo8HHCXAcQNix+lgDhE0fcdppQkwDbcXcxIvtC46359R6VmnL/uv1Wd0OXTrLwBA"19697
+ }19698
+ },19699
+ "user_id": "@alice_800:hs1",19700
+ "unsigned": {}19701
+ }19702
+ },19703
+ "@alice_802:hs1": {19704
+ "ALICEDEVICE802": {19705
+ "algorithms": [19706
+ "m.olm.v1.curve25519-aes-sha2",19707
+ "m.megolm.v1.aes-sha2"19708
+ ],19709
+ "device_id": "ALICEDEVICE802",19710
+ "keys": {19711
+ "curve25519:ALICEDEVICE802": "T/om0UOgyK3lemcMVK/8UP2N4t/DbRmhIM0iGl3FmHM",19712
+ "ed25519:ALICEDEVICE802": "Gj3o9SWEy6ogCMTTTue5oFaPdppBu4JCT6bfRXvpqNs"19713
+ },19714
+ "signatures": {19715
+ "@alice_802:hs1": {19716
+ "ed25519:ALICEDEVICE802": "H27DrzlyQWyZayX9yD8zM67oskMZ8s4LC4qcMjkjnWgE/xoQCkVs8hsSlmkuomyCCOPOGbPLli2ppG29iHWLDQ"19717
+ }19718
+ },19719
+ "user_id": "@alice_802:hs1",19720
+ "unsigned": {}19721
+ }19722
+ },19723
+ "@alice_816:hs1": {19724
+ "ALICEDEVICE816": {19725
+ "algorithms": [19726
+ "m.olm.v1.curve25519-aes-sha2",19727
+ "m.megolm.v1.aes-sha2"19728
+ ],19729
+ "device_id": "ALICEDEVICE816",19730
+ "keys": {19731
+ "curve25519:ALICEDEVICE816": "hbgj2t6XL87xFf+b9yUPufEFovoW3jYUN441RjmxJgY",19732
+ "ed25519:ALICEDEVICE816": "cv/84GDuvLXqvM6U/6MrfJvXVYSU3VbikvMq2JaJhX4"19733
+ },19734
+ "signatures": {19735
+ "@alice_816:hs1": {19736
+ "ed25519:ALICEDEVICE816": "s5AeZDECpVbzzoJ8j3JfnvLDLO8BNtSX8VOlbDsfEO5ABoME/3LhW0oFhhfGcbq4rD8sWC0lQLfbHmiCcsZ1Bg"19737
+ }19738
+ },19739
+ "user_id": "@alice_816:hs1",19740
+ "unsigned": {}19741
+ }19742
+ },19743
+ "@alice_818:hs1": {19744
+ "ALICEDEVICE818": {19745
+ "algorithms": [19746
+ "m.olm.v1.curve25519-aes-sha2",19747
+ "m.megolm.v1.aes-sha2"19748
+ ],19749
+ "device_id": "ALICEDEVICE818",19750
+ "keys": {19751
+ "curve25519:ALICEDEVICE818": "BVZKe7OKmYxhlEPaF359DtvDwkuryL7iBrrKi41A1H8",19752
+ "ed25519:ALICEDEVICE818": "ZzVLQ9wnWRuBU8LQIplcroWRN65O+aAs1sn0SOpcHxA"19753
+ },19754
+ "signatures": {19755
+ "@alice_818:hs1": {19756
+ "ed25519:ALICEDEVICE818": "jWomHaBJf21A/tqyJlqMrbqpQ9JeULBwBLJiiHyae+BosT8odLv1IbsOPAJ7s5Zi9E3q1EEoywQnUmNEY3gKBA"19757
+ }19758
+ },19759
+ "user_id": "@alice_818:hs1",19760
+ "unsigned": {}19761
+ }19762
+ },19763
+ "@alice_837:hs1": {19764
+ "ALICEDEVICE837": {19765
+ "algorithms": [19766
+ "m.olm.v1.curve25519-aes-sha2",19767
+ "m.megolm.v1.aes-sha2"19768
+ ],19769
+ "device_id": "ALICEDEVICE837",19770
+ "keys": {19771
+ "curve25519:ALICEDEVICE837": "CcxriawQN4+rl4XSxbowlpx6NyP4zKbUfYTwUcqvMDA",19772
+ "ed25519:ALICEDEVICE837": "80zGEtQWyGQ/lvfBQldZHVgtHbCse75WKXS4Oir6gMM"19773
+ },19774
+ "signatures": {19775
+ "@alice_837:hs1": {19776
+ "ed25519:ALICEDEVICE837": "AaeUM+DSn3F2lVIxWE+DdOMRgg3gNx1KQ3ri7dxlzp8TGDEVTqTCuP4X5S4EMg1XTC6LejWKBhJWKzGYSa+JAw"19777
+ }19778
+ },19779
+ "user_id": "@alice_837:hs1",19780
+ "unsigned": {}19781
+ }19782
+ },19783
+ "@alice_840:hs1": {19784
+ "ALICEDEVICE840": {19785
+ "algorithms": [19786
+ "m.olm.v1.curve25519-aes-sha2",19787
+ "m.megolm.v1.aes-sha2"19788
+ ],19789
+ "device_id": "ALICEDEVICE840",19790
+ "keys": {19791
+ "curve25519:ALICEDEVICE840": "t8HPHCKUTHUqCSUVI4YnKk/j3/PNxWS7wTa7EgTZBhg",19792
+ "ed25519:ALICEDEVICE840": "qmYG2Vlv7PvdBMtkIi7+neExyUoPeaxpveZP9zaqSxA"19793
+ },19794
+ "signatures": {19795
+ "@alice_840:hs1": {19796
+ "ed25519:ALICEDEVICE840": "SXk24Z2E9OB+VOFg/ag4u99bcac6mZNesWl25xdWnQzpGfF7Qu0PwfHNQ5fzZVGdOlnLXZSTwbqmi2k7QTHjDA"19797
+ }19798
+ },19799
+ "user_id": "@alice_840:hs1",19800
+ "unsigned": {}19801
+ }19802
+ },19803
+ "@alice_841:hs1": {19804
+ "ALICEDEVICE841": {19805
+ "algorithms": [19806
+ "m.olm.v1.curve25519-aes-sha2",19807
+ "m.megolm.v1.aes-sha2"19808
+ ],19809
+ "device_id": "ALICEDEVICE841",19810
+ "keys": {19811
+ "curve25519:ALICEDEVICE841": "13QHvwVA0ygxzZI7oEh/DG2pyJUYKh3l4moE5cmUD1I",19812
+ "ed25519:ALICEDEVICE841": "4bg3bqZAzRf5T0oZK8wbHMMyReAuUszOr5Tm2utoI10"19813
+ },19814
+ "signatures": {19815
+ "@alice_841:hs1": {19816
+ "ed25519:ALICEDEVICE841": "6aIEtOFeWNapV/jEW96I0yHwbmsViImkOiRorwuqDhEBvcTNmLsVyUxR4pGyhAutOXGExLzESTqo7VpCNK6cAg"19817
+ }19818
+ },19819
+ "user_id": "@alice_841:hs1",19820
+ "unsigned": {}19821
+ }19822
+ },19823
+ "@alice_84:hs1": {19824
+ "ALICEDEVICE84": {19825
+ "algorithms": [19826
+ "m.olm.v1.curve25519-aes-sha2",19827
+ "m.megolm.v1.aes-sha2"19828
+ ],19829
+ "device_id": "ALICEDEVICE84",19830
+ "keys": {19831
+ "curve25519:ALICEDEVICE84": "UEU3CaJsFYtm9bK+LpzfA95QeoU+9zDEs8kLU4ys/RE",19832
+ "ed25519:ALICEDEVICE84": "e7wJ3WzrMNtkVAb8M6f6NEODnXXPWUTAp3bK4MHXnYw"19833
+ },19834
+ "signatures": {19835
+ "@alice_84:hs1": {19836
+ "ed25519:ALICEDEVICE84": "ycpgjewWyCxBzXtseseNLwF5wKy4j9rZqe+xJxIvMVqxVpFNJ/hoHao3008I792aniF8heWoUZiGayI6zybVAA"19837
+ }19838
+ },19839
+ "user_id": "@alice_84:hs1",19840
+ "unsigned": {}19841
+ }19842
+ },19843
+ "@alice_863:hs1": {19844
+ "ALICEDEVICE863": {19845
+ "algorithms": [19846
+ "m.olm.v1.curve25519-aes-sha2",19847
+ "m.megolm.v1.aes-sha2"19848
+ ],19849
+ "device_id": "ALICEDEVICE863",19850
+ "keys": {19851
+ "curve25519:ALICEDEVICE863": "KyrMHa5D/BcmF55I1MXTAPr+T5ohzX3/kfaE0josKxk",19852
+ "ed25519:ALICEDEVICE863": "1WB7Vhu0nVO8nZGJfhld1gVXXDwqRDOyABY0p+RKzGk"19853
+ },19854
+ "signatures": {19855
+ "@alice_863:hs1": {19856
+ "ed25519:ALICEDEVICE863": "X6Q6sgLmMkxetvb8rbLCJynA3B7qWCjx/FqV5pIKFTptsqp8j4uUYuSlSXA+yFSNMdhvS0XIity9RV9fAoQSBw"19857
+ }19858
+ },19859
+ "user_id": "@alice_863:hs1",19860
+ "unsigned": {}19861
+ }19862
+ },19863
+ "@alice_867:hs1": {19864
+ "ALICEDEVICE867": {19865
+ "algorithms": [19866
+ "m.olm.v1.curve25519-aes-sha2",19867
+ "m.megolm.v1.aes-sha2"19868
+ ],19869
+ "device_id": "ALICEDEVICE867",19870
+ "keys": {19871
+ "curve25519:ALICEDEVICE867": "wLTDNNRyCW+lgS3eiojFUY6BhRQkFIF/PEjyUar1EgU",19872
+ "ed25519:ALICEDEVICE867": "r5zpJvrmrpleR4MhVnSbLAYeADddOoDtHiaGVpPFNuk"19873
+ },19874
+ "signatures": {19875
+ "@alice_867:hs1": {19876
+ "ed25519:ALICEDEVICE867": "+fHa1jBVbm7gV5KQWwqoojuDVjrugtAYMAXL+cPntBX32HLw9RY390gKVuBjjx+DyEwCdJTtho5wxWBAWfdYBQ"19877
+ }19878
+ },19879
+ "user_id": "@alice_867:hs1",19880
+ "unsigned": {}19881
+ }19882
+ },19883
+ "@alice_877:hs1": {19884
+ "ALICEDEVICE877": {19885
+ "algorithms": [19886
+ "m.olm.v1.curve25519-aes-sha2",19887
+ "m.megolm.v1.aes-sha2"19888
+ ],19889
+ "device_id": "ALICEDEVICE877",19890
+ "keys": {19891
+ "curve25519:ALICEDEVICE877": "S93fdV7uI5xl/PKVaKimONEKbJicO+qPx6pKPxIFTns",19892
+ "ed25519:ALICEDEVICE877": "biBmXpf0Zl/PhRx9OP/CJiGRn9qmxdjeBGZAExRfejE"19893
+ },19894
+ "signatures": {19895
+ "@alice_877:hs1": {19896
+ "ed25519:ALICEDEVICE877": "0goeilLwpUAb8McoD57A32dE+t3/q67zzcay24y4mGRBQVVmMbSIxw7Y0iQU5rQBdfzGC8HAChYQ99HCYssxAQ"19897
+ }19898
+ },19899
+ "user_id": "@alice_877:hs1",19900
+ "unsigned": {}19901
+ }19902
+ },19903
+ "@alice_884:hs1": {19904
+ "ALICEDEVICE884": {19905
+ "algorithms": [19906
+ "m.olm.v1.curve25519-aes-sha2",19907
+ "m.megolm.v1.aes-sha2"19908
+ ],19909
+ "device_id": "ALICEDEVICE884",19910
+ "keys": {19911
+ "curve25519:ALICEDEVICE884": "7WbI+0re+a2lAjs4gkvS7XGovTD5R51bUXLaKQjCHl4",19912
+ "ed25519:ALICEDEVICE884": "0N2fb14MXooQS3OnJmsJop2lihrNDUQKQYDs18Vb/f4"19913
+ },19914
+ "signatures": {19915
+ "@alice_884:hs1": {19916
+ "ed25519:ALICEDEVICE884": "Z/eHkez+SCjR0Eo1TkSEyrZKM1Nsae+g6aSPLFwO0cb3GXV9iiDSo4KpTgB+pB20g10U1D70RQJf53XZlcx8Ag"19917
+ }19918
+ },19919
+ "user_id": "@alice_884:hs1",19920
+ "unsigned": {}19921
+ }19922
+ },19923
+ "@alice_885:hs1": {19924
+ "ALICEDEVICE885": {19925
+ "algorithms": [19926
+ "m.olm.v1.curve25519-aes-sha2",19927
+ "m.megolm.v1.aes-sha2"19928
+ ],19929
+ "device_id": "ALICEDEVICE885",19930
+ "keys": {19931
+ "curve25519:ALICEDEVICE885": "DQJMKc9E1V/BpXbzb0fPPshHsRKtlJGiRgHs7KGK4Vg",19932
+ "ed25519:ALICEDEVICE885": "LxSaaEzcivh8nXU6//dGMPcRwNqKDv9beHxQzB598Ao"19933
+ },19934
+ "signatures": {19935
+ "@alice_885:hs1": {19936
+ "ed25519:ALICEDEVICE885": "IzEaQ9+KIq8oPkQNCP76LxVzfEaF+5/GiKH1xXgGziLDSH2bc65oyEugUIUX8QjYFzP0tJ3Z5JcnH7CEHZalDQ"19937
+ }19938
+ },19939
+ "user_id": "@alice_885:hs1",19940
+ "unsigned": {}19941
+ }19942
+ },19943
+ "@alice_889:hs1": {19944
+ "ALICEDEVICE889": {19945
+ "algorithms": [19946
+ "m.olm.v1.curve25519-aes-sha2",19947
+ "m.megolm.v1.aes-sha2"19948
+ ],19949
+ "device_id": "ALICEDEVICE889",19950
+ "keys": {19951
+ "curve25519:ALICEDEVICE889": "z7srVk6Uai0l18hO4iSqjfWq8B46NWUrl5PYxh7ZPGQ",19952
+ "ed25519:ALICEDEVICE889": "NzKznPYWqqvXtoDTjGowfbmzQO+1KfiQ1Sv8/+VHt/Q"19953
+ },19954
+ "signatures": {19955
+ "@alice_889:hs1": {19956
+ "ed25519:ALICEDEVICE889": "DRPWfmVSlMkQe2AxR5O26OzfhLbxxqsIJuZBshYS0yTx7STZnzG6ULahVBr12mTiP1F017QkgS9nyJ4s4fDACw"19957
+ }19958
+ },19959
+ "user_id": "@alice_889:hs1",19960
+ "unsigned": {}19961
+ }19962
+ },19963
+ "@alice_892:hs1": {19964
+ "ALICEDEVICE892": {19965
+ "algorithms": [19966
+ "m.olm.v1.curve25519-aes-sha2",19967
+ "m.megolm.v1.aes-sha2"19968
+ ],19969
+ "device_id": "ALICEDEVICE892",19970
+ "keys": {19971
+ "curve25519:ALICEDEVICE892": "PTtylPClamGGQYGGhayvlHzgfeaFZU9tyQsCvJ7raCg",19972
+ "ed25519:ALICEDEVICE892": "oXbiohIxBcdpv2R+Vl2yZhCxab9ALNE2Bcyjs/kl+54"19973
+ },19974
+ "signatures": {19975
+ "@alice_892:hs1": {19976
+ "ed25519:ALICEDEVICE892": "ixpkBgyIMEZ9NK5jVVymRdzC8tfyr7MxONAHxmXfJ97C8X/goZQMkXjcDIfSY1pTvwQqzCr3327Gff1zwgnADg"19977
+ }19978
+ },19979
+ "user_id": "@alice_892:hs1",19980
+ "unsigned": {}19981
+ }19982
+ },19983
+ "@alice_899:hs1": {19984
+ "ALICEDEVICE899": {19985
+ "algorithms": [19986
+ "m.olm.v1.curve25519-aes-sha2",19987
+ "m.megolm.v1.aes-sha2"19988
+ ],19989
+ "device_id": "ALICEDEVICE899",19990
+ "keys": {19991
+ "curve25519:ALICEDEVICE899": "TrjwhGLD0prh+bnJlRphfiDTaWeLNIQzgNuPMJtqZwk",19992
+ "ed25519:ALICEDEVICE899": "KvCaY/iK3qHl17HLL+c+cT5+0Rt9lDmUou2wVa98eiQ"19993
+ },19994
+ "signatures": {19995
+ "@alice_899:hs1": {19996
+ "ed25519:ALICEDEVICE899": "yFsMIDzRAG+gDXJ3ckvohThMLGXveY5ZYMsAM3bH2LP10jChB2uRQNyqu8uFN6Xmvi6cfpQ0bTJ6bhI9giTsDQ"19997
+ }19998
+ },19999
+ "user_id": "@alice_899:hs1",20000
+ "unsigned": {}20001
+ }20002
+ },20003
+ "@alice_900:hs1": {20004
+ "ALICEDEVICE900": {20005
+ "algorithms": [20006
+ "m.olm.v1.curve25519-aes-sha2",20007
+ "m.megolm.v1.aes-sha2"20008
+ ],20009
+ "device_id": "ALICEDEVICE900",20010
+ "keys": {20011
+ "curve25519:ALICEDEVICE900": "BDM1G9g68X9tLRVjySfBzolyx7LprlVbawlhN4m5X18",20012
+ "ed25519:ALICEDEVICE900": "sh3WXHA/vE5Rg+Zzw0Om5UvByTUUHXaTBGt1DTmanpk"20013
+ },20014
+ "signatures": {20015
+ "@alice_900:hs1": {20016
+ "ed25519:ALICEDEVICE900": "talIaFP96OlYEitI/BVRHOH6liF16HMpoikIS/W2NB4uoccf3ECijG7X7xQcoNQHVc639ModHIboXxmP3pRBAA"20017
+ }20018
+ },20019
+ "user_id": "@alice_900:hs1",20020
+ "unsigned": {}20021
+ }20022
+ },20023
+ "@alice_90:hs1": {20024
+ "ALICEDEVICE90": {20025
+ "algorithms": [20026
+ "m.olm.v1.curve25519-aes-sha2",20027
+ "m.megolm.v1.aes-sha2"20028
+ ],20029
+ "device_id": "ALICEDEVICE90",20030
+ "keys": {20031
+ "curve25519:ALICEDEVICE90": "RtXtWDKi5Xi+Wr1t17Y+V73+1YfhDvMUli5GmqEbMDo",20032
+ "ed25519:ALICEDEVICE90": "yorqfXscuie+sudFNAdmBdboxqghAvh+JXcTwnK2zko"20033
+ },20034
+ "signatures": {20035
+ "@alice_90:hs1": {20036
+ "ed25519:ALICEDEVICE90": "Uxr5C2coKkhgz9ym4chqsmny7Wk/JbttHi6a5YyEU2C5QRhHM7qFNdSh8JQ1QjUbT9tgoNpZNfs/zyCuW9nnBw"20037
+ }20038
+ },20039
+ "user_id": "@alice_90:hs1",20040
+ "unsigned": {}20041
+ }20042
+ },20043
+ "@alice_919:hs1": {20044
+ "ALICEDEVICE919": {20045
+ "algorithms": [20046
+ "m.olm.v1.curve25519-aes-sha2",20047
+ "m.megolm.v1.aes-sha2"20048
+ ],20049
+ "device_id": "ALICEDEVICE919",20050
+ "keys": {20051
+ "curve25519:ALICEDEVICE919": "jhcBXtXD5J2/k0kMH+PSKJO1GlU2hneYNo/qyftjNRk",20052
+ "ed25519:ALICEDEVICE919": "8B1bpIAv1AUe+3vI2etBiTs0TyQMI5td6IwH5iXK1m4"20053
+ },20054
+ "signatures": {20055
+ "@alice_919:hs1": {20056
+ "ed25519:ALICEDEVICE919": "ZSlmM8I+0Py9dF999Udv7prlJxPPboS+cOsAqwrL8EHZL7upHx9KghsJndDMXOlz6nlIzbwZs4zCnQn9AcVaBg"20057
+ }20058
+ },20059
+ "user_id": "@alice_919:hs1",20060
+ "unsigned": {}20061
+ }20062
+ },20063
+ "@alice_91:hs1": {20064
+ "ALICEDEVICE91": {20065
+ "algorithms": [20066
+ "m.olm.v1.curve25519-aes-sha2",20067
+ "m.megolm.v1.aes-sha2"20068
+ ],20069
+ "device_id": "ALICEDEVICE91",20070
+ "keys": {20071
+ "curve25519:ALICEDEVICE91": "1SmjbleffBTLLs4d1Y/KcC017YYcIraPYD1j7Z/GkzI",20072
+ "ed25519:ALICEDEVICE91": "Gnw9/GIuFh0bjCB5ZJqtiwxIEV03PNCQMpaDOQwnD6o"20073
+ },20074
+ "signatures": {20075
+ "@alice_91:hs1": {20076
+ "ed25519:ALICEDEVICE91": "8thmE3WHmaPhrwslZMRCIlWV1M0KYn3t0cP7afGYBrQEeHWoAqsVnKbLAakp47sC45c0odxEFTK6APJyhNdeDQ"20077
+ }20078
+ },20079
+ "user_id": "@alice_91:hs1",20080
+ "unsigned": {}20081
+ }20082
+ },20083
+ "@alice_922:hs1": {20084
+ "ALICEDEVICE922": {20085
+ "algorithms": [20086
+ "m.olm.v1.curve25519-aes-sha2",20087
+ "m.megolm.v1.aes-sha2"20088
+ ],20089
+ "device_id": "ALICEDEVICE922",20090
+ "keys": {20091
+ "curve25519:ALICEDEVICE922": "pZgo+G2LXhwyswGqerTeSU/Xo9yLYM846vjEqeJ/dQw",20092
+ "ed25519:ALICEDEVICE922": "HmDiScaIBAaWGVW4bsokm1BVqH3eQFbkaLeVKnK8ucI"20093
+ },20094
+ "signatures": {20095
+ "@alice_922:hs1": {20096
+ "ed25519:ALICEDEVICE922": "ZJio1rga4S5ad/1sIYC2jreRLTjzEyagJAn5oCSXWYcOxNP6DjH+UR05tedGeVPczDWvs7sVHWk0rToKLrU5CQ"20097
+ }20098
+ },20099
+ "user_id": "@alice_922:hs1",20100
+ "unsigned": {}20101
+ }20102
+ },20103
+ "@alice_926:hs1": {20104
+ "ALICEDEVICE926": {20105
+ "algorithms": [20106
+ "m.olm.v1.curve25519-aes-sha2",20107
+ "m.megolm.v1.aes-sha2"20108
+ ],20109
+ "device_id": "ALICEDEVICE926",20110
+ "keys": {20111
+ "curve25519:ALICEDEVICE926": "wuNs7UOdwWy8iXO9aCiO/0hq1ZXpPHwWoAUGZjfj+F4",20112
+ "ed25519:ALICEDEVICE926": "J6C+3yx834qBHnM8/zYoCpbCsiS2nCOZ6KCI+iDA7cU"20113
+ },20114
+ "signatures": {20115
+ "@alice_926:hs1": {20116
+ "ed25519:ALICEDEVICE926": "n6A+x3MX8y9KcqEygOoqZWPLOkB+ehmOJubWp1LlJpmmO01QuzGge8pc4v8C4Fq5mGqG2IcLNR0rIOVk9YuRDw"20117
+ }20118
+ },20119
+ "user_id": "@alice_926:hs1",20120
+ "unsigned": {}20121
+ }20122
+ },20123
+ "@alice_933:hs1": {20124
+ "ALICEDEVICE933": {20125
+ "algorithms": [20126
+ "m.olm.v1.curve25519-aes-sha2",20127
+ "m.megolm.v1.aes-sha2"20128
+ ],20129
+ "device_id": "ALICEDEVICE933",20130
+ "keys": {20131
+ "curve25519:ALICEDEVICE933": "7lLsAr4crdqoFQzOsYrDZaemjKr/QFEvagIa1jUV1BM",20132
+ "ed25519:ALICEDEVICE933": "l07TjIFkPfZrRzFYP1iPGlD8xNy7sncx0TnElow9+1g"20133
+ },20134
+ "signatures": {20135
+ "@alice_933:hs1": {20136
+ "ed25519:ALICEDEVICE933": "X+s4Sw9/WOOfjTROjZTh6MsSFDAdmkCVy3ZzzFLB5RzwTJ7O4nIenU/axBFX5iEt6/VwCJav5DFv91kgnwWIBQ"20137
+ }20138
+ },20139
+ "user_id": "@alice_933:hs1",20140
+ "unsigned": {}20141
+ }20142
+ },20143
+ "@alice_937:hs1": {20144
+ "ALICEDEVICE937": {20145
+ "algorithms": [20146
+ "m.olm.v1.curve25519-aes-sha2",20147
+ "m.megolm.v1.aes-sha2"20148
+ ],20149
+ "device_id": "ALICEDEVICE937",20150
+ "keys": {20151
+ "curve25519:ALICEDEVICE937": "yvp6IEZYDEjNU2cteHuV6HaGHBUAeJBSKb4/IgGm9gA",20152
+ "ed25519:ALICEDEVICE937": "Iz6uhf+3ce6bmnyWhwrDcvq44hPg64Xe2NLHDVQK8O0"20153
+ },20154
+ "signatures": {20155
+ "@alice_937:hs1": {20156
+ "ed25519:ALICEDEVICE937": "sQ09FYjTDXsGtNOLrpSmOTuc+jzaWIjHSbrkQzKy+u/KPH5I5H3boZ3DafWvwNf8OJvI/V5HOaPkrR8OaSh/Cw"20157
+ }20158
+ },20159
+ "user_id": "@alice_937:hs1",20160
+ "unsigned": {}20161
+ }20162
+ },20163
+ "@alice_942:hs1": {20164
+ "ALICEDEVICE942": {20165
+ "algorithms": [20166
+ "m.olm.v1.curve25519-aes-sha2",20167
+ "m.megolm.v1.aes-sha2"20168
+ ],20169
+ "device_id": "ALICEDEVICE942",20170
+ "keys": {20171
+ "curve25519:ALICEDEVICE942": "QNN9TLYKoIDz3f+9TpeFW9NceO6nvH+NBtYZF4g0rzc",20172
+ "ed25519:ALICEDEVICE942": "VmL7zVZgg+qUy9oBsAWBBkXZUlR8pfOFhmf/pJr0h7E"20173
+ },20174
+ "signatures": {20175
+ "@alice_942:hs1": {20176
+ "ed25519:ALICEDEVICE942": "zfq64MMU/1LPk4iAR1X3sZA4yQa/FlOn2KWkzb4OhiUtplaAMVbdYSqf28t9OndquGoiXfPu9S013ZaF2EJvDQ"20177
+ }20178
+ },20179
+ "user_id": "@alice_942:hs1",20180
+ "unsigned": {}20181
+ }20182
+ },20183
+ "@alice_948:hs1": {20184
+ "ALICEDEVICE948": {20185
+ "algorithms": [20186
+ "m.olm.v1.curve25519-aes-sha2",20187
+ "m.megolm.v1.aes-sha2"20188
+ ],20189
+ "device_id": "ALICEDEVICE948",20190
+ "keys": {20191
+ "curve25519:ALICEDEVICE948": "kkREoDZyV6AqVObJ0shPpx3XgaMMb/G5vGkQOvrzTFs",20192
+ "ed25519:ALICEDEVICE948": "8u7hDQWibJ7jPfjYKESb2W/FdAsKFIWf65VSZqIeiYs"20193
+ },20194
+ "signatures": {20195
+ "@alice_948:hs1": {20196
+ "ed25519:ALICEDEVICE948": "yzwW0zFePPDDoDEPtdMWtE136CWaW0NVEk8fi/6NYd7cNcFcO16phly9PPFPcye8l8xjIApyQaX74sl4U4LRBw"20197
+ }20198
+ },20199
+ "user_id": "@alice_948:hs1",20200
+ "unsigned": {}20201
+ }20202
+ },20203
+ "@alice_953:hs1": {20204
+ "ALICEDEVICE953": {20205
+ "algorithms": [20206
+ "m.olm.v1.curve25519-aes-sha2",20207
+ "m.megolm.v1.aes-sha2"20208
+ ],20209
+ "device_id": "ALICEDEVICE953",20210
+ "keys": {20211
+ "curve25519:ALICEDEVICE953": "+wkk+bEOcbPCbEKFIcKizAZNRkICe5/lVDSHuD4v22o",20212
+ "ed25519:ALICEDEVICE953": "xwIShCpv1yO8opxCqfC0PTiFRCuN2yWTeB/GbSTVcLo"20213
+ },20214
+ "signatures": {20215
+ "@alice_953:hs1": {20216
+ "ed25519:ALICEDEVICE953": "MI7GIDjuu6Z3UDK4BFaewE04CMmAsW8f2fPpT9LSuxTaVKCDfea6noaaQWLOSOPNvqv9AikJ6pqKEmLQCMqgDg"20217
+ }20218
+ },20219
+ "user_id": "@alice_953:hs1",20220
+ "unsigned": {}20221
+ }20222
+ },20223
+ "@alice_966:hs1": {20224
+ "ALICEDEVICE966": {20225
+ "algorithms": [20226
+ "m.olm.v1.curve25519-aes-sha2",20227
+ "m.megolm.v1.aes-sha2"20228
+ ],20229
+ "device_id": "ALICEDEVICE966",20230
+ "keys": {20231
+ "curve25519:ALICEDEVICE966": "pRDHc+P+hQAbRKzIyz7yTjUBC4aH7ZQ8GFSoyuS1vXI",20232
+ "ed25519:ALICEDEVICE966": "XLO+LDLoXOX28zu6tm1giM8Jbi/xiG8nX5BkYTzGnDE"20233
+ },20234
+ "signatures": {20235
+ "@alice_966:hs1": {20236
+ "ed25519:ALICEDEVICE966": "3lWnSfxMy5esTEtTj9UifXqq/BiDoTccX90CDG0zsIHhDMIWHHFdnc85r0TiM4qCT22dJAZu7ncf8Q/gO+u/Aw"20237
+ }20238
+ },20239
+ "user_id": "@alice_966:hs1",20240
+ "unsigned": {}20241
+ }20242
+ },20243
+ "@alice_986:hs1": {20244
+ "ALICEDEVICE986": {20245
+ "algorithms": [20246
+ "m.olm.v1.curve25519-aes-sha2",20247
+ "m.megolm.v1.aes-sha2"20248
+ ],20249
+ "device_id": "ALICEDEVICE986",20250
+ "keys": {20251
+ "curve25519:ALICEDEVICE986": "5wMfslNl9OHtuFRuKl1lAuiEX8xaX1PRBkVzkR0f330",20252
+ "ed25519:ALICEDEVICE986": "a5GlyqlxgbQOFPjoHQx11nWYKMzjCcrB+OE/xXi5K1g"20253
+ },20254
+ "signatures": {20255
+ "@alice_986:hs1": {20256
+ "ed25519:ALICEDEVICE986": "aL+WE/hqBsjAxpdT505bga8RHMzIKO1I9RHiBDP3hMOHIiOLd4I75DZWIQqDHKHQfkALaJIyxGcdWt5Yht5tDg"20257
+ }20258
+ },20259
+ "user_id": "@alice_986:hs1",20260
+ "unsigned": {}20261
+ }20262
+ },20263
+ "@alice_989:hs1": {20264
+ "ALICEDEVICE989": {20265
+ "algorithms": [20266
+ "m.olm.v1.curve25519-aes-sha2",20267
+ "m.megolm.v1.aes-sha2"20268
+ ],20269
+ "device_id": "ALICEDEVICE989",20270
+ "keys": {20271
+ "curve25519:ALICEDEVICE989": "8ZaugJHPY5UUQAASHQ8V01Oo4cYVpdTXVMsJKO6C2xo",20272
+ "ed25519:ALICEDEVICE989": "u4eDY64SjMzfFMrAIrqbpz6mprQItiZihYW1JELXgOA"20273
+ },20274
+ "signatures": {20275
+ "@alice_989:hs1": {20276
+ "ed25519:ALICEDEVICE989": "FDwH94eZJyorK6AMnCl8bRZuCdgq1ZQGyUX08z/iL7ta5xmOq0r7fkZzdGGr009qQY8mrGm3YKKepe10ATqsAg"20277
+ }20278
+ },20279
+ "user_id": "@alice_989:hs1",20280
+ "unsigned": {}20281
+ }20282
+ },20283
+ "@alice_998:hs1": {20284
+ "ALICEDEVICE998": {20285
+ "algorithms": [20286
+ "m.olm.v1.curve25519-aes-sha2",20287
+ "m.megolm.v1.aes-sha2"20288
+ ],20289
+ "device_id": "ALICEDEVICE998",20290
+ "keys": {20291
+ "curve25519:ALICEDEVICE998": "YMPp2yWKgZ2GUtpVzFjDaPv+lJxgfcSF6nXgCreP8i0",20292
+ "ed25519:ALICEDEVICE998": "18J2B/gJM7Gx5aGOK0d0b3o0c+ZT9txh4ao44YSgN7E"20293
+ },20294
+ "signatures": {20295
+ "@alice_998:hs1": {20296
+ "ed25519:ALICEDEVICE998": "hqplnDnyXMskzjKu5AcRWDlEOUhuW+1bAyUPnghIyUgntTcJfG9jhhgrGilEOfV0FqeNsRFnGyiix5VvQjpABQ"20297
+ }20298
+ },20299
+ "user_id": "@alice_998:hs1",20300
+ "unsigned": {}20301
+ }20302
+ },20303
+ "@alice_0:hs1": {20304
+ "ALICEDEVICE0": {20305
+ "algorithms": [20306
+ "m.olm.v1.curve25519-aes-sha2",20307
+ "m.megolm.v1.aes-sha2"20308
+ ],20309
+ "device_id": "ALICEDEVICE0",20310
+ "keys": {20311
+ "curve25519:ALICEDEVICE0": "vlVWx/3pblWM8ud0MG+aF0aGEkAXdNcVdQ0o+q9EDWU",20312
+ "ed25519:ALICEDEVICE0": "IJOWo4WxWM2RzAjdwil7kE0KbFG3M+CndT7nZyHoPVA"20313
+ },20314
+ "signatures": {20315
+ "@alice_0:hs1": {20316
+ "ed25519:ALICEDEVICE0": "7zlJq2/G+zVEvTmMNAi5Fm8SemDVf/UlWwaGIqXtZsPC1StU/CJ/lNUnzvkXbgFbmid714+hc0x0Lf6+NHTjCA"20317
+ }20318
+ },20319
+ "user_id": "@alice_0:hs1",20320
+ "unsigned": {}20321
+ }20322
+ },20323
+ "@alice_1004:hs1": {20324
+ "ALICEDEVICE1004": {20325
+ "algorithms": [20326
+ "m.olm.v1.curve25519-aes-sha2",20327
+ "m.megolm.v1.aes-sha2"20328
+ ],20329
+ "device_id": "ALICEDEVICE1004",20330
+ "keys": {20331
+ "curve25519:ALICEDEVICE1004": "Unh+od/pBAAv0zKYK77darRa8WKqaCmmjo6o8tFyNyo",20332
+ "ed25519:ALICEDEVICE1004": "FatqaFu70cXYLyV8x+KLO64baJU/alEuee3xoerGS/Y"20333
+ },20334
+ "signatures": {20335
+ "@alice_1004:hs1": {20336
+ "ed25519:ALICEDEVICE1004": "439wvUyUbtjZ7lepqFd5v0ayUBEiS5XvnsJMs1WpYHauMecdM43JgEhwCaHAKNO2VUq2oYxCZ/4WCaEKqiGXAA"20337
+ }20338
+ },20339
+ "user_id": "@alice_1004:hs1",20340
+ "unsigned": {}20341
+ }20342
+ },20343
+ "@alice_1006:hs1": {20344
+ "ALICEDEVICE1006": {20345
+ "algorithms": [20346
+ "m.olm.v1.curve25519-aes-sha2",20347
+ "m.megolm.v1.aes-sha2"20348
+ ],20349
+ "device_id": "ALICEDEVICE1006",20350
+ "keys": {20351
+ "curve25519:ALICEDEVICE1006": "4D2YH0PgmxavmMnC4UDiuC7jdng4YOpAQZJoCq75vVA",20352
+ "ed25519:ALICEDEVICE1006": "fWC2nsHjsQZXbiAA8rS9RhSc7xz5YDxhcPcMtdSyLKs"20353
+ },20354
+ "signatures": {20355
+ "@alice_1006:hs1": {20356
+ "ed25519:ALICEDEVICE1006": "8oODQqKVmE8LjUMwKvGGxfrAJ9CKxxxFxFbyfF18K/GCUw34fCBmPzt8HqCv+IITaYP7RJ9dEKvOY/LZ7uXpCg"20357
+ }20358
+ },20359
+ "user_id": "@alice_1006:hs1",20360
+ "unsigned": {}20361
+ }20362
+ },20363
+ "@alice_1008:hs1": {20364
+ "ALICEDEVICE1008": {20365
+ "algorithms": [20366
+ "m.olm.v1.curve25519-aes-sha2",20367
+ "m.megolm.v1.aes-sha2"20368
+ ],20369
+ "device_id": "ALICEDEVICE1008",20370
+ "keys": {20371
+ "curve25519:ALICEDEVICE1008": "iD8IhEA4qWsFQSLy93ZbTmfXz46tikJ4HVs6k6B/Vio",20372
+ "ed25519:ALICEDEVICE1008": "n7A4VmAbOjnv6g62cccu4Sbyr7jQDrdWEKfZCcZl2jk"20373
+ },20374
+ "signatures": {20375
+ "@alice_1008:hs1": {20376
+ "ed25519:ALICEDEVICE1008": "ivi20i0DdJCCoZrjvjlSkqaQGtoIHWSTrRrYtldN0u6BSeXGTbSY72HR0KS7/kMRmitb/83BM9CvdOM68YltAQ"20377
+ }20378
+ },20379
+ "user_id": "@alice_1008:hs1",20380
+ "unsigned": {}20381
+ }20382
+ },20383
+ "@alice_1010:hs1": {20384
+ "ALICEDEVICE1010": {20385
+ "algorithms": [20386
+ "m.olm.v1.curve25519-aes-sha2",20387
+ "m.megolm.v1.aes-sha2"20388
+ ],20389
+ "device_id": "ALICEDEVICE1010",20390
+ "keys": {20391
+ "curve25519:ALICEDEVICE1010": "G/iRtBqYlQ7fwiotmnn8ebzqSpnMoDD4CI1p5ZqCqxE",20392
+ "ed25519:ALICEDEVICE1010": "AsK7jRbFoqIT+T5QuzTRr0CR3DtruUUuZYvsUW02rwM"20393
+ },20394
+ "signatures": {20395
+ "@alice_1010:hs1": {20396
+ "ed25519:ALICEDEVICE1010": "sQUwxJXOCIfdB/V9ghrn7+2bsHVt0B8v8rlxxwx16Snl0SGQiX6Cqhd8renbY5JaKR2ELZVMYVSFZn997ReYBA"20397
+ }20398
+ },20399
+ "user_id": "@alice_1010:hs1",20400
+ "unsigned": {}20401
+ }20402
+ },20403
+ "@alice_1016:hs1": {20404
+ "ALICEDEVICE1016": {20405
+ "algorithms": [20406
+ "m.olm.v1.curve25519-aes-sha2",20407
+ "m.megolm.v1.aes-sha2"20408
+ ],20409
+ "device_id": "ALICEDEVICE1016",20410
+ "keys": {20411
+ "curve25519:ALICEDEVICE1016": "1EOagVpiGbbZa5QlPbzTHmsfhqSS8EufYcH7Y54LhSM",20412
+ "ed25519:ALICEDEVICE1016": "DBOmPEHb8gXQbKy+rGeAUtARsaYPZ7CwO40OTKZII3I"20413
+ },20414
+ "signatures": {20415
+ "@alice_1016:hs1": {20416
+ "ed25519:ALICEDEVICE1016": "mJPvX9+RXFgnXJQPy+JNToPLkmsARFSvU5lyAXo2g71N/3doS5tOUwkq17CPQdic2pwDYNlDVYniMtTtXRPTAQ"20417
+ }20418
+ },20419
+ "user_id": "@alice_1016:hs1",20420
+ "unsigned": {}20421
+ }20422
+ },20423
+ "@alice_1020:hs1": {20424
+ "ALICEDEVICE1020": {20425
+ "algorithms": [20426
+ "m.olm.v1.curve25519-aes-sha2",20427
+ "m.megolm.v1.aes-sha2"20428
+ ],20429
+ "device_id": "ALICEDEVICE1020",20430
+ "keys": {20431
+ "curve25519:ALICEDEVICE1020": "WvmAZzDjFRHxC4dB90mfgf85uJ5vcHLzsdoyqQeC8h8",20432
+ "ed25519:ALICEDEVICE1020": "kwSfOOxjhe/UPZM4KmYBAS+8AJoXZih1HVJs2crzQuA"20433
+ },20434
+ "signatures": {20435
+ "@alice_1020:hs1": {20436
+ "ed25519:ALICEDEVICE1020": "W2wu4PCrln3LWg4+8bRmnbwXU2bCSn8rOAvD95eNgQtW9pUMt3JMTEiF4bSB8DoF1TzwW7HHnUAdhr4YBavnBA"20437
+ }20438
+ },20439
+ "user_id": "@alice_1020:hs1",20440
+ "unsigned": {}20441
+ }20442
+ },20443
+ "@alice_1026:hs1": {20444
+ "ALICEDEVICE1026": {20445
+ "algorithms": [20446
+ "m.olm.v1.curve25519-aes-sha2",20447
+ "m.megolm.v1.aes-sha2"20448
+ ],20449
+ "device_id": "ALICEDEVICE1026",20450
+ "keys": {20451
+ "curve25519:ALICEDEVICE1026": "fNLD+pkaKEVq+GKI1ThEuV7G8lhUjTLqx5FV63pdwWc",20452
+ "ed25519:ALICEDEVICE1026": "3ZeQN3nzsSo2d66LXiuRvJXo3r6jLxOwTxWOW6K+iCM"20453
+ },20454
+ "signatures": {20455
+ "@alice_1026:hs1": {20456
+ "ed25519:ALICEDEVICE1026": "0figQt5EEHmrwDgVmvY84LbQpWsOJwRtWdC9/ohiOX05/Z4c3KQiH3oUN5p9c4Gp5KMlUWelniCJO2wfmez3Bw"20457
+ }20458
+ },20459
+ "user_id": "@alice_1026:hs1",20460
+ "unsigned": {}20461
+ }20462
+ },20463
+ "@alice_1030:hs1": {20464
+ "ALICEDEVICE1030": {20465
+ "algorithms": [20466
+ "m.olm.v1.curve25519-aes-sha2",20467
+ "m.megolm.v1.aes-sha2"20468
+ ],20469
+ "device_id": "ALICEDEVICE1030",20470
+ "keys": {20471
+ "curve25519:ALICEDEVICE1030": "8P6LMjvu8yimbpXprTLP9zTgLPk1n73CVXc+7c8P92k",20472
+ "ed25519:ALICEDEVICE1030": "CXaEVKTphZ0s9m6s4Bk3pL43Phpw4PaOPO4lSS1vV6c"20473
+ },20474
+ "signatures": {20475
+ "@alice_1030:hs1": {20476
+ "ed25519:ALICEDEVICE1030": "a4dYkiXbcxo49O9MwumAtgdn1s/y+KdZKZRIC61f5Skn5umyJ87M2dn0C6qq23UH1iWtSDAxq61hTCuujzd+Bg"20477
+ }20478
+ },20479
+ "user_id": "@alice_1030:hs1",20480
+ "unsigned": {}20481
+ }20482
+ },20483
+ "@alice_1036:hs1": {20484
+ "ALICEDEVICE1036": {20485
+ "algorithms": [20486
+ "m.olm.v1.curve25519-aes-sha2",20487
+ "m.megolm.v1.aes-sha2"20488
+ ],20489
+ "device_id": "ALICEDEVICE1036",20490
+ "keys": {20491
+ "curve25519:ALICEDEVICE1036": "gqJd+zi3yxfLb/KP7YVRuhFEpgk4Co1MBTR3W0uiji8",20492
+ "ed25519:ALICEDEVICE1036": "4BDHnmw7ck5OiJDqzjWwrljd6j7+HpyyiEbDzJ94QM0"20493
+ },20494
+ "signatures": {20495
+ "@alice_1036:hs1": {20496
+ "ed25519:ALICEDEVICE1036": "r1KbbmWsb+/AnkIqFZj8s8k2XtfSzfJDzZtoU+cvdHaYpPadSBIkMTAG3uUmw7sqd+Udg0CIHsy9e5CLsa91CQ"20497
+ }20498
+ },20499
+ "user_id": "@alice_1036:hs1",20500
+ "unsigned": {}20501
+ }20502
+ },20503
+ "@alice_1039:hs1": {20504
+ "ALICEDEVICE1039": {20505
+ "algorithms": [20506
+ "m.olm.v1.curve25519-aes-sha2",20507
+ "m.megolm.v1.aes-sha2"20508
+ ],20509
+ "device_id": "ALICEDEVICE1039",20510
+ "keys": {20511
+ "curve25519:ALICEDEVICE1039": "FNwB6sdtP5QwpseqczFJ3gHtB+9dr+koBQH1txStRw8",20512
+ "ed25519:ALICEDEVICE1039": "VssNHBa7u4AxHGp0THlHksCE04cZBzlrMos/mcaoRLk"20513
+ },20514
+ "signatures": {20515
+ "@alice_1039:hs1": {20516
+ "ed25519:ALICEDEVICE1039": "oD8BxB4mA6W6xQmwmlbwsmMLHFydU6aTDVIGToaTmUnKC9Mmh568abLnJ3c4dh8cZtQIfGQyTzTcJLKKGCj+Aw"20517
+ }20518
+ },20519
+ "user_id": "@alice_1039:hs1",20520
+ "unsigned": {}20521
+ }20522
+ },20523
+ "@alice_1045:hs1": {20524
+ "ALICEDEVICE1045": {20525
+ "algorithms": [20526
+ "m.olm.v1.curve25519-aes-sha2",20527
+ "m.megolm.v1.aes-sha2"20528
+ ],20529
+ "device_id": "ALICEDEVICE1045",20530
+ "keys": {20531
+ "curve25519:ALICEDEVICE1045": "6g7geFj8Bd855fRz6PxrnSd0DNNosBLpvP3b9q1WXgs",20532
+ "ed25519:ALICEDEVICE1045": "fFb5gEvnawGyEbuDSwLFN6PZKj/gSF3FVcNbMxTbqvM"20533
+ },20534
+ "signatures": {20535
+ "@alice_1045:hs1": {20536
+ "ed25519:ALICEDEVICE1045": "Gz5/WTzESmJXaMd4+JbpddQ7du1dFXQzKDrGxKKtnVa1PBZrwKLh340tVONH7fCr0c9vFZmt++qsmVp+74R2Ag"20537
+ }20538
+ },20539
+ "user_id": "@alice_1045:hs1",20540
+ "unsigned": {}20541
+ }20542
+ },20543
+ "@alice_1052:hs1": {20544
+ "ALICEDEVICE1052": {20545
+ "algorithms": [20546
+ "m.olm.v1.curve25519-aes-sha2",20547
+ "m.megolm.v1.aes-sha2"20548
+ ],20549
+ "device_id": "ALICEDEVICE1052",20550
+ "keys": {20551
+ "curve25519:ALICEDEVICE1052": "XzKXdbhQgiGU/1A8C6L5rtjpyBX2CAxMci//LXXyNT8",20552
+ "ed25519:ALICEDEVICE1052": "TkR6ixJ3Nokh+8fboimOfemn/u3Nqvqw+84uEW/UdNQ"20553
+ },20554
+ "signatures": {20555
+ "@alice_1052:hs1": {20556
+ "ed25519:ALICEDEVICE1052": "CVgFVb3K2ccqe3hXAUjWIgirnAJgkOl/ryFAfXviIIGGf4IYHmDt1+IRSRCZFJ4dUtZuqsMsMQCXu1mokkGqAQ"20557
+ }20558
+ },20559
+ "user_id": "@alice_1052:hs1",20560
+ "unsigned": {}20561
+ }20562
+ },20563
+ "@alice_1067:hs1": {20564
+ "ALICEDEVICE1067": {20565
+ "algorithms": [20566
+ "m.olm.v1.curve25519-aes-sha2",20567
+ "m.megolm.v1.aes-sha2"20568
+ ],20569
+ "device_id": "ALICEDEVICE1067",20570
+ "keys": {20571
+ "curve25519:ALICEDEVICE1067": "ckVroyL5dQsUiprxTPpnNXq5bdTTTtz8zvyZE9BHmWY",20572
+ "ed25519:ALICEDEVICE1067": "lPB8E5ybeDuwWGXbdyqn36/FDDZi3evYaPJgTgriwds"20573
+ },20574
+ "signatures": {20575
+ "@alice_1067:hs1": {20576
+ "ed25519:ALICEDEVICE1067": "zqfPLAsC7NkY5WY3+3e3a6Suc/24JyVMde6RsyCM05INASx09Q2DmkCOg+k+MbFM+LRg0fv6Im5LmZFvleLJCw"20577
+ }20578
+ },20579
+ "user_id": "@alice_1067:hs1",20580
+ "unsigned": {}20581
+ }20582
+ },20583
+ "@alice_1084:hs1": {20584
+ "ALICEDEVICE1084": {20585
+ "algorithms": [20586
+ "m.olm.v1.curve25519-aes-sha2",20587
+ "m.megolm.v1.aes-sha2"20588
+ ],20589
+ "device_id": "ALICEDEVICE1084",20590
+ "keys": {20591
+ "curve25519:ALICEDEVICE1084": "3PEQXjrFilGB7xcMbFgItTiO1nUjg8G1KHZbIXJUrUA",20592
+ "ed25519:ALICEDEVICE1084": "/VnLRjN2+nbV6z1swx6txOllOvGtVZF2stPd7VTPEv4"20593
+ },20594
+ "signatures": {20595
+ "@alice_1084:hs1": {20596
+ "ed25519:ALICEDEVICE1084": "ur+vWeAAH9lEiPUOpE+9q/cl2D49Hrda3d2rpp5fpjeKNOAcqsjpfIzPys7BClDnNFx6Jow6fdDEogGRdzI9DA"20597
+ }20598
+ },20599
+ "user_id": "@alice_1084:hs1",20600
+ "unsigned": {}20601
+ }20602
+ },20603
+ "@alice_1087:hs1": {20604
+ "ALICEDEVICE1087": {20605
+ "algorithms": [20606
+ "m.olm.v1.curve25519-aes-sha2",20607
+ "m.megolm.v1.aes-sha2"20608
+ ],20609
+ "device_id": "ALICEDEVICE1087",20610
+ "keys": {20611
+ "curve25519:ALICEDEVICE1087": "KK1AfXnnjp8GOgsSZpapJSlC3KV7/WNX7Orgioi84QY",20612
+ "ed25519:ALICEDEVICE1087": "ZwpKvsL2tpFasuReseKvdmEhtQJJnJSJGaaTqSplGC4"20613
+ },20614
+ "signatures": {20615
+ "@alice_1087:hs1": {20616
+ "ed25519:ALICEDEVICE1087": "2ZJD/yY/ZNX0MLGZorBA3NowWURXUeDDzWSC3OKzbKJFMI5+tken5IOWZOSkJFadrTXdIPbXQ5W4fShDCBylDQ"20617
+ }20618
+ },20619
+ "user_id": "@alice_1087:hs1",20620
+ "unsigned": {}20621
+ }20622
+ },20623
+ "@alice_1090:hs1": {20624
+ "ALICEDEVICE1090": {20625
+ "algorithms": [20626
+ "m.olm.v1.curve25519-aes-sha2",20627
+ "m.megolm.v1.aes-sha2"20628
+ ],20629
+ "device_id": "ALICEDEVICE1090",20630
+ "keys": {20631
+ "curve25519:ALICEDEVICE1090": "rXHHWaqzpu16av0leBZiOlRgsA/KSym+Twlv2Zloq0E",20632
+ "ed25519:ALICEDEVICE1090": "UFSasbXlO/xEmb9lYZlpP/WW87ToT9RGxbzQJDTuEAA"20633
+ },20634
+ "signatures": {20635
+ "@alice_1090:hs1": {20636
+ "ed25519:ALICEDEVICE1090": "BLESUKg4tiX2P4c6Drt7rqM2cDPKZPsbiyPNubn+NkLz85DS/n16L7nEw4PtzxUjo9y9H/4PbXY6Y+CLT6ngCw"20637
+ }20638
+ },20639
+ "user_id": "@alice_1090:hs1",20640
+ "unsigned": {}20641
+ }20642
+ },20643
+ "@alice_1096:hs1": {20644
+ "ALICEDEVICE1096": {20645
+ "algorithms": [20646
+ "m.olm.v1.curve25519-aes-sha2",20647
+ "m.megolm.v1.aes-sha2"20648
+ ],20649
+ "device_id": "ALICEDEVICE1096",20650
+ "keys": {20651
+ "curve25519:ALICEDEVICE1096": "MFHXFiA4/DlyjsIzjSWlgmvOa2ec49SRkJ0iX/8QlRo",20652
+ "ed25519:ALICEDEVICE1096": "i7Aj1BxsWkR2zjdiZ0UjKC5AgkJ/6/EeuAFpy1S4TmI"20653
+ },20654
+ "signatures": {20655
+ "@alice_1096:hs1": {20656
+ "ed25519:ALICEDEVICE1096": "hU9mx+0l4KorJL1xLg77vBM3MaCNi9I9BDyYE4gTOUokw+u9XbgQzR59pZH6ck0cGnZ8PchX+pz1msxwo4CyAA"20657
+ }20658
+ },20659
+ "user_id": "@alice_1096:hs1",20660
+ "unsigned": {}20661
+ }20662
+ },20663
+ "@alice_1107:hs1": {20664
+ "ALICEDEVICE1107": {20665
+ "algorithms": [20666
+ "m.olm.v1.curve25519-aes-sha2",20667
+ "m.megolm.v1.aes-sha2"20668
+ ],20669
+ "device_id": "ALICEDEVICE1107",20670
+ "keys": {20671
+ "curve25519:ALICEDEVICE1107": "7NAm6ODWlIViLLVm61JUWC8Eu8azo7a59bXSP12zHgk",20672
+ "ed25519:ALICEDEVICE1107": "imXsHqFRcTIN4ks6dCt7/yyrtUnfll3y305Irh62tfQ"20673
+ },20674
+ "signatures": {20675
+ "@alice_1107:hs1": {20676
+ "ed25519:ALICEDEVICE1107": "wxHGpu2JFxWSENAKtH5Wk0Nm2/IQ74rXnvugBVLImJU589wEdoiFNly6+3+7pwMyLa2Zcnfk13vDdIJoiWCrBQ"20677
+ }20678
+ },20679
+ "user_id": "@alice_1107:hs1",20680
+ "unsigned": {}20681
+ }20682
+ },20683
+ "@alice_1112:hs1": {20684
+ "ALICEDEVICE1112": {20685
+ "algorithms": [20686
+ "m.olm.v1.curve25519-aes-sha2",20687
+ "m.megolm.v1.aes-sha2"20688
+ ],20689
+ "device_id": "ALICEDEVICE1112",20690
+ "keys": {20691
+ "curve25519:ALICEDEVICE1112": "9QuTjNIjUmoBfqVJj1ybV4UO7W3Y4VDCw/20m+SLYx4",20692
+ "ed25519:ALICEDEVICE1112": "O3uwOu7Ut0+SbewgeQQAKOQk2i6QVftOS+XzBfCC/vQ"20693
+ },20694
+ "signatures": {20695
+ "@alice_1112:hs1": {20696
+ "ed25519:ALICEDEVICE1112": "XweTSUw+z4rgOy2UUp/Ie2NEanWp2jgcUCFAkCMCZUxOtFU46JNV/OLT7pkG0doRl4XUN92J9Ok35FKcyaeIDQ"20697
+ }20698
+ },20699
+ "user_id": "@alice_1112:hs1",20700
+ "unsigned": {}20701
+ }20702
+ },20703
+ "@alice_1114:hs1": {20704
+ "ALICEDEVICE1114": {20705
+ "algorithms": [20706
+ "m.olm.v1.curve25519-aes-sha2",20707
+ "m.megolm.v1.aes-sha2"20708
+ ],20709
+ "device_id": "ALICEDEVICE1114",20710
+ "keys": {20711
+ "curve25519:ALICEDEVICE1114": "SLlbh01VA09voxvDAPYcEO6ANCC+ANlwWgGPBExo1mc",20712
+ "ed25519:ALICEDEVICE1114": "Ai4CivD0mi09G7GPzuhUbJkDuGbyNJinL62/TnrQFhQ"20713
+ },20714
+ "signatures": {20715
+ "@alice_1114:hs1": {20716
+ "ed25519:ALICEDEVICE1114": "YNelwqE/FMaHUusQdBoX9IGNjCrShONMgNVkFuEk//TWrXm6205J251NXQY20ZWm6HyM3QmdfJkYH8Fe9FvFDA"20717
+ }20718
+ },20719
+ "user_id": "@alice_1114:hs1",20720
+ "unsigned": {}20721
+ }20722
+ },20723
+ "@alice_1129:hs1": {20724
+ "ALICEDEVICE1129": {20725
+ "algorithms": [20726
+ "m.olm.v1.curve25519-aes-sha2",20727
+ "m.megolm.v1.aes-sha2"20728
+ ],20729
+ "device_id": "ALICEDEVICE1129",20730
+ "keys": {20731
+ "curve25519:ALICEDEVICE1129": "ZTdsasp8dlQYmiLf9IvC7MrQittXXqqBrlcOgWFyVhQ",20732
+ "ed25519:ALICEDEVICE1129": "cco2L8hLlvFeUs6vlRCydRrja8UHclHhM/J01JOCThs"20733
+ },20734
+ "signatures": {20735
+ "@alice_1129:hs1": {20736
+ "ed25519:ALICEDEVICE1129": "Ycg0MUAMpD0nR14JgqvOemalFseh9NYXtYA7xE7YBD1fErDPBP5XkE8tI5SLFcGv/Z3uuMby98L9hjcL/4ZABw"20737
+ }20738
+ },20739
+ "user_id": "@alice_1129:hs1",20740
+ "unsigned": {}20741
+ }20742
+ },20743
+ "@alice_1133:hs1": {20744
+ "ALICEDEVICE1133": {20745
+ "algorithms": [20746
+ "m.olm.v1.curve25519-aes-sha2",20747
+ "m.megolm.v1.aes-sha2"20748
+ ],20749
+ "device_id": "ALICEDEVICE1133",20750
+ "keys": {20751
+ "curve25519:ALICEDEVICE1133": "K2/AY8q5RELrHXDRry45nqNw/UO832jXV8fUQW+sgnE",20752
+ "ed25519:ALICEDEVICE1133": "ckXAhUBCby+hKIJQR9kF7wORkSZiWdlXAis9xUAMcQM"20753
+ },20754
+ "signatures": {20755
+ "@alice_1133:hs1": {20756
+ "ed25519:ALICEDEVICE1133": "zLSKkNrhK2G6YMjdS1WjEIfbzgXWK0dILS5G8PYDaTGkFTOks+A4LGGQD2PQIr4YjR5AANeHqWSNmkA6lEkeCw"20757
+ }20758
+ },20759
+ "user_id": "@alice_1133:hs1",20760
+ "unsigned": {}20761
+ }20762
+ },20763
+ "@alice_1160:hs1": {20764
+ "ALICEDEVICE1160": {20765
+ "algorithms": [20766
+ "m.olm.v1.curve25519-aes-sha2",20767
+ "m.megolm.v1.aes-sha2"20768
+ ],20769
+ "device_id": "ALICEDEVICE1160",20770
+ "keys": {20771
+ "curve25519:ALICEDEVICE1160": "BFG3K1aHU6Jvrp/CwLnsJIh6niY9wwOmOyvWSxVw9Es",20772
+ "ed25519:ALICEDEVICE1160": "TTtXhZf3cKvo+kqz/xGsgoQraIFGUW15WV29lcFsM3g"20773
+ },20774
+ "signatures": {20775
+ "@alice_1160:hs1": {20776
+ "ed25519:ALICEDEVICE1160": "hCSDvO19UM2uKD6yBcMwK7GMLxrWfM71dWNGGiUS0WZQc9TH0pe/FI5um5KI+oreTdQVk+A5HSah685BKJT7CQ"20777
+ }20778
+ },20779
+ "user_id": "@alice_1160:hs1",20780
+ "unsigned": {}20781
+ }20782
+ },20783
+ "@alice_1169:hs1": {20784
+ "ALICEDEVICE1169": {20785
+ "algorithms": [20786
+ "m.olm.v1.curve25519-aes-sha2",20787
+ "m.megolm.v1.aes-sha2"20788
+ ],20789
+ "device_id": "ALICEDEVICE1169",20790
+ "keys": {20791
+ "curve25519:ALICEDEVICE1169": "Gv3Kc5F/LLwmU1ArAn8tyMxN6EQIIE6S+/BWtniw42Y",20792
+ "ed25519:ALICEDEVICE1169": "N7bMvNZPZlQSMEV5jxndADbc/nuPWRsr2ouhN07vgiQ"20793
+ },20794
+ "signatures": {20795
+ "@alice_1169:hs1": {20796
+ "ed25519:ALICEDEVICE1169": "RoKd06MRtLzksl8FyjUkMwacsuF45SX+wY6r1gwqSI9cxClxP9w21fQOloKJG3D4iWykCaHD5v1L9zNQk2tSCg"20797
+ }20798
+ },20799
+ "user_id": "@alice_1169:hs1",20800
+ "unsigned": {}20801
+ }20802
+ },20803
+ "@alice_1172:hs1": {20804
+ "ALICEDEVICE1172": {20805
+ "algorithms": [20806
+ "m.olm.v1.curve25519-aes-sha2",20807
+ "m.megolm.v1.aes-sha2"20808
+ ],20809
+ "device_id": "ALICEDEVICE1172",20810
+ "keys": {20811
+ "curve25519:ALICEDEVICE1172": "PFpvktA0YP/csHzvaED3pUrkzox9nKTotRAMl0fiBCA",20812
+ "ed25519:ALICEDEVICE1172": "6XudObJOnIyBYn00mi90w1ZiDGQES9VICKb7q68uNwQ"20813
+ },20814
+ "signatures": {20815
+ "@alice_1172:hs1": {20816
+ "ed25519:ALICEDEVICE1172": "jntdI/w6bVBhjcQVHsTr9w5DkoLLn0zx/D4W45zoic3xEPfCCOI1BIN+roj4XVa2be6n5RC8cy8SUqT6cj6DDg"20817
+ }20818
+ },20819
+ "user_id": "@alice_1172:hs1",20820
+ "unsigned": {}20821
+ }20822
+ },20823
+ "@alice_1190:hs1": {20824
+ "ALICEDEVICE1190": {20825
+ "algorithms": [20826
+ "m.olm.v1.curve25519-aes-sha2",20827
+ "m.megolm.v1.aes-sha2"20828
+ ],20829
+ "device_id": "ALICEDEVICE1190",20830
+ "keys": {20831
+ "curve25519:ALICEDEVICE1190": "2t+a+wUNnn1Pvivff508IhMlm2eQnVolW8RJARhK1hg",20832
+ "ed25519:ALICEDEVICE1190": "amQgU4r8DwcAubpQ9OhR44AL+R3UZ25S4s3/RCbIhf0"20833
+ },20834
+ "signatures": {20835
+ "@alice_1190:hs1": {20836
+ "ed25519:ALICEDEVICE1190": "sip3npPj9Fh4tz8gQuwxaJ2jrWZjpf58iY3lHZv1vyI8TKws1/tPNRZZBC/cGLWCwPgaYBsEQNkc2QqrtkbxBQ"20837
+ }20838
+ },20839
+ "user_id": "@alice_1190:hs1",20840
+ "unsigned": {}20841
+ }20842
+ },20843
+ "@alice_1197:hs1": {20844
+ "ALICEDEVICE1197": {20845
+ "algorithms": [20846
+ "m.olm.v1.curve25519-aes-sha2",20847
+ "m.megolm.v1.aes-sha2"20848
+ ],20849
+ "device_id": "ALICEDEVICE1197",20850
+ "keys": {20851
+ "curve25519:ALICEDEVICE1197": "MebHooGaZAYwqYmxno7zNtz9unYdKlTbE3x//FVtAUU",20852
+ "ed25519:ALICEDEVICE1197": "CjVNRErfI510aXFlAgzK/W6lyiEfVAAwNABZaOvkOZA"20853
+ },20854
+ "signatures": {20855
+ "@alice_1197:hs1": {20856
+ "ed25519:ALICEDEVICE1197": "TPKNAgWFks7NY9PjP5wTC9ZZucDyjKexUV5AZdgKqbYbio3rttKKceMeCBgst7Ua0Jxpev1aN/qTNEIyIIFcDA"20857
+ }20858
+ },20859
+ "user_id": "@alice_1197:hs1",20860
+ "unsigned": {}20861
+ }20862
+ },20863
+ "@alice_11:hs1": {20864
+ "ALICEDEVICE11": {20865
+ "algorithms": [20866
+ "m.olm.v1.curve25519-aes-sha2",20867
+ "m.megolm.v1.aes-sha2"20868
+ ],20869
+ "device_id": "ALICEDEVICE11",20870
+ "keys": {20871
+ "curve25519:ALICEDEVICE11": "18ve8AsJxCBHcIaleIhAxJBCL+8zqpzY1/U2nNBCvAY",20872
+ "ed25519:ALICEDEVICE11": "p92k7ryN/2KAy+CKonJDUh64MrYO30S+p2uITHdKDpg"20873
+ },20874
+ "signatures": {20875
+ "@alice_11:hs1": {20876
+ "ed25519:ALICEDEVICE11": "ABqnXi9dSoV7Mw3+IRuuXvLal379+lgnxDrRkcre2hBI1CHNm6m1JN15J1XgDi4zvLKIOr6GMf1Q41DnWiIcDQ"20877
+ }20878
+ },20879
+ "user_id": "@alice_11:hs1",20880
+ "unsigned": {}20881
+ }20882
+ },20883
+ "@alice_1207:hs1": {20884
+ "ALICEDEVICE1207": {20885
+ "algorithms": [20886
+ "m.olm.v1.curve25519-aes-sha2",20887
+ "m.megolm.v1.aes-sha2"20888
+ ],20889
+ "device_id": "ALICEDEVICE1207",20890
+ "keys": {20891
+ "curve25519:ALICEDEVICE1207": "7eiDj5mNEm5Cn1wnz6cTzJHIdVZA9H+gzRf5FRjGrH0",20892
+ "ed25519:ALICEDEVICE1207": "hgPkB1IceTaMhEZCNhwbwYAzz+kmggPvYvyYU7BR3DA"20893
+ },20894
+ "signatures": {20895
+ "@alice_1207:hs1": {20896
+ "ed25519:ALICEDEVICE1207": "jUcd3Ayzh5Wg+uswabQMhgH+CCwrK8RLCyV/21Kwz0QXZT2HJLg0uWk85bQyxTNlxxarDy129mwuWauGXItGCw"20897
+ }20898
+ },20899
+ "user_id": "@alice_1207:hs1",20900
+ "unsigned": {}20901
+ }20902
+ },20903
+ "@alice_1222:hs1": {20904
+ "ALICEDEVICE1222": {20905
+ "algorithms": [20906
+ "m.olm.v1.curve25519-aes-sha2",20907
+ "m.megolm.v1.aes-sha2"20908
+ ],20909
+ "device_id": "ALICEDEVICE1222",20910
+ "keys": {20911
+ "curve25519:ALICEDEVICE1222": "g5AOky0biRrBfX8W+ooh1XLzbXph56xOC6gvTuTjaHU",20912
+ "ed25519:ALICEDEVICE1222": "17YjFR9NNrb5vsmxVkDXPQog1YKAnGMNM69zpAWd52w"20913
+ },20914
+ "signatures": {20915
+ "@alice_1222:hs1": {20916
+ "ed25519:ALICEDEVICE1222": "b/l6CIMq58e9aTp6m6aDGXMMAeLCz1d+CAAYnRq9XfeTjY9+5N1P6cdit6MqUImnTsQUMamqVnwxDov9ws8RAQ"20917
+ }20918
+ },20919
+ "user_id": "@alice_1222:hs1",20920
+ "unsigned": {}20921
+ }20922
+ },20923
+ "@alice_1228:hs1": {20924
+ "ALICEDEVICE1228": {20925
+ "algorithms": [20926
+ "m.olm.v1.curve25519-aes-sha2",20927
+ "m.megolm.v1.aes-sha2"20928
+ ],20929
+ "device_id": "ALICEDEVICE1228",20930
+ "keys": {20931
+ "curve25519:ALICEDEVICE1228": "y72AEb7h9qcMZL4xKE42s/ZEMvLpaCXGiKBKm+CFnWs",20932
+ "ed25519:ALICEDEVICE1228": "/Fg+mKn8jWz7pIaHfgmS4XacAWfuWugmNMkaoriXQjA"20933
+ },20934
+ "signatures": {20935
+ "@alice_1228:hs1": {20936
+ "ed25519:ALICEDEVICE1228": "UbEPmIsfGqQMbutn86w+FYLPsv2ei18K4e73aJK993FrKGrZbru0liWox2+wsnhBW6/xbVs4cJMOVdntzdgrBg"20937
+ }20938
+ },20939
+ "user_id": "@alice_1228:hs1",20940
+ "unsigned": {}20941
+ }20942
+ },20943
+ "@alice_1229:hs1": {20944
+ "ALICEDEVICE1229": {20945
+ "algorithms": [20946
+ "m.olm.v1.curve25519-aes-sha2",20947
+ "m.megolm.v1.aes-sha2"20948
+ ],20949
+ "device_id": "ALICEDEVICE1229",20950
+ "keys": {20951
+ "curve25519:ALICEDEVICE1229": "eMN9ZhWsY/rh6VHr4HG62LPN7kv14hFWo5WYQrD3TyU",20952
+ "ed25519:ALICEDEVICE1229": "QsF3Lu2olyp6RuB40WEtDMH+vOvgvSLYR8MjnTM9WSA"20953
+ },20954
+ "signatures": {20955
+ "@alice_1229:hs1": {20956
+ "ed25519:ALICEDEVICE1229": "u26aD5q3QZqAgdeoPCHBb1eauifbRgLTn7YdhUKpisciSDYQ4TAIcn4m/YLg97lFl2dskBlQXUgk3cWxLb8uCw"20957
+ }20958
+ },20959
+ "user_id": "@alice_1229:hs1",20960
+ "unsigned": {}20961
+ }20962
+ },20963
+ "@alice_1236:hs1": {20964
+ "ALICEDEVICE1236": {20965
+ "algorithms": [20966
+ "m.olm.v1.curve25519-aes-sha2",20967
+ "m.megolm.v1.aes-sha2"20968
+ ],20969
+ "device_id": "ALICEDEVICE1236",20970
+ "keys": {20971
+ "curve25519:ALICEDEVICE1236": "MsoXH30R1+dW8KEEaaUkzQ+Z0/h2HSU7lW4XJAGYi1E",20972
+ "ed25519:ALICEDEVICE1236": "d6js6WspF6yDWID2dIv5+zwTBxD0Ywx087wENSIrSmo"20973
+ },20974
+ "signatures": {20975
+ "@alice_1236:hs1": {20976
+ "ed25519:ALICEDEVICE1236": "qcbMQTyfGXklAkPCD+35hM1AF2HEzHjrp4w9HZDInhYOSbx1fMFD2RpBmtYn9o+NRJO17vdGHV8Iu7ap49GCDQ"20977
+ }20978
+ },20979
+ "user_id": "@alice_1236:hs1",20980
+ "unsigned": {}20981
+ }20982
+ },20983
+ "@alice_1237:hs1": {20984
+ "ALICEDEVICE1237": {20985
+ "algorithms": [20986
+ "m.olm.v1.curve25519-aes-sha2",20987
+ "m.megolm.v1.aes-sha2"20988
+ ],20989
+ "device_id": "ALICEDEVICE1237",20990
+ "keys": {20991
+ "curve25519:ALICEDEVICE1237": "/X+yngLwC5uDDumNvW+bHSjljrTiYtDBfKZGOBuOhUY",20992
+ "ed25519:ALICEDEVICE1237": "v1xIrZ/f4g6qpCxgyEJ+0rfrJw44F0oOBXsaw0fV6ZQ"20993
+ },20994
+ "signatures": {20995
+ "@alice_1237:hs1": {20996
+ "ed25519:ALICEDEVICE1237": "6tJhh4P6uTcGEEVvlJMgLU+1963Fnt1OURta/qhy3cm3zIwazDnhwZVqDtEu7X1BfbivDRyZ46ZPH68YfVmJDA"20997
+ }20998
+ },20999
+ "user_id": "@alice_1237:hs1",21000
+ "unsigned": {}21001
+ }21002
+ },21003
+ "@alice_1247:hs1": {21004
+ "ALICEDEVICE1247": {21005
+ "algorithms": [21006
+ "m.olm.v1.curve25519-aes-sha2",21007
+ "m.megolm.v1.aes-sha2"21008
+ ],21009
+ "device_id": "ALICEDEVICE1247",21010
+ "keys": {21011
+ "curve25519:ALICEDEVICE1247": "OcJwYKztlTrwp2BuSjQoeg9CxH9KdlVE7Xcm+I8jqFI",21012
+ "ed25519:ALICEDEVICE1247": "Ipt+Mwvrvmz8QV7X3a5VP3laHgdenQAU95uH4cBAmjM"21013
+ },21014
+ "signatures": {21015
+ "@alice_1247:hs1": {21016
+ "ed25519:ALICEDEVICE1247": "6CYxp8Sp3tkeqckrMr74m4SZvf+OOb3UIvdz/4Z78JDbuSC/mcKfYsyPufLXWVBsPmZ5rnh2WefNlKEumIhNAA"21017
+ }21018
+ },21019
+ "user_id": "@alice_1247:hs1",21020
+ "unsigned": {}21021
+ }21022
+ },21023
+ "@alice_1256:hs1": {21024
+ "ALICEDEVICE1256": {21025
+ "algorithms": [21026
+ "m.olm.v1.curve25519-aes-sha2",21027
+ "m.megolm.v1.aes-sha2"21028
+ ],21029
+ "device_id": "ALICEDEVICE1256",21030
+ "keys": {21031
+ "curve25519:ALICEDEVICE1256": "PjDPH1X0+SCvHc2krmKI3fOsGs1uxo7pezkfWELgUwo",21032
+ "ed25519:ALICEDEVICE1256": "WAGN5m0dOgs71KTcbCT2lYcyQ/xG9f/si6UTLD1MUD4"21033
+ },21034
+ "signatures": {21035
+ "@alice_1256:hs1": {21036
+ "ed25519:ALICEDEVICE1256": "JGQKzj5Vl/e0hDJWvkE2+mehPKcQHDXGtTDHsZ4FPuBg+x0NumhMkQg4raP1D2bVL8PzXw7jRxmJNPXTTS9xBg"21037
+ }21038
+ },21039
+ "user_id": "@alice_1256:hs1",21040
+ "unsigned": {}21041
+ }21042
+ },21043
+ "@alice_125:hs1": {21044
+ "ALICEDEVICE125": {21045
+ "algorithms": [21046
+ "m.olm.v1.curve25519-aes-sha2",21047
+ "m.megolm.v1.aes-sha2"21048
+ ],21049
+ "device_id": "ALICEDEVICE125",21050
+ "keys": {21051
+ "curve25519:ALICEDEVICE125": "F62bYZ1QKCI69bzuMrdbQLVmQeWj0rK7N6z9lwzrQB0",21052
+ "ed25519:ALICEDEVICE125": "iAiUL4x4AV5/OFd+SrbwguNrF+q2hlJLnNfuwwUMs1c"21053
+ },21054
+ "signatures": {21055
+ "@alice_125:hs1": {21056
+ "ed25519:ALICEDEVICE125": "dYj47FTncQlyP7u7CiZg9RjjFWZLLjN6q4X6wA21z5gkmhKmcwGB38/B1Kzxma5EbzwE9Oq33w2CSz32KJ5tAg"21057
+ }21058
+ },21059
+ "user_id": "@alice_125:hs1",21060
+ "unsigned": {}21061
+ }21062
+ },21063
+ "@alice_1260:hs1": {21064
+ "ALICEDEVICE1260": {21065
+ "algorithms": [21066
+ "m.olm.v1.curve25519-aes-sha2",21067
+ "m.megolm.v1.aes-sha2"21068
+ ],21069
+ "device_id": "ALICEDEVICE1260",21070
+ "keys": {21071
+ "curve25519:ALICEDEVICE1260": "1EJufZAmFKmxSYipjnN9gx8CCaMemlOatL1biDmAlnw",21072
+ "ed25519:ALICEDEVICE1260": "hY+QaZWG/bPYl+hkiEDmweH8PTGjuIqpodFfL0tG/04"21073
+ },21074
+ "signatures": {21075
+ "@alice_1260:hs1": {21076
+ "ed25519:ALICEDEVICE1260": "oJJEKEse0X0U96mcvdSgDE9OaVu9Q7AaJc6kz4YVckJ9A8fWGaRYOKWot1bkTjlPos/UMIKBpi01ytbRzytsDA"21077
+ }21078
+ },21079
+ "user_id": "@alice_1260:hs1",21080
+ "unsigned": {}21081
+ }21082
+ },21083
+ "@alice_1276:hs1": {21084
+ "ALICEDEVICE1276": {21085
+ "algorithms": [21086
+ "m.olm.v1.curve25519-aes-sha2",21087
+ "m.megolm.v1.aes-sha2"21088
+ ],21089
+ "device_id": "ALICEDEVICE1276",21090
+ "keys": {21091
+ "curve25519:ALICEDEVICE1276": "hsTlGUJsmZvELhupjIImQLIF/lbnhA3MsrMa6BSqm1Q",21092
+ "ed25519:ALICEDEVICE1276": "rguEwN95PyMmoNMjZZuI2RBsgKfxK/5AD48mx/JC/xc"21093
+ },21094
+ "signatures": {21095
+ "@alice_1276:hs1": {21096
+ "ed25519:ALICEDEVICE1276": "l9ZnxNoByO2E2oy9tRC19Xcl8Wju53/zWyb+1iGY3juthUkpkOxXoFod+Kc4I/ULS9rr9i55cIEegaU2xzcJDQ"21097
+ }21098
+ },21099
+ "user_id": "@alice_1276:hs1",21100
+ "unsigned": {}21101
+ }21102
+ },21103
+ "@alice_1295:hs1": {21104
+ "ALICEDEVICE1295": {21105
+ "algorithms": [21106
+ "m.olm.v1.curve25519-aes-sha2",21107
+ "m.megolm.v1.aes-sha2"21108
+ ],21109
+ "device_id": "ALICEDEVICE1295",21110
+ "keys": {21111
+ "curve25519:ALICEDEVICE1295": "gRooLwK/t2tHNbDBoiKBgkRLDtZe3ZQzPA3ZRQA43Wk",21112
+ "ed25519:ALICEDEVICE1295": "WTX/nS80ohffjlyFTXeTTf3hqG7c25q11Va6VYav3T8"21113
+ },21114
+ "signatures": {21115
+ "@alice_1295:hs1": {21116
+ "ed25519:ALICEDEVICE1295": "GWq9hgbTWiQQZyCMzfzsiaixbMYC00YVCUTqNp5CVH4h5HMb0G65Y3XH9PSkwsxUiMQKsJzy3RFit0qYdknhAQ"21117
+ }21118
+ },21119
+ "user_id": "@alice_1295:hs1",21120
+ "unsigned": {}21121
+ }21122
+ },21123
+ "@alice_1305:hs1": {21124
+ "ALICEDEVICE1305": {21125
+ "algorithms": [21126
+ "m.olm.v1.curve25519-aes-sha2",21127
+ "m.megolm.v1.aes-sha2"21128
+ ],21129
+ "device_id": "ALICEDEVICE1305",21130
+ "keys": {21131
+ "curve25519:ALICEDEVICE1305": "MjrnVev3mtwY8ZN5AHs1gKae+Q3HZxVLebTFT/Hu21I",21132
+ "ed25519:ALICEDEVICE1305": "Un0wG+H6q5ucdR9gjMNfQZU63wjLSHoxVLZNZW1hN70"21133
+ },21134
+ "signatures": {21135
+ "@alice_1305:hs1": {21136
+ "ed25519:ALICEDEVICE1305": "3EqmDxmcRMjadLKS3+2Q9QaeKS/IL2XOkDoVnlEfkBu4lhL53vfsQT5J3npEYXF/dA6IYybrKIUPV68K3HYHBQ"21137
+ }21138
+ },21139
+ "user_id": "@alice_1305:hs1",21140
+ "unsigned": {}21141
+ }21142
+ },21143
+ "@alice_1307:hs1": {21144
+ "ALICEDEVICE1307": {21145
+ "algorithms": [21146
+ "m.olm.v1.curve25519-aes-sha2",21147
+ "m.megolm.v1.aes-sha2"21148
+ ],21149
+ "device_id": "ALICEDEVICE1307",21150
+ "keys": {21151
+ "curve25519:ALICEDEVICE1307": "rqRlz+2GSv53eO+ZB7X+7hB9Zu85wgxhHkxsqCIDRXg",21152
+ "ed25519:ALICEDEVICE1307": "r4UdWK89TyX2YeU/TyziDWrvy6fzBqFEP3fktzBnQU0"21153
+ },21154
+ "signatures": {21155
+ "@alice_1307:hs1": {21156
+ "ed25519:ALICEDEVICE1307": "chastY2eY/7pZzGbTcnX3Y0eby+CP5cdQlEU6hMCWAxViLr3K0t7lIgVqb4R2QEL3VzysRmFMuunRqdUoIhXAQ"21157
+ }21158
+ },21159
+ "user_id": "@alice_1307:hs1",21160
+ "unsigned": {}21161
+ }21162
+ },21163
+ "@alice_1311:hs1": {21164
+ "ALICEDEVICE1311": {21165
+ "algorithms": [21166
+ "m.olm.v1.curve25519-aes-sha2",21167
+ "m.megolm.v1.aes-sha2"21168
+ ],21169
+ "device_id": "ALICEDEVICE1311",21170
+ "keys": {21171
+ "curve25519:ALICEDEVICE1311": "B7vO/aI+gvd/vHWUFvwAt9DL0O1oiUq6Om4Xi9mWTAc",21172
+ "ed25519:ALICEDEVICE1311": "RIb6ins2yU0OwJ/NSFklcO2TZHaLLd9qPl9VVd4Wb+Q"21173
+ },21174
+ "signatures": {21175
+ "@alice_1311:hs1": {21176
+ "ed25519:ALICEDEVICE1311": "xeH9rWF/uyaveFpTjUMmk4x+AzyYZsoC73xoDh565nAASgDadFCxQRF6vgbKIMhjGRqIzyC/TFy86/aeKwVmBQ"21177
+ }21178
+ },21179
+ "user_id": "@alice_1311:hs1",21180
+ "unsigned": {}21181
+ }21182
+ },21183
+ "@alice_1314:hs1": {21184
+ "ALICEDEVICE1314": {21185
+ "algorithms": [21186
+ "m.olm.v1.curve25519-aes-sha2",21187
+ "m.megolm.v1.aes-sha2"21188
+ ],21189
+ "device_id": "ALICEDEVICE1314",21190
+ "keys": {21191
+ "curve25519:ALICEDEVICE1314": "rzdvvdhSO05xVKp9+sLZ7S5F9nAsaPqpUAX731Ydn2I",21192
+ "ed25519:ALICEDEVICE1314": "DQpCTq1/EwXcCEGUwqRoDwPMAKNhgAlhs9CR/o+htqg"21193
+ },21194
+ "signatures": {21195
+ "@alice_1314:hs1": {21196
+ "ed25519:ALICEDEVICE1314": "d/LhLMxuqAVbqO5KTUe1ynM1VtLQI0Dm9UdLFryd+EyR37CJL0BjaNSbNk9d1TBD7gcWunmvGe/O3sr8/u0YBw"21197
+ }21198
+ },21199
+ "user_id": "@alice_1314:hs1",21200
+ "unsigned": {}21201
+ }21202
+ },21203
+ "@alice_1315:hs1": {21204
+ "ALICEDEVICE1315": {21205
+ "algorithms": [21206
+ "m.olm.v1.curve25519-aes-sha2",21207
+ "m.megolm.v1.aes-sha2"21208
+ ],21209
+ "device_id": "ALICEDEVICE1315",21210
+ "keys": {21211
+ "curve25519:ALICEDEVICE1315": "QULL444oYeTozd6L6870cIIW+PHmTdD/pHkT36mLVBk",21212
+ "ed25519:ALICEDEVICE1315": "ED+GjLYiV0yayzO/g1dSXl4TcIKTMZZDouHQUMF6nCU"21213
+ },21214
+ "signatures": {21215
+ "@alice_1315:hs1": {21216
+ "ed25519:ALICEDEVICE1315": "R0MHV0KfdoZq2pzbg6VL9JVnZnL6zZ9pu2Vf71DKT5E56jHTUkUHFYVZpbRTphW5Q5LEQo10vDtYuU4QdaEfBQ"21217
+ }21218
+ },21219
+ "user_id": "@alice_1315:hs1",21220
+ "unsigned": {}21221
+ }21222
+ },21223
+ "@alice_1319:hs1": {21224
+ "ALICEDEVICE1319": {21225
+ "algorithms": [21226
+ "m.olm.v1.curve25519-aes-sha2",21227
+ "m.megolm.v1.aes-sha2"21228
+ ],21229
+ "device_id": "ALICEDEVICE1319",21230
+ "keys": {21231
+ "curve25519:ALICEDEVICE1319": "Ddbs0lCkjIMUyFl7IGNfNMx5wAwnmdF3qO8RpO5/Gxg",21232
+ "ed25519:ALICEDEVICE1319": "/6j9X4jjkkGZH6FsjzJKAz8SXCGa7MVw0ZR36uE76qc"21233
+ },21234
+ "signatures": {21235
+ "@alice_1319:hs1": {21236
+ "ed25519:ALICEDEVICE1319": "GnbptsWkjd9kvNstxB1yinC5JqFhjjFERGcrQYaOHVSf6+dbJnjjSc/g3Pgj6AzcLrBiiyhz+mEPkJllpqsHAw"21237
+ }21238
+ },21239
+ "user_id": "@alice_1319:hs1",21240
+ "unsigned": {}21241
+ }21242
+ },21243
+ "@alice_1325:hs1": {21244
+ "ALICEDEVICE1325": {21245
+ "algorithms": [21246
+ "m.olm.v1.curve25519-aes-sha2",21247
+ "m.megolm.v1.aes-sha2"21248
+ ],21249
+ "device_id": "ALICEDEVICE1325",21250
+ "keys": {21251
+ "curve25519:ALICEDEVICE1325": "4jLtG0cduzn1kIGdU1Jw6481WHo18RBh8uqQWA+rdRQ",21252
+ "ed25519:ALICEDEVICE1325": "TPhhyZr7pT1PiszpA50SuqNblSeHvHYlRPQhyC1L1vY"21253
+ },21254
+ "signatures": {21255
+ "@alice_1325:hs1": {21256
+ "ed25519:ALICEDEVICE1325": "Ev/LVekOoc+9ST4ae49C4w8IIEvP9x742NCgpOCotu/EOVztnPBtd8nlFloONRQsz/DHTBsHNxYdLZEkdP6eCw"21257
+ }21258
+ },21259
+ "user_id": "@alice_1325:hs1",21260
+ "unsigned": {}21261
+ }21262
+ },21263
+ "@alice_1329:hs1": {21264
+ "ALICEDEVICE1329": {21265
+ "algorithms": [21266
+ "m.olm.v1.curve25519-aes-sha2",21267
+ "m.megolm.v1.aes-sha2"21268
+ ],21269
+ "device_id": "ALICEDEVICE1329",21270
+ "keys": {21271
+ "curve25519:ALICEDEVICE1329": "IfVPchmmtffdQBSGiZVrFWY9ViUOxwqd9Rzih3PwAkQ",21272
+ "ed25519:ALICEDEVICE1329": "Wlh5PT15u+kgfh97L53tsXfaXYTcVyT8Q9/Fr+M8NbM"21273
+ },21274
+ "signatures": {21275
+ "@alice_1329:hs1": {21276
+ "ed25519:ALICEDEVICE1329": "WvpDdJpmE5rLkOWLq4Pl4mxwgLmJp3ZHzvxpR8NL1A8OUMp5GBU8aIZQ5c6GJ7S+q5aEhX2ro37Ju9HIgbahDg"21277
+ }21278
+ },21279
+ "user_id": "@alice_1329:hs1",21280
+ "unsigned": {}21281
+ }21282
+ },21283
+ "@alice_1344:hs1": {21284
+ "ALICEDEVICE1344": {21285
+ "algorithms": [21286
+ "m.olm.v1.curve25519-aes-sha2",21287
+ "m.megolm.v1.aes-sha2"21288
+ ],21289
+ "device_id": "ALICEDEVICE1344",21290
+ "keys": {21291
+ "curve25519:ALICEDEVICE1344": "hGHMwlY2mveuVXzNoO569s77s1VKeWzjQcLevNhnZ2A",21292
+ "ed25519:ALICEDEVICE1344": "iTsAX9JBi/iy8d8Zo9uUbqnNDlAGAsoROcxWo8LyRXI"21293
+ },21294
+ "signatures": {21295
+ "@alice_1344:hs1": {21296
+ "ed25519:ALICEDEVICE1344": "knAhaNlmRAV53MSE0fy6vGQFn5Y4tehoJ1r/6Ca6FiHs/EeKXCj9gnNscrQ7tLHZGh3pSLpool9tahRUVnigAw"21297
+ }21298
+ },21299
+ "user_id": "@alice_1344:hs1",21300
+ "unsigned": {}21301
+ }21302
+ },21303
+ "@alice_1350:hs1": {21304
+ "ALICEDEVICE1350": {21305
+ "algorithms": [21306
+ "m.olm.v1.curve25519-aes-sha2",21307
+ "m.megolm.v1.aes-sha2"21308
+ ],21309
+ "device_id": "ALICEDEVICE1350",21310
+ "keys": {21311
+ "curve25519:ALICEDEVICE1350": "IrVqJjigWg9eJhlv40Mp6BT973p8jHuSItXUJNWVd1E",21312
+ "ed25519:ALICEDEVICE1350": "rY/vquA3nHKqc9D1NQzWeJOijFs+s3npPC1FSIDl9Ks"21313
+ },21314
+ "signatures": {21315
+ "@alice_1350:hs1": {21316
+ "ed25519:ALICEDEVICE1350": "6z9QEO7AlHII2jU2c6jLmp9eyrb9owcVpOObi6NOanEq0m/eJ5zaLDr+QYoIwaCuipKWrkfApgfRPSWJGfkkBg"21317
+ }21318
+ },21319
+ "user_id": "@alice_1350:hs1",21320
+ "unsigned": {}21321
+ }21322
+ },21323
+ "@alice_1351:hs1": {21324
+ "ALICEDEVICE1351": {21325
+ "algorithms": [21326
+ "m.olm.v1.curve25519-aes-sha2",21327
+ "m.megolm.v1.aes-sha2"21328
+ ],21329
+ "device_id": "ALICEDEVICE1351",21330
+ "keys": {21331
+ "curve25519:ALICEDEVICE1351": "xbxSIIGtOzj6T1RIe9k+X5qBvmf07qbX32TJxAGlD0Y",21332
+ "ed25519:ALICEDEVICE1351": "kRROmFqKaECYQJPwzT/UuY3SomcoVisyczI4ytbtHKM"21333
+ },21334
+ "signatures": {21335
+ "@alice_1351:hs1": {21336
+ "ed25519:ALICEDEVICE1351": "CeFJoQ/7V1WZ8HQdNvRf+pF262tKujj2yDTa1J22F2A6IWi+33Qn0WjShUx6R3kE1lqgAZx3RG7qRadOqbseDQ"21337
+ }21338
+ },21339
+ "user_id": "@alice_1351:hs1",21340
+ "unsigned": {}21341
+ }21342
+ },21343
+ "@alice_1362:hs1": {21344
+ "ALICEDEVICE1362": {21345
+ "algorithms": [21346
+ "m.olm.v1.curve25519-aes-sha2",21347
+ "m.megolm.v1.aes-sha2"21348
+ ],21349
+ "device_id": "ALICEDEVICE1362",21350
+ "keys": {21351
+ "curve25519:ALICEDEVICE1362": "VcMNwyQqMeTne8Bq0XAutp7Bn8e7X3jgWOdtK6OYxUU",21352
+ "ed25519:ALICEDEVICE1362": "/YOkAEdMbogfXyLbKqZVIRg0C4qIwZ5iqenk3uiad9s"21353
+ },21354
+ "signatures": {21355
+ "@alice_1362:hs1": {21356
+ "ed25519:ALICEDEVICE1362": "c90ljg2fa72O9ly2ryo9KgL6zRgT6PCALioSRUFPgX67w0K9EXx1WXFrLaud18SewsN9aRdq9VDYWd8Vc8pIBQ"21357
+ }21358
+ },21359
+ "user_id": "@alice_1362:hs1",21360
+ "unsigned": {}21361
+ }21362
+ },21363
+ "@alice_1363:hs1": {21364
+ "ALICEDEVICE1363": {21365
+ "algorithms": [21366
+ "m.olm.v1.curve25519-aes-sha2",21367
+ "m.megolm.v1.aes-sha2"21368
+ ],21369
+ "device_id": "ALICEDEVICE1363",21370
+ "keys": {21371
+ "curve25519:ALICEDEVICE1363": "z8sw08XrCvOp1ERK6JiBYbtcbJw+/Y4p6Z02xVqOQSg",21372
+ "ed25519:ALICEDEVICE1363": "ymGdd4WIS1QHcUwJzLm+v4m0RKNFiFBj0FiGJ0ZqwzE"21373
+ },21374
+ "signatures": {21375
+ "@alice_1363:hs1": {21376
+ "ed25519:ALICEDEVICE1363": "kyQ+uuNX6KDjS5M0jafp71CWaePapSyfhWPIxAy+ruMEnG1Coi1nT7/Q2RiX05wFavGQ5iQkENC7T6vXrbOGCg"21377
+ }21378
+ },21379
+ "user_id": "@alice_1363:hs1",21380
+ "unsigned": {}21381
+ }21382
+ },21383
+ "@alice_1373:hs1": {21384
+ "ALICEDEVICE1373": {21385
+ "algorithms": [21386
+ "m.olm.v1.curve25519-aes-sha2",21387
+ "m.megolm.v1.aes-sha2"21388
+ ],21389
+ "device_id": "ALICEDEVICE1373",21390
+ "keys": {21391
+ "curve25519:ALICEDEVICE1373": "5ExsDcoFcanJZXmLKZffUx09+Q1eaOL7I3oYsSaPSUw",21392
+ "ed25519:ALICEDEVICE1373": "VKsr0kwsKkJboT7EX+D9gijzqiepcxoFb1gPlo2G5yQ"21393
+ },21394
+ "signatures": {21395
+ "@alice_1373:hs1": {21396
+ "ed25519:ALICEDEVICE1373": "F0vMuUQjV/SenyBgPw5Od2sFk90S0A6zHsCuKOedBLa7zI4SEAvpOMGPhgzIS0Ubj95KU/KIfU4mdieooWdpDw"21397
+ }21398
+ },21399
+ "user_id": "@alice_1373:hs1",21400
+ "unsigned": {}21401
+ }21402
+ },21403
+ "@alice_1375:hs1": {21404
+ "ALICEDEVICE1375": {21405
+ "algorithms": [21406
+ "m.olm.v1.curve25519-aes-sha2",21407
+ "m.megolm.v1.aes-sha2"21408
+ ],21409
+ "device_id": "ALICEDEVICE1375",21410
+ "keys": {21411
+ "curve25519:ALICEDEVICE1375": "wxntBaBmw7OVG5roqROuWzoBccDL9g0HpGZk2m4ghzg",21412
+ "ed25519:ALICEDEVICE1375": "pD2W35XXW7uR6m34AljjTwVrS0/r89qsPZhM/f4oDPU"21413
+ },21414
+ "signatures": {21415
+ "@alice_1375:hs1": {21416
+ "ed25519:ALICEDEVICE1375": "hnZyJQGrAmrvWPBum50WkWz0C56pPjM4cgW28Btsskzb3oxvDVbydiF4dmw9+9NLk10lnywiXdTprjGTMPerBQ"21417
+ }21418
+ },21419
+ "user_id": "@alice_1375:hs1",21420
+ "unsigned": {}21421
+ }21422
+ },21423
+ "@alice_1381:hs1": {21424
+ "ALICEDEVICE1381": {21425
+ "algorithms": [21426
+ "m.olm.v1.curve25519-aes-sha2",21427
+ "m.megolm.v1.aes-sha2"21428
+ ],21429
+ "device_id": "ALICEDEVICE1381",21430
+ "keys": {21431
+ "curve25519:ALICEDEVICE1381": "r4xBgj5yrIEp3BVeYmm5/HA/I3QipVwVyyhtixeyvQo",21432
+ "ed25519:ALICEDEVICE1381": "VFbuGg8wsLxrtR+rmwSjIA8rG2rbIytGUXFXjnm2rwo"21433
+ },21434
+ "signatures": {21435
+ "@alice_1381:hs1": {21436
+ "ed25519:ALICEDEVICE1381": "x9MS0XIuVqTnZy9ce/ZnS2sH3Hs61YY4zGIcnzGpwfg3eZLNyJHHU5eu/PCKbv1s6J15pcZDyOwlBqRjrmQEAA"21437
+ }21438
+ },21439
+ "user_id": "@alice_1381:hs1",21440
+ "unsigned": {}21441
+ }21442
+ },21443
+ "@alice_1401:hs1": {21444
+ "ALICEDEVICE1401": {21445
+ "algorithms": [21446
+ "m.olm.v1.curve25519-aes-sha2",21447
+ "m.megolm.v1.aes-sha2"21448
+ ],21449
+ "device_id": "ALICEDEVICE1401",21450
+ "keys": {21451
+ "curve25519:ALICEDEVICE1401": "yhENZw5pSmpIkTBdf3vXIc3hNHmmYApXmldGWYfm1y8",21452
+ "ed25519:ALICEDEVICE1401": "bWCrIQU9KkHOLzaloEVV5SD3PC396xI1X+Zn934vIs8"21453
+ },21454
+ "signatures": {21455
+ "@alice_1401:hs1": {21456
+ "ed25519:ALICEDEVICE1401": "oCDGXy7uc3THl8GO5epfXj9re85c7GCsPUtK1YWOoFQGfmvpAMcob+LUzZKJAsxySRwVH2IZLLN51RVkogriAw"21457
+ }21458
+ },21459
+ "user_id": "@alice_1401:hs1",21460
+ "unsigned": {}21461
+ }21462
+ },21463
+ "@alice_1402:hs1": {21464
+ "ALICEDEVICE1402": {21465
+ "algorithms": [21466
+ "m.olm.v1.curve25519-aes-sha2",21467
+ "m.megolm.v1.aes-sha2"21468
+ ],21469
+ "device_id": "ALICEDEVICE1402",21470
+ "keys": {21471
+ "curve25519:ALICEDEVICE1402": "kiHH2IKdo2efYDYYaUT8bc6C3Sl/7p6cCG5Cg7Uvk3Q",21472
+ "ed25519:ALICEDEVICE1402": "cEsSRF/VDGImELT0X9Y4T92KQRB7fHNareGrVkg43I0"21473
+ },21474
+ "signatures": {21475
+ "@alice_1402:hs1": {21476
+ "ed25519:ALICEDEVICE1402": "g4C1Weq0l8IE22XUA0vqJMVIp+x9WfAgJsISkicwwjjNltvhgo5t9/Yj9VfaSUtXtID5N+jaESVaaeeV8omgBQ"21477
+ }21478
+ },21479
+ "user_id": "@alice_1402:hs1",21480
+ "unsigned": {}21481
+ }21482
+ },21483
+ "@alice_1407:hs1": {21484
+ "ALICEDEVICE1407": {21485
+ "algorithms": [21486
+ "m.olm.v1.curve25519-aes-sha2",21487
+ "m.megolm.v1.aes-sha2"21488
+ ],21489
+ "device_id": "ALICEDEVICE1407",21490
+ "keys": {21491
+ "curve25519:ALICEDEVICE1407": "egsece7Cuv4IrVBi4uo2PRtv3pLDzOASt5jWDKyAo1Q",21492
+ "ed25519:ALICEDEVICE1407": "dHmMkT6U/K96vmDCENSl31HI+DbiloylfRJXu0NMUf8"21493
+ },21494
+ "signatures": {21495
+ "@alice_1407:hs1": {21496
+ "ed25519:ALICEDEVICE1407": "bOqVknEFIDv7CTbSjiy1Lb3aSs1o5xtVG+Zy/NBbCyWyGbBzFMYBiLZMmG2BJh6IQkp5KfCJZIpeJS6hdU5JCQ"21497
+ }21498
+ },21499
+ "user_id": "@alice_1407:hs1",21500
+ "unsigned": {}21501
+ }21502
+ },21503
+ "@alice_1408:hs1": {21504
+ "ALICEDEVICE1408": {21505
+ "algorithms": [21506
+ "m.olm.v1.curve25519-aes-sha2",21507
+ "m.megolm.v1.aes-sha2"21508
+ ],21509
+ "device_id": "ALICEDEVICE1408",21510
+ "keys": {21511
+ "curve25519:ALICEDEVICE1408": "zMNLrr1o//QkKbTGS/qGDhUPMCQ8uarqM/vf5KPMOSc",21512
+ "ed25519:ALICEDEVICE1408": "OFrqzwjFZm/Ps5uq3rTM38Jmfbbyjao9LNZdAvZ5+Sg"21513
+ },21514
+ "signatures": {21515
+ "@alice_1408:hs1": {21516
+ "ed25519:ALICEDEVICE1408": "olgiF9ffQgzBHrVqNGqwIV3NVpXexyFXvE/toD6FofaxyRUbcvwrLRfQe2qkoXzuEP1/KoRWkYhb28Q+qqhFAw"21517
+ }21518
+ },21519
+ "user_id": "@alice_1408:hs1",21520
+ "unsigned": {}21521
+ }21522
+ },21523
+ "@alice_1412:hs1": {21524
+ "ALICEDEVICE1412": {21525
+ "algorithms": [21526
+ "m.olm.v1.curve25519-aes-sha2",21527
+ "m.megolm.v1.aes-sha2"21528
+ ],21529
+ "device_id": "ALICEDEVICE1412",21530
+ "keys": {21531
+ "curve25519:ALICEDEVICE1412": "tqyLBgMXZ6pUPZ93Mf/T+7xivZlxcvxrCGWL9i6LVic",21532
+ "ed25519:ALICEDEVICE1412": "UxsFLFu9YtLD1BIym99vwBm5caFYlqfAcdQgIxgAHec"21533
+ },21534
+ "signatures": {21535
+ "@alice_1412:hs1": {21536
+ "ed25519:ALICEDEVICE1412": "nv2zmoYJeWBrku1caXsQbiMQTqpcPKw6UDx2b3Z0YWizSvnGt9KiISiPPnLPZX6RhqCopa/As9I5kRODNhTRCQ"21537
+ }21538
+ },21539
+ "user_id": "@alice_1412:hs1",21540
+ "unsigned": {}21541
+ }21542
+ },21543
+ "@alice_1415:hs1": {21544
+ "ALICEDEVICE1415": {21545
+ "algorithms": [21546
+ "m.olm.v1.curve25519-aes-sha2",21547
+ "m.megolm.v1.aes-sha2"21548
+ ],21549
+ "device_id": "ALICEDEVICE1415",21550
+ "keys": {21551
+ "curve25519:ALICEDEVICE1415": "SKrfeScZTc02aoPiUtzmifdsR6M89eUDRa2R2NC0DGM",21552
+ "ed25519:ALICEDEVICE1415": "Wq+fmoQDhruvCuU1yXasQX2a5pKP3Of+bViC6toLWoI"21553
+ },21554
+ "signatures": {21555
+ "@alice_1415:hs1": {21556
+ "ed25519:ALICEDEVICE1415": "0iPesI6qsEjgWh+v1ztTlspbiOmtck8SqzaZ1k1uXHw+10kYy3VVdvBrszT0jkd04JpUS49pL8iyu7OcWtlKAQ"21557
+ }21558
+ },21559
+ "user_id": "@alice_1415:hs1",21560
+ "unsigned": {}21561
+ }21562
+ },21563
+ "@alice_1427:hs1": {21564
+ "ALICEDEVICE1427": {21565
+ "algorithms": [21566
+ "m.olm.v1.curve25519-aes-sha2",21567
+ "m.megolm.v1.aes-sha2"21568
+ ],21569
+ "device_id": "ALICEDEVICE1427",21570
+ "keys": {21571
+ "curve25519:ALICEDEVICE1427": "FI5dlnvtxnmQRnSbQ7adEwuP8hyjy4OMzUbcztdB3SE",21572
+ "ed25519:ALICEDEVICE1427": "iZVcGXLxprx19+l7/VwcdgBbwZkEfPKffmot4Kn0fco"21573
+ },21574
+ "signatures": {21575
+ "@alice_1427:hs1": {21576
+ "ed25519:ALICEDEVICE1427": "MEcatHG9u4ywPDppHFFdVmdLsrc7RmdfnWuEr2r6jXRSP+N1pXvPsPCR/r84gnxexCsfXwojq27q/RqUepOuAA"21577
+ }21578
+ },21579
+ "user_id": "@alice_1427:hs1",21580
+ "unsigned": {}21581
+ }21582
+ },21583
+ "@alice_1428:hs1": {21584
+ "ALICEDEVICE1428": {21585
+ "algorithms": [21586
+ "m.olm.v1.curve25519-aes-sha2",21587
+ "m.megolm.v1.aes-sha2"21588
+ ],21589
+ "device_id": "ALICEDEVICE1428",21590
+ "keys": {21591
+ "curve25519:ALICEDEVICE1428": "xaNPMqGjDoc7PkIwL+oaieqyoHjaOX1+8V8u/j6Yty8",21592
+ "ed25519:ALICEDEVICE1428": "BOnyujtMVWRyCZub5oZdJ0qUai99yQIhvfREuNbt1yE"21593
+ },21594
+ "signatures": {21595
+ "@alice_1428:hs1": {21596
+ "ed25519:ALICEDEVICE1428": "wmhWs7yJo4o7jrfedCT1pXavO6kTnprhQNycUjvZ6TNVv2uHQcK/TNTA0jdIshNTlfAHNFCoMRkduS7g1N9WDg"21597
+ }21598
+ },21599
+ "user_id": "@alice_1428:hs1",21600
+ "unsigned": {}21601
+ }21602
+ },21603
+ "@alice_142:hs1": {21604
+ "ALICEDEVICE142": {21605
+ "algorithms": [21606
+ "m.olm.v1.curve25519-aes-sha2",21607
+ "m.megolm.v1.aes-sha2"21608
+ ],21609
+ "device_id": "ALICEDEVICE142",21610
+ "keys": {21611
+ "curve25519:ALICEDEVICE142": "pzVi4TLZ4k/cxw0Yaj6mPyHpg6jvYy1SBeLMK2/hPHs",21612
+ "ed25519:ALICEDEVICE142": "0i31Xz6SMih9PF7x90K6XSNDIlLf1vPwlrIFg1/ePBU"21613
+ },21614
+ "signatures": {21615
+ "@alice_142:hs1": {21616
+ "ed25519:ALICEDEVICE142": "gjY3W8l4/ibV3mrZR/LK+db8Jyukizrg0ZQc4AYoza3qHeJwkT3n8MZ2BH0/YkQ57KozelSMR9A/iIAdSwl6DQ"21617
+ }21618
+ },21619
+ "user_id": "@alice_142:hs1",21620
+ "unsigned": {}21621
+ }21622
+ },21623
+ "@alice_144:hs1": {21624
+ "ALICEDEVICE144": {21625
+ "algorithms": [21626
+ "m.olm.v1.curve25519-aes-sha2",21627
+ "m.megolm.v1.aes-sha2"21628
+ ],21629
+ "device_id": "ALICEDEVICE144",21630
+ "keys": {21631
+ "curve25519:ALICEDEVICE144": "XFRtjYxH1N8LZgOA1KxR4KbQUbNNjF8RXbmjKr0Q4BU",21632
+ "ed25519:ALICEDEVICE144": "cuu5OEWORSuL7rB3oE0vevXkqqRX3d/bn+UVF0deObM"21633
+ },21634
+ "signatures": {21635
+ "@alice_144:hs1": {21636
+ "ed25519:ALICEDEVICE144": "++IA6i2WbJJU72g7D8t3Z5eC30jjGEEG64bIfFxSfFm2TcCbz7a2JKWDKE538vpd6NkPOwAC34crnPMhc7zMCQ"21637
+ }21638
+ },21639
+ "user_id": "@alice_144:hs1",21640
+ "unsigned": {}21641
+ }21642
+ },21643
+ "@alice_1453:hs1": {21644
+ "ALICEDEVICE1453": {21645
+ "algorithms": [21646
+ "m.olm.v1.curve25519-aes-sha2",21647
+ "m.megolm.v1.aes-sha2"21648
+ ],21649
+ "device_id": "ALICEDEVICE1453",21650
+ "keys": {21651
+ "curve25519:ALICEDEVICE1453": "HlWupSSSHu9qSHGDXpUUIo7mYnEg2WA58UzWPoKpfzo",21652
+ "ed25519:ALICEDEVICE1453": "sdk2AQ2qoaASozpVneJRgrSjkEYq7Qxe/KjkTH3J+Hw"21653
+ },21654
+ "signatures": {21655
+ "@alice_1453:hs1": {21656
+ "ed25519:ALICEDEVICE1453": "EDuw7Wlva3O2PJCjRix6HwntMqjgFOkMyXp5Wt59cKzpU68FB15BOQ4/Q5fmCyq27EdiG8TjSRCMp3Y3q3IKBQ"21657
+ }21658
+ },21659
+ "user_id": "@alice_1453:hs1",21660
+ "unsigned": {}21661
+ }21662
+ },21663
+ "@alice_1455:hs1": {21664
+ "ALICEDEVICE1455": {21665
+ "algorithms": [21666
+ "m.olm.v1.curve25519-aes-sha2",21667
+ "m.megolm.v1.aes-sha2"21668
+ ],21669
+ "device_id": "ALICEDEVICE1455",21670
+ "keys": {21671
+ "curve25519:ALICEDEVICE1455": "C+rmD7G62xEwqbbvcap+InFrANcCtRqtJ5lZ6DxhwCY",21672
+ "ed25519:ALICEDEVICE1455": "hcTSgrM/rz+Mm1jDscOqGqRKMOMbjqrRS/hDWzniR8U"21673
+ },21674
+ "signatures": {21675
+ "@alice_1455:hs1": {21676
+ "ed25519:ALICEDEVICE1455": "eTWqRTa1XIjACQbJ+b1hnvgc3ydPkElgzKvkk5VnsTO64MRUhCzNsKJVy/dHAgw7hF25RnmoLLNIt3NBL3j3CA"21677
+ }21678
+ },21679
+ "user_id": "@alice_1455:hs1",21680
+ "unsigned": {}21681
+ }21682
+ },21683
+ "@alice_1467:hs1": {21684
+ "ALICEDEVICE1467": {21685
+ "algorithms": [21686
+ "m.olm.v1.curve25519-aes-sha2",21687
+ "m.megolm.v1.aes-sha2"21688
+ ],21689
+ "device_id": "ALICEDEVICE1467",21690
+ "keys": {21691
+ "curve25519:ALICEDEVICE1467": "z07iuGeSgmPcvGBRPa4AgsIumK025Ou3X5XBq9qD2lY",21692
+ "ed25519:ALICEDEVICE1467": "JOvET90xFRkmYrn7VCnkM+tiEhwRirPC9NoU4GIm6bg"21693
+ },21694
+ "signatures": {21695
+ "@alice_1467:hs1": {21696
+ "ed25519:ALICEDEVICE1467": "X8PIOnLfMGOJZSNyZezNZJ1BfC6z7dJjhgqqw5VXwacqm6g7NQjmDrMZD7PWCYRnoQSUztUJdRamJszv869UCQ"21697
+ }21698
+ },21699
+ "user_id": "@alice_1467:hs1",21700
+ "unsigned": {}21701
+ }21702
+ },21703
+ "@alice_1480:hs1": {21704
+ "ALICEDEVICE1480": {21705
+ "algorithms": [21706
+ "m.olm.v1.curve25519-aes-sha2",21707
+ "m.megolm.v1.aes-sha2"21708
+ ],21709
+ "device_id": "ALICEDEVICE1480",21710
+ "keys": {21711
+ "curve25519:ALICEDEVICE1480": "JWHhiICLEMin6XiMTDm8o2/MXPPUw1xlyIJcUrUulQo",21712
+ "ed25519:ALICEDEVICE1480": "UroUm/g5+GZs+kZK7uRGogEB9TGZ9wP9N69ZADrwZEc"21713
+ },21714
+ "signatures": {21715
+ "@alice_1480:hs1": {21716
+ "ed25519:ALICEDEVICE1480": "uNjGMFbkDD0hN5pfJ2YTkzvdaUvXIs96RlIE44j6Bcfz4ktMxZJWlaUj5HBf3vBN+sqEgb9v7ubuOQW+b/ikAw"21717
+ }21718
+ },21719
+ "user_id": "@alice_1480:hs1",21720
+ "unsigned": {}21721
+ }21722
+ },21723
+ "@alice_1483:hs1": {21724
+ "ALICEDEVICE1483": {21725
+ "algorithms": [21726
+ "m.olm.v1.curve25519-aes-sha2",21727
+ "m.megolm.v1.aes-sha2"21728
+ ],21729
+ "device_id": "ALICEDEVICE1483",21730
+ "keys": {21731
+ "curve25519:ALICEDEVICE1483": "weFZe29c4lUEuHOU6jw34uKgU26kzfNEOuiEzKfwtzI",21732
+ "ed25519:ALICEDEVICE1483": "iN1xJ8RuxYgIDgwgahUYHlWWahpHatN3d/qqmhgEOjE"21733
+ },21734
+ "signatures": {21735
+ "@alice_1483:hs1": {21736
+ "ed25519:ALICEDEVICE1483": "3zqANDtqx/x8IPdH5fySY3kUL0vYq3FvaGa9+jmGQ9o9hTRLJRKBdWEDTfqUOYrPnKttte+qZf5NwI2EoSAjCg"21737
+ }21738
+ },21739
+ "user_id": "@alice_1483:hs1",21740
+ "unsigned": {}21741
+ }21742
+ },21743
+ "@alice_1485:hs1": {21744
+ "ALICEDEVICE1485": {21745
+ "algorithms": [21746
+ "m.olm.v1.curve25519-aes-sha2",21747
+ "m.megolm.v1.aes-sha2"21748
+ ],21749
+ "device_id": "ALICEDEVICE1485",21750
+ "keys": {21751
+ "curve25519:ALICEDEVICE1485": "NvB/n2zOp6ek7dqh6Rv7SSXvZZHbEOv9FsLGvNy8oXI",21752
+ "ed25519:ALICEDEVICE1485": "5jsSVS/3AsdZKqpROCDh5ihBlyz6bb4c0hKD5FVQGxg"21753
+ },21754
+ "signatures": {21755
+ "@alice_1485:hs1": {21756
+ "ed25519:ALICEDEVICE1485": "qx6i8Nc1cEvK34wMHdKqsIPOdIb8FICH1gagHjgMjeiD1bxV4xNllExUgZrWW0qzWBPzfmaPojkXb7tugQ4RBg"21757
+ }21758
+ },21759
+ "user_id": "@alice_1485:hs1",21760
+ "unsigned": {}21761
+ }21762
+ },21763
+ "@alice_1505:hs1": {21764
+ "ALICEDEVICE1505": {21765
+ "algorithms": [21766
+ "m.olm.v1.curve25519-aes-sha2",21767
+ "m.megolm.v1.aes-sha2"21768
+ ],21769
+ "device_id": "ALICEDEVICE1505",21770
+ "keys": {21771
+ "curve25519:ALICEDEVICE1505": "qcWyoLAuno2LtgAkbvkflfRfakQVIIL1Gb89VbciSiw",21772
+ "ed25519:ALICEDEVICE1505": "7pNHWw1uDM7HV73JlDtt3es67wvXJ+TbkIrUhD7ucZw"21773
+ },21774
+ "signatures": {21775
+ "@alice_1505:hs1": {21776
+ "ed25519:ALICEDEVICE1505": "CcmBs1R3LryACXeoSE/EUL2u3QIVrjqCUN3A4mPD6yY/apLGyezvooMfCwK3U8l/w0RcGjUty56P0LZGNwByAA"21777
+ }21778
+ },21779
+ "user_id": "@alice_1505:hs1",21780
+ "unsigned": {}21781
+ }21782
+ },21783
+ "@alice_1511:hs1": {21784
+ "ALICEDEVICE1511": {21785
+ "algorithms": [21786
+ "m.olm.v1.curve25519-aes-sha2",21787
+ "m.megolm.v1.aes-sha2"21788
+ ],21789
+ "device_id": "ALICEDEVICE1511",21790
+ "keys": {21791
+ "curve25519:ALICEDEVICE1511": "4WntK92pOceIr8WEjsgzfHrlKOMSWS+Ma7QeHwzbJyM",21792
+ "ed25519:ALICEDEVICE1511": "6IaIly/3KGguK1EtABe4uomCykjnhpmmM7sAFbL7Aj4"21793
+ },21794
+ "signatures": {21795
+ "@alice_1511:hs1": {21796
+ "ed25519:ALICEDEVICE1511": "eqbXfeGtULhPElJFUtbpK74CHP00suTtKeIgiDd/7qXxmP5W+fb61p4ZbnnHN0966+AQEe6YHJg/uwrljbAtCg"21797
+ }21798
+ },21799
+ "user_id": "@alice_1511:hs1",21800
+ "unsigned": {}21801
+ }21802
+ },21803
+ "@alice_1512:hs1": {21804
+ "ALICEDEVICE1512": {21805
+ "algorithms": [21806
+ "m.olm.v1.curve25519-aes-sha2",21807
+ "m.megolm.v1.aes-sha2"21808
+ ],21809
+ "device_id": "ALICEDEVICE1512",21810
+ "keys": {21811
+ "curve25519:ALICEDEVICE1512": "F4EcwhENyVthe3nZCYZ1168n1YPFJa5sBSSpkFFmthI",21812
+ "ed25519:ALICEDEVICE1512": "LRoX48nLd1er8uok5Vy5/iARa3oy5W9lcmaP0aG08mU"21813
+ },21814
+ "signatures": {21815
+ "@alice_1512:hs1": {21816
+ "ed25519:ALICEDEVICE1512": "+Bv5XfEnB6CNKeOqM/HG/rsqYoNOTXO0Lu6/IUt8u0r7pvKB3OKTmfLsOE2NW8I8yEliNg+YbSU919ESkOKgDA"21817
+ }21818
+ },21819
+ "user_id": "@alice_1512:hs1",21820
+ "unsigned": {}21821
+ }21822
+ },21823
+ "@alice_1523:hs1": {21824
+ "ALICEDEVICE1523": {21825
+ "algorithms": [21826
+ "m.olm.v1.curve25519-aes-sha2",21827
+ "m.megolm.v1.aes-sha2"21828
+ ],21829
+ "device_id": "ALICEDEVICE1523",21830
+ "keys": {21831
+ "curve25519:ALICEDEVICE1523": "eGHRlAvun9Wg4vTxAqZ8bAWgPqgzJFa2IzA35ablvAY",21832
+ "ed25519:ALICEDEVICE1523": "oSkLFWwIJdFivLWmIdbrEiccJcp8qeS1jF6k/sKYiis"21833
+ },21834
+ "signatures": {21835
+ "@alice_1523:hs1": {21836
+ "ed25519:ALICEDEVICE1523": "mWxc1IY4WJCXF/KUetztbPWkrQn9dit3CsNinTTDWkXqittkMhE4WZ7YC/C30XlKDJbzYqKjRa6gOLgkNPLyCg"21837
+ }21838
+ },21839
+ "user_id": "@alice_1523:hs1",21840
+ "unsigned": {}21841
+ }21842
+ },21843
+ "@alice_1569:hs1": {21844
+ "ALICEDEVICE1569": {21845
+ "algorithms": [21846
+ "m.olm.v1.curve25519-aes-sha2",21847
+ "m.megolm.v1.aes-sha2"21848
+ ],21849
+ "device_id": "ALICEDEVICE1569",21850
+ "keys": {21851
+ "curve25519:ALICEDEVICE1569": "kr0FUzVWHuSMufLGC3tOrJwCUnm6UyPy3eiTi5fojxg",21852
+ "ed25519:ALICEDEVICE1569": "r91tGiYfyKfC8iAwDoDgaCacEUwnuU+uIsoSaM0P+dM"21853
+ },21854
+ "signatures": {21855
+ "@alice_1569:hs1": {21856
+ "ed25519:ALICEDEVICE1569": "yxHmSYf+sam3a3L4nAz2NTMkUnmSKmv4uSHy0iKaV1ZhfzIZJvZb7AL9vaDgez0PCezKglSRFCLsUrytUmlpBA"21857
+ }21858
+ },21859
+ "user_id": "@alice_1569:hs1",21860
+ "unsigned": {}21861
+ }21862
+ },21863
+ "@alice_1573:hs1": {21864
+ "ALICEDEVICE1573": {21865
+ "algorithms": [21866
+ "m.olm.v1.curve25519-aes-sha2",21867
+ "m.megolm.v1.aes-sha2"21868
+ ],21869
+ "device_id": "ALICEDEVICE1573",21870
+ "keys": {21871
+ "curve25519:ALICEDEVICE1573": "8ZEA/3a9qg/VXuf5nlqqk9nCQ/ljoa4si9DS17jLbQ0",21872
+ "ed25519:ALICEDEVICE1573": "YMG6kkKbmthLSHYTeAp2pyaxnTLhn3yyFLHWaT28lKk"21873
+ },21874
+ "signatures": {21875
+ "@alice_1573:hs1": {21876
+ "ed25519:ALICEDEVICE1573": "YCz+fUTkKAGLQArqpjLkvsOOqFxS20agpT/OrcJGK589aYadB5FyzMoGSmAWB7wZhi/96ZNsDr14F78kCaqbAg"21877
+ }21878
+ },21879
+ "user_id": "@alice_1573:hs1",21880
+ "unsigned": {}21881
+ }21882
+ },21883
+ "@alice_1587:hs1": {21884
+ "ALICEDEVICE1587": {21885
+ "algorithms": [21886
+ "m.olm.v1.curve25519-aes-sha2",21887
+ "m.megolm.v1.aes-sha2"21888
+ ],21889
+ "device_id": "ALICEDEVICE1587",21890
+ "keys": {21891
+ "curve25519:ALICEDEVICE1587": "NShQ/THyvaH/X1/n6zV6ZyolVQXPDl3kTZyxuIUQ3j0",21892
+ "ed25519:ALICEDEVICE1587": "K9bCeXDD/qEx82q6IJYZnEPyl+aAgeU0AsPLqzzGp4A"21893
+ },21894
+ "signatures": {21895
+ "@alice_1587:hs1": {21896
+ "ed25519:ALICEDEVICE1587": "wtJOCBxu5XBcP9AoM9+hQjas9Gt4NnTO3R+vzpaNbhhWWtKVtWChQECiICO+UC3gXWqBb26yTEjdsIiZFfGTAw"21897
+ }21898
+ },21899
+ "user_id": "@alice_1587:hs1",21900
+ "unsigned": {}21901
+ }21902
+ },21903
+ "@alice_1598:hs1": {21904
+ "ALICEDEVICE1598": {21905
+ "algorithms": [21906
+ "m.olm.v1.curve25519-aes-sha2",21907
+ "m.megolm.v1.aes-sha2"21908
+ ],21909
+ "device_id": "ALICEDEVICE1598",21910
+ "keys": {21911
+ "curve25519:ALICEDEVICE1598": "wYVZIQlNyuuudbuT9osOCLDZ8Sjkm9q9puJ10lJZPTY",21912
+ "ed25519:ALICEDEVICE1598": "o4/0qYLj2SECSECsJ0QVdjDY8u/CJwp3D2YQMx9Tz/0"21913
+ },21914
+ "signatures": {21915
+ "@alice_1598:hs1": {21916
+ "ed25519:ALICEDEVICE1598": "fSHgzCEoSxME1UWxFxPw31/aDThQCdktxVH2tAli83iJ9s6orD6koUq7AZPWNPifIQew5vnU/RbQ16SC6yayDg"21917
+ }21918
+ },21919
+ "user_id": "@alice_1598:hs1",21920
+ "unsigned": {}21921
+ }21922
+ },21923
+ "@alice_1617:hs1": {21924
+ "ALICEDEVICE1617": {21925
+ "algorithms": [21926
+ "m.olm.v1.curve25519-aes-sha2",21927
+ "m.megolm.v1.aes-sha2"21928
+ ],21929
+ "device_id": "ALICEDEVICE1617",21930
+ "keys": {21931
+ "curve25519:ALICEDEVICE1617": "1wfI6wL76bZx9fykdz5mR8/15ab2PAjojErMcHVsx3E",21932
+ "ed25519:ALICEDEVICE1617": "ztSLUB0WVojBv7kXG4bVm3BE7HlY8Z6tdr36/XD7Wyk"21933
+ },21934
+ "signatures": {21935
+ "@alice_1617:hs1": {21936
+ "ed25519:ALICEDEVICE1617": "MJvflBOWNqMtHkycLBRlSzwas/mAY/xLwhGaaoNAvASveoT78pjw8ortopoFZVNbMSleMCfs5ycxNgXNYxumAg"21937
+ }21938
+ },21939
+ "user_id": "@alice_1617:hs1",21940
+ "unsigned": {}21941
+ }21942
+ },21943
+ "@alice_161:hs1": {21944
+ "ALICEDEVICE161": {21945
+ "algorithms": [21946
+ "m.olm.v1.curve25519-aes-sha2",21947
+ "m.megolm.v1.aes-sha2"21948
+ ],21949
+ "device_id": "ALICEDEVICE161",21950
+ "keys": {21951
+ "curve25519:ALICEDEVICE161": "sf9THNZZjoJbGgf2Tn0+pkMvgJO3ltGLh2U1JVKHGjM",21952
+ "ed25519:ALICEDEVICE161": "V7k1L10/tLNHTROqRPLIDkQuymyOh8gVrPUhNKgU+gE"21953
+ },21954
+ "signatures": {21955
+ "@alice_161:hs1": {21956
+ "ed25519:ALICEDEVICE161": "NAE0S9Of+biF1f2mlfa/+uAn34LA/Hv5p+IBn3tlOUyC/CPfPQQXauUDbPFBQmSXcQQNM4cQQwgLUkZfyMemAw"21957
+ }21958
+ },21959
+ "user_id": "@alice_161:hs1",21960
+ "unsigned": {}21961
+ }21962
+ },21963
+ "@alice_1620:hs1": {21964
+ "ALICEDEVICE1620": {21965
+ "algorithms": [21966
+ "m.olm.v1.curve25519-aes-sha2",21967
+ "m.megolm.v1.aes-sha2"21968
+ ],21969
+ "device_id": "ALICEDEVICE1620",21970
+ "keys": {21971
+ "curve25519:ALICEDEVICE1620": "x+rjRYacL2SyiIeUFIkXMHsF8pxQ0Cmxdec14/PAUQI",21972
+ "ed25519:ALICEDEVICE1620": "a8DW42yQGqwdDeCML2fPK8/7UDBY/ESYHnXiaJ25AM4"21973
+ },21974
+ "signatures": {21975
+ "@alice_1620:hs1": {21976
+ "ed25519:ALICEDEVICE1620": "bT+Hxup2Zn6DS/h4HJGWFqOhd+1c3PkbYN29Uoql3xdwd5R9efcq3H3L64VSsZs98EYX/zkYHqk7lkydYeS5Dw"21977
+ }21978
+ },21979
+ "user_id": "@alice_1620:hs1",21980
+ "unsigned": {}21981
+ }21982
+ },21983
+ "@alice_1623:hs1": {21984
+ "ALICEDEVICE1623": {21985
+ "algorithms": [21986
+ "m.olm.v1.curve25519-aes-sha2",21987
+ "m.megolm.v1.aes-sha2"21988
+ ],21989
+ "device_id": "ALICEDEVICE1623",21990
+ "keys": {21991
+ "curve25519:ALICEDEVICE1623": "PPqFZg4BMsTCNTtQx0KI0b7NWbOq6VXmD9esthXfFDI",21992
+ "ed25519:ALICEDEVICE1623": "r4+VXAnGItinUcXP/Am/cYygeJQ3M2o1rnhV23iSuhs"21993
+ },21994
+ "signatures": {21995
+ "@alice_1623:hs1": {21996
+ "ed25519:ALICEDEVICE1623": "7GfnJqEJ5cfeAtFDQL3TkAZ+j1GD1lQ+T5V09NEgvICMIR54/PfUmGcm+fHO6MElyZgI6OlnlNd6fiCqFS9CBg"21997
+ }21998
+ },21999
+ "user_id": "@alice_1623:hs1",22000
+ "unsigned": {}22001
+ }22002
+ },22003
+ "@alice_162:hs1": {22004
+ "ALICEDEVICE162": {22005
+ "algorithms": [22006
+ "m.olm.v1.curve25519-aes-sha2",22007
+ "m.megolm.v1.aes-sha2"22008
+ ],22009
+ "device_id": "ALICEDEVICE162",22010
+ "keys": {22011
+ "curve25519:ALICEDEVICE162": "GqVRJFWtNPF329ARVYMdvJ4yOKoZ6KXSn8XXscSBrXI",22012
+ "ed25519:ALICEDEVICE162": "QihtbnUvhfXX/M+TGzgH8RZFdHJCERA0jQLDAbxshxI"22013
+ },22014
+ "signatures": {22015
+ "@alice_162:hs1": {22016
+ "ed25519:ALICEDEVICE162": "HoUxYHRxEKMnRhlNVB4rPPyIjyiDfPDanzKPNSLjhmvq55Mc1KGNzh+gkY7Pc6CtzghNLJz/cmDGO7aSuY05Aw"22017
+ }22018
+ },22019
+ "user_id": "@alice_162:hs1",22020
+ "unsigned": {}22021
+ }22022
+ },22023
+ "@alice_1632:hs1": {22024
+ "ALICEDEVICE1632": {22025
+ "algorithms": [22026
+ "m.olm.v1.curve25519-aes-sha2",22027
+ "m.megolm.v1.aes-sha2"22028
+ ],22029
+ "device_id": "ALICEDEVICE1632",22030
+ "keys": {22031
+ "curve25519:ALICEDEVICE1632": "DuteKuDSTMha39c9N3at6Ha3tTdzRLu535NESF9NFVk",22032
+ "ed25519:ALICEDEVICE1632": "FJDvIxqS7sJTfMsQsJN3i3TtwJKSqBcERwtSe0tSH4I"22033
+ },22034
+ "signatures": {22035
+ "@alice_1632:hs1": {22036
+ "ed25519:ALICEDEVICE1632": "fB9NRacRv6uvsDeK7aShIuhiCXDjI1Ppoo/6Iwv0vsV4q+/6iNO7Tg8O803h5G5FkeBJRxSQ/NyT2NQ+di4RDQ"22037
+ }22038
+ },22039
+ "user_id": "@alice_1632:hs1",22040
+ "unsigned": {}22041
+ }22042
+ },22043
+ "@alice_1638:hs1": {22044
+ "ALICEDEVICE1638": {22045
+ "algorithms": [22046
+ "m.olm.v1.curve25519-aes-sha2",22047
+ "m.megolm.v1.aes-sha2"22048
+ ],22049
+ "device_id": "ALICEDEVICE1638",22050
+ "keys": {22051
+ "curve25519:ALICEDEVICE1638": "dWV4VWVrH1hEZ+T5F43xwZhPRrYCzrQFPQqub8Xu0TM",22052
+ "ed25519:ALICEDEVICE1638": "nQcMzBwMJPlEDh69TUzwJnubmllZ+jOBAvaEDHIiT/A"22053
+ },22054
+ "signatures": {22055
+ "@alice_1638:hs1": {22056
+ "ed25519:ALICEDEVICE1638": "JoK7Qv288XdA/ry+MgqUY0fDsFW+5x6t2gw+vtSORlwI7vizFMCtuYBDw9gHyWJpTxDShABnk3BlTCv3D+/mAQ"22057
+ }22058
+ },22059
+ "user_id": "@alice_1638:hs1",22060
+ "unsigned": {}22061
+ }22062
+ },22063
+ "@alice_1656:hs1": {22064
+ "ALICEDEVICE1656": {22065
+ "algorithms": [22066
+ "m.olm.v1.curve25519-aes-sha2",22067
+ "m.megolm.v1.aes-sha2"22068
+ ],22069
+ "device_id": "ALICEDEVICE1656",22070
+ "keys": {22071
+ "curve25519:ALICEDEVICE1656": "PmyW6nlx1wvAuZtfrvvCYz4bgHxq4daZ4bt69PpwNRw",22072
+ "ed25519:ALICEDEVICE1656": "YDeIChV8UdEyYGLo+lpe20ZeDW3TMhvKd3hPzAEpmK4"22073
+ },22074
+ "signatures": {22075
+ "@alice_1656:hs1": {22076
+ "ed25519:ALICEDEVICE1656": "+c15czuJ9Dye7r5B3eobzngavuCkTIPdLFLYNLR2J17RzpEGLv+gSFFh17AkCQNvK3HqhxJWuMJSctU7wRIRDg"22077
+ }22078
+ },22079
+ "user_id": "@alice_1656:hs1",22080
+ "unsigned": {}22081
+ }22082
+ },22083
+ "@alice_1675:hs1": {22084
+ "ALICEDEVICE1675": {22085
+ "algorithms": [22086
+ "m.olm.v1.curve25519-aes-sha2",22087
+ "m.megolm.v1.aes-sha2"22088
+ ],22089
+ "device_id": "ALICEDEVICE1675",22090
+ "keys": {22091
+ "curve25519:ALICEDEVICE1675": "NFj9CBHv8gF9gkDu7mCN5dkXy4HcdZnGwGbAU7vFVRw",22092
+ "ed25519:ALICEDEVICE1675": "TMwxyP+vbQzxZlD2fMw9PYjOPOoFpiHZQWYlRQyThqI"22093
+ },22094
+ "signatures": {22095
+ "@alice_1675:hs1": {22096
+ "ed25519:ALICEDEVICE1675": "emeGzP/3ewV73wf2KhZ30htUqXkImHukLLWI00gRMhZb3f52AtZ4Hrvw4CK2x4HBFknegvZyNNqya7u2PYMkCw"22097
+ }22098
+ },22099
+ "user_id": "@alice_1675:hs1",22100
+ "unsigned": {}22101
+ }22102
+ },22103
+ "@alice_1678:hs1": {22104
+ "ALICEDEVICE1678": {22105
+ "algorithms": [22106
+ "m.olm.v1.curve25519-aes-sha2",22107
+ "m.megolm.v1.aes-sha2"22108
+ ],22109
+ "device_id": "ALICEDEVICE1678",22110
+ "keys": {22111
+ "curve25519:ALICEDEVICE1678": "j/B19fOkFfr4F7L5EfuarHMBrw/UXSsZydDTksRqLEI",22112
+ "ed25519:ALICEDEVICE1678": "Vr9rS1d6kZuiimtAmuw551CaGpgDJ8F7PGqxLwqWKx8"22113
+ },22114
+ "signatures": {22115
+ "@alice_1678:hs1": {22116
+ "ed25519:ALICEDEVICE1678": "Y/9eJQrrAnCj4Gg+b1O+wMPDAYVISIDmhVzIfYQH36fXvhfVoKV8ZARLlhDqcFX8QZI2b9hTHxC8574sIjFNDw"22117
+ }22118
+ },22119
+ "user_id": "@alice_1678:hs1",22120
+ "unsigned": {}22121
+ }22122
+ },22123
+ "@alice_1679:hs1": {22124
+ "ALICEDEVICE1679": {22125
+ "algorithms": [22126
+ "m.olm.v1.curve25519-aes-sha2",22127
+ "m.megolm.v1.aes-sha2"22128
+ ],22129
+ "device_id": "ALICEDEVICE1679",22130
+ "keys": {22131
+ "curve25519:ALICEDEVICE1679": "E6iLZMvbN8DKaQDDxLHGMv3sddaZN4bDxel7fBrriB0",22132
+ "ed25519:ALICEDEVICE1679": "CF8I+M/RgN8KSQZvBhMJnJo1Adm+zPc3OoDvlM6OmFU"22133
+ },22134
+ "signatures": {22135
+ "@alice_1679:hs1": {22136
+ "ed25519:ALICEDEVICE1679": "QdxDvvBP2VBt7Uba6BRdXWa+Sh3P+EjCqg/PI71GFYmjp/SRAE5dUnD2ZEuucV/o5FrLO3OU9qARe4pWcJO8CQ"22137
+ }22138
+ },22139
+ "user_id": "@alice_1679:hs1",22140
+ "unsigned": {}22141
+ }22142
+ },22143
+ "@alice_1680:hs1": {22144
+ "ALICEDEVICE1680": {22145
+ "algorithms": [22146
+ "m.olm.v1.curve25519-aes-sha2",22147
+ "m.megolm.v1.aes-sha2"22148
+ ],22149
+ "device_id": "ALICEDEVICE1680",22150
+ "keys": {22151
+ "curve25519:ALICEDEVICE1680": "KyNsAlVMb72Km07zvawrqopp0fPUNNCrRHzA7Spw/k8",22152
+ "ed25519:ALICEDEVICE1680": "BFTVyeQti3dagG5f7fhwzEBqWVFwKofPSYj0acP9tPA"22153
+ },22154
+ "signatures": {22155
+ "@alice_1680:hs1": {22156
+ "ed25519:ALICEDEVICE1680": "tNV8Zen7UzQWkGEVpMCXnuH/KHmfcHbV9zs882y3kXikVTN4avSfxZXMan3X/K/JCPaYzphDFdr/pSrLYvkvAA"22157
+ }22158
+ },22159
+ "user_id": "@alice_1680:hs1",22160
+ "unsigned": {}22161
+ }22162
+ },22163
+ "@alice_16:hs1": {22164
+ "ALICEDEVICE16": {22165
+ "algorithms": [22166
+ "m.olm.v1.curve25519-aes-sha2",22167
+ "m.megolm.v1.aes-sha2"22168
+ ],22169
+ "device_id": "ALICEDEVICE16",22170
+ "keys": {22171
+ "curve25519:ALICEDEVICE16": "CVpd6+C4+oPKgg17u5R09faOthumCPgd33IiQl4owl4",22172
+ "ed25519:ALICEDEVICE16": "jTH7RPGdCVo8xILqeB0d3Crr0rN6w7bjZ9rPTbPT9tA"22173
+ },22174
+ "signatures": {22175
+ "@alice_16:hs1": {22176
+ "ed25519:ALICEDEVICE16": "kwtUdVo4JphGCFLA7y/cdh13M8aWF6ayhPXYkbOg7ZezMrkFpyfiffDN6efLuoChgpu0ZIK+OZDezGL6IfFbCw"22177
+ }22178
+ },22179
+ "user_id": "@alice_16:hs1",22180
+ "unsigned": {}22181
+ }22182
+ },22183
+ "@alice_1705:hs1": {22184
+ "ALICEDEVICE1705": {22185
+ "algorithms": [22186
+ "m.olm.v1.curve25519-aes-sha2",22187
+ "m.megolm.v1.aes-sha2"22188
+ ],22189
+ "device_id": "ALICEDEVICE1705",22190
+ "keys": {22191
+ "curve25519:ALICEDEVICE1705": "9xNyirdx3VXMxHQZuC7HviXhU6bWOAMpMpMtCvKOiEM",22192
+ "ed25519:ALICEDEVICE1705": "uTNH+gZPiuD/JocmieuA1qs0upmi0HWLX2t5Wd4NIDg"22193
+ },22194
+ "signatures": {22195
+ "@alice_1705:hs1": {22196
+ "ed25519:ALICEDEVICE1705": "UuEfH4unKfRHEN/jPn7VN/5QCl+TytnPhjN9VPyHNrh7Nex3UpdMc1xrhTZZ32yX+bRQXXGMxF4E5Tc5fHxKBQ"22197
+ }22198
+ },22199
+ "user_id": "@alice_1705:hs1",22200
+ "unsigned": {}22201
+ }22202
+ },22203
+ "@alice_1716:hs1": {22204
+ "ALICEDEVICE1716": {22205
+ "algorithms": [22206
+ "m.olm.v1.curve25519-aes-sha2",22207
+ "m.megolm.v1.aes-sha2"22208
+ ],22209
+ "device_id": "ALICEDEVICE1716",22210
+ "keys": {22211
+ "curve25519:ALICEDEVICE1716": "WTz30es2Tn08YmRDPndYGoyqjcPmQI70QNvViaijZSA",22212
+ "ed25519:ALICEDEVICE1716": "drV2oTAarLREsNckGSGQtjkqdJn33+dmrPiGdd94xCw"22213
+ },22214
+ "signatures": {22215
+ "@alice_1716:hs1": {22216
+ "ed25519:ALICEDEVICE1716": "3y9LpbKN1mUMVCgTPwDygaaLBk+y1iDpLlpGF7ECRaIYezw7pmxygwBS0aVqcUiMIWUWaRAFWw832VTZ1r5UCA"22217
+ }22218
+ },22219
+ "user_id": "@alice_1716:hs1",22220
+ "unsigned": {}22221
+ }22222
+ },22223
+ "@alice_1718:hs1": {22224
+ "ALICEDEVICE1718": {22225
+ "algorithms": [22226
+ "m.olm.v1.curve25519-aes-sha2",22227
+ "m.megolm.v1.aes-sha2"22228
+ ],22229
+ "device_id": "ALICEDEVICE1718",22230
+ "keys": {22231
+ "curve25519:ALICEDEVICE1718": "BEaK10IEBMAjc/CuE+kq0qyQiUN2psjDHTesZwyCy0E",22232
+ "ed25519:ALICEDEVICE1718": "8mda5zE36UhmQK1ylbgchxWiA3oKranHu/2cMtDG/Lc"22233
+ },22234
+ "signatures": {22235
+ "@alice_1718:hs1": {22236
+ "ed25519:ALICEDEVICE1718": "6cJqx/FqDO8JYekdhJheT4YHL0UczTeM/RfhM2Zjp6avEjDJ5X6FqaBHjtjTTCBYvISXReU1nyWfXOOhWHgVCA"22237
+ }22238
+ },22239
+ "user_id": "@alice_1718:hs1",22240
+ "unsigned": {}22241
+ }22242
+ },22243
+ "@alice_1723:hs1": {22244
+ "ALICEDEVICE1723": {22245
+ "algorithms": [22246
+ "m.olm.v1.curve25519-aes-sha2",22247
+ "m.megolm.v1.aes-sha2"22248
+ ],22249
+ "device_id": "ALICEDEVICE1723",22250
+ "keys": {22251
+ "curve25519:ALICEDEVICE1723": "+xCRR7NGRH/Z9JyQLP/iEc5pTv659qR6uGDJz8Ad5B4",22252
+ "ed25519:ALICEDEVICE1723": "tCpwVbvj3PZ5pkELl1rsC2gHNyKJBGZnal1vWz27dKk"22253
+ },22254
+ "signatures": {22255
+ "@alice_1723:hs1": {22256
+ "ed25519:ALICEDEVICE1723": "oeaiZm9YpGwYenmW06WIEEsiASEqxA+JWQDz8HgoDaXKwDeHMOuyr5XYkHcqdczjMPbo4AEU0npqdBnow/OTAA"22257
+ }22258
+ },22259
+ "user_id": "@alice_1723:hs1",22260
+ "unsigned": {}22261
+ }22262
+ },22263
+ "@alice_1727:hs1": {22264
+ "ALICEDEVICE1727": {22265
+ "algorithms": [22266
+ "m.olm.v1.curve25519-aes-sha2",22267
+ "m.megolm.v1.aes-sha2"22268
+ ],22269
+ "device_id": "ALICEDEVICE1727",22270
+ "keys": {22271
+ "curve25519:ALICEDEVICE1727": "xagzsES5YpIdwtikBcfCkLYNlwmoA69tpeuPETxeq1I",22272
+ "ed25519:ALICEDEVICE1727": "c7Bwava9Z4ycvblXI69m0Efm6azF4WBqiO/ay1J0KNA"22273
+ },22274
+ "signatures": {22275
+ "@alice_1727:hs1": {22276
+ "ed25519:ALICEDEVICE1727": "TpVj3ftD//AhLrTqWKG1w4c1R6mChkq6Fu0gqNrDckYiGMZG2kEBI2cbDiN3nw39r1lpOBm4Se3jT3BffH6XAQ"22277
+ }22278
+ },22279
+ "user_id": "@alice_1727:hs1",22280
+ "unsigned": {}22281
+ }22282
+ },22283
+ "@alice_1730:hs1": {22284
+ "ALICEDEVICE1730": {22285
+ "algorithms": [22286
+ "m.olm.v1.curve25519-aes-sha2",22287
+ "m.megolm.v1.aes-sha2"22288
+ ],22289
+ "device_id": "ALICEDEVICE1730",22290
+ "keys": {22291
+ "curve25519:ALICEDEVICE1730": "YOSavB2lNbetVEe5YX2JopOSiKT18nQrztts43OxAX4",22292
+ "ed25519:ALICEDEVICE1730": "rSflLgBvZVbLDxL5bfmv0UbmBpcorNGZRwajJO3BE+I"22293
+ },22294
+ "signatures": {22295
+ "@alice_1730:hs1": {22296
+ "ed25519:ALICEDEVICE1730": "kv3eMzWsexVI8rfTqSQuzovuSwHUB+zXeWvIx35VLodCUBcSAIPWEwmtZhBL2u736fMMbbh4Jf3Ymoxu0YZmDw"22297
+ }22298
+ },22299
+ "user_id": "@alice_1730:hs1",22300
+ "unsigned": {}22301
+ }22302
+ },22303
+ "@alice_1732:hs1": {22304
+ "ALICEDEVICE1732": {22305
+ "algorithms": [22306
+ "m.olm.v1.curve25519-aes-sha2",22307
+ "m.megolm.v1.aes-sha2"22308
+ ],22309
+ "device_id": "ALICEDEVICE1732",22310
+ "keys": {22311
+ "curve25519:ALICEDEVICE1732": "7S0Y7jnMD3Y5x32x2V8LvhFwJ8d9Pnh6rZoIe509yy4",22312
+ "ed25519:ALICEDEVICE1732": "rWmGoJE60zxeNkkrw8Z/0MS3JuZOEYyG/Jn0YYPBm5o"22313
+ },22314
+ "signatures": {22315
+ "@alice_1732:hs1": {22316
+ "ed25519:ALICEDEVICE1732": "oDlnihz0+FPt0AhWIt90cvKcRXTKMxpP5jxS1Fi+kQ7vronoirMXyRhAUFxePOykbjpD61l6RJapW4F2iFhUDQ"22317
+ }22318
+ },22319
+ "user_id": "@alice_1732:hs1",22320
+ "unsigned": {}22321
+ }22322
+ },22323
+ "@alice_1753:hs1": {22324
+ "ALICEDEVICE1753": {22325
+ "algorithms": [22326
+ "m.olm.v1.curve25519-aes-sha2",22327
+ "m.megolm.v1.aes-sha2"22328
+ ],22329
+ "device_id": "ALICEDEVICE1753",22330
+ "keys": {22331
+ "curve25519:ALICEDEVICE1753": "jHcjE5lzIn73vBXH+qj0kS751BNLnLx3EHW6MpBv8nQ",22332
+ "ed25519:ALICEDEVICE1753": "DNpLgcWTzx75E/tOMmcAA4+TtYGhDAMsdL3nbuc1H4U"22333
+ },22334
+ "signatures": {22335
+ "@alice_1753:hs1": {22336
+ "ed25519:ALICEDEVICE1753": "wBT75NLY6SbV0txlOraAy0dTSsgzhgS0YVTCWy26L4h3C5GqLixu3FLt1/ulckjpvcVotK8RHUqKou76OBkyCw"22337
+ }22338
+ },22339
+ "user_id": "@alice_1753:hs1",22340
+ "unsigned": {}22341
+ }22342
+ },22343
+ "@alice_175:hs1": {22344
+ "ALICEDEVICE175": {22345
+ "algorithms": [22346
+ "m.olm.v1.curve25519-aes-sha2",22347
+ "m.megolm.v1.aes-sha2"22348
+ ],22349
+ "device_id": "ALICEDEVICE175",22350
+ "keys": {22351
+ "curve25519:ALICEDEVICE175": "Nz8BgUYTzy5mQjfHg8RlN+ppKZ9Hkc6EH47vGqDxHXA",22352
+ "ed25519:ALICEDEVICE175": "lWj43dYJJv7NXbx0hU/9k6lb5tWYzytjy4jUckWEhX4"22353
+ },22354
+ "signatures": {22355
+ "@alice_175:hs1": {22356
+ "ed25519:ALICEDEVICE175": "xWUnQxEHFdIhbSsNmmasLmUG0LnI/chM8MammJGFZqI1V8qa72FLLIBq8z0ihoc9IPnff06jWOyQBvXBeb7MBg"22357
+ }22358
+ },22359
+ "user_id": "@alice_175:hs1",22360
+ "unsigned": {}22361
+ }22362
+ },22363
+ "@alice_1773:hs1": {22364
+ "ALICEDEVICE1773": {22365
+ "algorithms": [22366
+ "m.olm.v1.curve25519-aes-sha2",22367
+ "m.megolm.v1.aes-sha2"22368
+ ],22369
+ "device_id": "ALICEDEVICE1773",22370
+ "keys": {22371
+ "curve25519:ALICEDEVICE1773": "jL1yQzYWU0393NFSHKpl8uyBihpFhhdqtP04d9rT2As",22372
+ "ed25519:ALICEDEVICE1773": "+1XGSgRJDuz1NHhNku5TMK32R1PcFljwhHraiKZgS1Q"22373
+ },22374
+ "signatures": {22375
+ "@alice_1773:hs1": {22376
+ "ed25519:ALICEDEVICE1773": "JuWp3TK252HdytFWFkq7ruNAc4eBJduK7MJl6oapugegmbBNLiJ20fFp7zai4uDHcvgQRHtjqlF/pQfbytAoCQ"22377
+ }22378
+ },22379
+ "user_id": "@alice_1773:hs1",22380
+ "unsigned": {}22381
+ }22382
+ },22383
+ "@alice_1778:hs1": {22384
+ "ALICEDEVICE1778": {22385
+ "algorithms": [22386
+ "m.olm.v1.curve25519-aes-sha2",22387
+ "m.megolm.v1.aes-sha2"22388
+ ],22389
+ "device_id": "ALICEDEVICE1778",22390
+ "keys": {22391
+ "curve25519:ALICEDEVICE1778": "jWMF5JfISpQEXr3CKRRwWZSWa2la5Yj+Ni7ZfWJ5Wnk",22392
+ "ed25519:ALICEDEVICE1778": "HWFzEi29mT2gNi4HdeAZZ9rtoleh/6d4hv+qqzWEivk"22393
+ },22394
+ "signatures": {22395
+ "@alice_1778:hs1": {22396
+ "ed25519:ALICEDEVICE1778": "YsMkqt56d0myev4a2KUxhmwuAI4O2ZBmWH37Wt5Am8hLynyp9aAN4DeWltqxE4eikBtU6R+qXZRIfDy7c2NPBg"22397
+ }22398
+ },22399
+ "user_id": "@alice_1778:hs1",22400
+ "unsigned": {}22401
+ }22402
+ },22403
+ "@alice_1789:hs1": {22404
+ "ALICEDEVICE1789": {22405
+ "algorithms": [22406
+ "m.olm.v1.curve25519-aes-sha2",22407
+ "m.megolm.v1.aes-sha2"22408
+ ],22409
+ "device_id": "ALICEDEVICE1789",22410
+ "keys": {22411
+ "curve25519:ALICEDEVICE1789": "l4SKVjV2pf0zOk/Q2ULe+YgxUwTBfN7Mv2+OZC1rDQo",22412
+ "ed25519:ALICEDEVICE1789": "k5PwVooSZKdRqFXRnql/viHXwLQqq16S565dxWj0IoM"22413
+ },22414
+ "signatures": {22415
+ "@alice_1789:hs1": {22416
+ "ed25519:ALICEDEVICE1789": "zmUx5IQusZyEzpqCxZxZroOrdejoV3yX7cG5BchXhPRXt23/Huf/0ZjRcW/h/nXKm67pfAE8YWI/RDw5JL7pAg"22417
+ }22418
+ },22419
+ "user_id": "@alice_1789:hs1",22420
+ "unsigned": {}22421
+ }22422
+ },22423
+ "@alice_178:hs1": {22424
+ "ALICEDEVICE178": {22425
+ "algorithms": [22426
+ "m.olm.v1.curve25519-aes-sha2",22427
+ "m.megolm.v1.aes-sha2"22428
+ ],22429
+ "device_id": "ALICEDEVICE178",22430
+ "keys": {22431
+ "curve25519:ALICEDEVICE178": "DkVDAiDSbGp2/RZ+7jSrr7WL0lSUpq2egos+nDXn5Xg",22432
+ "ed25519:ALICEDEVICE178": "6vrUSShzq203J/Ve8xM4cI8+t7bRgHfij0yMl8l1wpc"22433
+ },22434
+ "signatures": {22435
+ "@alice_178:hs1": {22436
+ "ed25519:ALICEDEVICE178": "pL8pVeyJGyz1RqV9NIkNQNr2ol8k5t+BzDGLJRBtWvuIompwoxmKBEekd1OfOr38mu5jiPO8oFIQTzyaBH0TBA"22437
+ }22438
+ },22439
+ "user_id": "@alice_178:hs1",22440
+ "unsigned": {}22441
+ }22442
+ },22443
+ "@alice_1811:hs1": {22444
+ "ALICEDEVICE1811": {22445
+ "algorithms": [22446
+ "m.olm.v1.curve25519-aes-sha2",22447
+ "m.megolm.v1.aes-sha2"22448
+ ],22449
+ "device_id": "ALICEDEVICE1811",22450
+ "keys": {22451
+ "curve25519:ALICEDEVICE1811": "iCW/VJtRNaz5+dyXNHe+X6avW8SIoDWJ5smnNayiCB0",22452
+ "ed25519:ALICEDEVICE1811": "CGdoPAU90+t7SPczLc4BbT/EKYO/Dq4+MUbdGtgYoVA"22453
+ },22454
+ "signatures": {22455
+ "@alice_1811:hs1": {22456
+ "ed25519:ALICEDEVICE1811": "DIphJMILYqpbyZeZv1oN6FmIoBXGF+b19LUOjZOiaTnXL7JcgE5g8z+COfzTkJNqGHKky1uwqiQYAGHurclrBA"22457
+ }22458
+ },22459
+ "user_id": "@alice_1811:hs1",22460
+ "unsigned": {}22461
+ }22462
+ },22463
+ "@alice_1813:hs1": {22464
+ "ALICEDEVICE1813": {22465
+ "algorithms": [22466
+ "m.olm.v1.curve25519-aes-sha2",22467
+ "m.megolm.v1.aes-sha2"22468
+ ],22469
+ "device_id": "ALICEDEVICE1813",22470
+ "keys": {22471
+ "curve25519:ALICEDEVICE1813": "jbQjjVW3erkUqLxIVZvf8ceMgqr6FjgH+lelLp8O+Vo",22472
+ "ed25519:ALICEDEVICE1813": "99vU4cWp9GhzhnLd5xyNudJlyO2Xpv2QWSo2zLNy/hA"22473
+ },22474
+ "signatures": {22475
+ "@alice_1813:hs1": {22476
+ "ed25519:ALICEDEVICE1813": "NyCLOI8dSGEsmm7fzNJ+R1LGNDBDWEti1yf3FJ940dNMFV3dTobbhIsUjRulwGe0mYIkPbPAmxAiLiWudCN0Ag"22477
+ }22478
+ },22479
+ "user_id": "@alice_1813:hs1",22480
+ "unsigned": {}22481
+ }22482
+ },22483
+ "@alice_1833:hs1": {22484
+ "ALICEDEVICE1833": {22485
+ "algorithms": [22486
+ "m.olm.v1.curve25519-aes-sha2",22487
+ "m.megolm.v1.aes-sha2"22488
+ ],22489
+ "device_id": "ALICEDEVICE1833",22490
+ "keys": {22491
+ "curve25519:ALICEDEVICE1833": "xj0NnJ+PGCG/Z/SYG/F2cFx+TTZRMXV0t5RrnAaMZjo",22492
+ "ed25519:ALICEDEVICE1833": "CUl0wL5Xho6RoHrmvIz05iuSLHAkLFHgCl+uTygRQlw"22493
+ },22494
+ "signatures": {22495
+ "@alice_1833:hs1": {22496
+ "ed25519:ALICEDEVICE1833": "GpUcrg6X4DyFF4ue4rPw7gv1+XD8VVSWtZ1Fp5KmieH65EEuDkkBvxNbZcvegRgqaePZugvsUeqe9nKoOo5iCQ"22497
+ }22498
+ },22499
+ "user_id": "@alice_1833:hs1",22500
+ "unsigned": {}22501
+ }22502
+ },22503
+ "@alice_1844:hs1": {22504
+ "ALICEDEVICE1844": {22505
+ "algorithms": [22506
+ "m.olm.v1.curve25519-aes-sha2",22507
+ "m.megolm.v1.aes-sha2"22508
+ ],22509
+ "device_id": "ALICEDEVICE1844",22510
+ "keys": {22511
+ "curve25519:ALICEDEVICE1844": "51CUUu1w6103nVXemDiTmjcrO61SqJ7eKTHns27MxU4",22512
+ "ed25519:ALICEDEVICE1844": "wWMr+zRkzuaZheXvHc7NMocrS8+E8COtPapZzrXzznM"22513
+ },22514
+ "signatures": {22515
+ "@alice_1844:hs1": {22516
+ "ed25519:ALICEDEVICE1844": "Ud1rVaAdErVLN6+zxtUbWWeyM7eStLP/PANXCR2RvcuDkfInv295GiaaympMcuH9p6hjtinduBNpw+EWiZUgBw"22517
+ }22518
+ },22519
+ "user_id": "@alice_1844:hs1",22520
+ "unsigned": {}22521
+ }22522
+ },22523
+ "@alice_1847:hs1": {22524
+ "ALICEDEVICE1847": {22525
+ "algorithms": [22526
+ "m.olm.v1.curve25519-aes-sha2",22527
+ "m.megolm.v1.aes-sha2"22528
+ ],22529
+ "device_id": "ALICEDEVICE1847",22530
+ "keys": {22531
+ "curve25519:ALICEDEVICE1847": "OjTuRimXgd6tEAsJg2wSlFyx/Z2gW4ShbOcTTVNOBGU",22532
+ "ed25519:ALICEDEVICE1847": "eTaQVzv0w0yMpUXGsrB+8FWcY9xtiUilT+nk4ctQjWE"22533
+ },22534
+ "signatures": {22535
+ "@alice_1847:hs1": {22536
+ "ed25519:ALICEDEVICE1847": "c1Eq6LMRCCub/24lySrpI4z7uuUxlsZSiAWqU0radtlEYfLvz30/CgL7F6YP7yZThophzU4NUxGQGqG2R20PDQ"22537
+ }22538
+ },22539
+ "user_id": "@alice_1847:hs1",22540
+ "unsigned": {}22541
+ }22542
+ },22543
+ "@alice_1854:hs1": {22544
+ "ALICEDEVICE1854": {22545
+ "algorithms": [22546
+ "m.olm.v1.curve25519-aes-sha2",22547
+ "m.megolm.v1.aes-sha2"22548
+ ],22549
+ "device_id": "ALICEDEVICE1854",22550
+ "keys": {22551
+ "curve25519:ALICEDEVICE1854": "wgo+D9yFh2xlGCrHLqihqJQsKUHFevf9BdqjbADMFic",22552
+ "ed25519:ALICEDEVICE1854": "0hXCauPGL15HS2MptJrxdHeL/k6Iebc7iXkBk38FflE"22553
+ },22554
+ "signatures": {22555
+ "@alice_1854:hs1": {22556
+ "ed25519:ALICEDEVICE1854": "BwsFUiIUja2B9gnsz9mf69Yr5FdChF442kCY8cKrQmLRuMEhYi+y698Zvd3EjO12z0AgsfPsfJ9FGpnqCWj0DA"22557
+ }22558
+ },22559
+ "user_id": "@alice_1854:hs1",22560
+ "unsigned": {}22561
+ }22562
+ },22563
+ "@alice_1863:hs1": {22564
+ "ALICEDEVICE1863": {22565
+ "algorithms": [22566
+ "m.olm.v1.curve25519-aes-sha2",22567
+ "m.megolm.v1.aes-sha2"22568
+ ],22569
+ "device_id": "ALICEDEVICE1863",22570
+ "keys": {22571
+ "curve25519:ALICEDEVICE1863": "kaY5hV5BkWWYcmc470pyfQ8Sax6P9saR++SU9el4JQ4",22572
+ "ed25519:ALICEDEVICE1863": "foVMrTgWHoF6TF+OMs6OFof5qCZ3LyFxR/FJQXEuK7A"22573
+ },22574
+ "signatures": {22575
+ "@alice_1863:hs1": {22576
+ "ed25519:ALICEDEVICE1863": "JE7sQ6l5sG9BDveC4syFMRgQGciOjvIc6SnrUp0HHzzPxGYgM+iC8ASzP6wdxqtogljosuv9YzQHFTPsq4upBA"22577
+ }22578
+ },22579
+ "user_id": "@alice_1863:hs1",22580
+ "unsigned": {}22581
+ }22582
+ },22583
+ "@alice_1864:hs1": {22584
+ "ALICEDEVICE1864": {22585
+ "algorithms": [22586
+ "m.olm.v1.curve25519-aes-sha2",22587
+ "m.megolm.v1.aes-sha2"22588
+ ],22589
+ "device_id": "ALICEDEVICE1864",22590
+ "keys": {22591
+ "curve25519:ALICEDEVICE1864": "mq7ABdryXhkPaEq1prGZj5O62cmMV+gH7InUdskZw1w",22592
+ "ed25519:ALICEDEVICE1864": "9rI+Urs+m4Cb956IX/TSHwzVRK0HSITD/ixI7aEmbes"22593
+ },22594
+ "signatures": {22595
+ "@alice_1864:hs1": {22596
+ "ed25519:ALICEDEVICE1864": "xSBbYpTu3Y3JESn7ZhL/xt1X3U6jg0WLzSOK9oJDO4vXMXj+gZg+p1gQGLC1GV+rm/J2tB7x/AZKudQF/zH3Bg"22597
+ }22598
+ },22599
+ "user_id": "@alice_1864:hs1",22600
+ "unsigned": {}22601
+ }22602
+ },22603
+ "@alice_1870:hs1": {22604
+ "ALICEDEVICE1870": {22605
+ "algorithms": [22606
+ "m.olm.v1.curve25519-aes-sha2",22607
+ "m.megolm.v1.aes-sha2"22608
+ ],22609
+ "device_id": "ALICEDEVICE1870",22610
+ "keys": {22611
+ "curve25519:ALICEDEVICE1870": "RSt703rB6auD8J3zPbZRSEXAFUCd7MkJJrHNhKDc0Wc",22612
+ "ed25519:ALICEDEVICE1870": "D1CdQVn5PIBLHTMeG+tHEJMGuFMv9nxpCFBx56vvgc0"22613
+ },22614
+ "signatures": {22615
+ "@alice_1870:hs1": {22616
+ "ed25519:ALICEDEVICE1870": "gOfi4eKx4obwm3A+f+BJwFe4Ol8/2S9IGfnxDm/vgjxxsUqkSVU9n7ilAhQFjPYTTS5xM8h+jItFio+0r7FbDQ"22617
+ }22618
+ },22619
+ "user_id": "@alice_1870:hs1",22620
+ "unsigned": {}22621
+ }22622
+ },22623
+ "@alice_187:hs1": {22624
+ "ALICEDEVICE187": {22625
+ "algorithms": [22626
+ "m.olm.v1.curve25519-aes-sha2",22627
+ "m.megolm.v1.aes-sha2"22628
+ ],22629
+ "device_id": "ALICEDEVICE187",22630
+ "keys": {22631
+ "curve25519:ALICEDEVICE187": "6l9DVZ5KCaIrHpunRNU5llBHIiBVZYoZJtMlXp2KZEs",22632
+ "ed25519:ALICEDEVICE187": "Gt3bOMYAZLX1VoxavB/J/legkOH1BWnS7WUOLQYmaP0"22633
+ },22634
+ "signatures": {22635
+ "@alice_187:hs1": {22636
+ "ed25519:ALICEDEVICE187": "rrRYYVa+SDXRNWocQ4cjzQqop+mLr/azFfFDnnJGfxnXhh/o9m1RcklEuNF41tK5zDez/fTiDByAqzk6FFiVAA"22637
+ }22638
+ },22639
+ "user_id": "@alice_187:hs1",22640
+ "unsigned": {}22641
+ }22642
+ },22643
+ "@alice_1882:hs1": {22644
+ "ALICEDEVICE1882": {22645
+ "algorithms": [22646
+ "m.olm.v1.curve25519-aes-sha2",22647
+ "m.megolm.v1.aes-sha2"22648
+ ],22649
+ "device_id": "ALICEDEVICE1882",22650
+ "keys": {22651
+ "curve25519:ALICEDEVICE1882": "nnAAQ4Igy8BlQ2QuUKavKwCDIIXOxuj75Rjm7VCVikg",22652
+ "ed25519:ALICEDEVICE1882": "Zc1wV8R2aCv7eRZbNyZK2dRYn1ZTErRFUtODM1sDQVI"22653
+ },22654
+ "signatures": {22655
+ "@alice_1882:hs1": {22656
+ "ed25519:ALICEDEVICE1882": "nEy1vm53+Xv/qn3wZP7NOWIfoVEPwRHTeW1HvZCvaGC3RgAJ7XVhx44C1EncHFiR4QMVvaLibKzqKWtVZ6EJAg"22657
+ }22658
+ },22659
+ "user_id": "@alice_1882:hs1",22660
+ "unsigned": {}22661
+ }22662
+ },22663
+ "@alice_1888:hs1": {22664
+ "ALICEDEVICE1888": {22665
+ "algorithms": [22666
+ "m.olm.v1.curve25519-aes-sha2",22667
+ "m.megolm.v1.aes-sha2"22668
+ ],22669
+ "device_id": "ALICEDEVICE1888",22670
+ "keys": {22671
+ "curve25519:ALICEDEVICE1888": "ou251bMl4RApPmelQZboxy3Jqb5xaFT9gnyMy6t+Wwo",22672
+ "ed25519:ALICEDEVICE1888": "PxOV64BeR97F1bNp1xZymaKY82coSNalyzw5CyusMeU"22673
+ },22674
+ "signatures": {22675
+ "@alice_1888:hs1": {22676
+ "ed25519:ALICEDEVICE1888": "dvKKPTeb+2ix3Sh76SyiwCITNAucJEjjdwRLuZ54qMbx/IF2N6Eo+WS8opqv6DsgDZWckVLaG3vCIoppQD1lDg"22677
+ }22678
+ },22679
+ "user_id": "@alice_1888:hs1",22680
+ "unsigned": {}22681
+ }22682
+ },22683
+ "@alice_1890:hs1": {22684
+ "ALICEDEVICE1890": {22685
+ "algorithms": [22686
+ "m.olm.v1.curve25519-aes-sha2",22687
+ "m.megolm.v1.aes-sha2"22688
+ ],22689
+ "device_id": "ALICEDEVICE1890",22690
+ "keys": {22691
+ "curve25519:ALICEDEVICE1890": "+zOsoDvcpaoSonF7HtwLljzrbkC11R8U04kylhYtE2Y",22692
+ "ed25519:ALICEDEVICE1890": "BWJF3l3IZfj7pcSor8DoQ9i7uG+6WahYFVJc8f+qyx4"22693
+ },22694
+ "signatures": {22695
+ "@alice_1890:hs1": {22696
+ "ed25519:ALICEDEVICE1890": "PZQOBkDcxUB2lbiy6qsItnmwehPyp/tNnQ54YH7hp1k2fX/yD5fxesmAampksUBIvz8NZj25Mpdta5b8RVRvBQ"22697
+ }22698
+ },22699
+ "user_id": "@alice_1890:hs1",22700
+ "unsigned": {}22701
+ }22702
+ },22703
+ "@alice_1898:hs1": {22704
+ "ALICEDEVICE1898": {22705
+ "algorithms": [22706
+ "m.olm.v1.curve25519-aes-sha2",22707
+ "m.megolm.v1.aes-sha2"22708
+ ],22709
+ "device_id": "ALICEDEVICE1898",22710
+ "keys": {22711
+ "curve25519:ALICEDEVICE1898": "s6rLeyjng7LRl693GRBl943IzOg3IZjG+UdBekORWlo",22712
+ "ed25519:ALICEDEVICE1898": "dva1rcm7VCrKiD+DgAelFaNJ3jW4MObqIc73oWwjzkI"22713
+ },22714
+ "signatures": {22715
+ "@alice_1898:hs1": {22716
+ "ed25519:ALICEDEVICE1898": "/mzsp8Gk44Bem69vQhjex/90wl4jquN6khYZu044FNlMBciXD4Ogt7E8g6WSadV2Y/r9o3UxL9Xk/hG6R+PQAw"22717
+ }22718
+ },22719
+ "user_id": "@alice_1898:hs1",22720
+ "unsigned": {}22721
+ }22722
+ },22723
+ "@alice_1899:hs1": {22724
+ "ALICEDEVICE1899": {22725
+ "algorithms": [22726
+ "m.olm.v1.curve25519-aes-sha2",22727
+ "m.megolm.v1.aes-sha2"22728
+ ],22729
+ "device_id": "ALICEDEVICE1899",22730
+ "keys": {22731
+ "curve25519:ALICEDEVICE1899": "wFlD2bvmZtnCB+jLVSm5ZuZI/rHfdzZdn0W/4McQ2F0",22732
+ "ed25519:ALICEDEVICE1899": "edBnF8WFufsWnd0G3M7WbIXcNjR+7tIo1Gw6DNMSGAY"22733
+ },22734
+ "signatures": {22735
+ "@alice_1899:hs1": {22736
+ "ed25519:ALICEDEVICE1899": "qgf8jW26fQkCAiEQXIzyzSUce/c+QV2EAT6BJBrKheQbuoqr2KrXpGVPy+8uxN4NpSLpKdlwSKKZRZaEYrebAw"22737
+ }22738
+ },22739
+ "user_id": "@alice_1899:hs1",22740
+ "unsigned": {}22741
+ }22742
+ },22743
+ "@alice_1909:hs1": {22744
+ "ALICEDEVICE1909": {22745
+ "algorithms": [22746
+ "m.olm.v1.curve25519-aes-sha2",22747
+ "m.megolm.v1.aes-sha2"22748
+ ],22749
+ "device_id": "ALICEDEVICE1909",22750
+ "keys": {22751
+ "curve25519:ALICEDEVICE1909": "2OvK4wAkRUEUG268Ujel7nHMUIBIy8J5uK7tBZaaAQY",22752
+ "ed25519:ALICEDEVICE1909": "Ep1Bpc3rr0OJTnKJj8ae4t17jFDBmmwO7KhdWQMdqeU"22753
+ },22754
+ "signatures": {22755
+ "@alice_1909:hs1": {22756
+ "ed25519:ALICEDEVICE1909": "Fq60wGFnmAweOeEBjEpC9XrmnhXbjZpCRuKWt1LlvnQKI7cuLOq8IE4SjG82rwY/3ZcNL3PkEvC32O55FKFnAg"22757
+ }22758
+ },22759
+ "user_id": "@alice_1909:hs1",22760
+ "unsigned": {}22761
+ }22762
+ },22763
+ "@alice_190:hs1": {22764
+ "ALICEDEVICE190": {22765
+ "algorithms": [22766
+ "m.olm.v1.curve25519-aes-sha2",22767
+ "m.megolm.v1.aes-sha2"22768
+ ],22769
+ "device_id": "ALICEDEVICE190",22770
+ "keys": {22771
+ "curve25519:ALICEDEVICE190": "/py4T7eItovfIahxKQ2djbPqMy/sXcco404bVVfB/z0",22772
+ "ed25519:ALICEDEVICE190": "W9T4cirbIRtb4rCxuXLt0s9omTgaNXg/PoY6E4SBG40"22773
+ },22774
+ "signatures": {22775
+ "@alice_190:hs1": {22776
+ "ed25519:ALICEDEVICE190": "3dElcJgwOoGCgMbtZoHiYV2Gxlhll2PSygU4ob/YNB4hzVsZ2uQEF4Ykvwd1pPuoJ03sHqeD9rliwVOBJrREAA"22777
+ }22778
+ },22779
+ "user_id": "@alice_190:hs1",22780
+ "unsigned": {}22781
+ }22782
+ },22783
+ "@alice_1913:hs1": {22784
+ "ALICEDEVICE1913": {22785
+ "algorithms": [22786
+ "m.olm.v1.curve25519-aes-sha2",22787
+ "m.megolm.v1.aes-sha2"22788
+ ],22789
+ "device_id": "ALICEDEVICE1913",22790
+ "keys": {22791
+ "curve25519:ALICEDEVICE1913": "qZV60BhGk8QeBNmmhDMXAXoPUI5EPROVMrVPt5GnrSk",22792
+ "ed25519:ALICEDEVICE1913": "lpOPerMNPNki2xbclfDas7tk+l1lHZ+nfDwwY7djFxc"22793
+ },22794
+ "signatures": {22795
+ "@alice_1913:hs1": {22796
+ "ed25519:ALICEDEVICE1913": "oLzFrjRNXpr+aJUZtm849cfsXTUlHz/X7keVWzSjFq3HGXEpXflgF3DEt2fHtzNv660L/rbdvCS303a0Mr8fDw"22797
+ }22798
+ },22799
+ "user_id": "@alice_1913:hs1",22800
+ "unsigned": {}22801
+ }22802
+ },22803
+ "@alice_1924:hs1": {22804
+ "ALICEDEVICE1924": {22805
+ "algorithms": [22806
+ "m.olm.v1.curve25519-aes-sha2",22807
+ "m.megolm.v1.aes-sha2"22808
+ ],22809
+ "device_id": "ALICEDEVICE1924",22810
+ "keys": {22811
+ "curve25519:ALICEDEVICE1924": "DaHYR/DvM8P/djn5691v6rHpgI2B4hAcA8/4BwcKkyQ",22812
+ "ed25519:ALICEDEVICE1924": "JaHS3L45gvWRJCANNI4HR5eZBbvFZfP+Kl2nCzjFCWE"22813
+ },22814
+ "signatures": {22815
+ "@alice_1924:hs1": {22816
+ "ed25519:ALICEDEVICE1924": "sNHSrhz3B1yqkvy93DCcYaLnDls0oHOLZJx+GdT2X1GeI0MSlpU3YDEhqac6+rKqhNC6gJfHfxZoKtyjzOgqAA"22817
+ }22818
+ },22819
+ "user_id": "@alice_1924:hs1",22820
+ "unsigned": {}22821
+ }22822
+ },22823
+ "@alice_1935:hs1": {22824
+ "ALICEDEVICE1935": {22825
+ "algorithms": [22826
+ "m.olm.v1.curve25519-aes-sha2",22827
+ "m.megolm.v1.aes-sha2"22828
+ ],22829
+ "device_id": "ALICEDEVICE1935",22830
+ "keys": {22831
+ "curve25519:ALICEDEVICE1935": "pw+HmCHLNL1QOz5B69VRx908vSRblRgd1/un8E3aBhk",22832
+ "ed25519:ALICEDEVICE1935": "nOcl3M9gf/ykZ4OzLCdvUIAi3uc0mG75TBJXfUF7WcA"22833
+ },22834
+ "signatures": {22835
+ "@alice_1935:hs1": {22836
+ "ed25519:ALICEDEVICE1935": "c/pjHnCjevmdQmg8xkTyfBJ+1E4ko0a6nd8wh8XqOKgvOvXVsjb/Ug+QUmiYBn2NlS8NrSWJE7ymeJrWj2cEDg"22837
+ }22838
+ },22839
+ "user_id": "@alice_1935:hs1",22840
+ "unsigned": {}22841
+ }22842
+ },22843
+ "@alice_1937:hs1": {22844
+ "ALICEDEVICE1937": {22845
+ "algorithms": [22846
+ "m.olm.v1.curve25519-aes-sha2",22847
+ "m.megolm.v1.aes-sha2"22848
+ ],22849
+ "device_id": "ALICEDEVICE1937",22850
+ "keys": {22851
+ "curve25519:ALICEDEVICE1937": "QOEVrk96cGNjJeOuLUOxyOl2LVLGEEHiR2IlCgfN8n4",22852
+ "ed25519:ALICEDEVICE1937": "qH0SPXISDWwjeH8tajTt+fize11s0CSZj3cZeiJpR0A"22853
+ },22854
+ "signatures": {22855
+ "@alice_1937:hs1": {22856
+ "ed25519:ALICEDEVICE1937": "TGay7r1pLMDOBDK7XR/pZZEqMYClK03P2On0wQ+F6QjScSDEQQjOPCbIM3yonJilu6ab2y/SK9NrHUXdfA6oDg"22857
+ }22858
+ },22859
+ "user_id": "@alice_1937:hs1",22860
+ "unsigned": {}22861
+ }22862
+ },22863
+ "@alice_1939:hs1": {22864
+ "ALICEDEVICE1939": {22865
+ "algorithms": [22866
+ "m.olm.v1.curve25519-aes-sha2",22867
+ "m.megolm.v1.aes-sha2"22868
+ ],22869
+ "device_id": "ALICEDEVICE1939",22870
+ "keys": {22871
+ "curve25519:ALICEDEVICE1939": "3nUwzLMSCvTxtk52DLWSuBWLx7X5LV2VImUPhtaufFc",22872
+ "ed25519:ALICEDEVICE1939": "NYnDNdhoDNBpZJNnrQNv5EFfaOqvapAXEaHLQWqk4rM"22873
+ },22874
+ "signatures": {22875
+ "@alice_1939:hs1": {22876
+ "ed25519:ALICEDEVICE1939": "DOfTinD+v9+A4Kxo4vV3OR5rbdRJbMpBO+MoGSRLTs51LSIwv5jESo99EbHFWEmo5vvcoeFGFN0xdtzoZxHDCQ"22877
+ }22878
+ },22879
+ "user_id": "@alice_1939:hs1",22880
+ "unsigned": {}22881
+ }22882
+ },22883
+ "@alice_1949:hs1": {22884
+ "ALICEDEVICE1949": {22885
+ "algorithms": [22886
+ "m.olm.v1.curve25519-aes-sha2",22887
+ "m.megolm.v1.aes-sha2"22888
+ ],22889
+ "device_id": "ALICEDEVICE1949",22890
+ "keys": {22891
+ "curve25519:ALICEDEVICE1949": "9bZyMVK6xwH3t0xnfT7rNs96jW7xebpz7QNluhfacEM",22892
+ "ed25519:ALICEDEVICE1949": "56GjOwKp2EFi41f4AxU83TZSclTy9ocX+g8ZzJiBZ7o"22893
+ },22894
+ "signatures": {22895
+ "@alice_1949:hs1": {22896
+ "ed25519:ALICEDEVICE1949": "7UGvhyrKH6zLsM9fO2UGtdE6kWFE4V3TCFUwRjMwGj/mHY68ZDjmF1eFSYSHJV6tSEnN6rc6v4kRYOxWU/PTBg"22897
+ }22898
+ },22899
+ "user_id": "@alice_1949:hs1",22900
+ "unsigned": {}22901
+ }22902
+ },22903
+ "@alice_1957:hs1": {22904
+ "ALICEDEVICE1957": {22905
+ "algorithms": [22906
+ "m.olm.v1.curve25519-aes-sha2",22907
+ "m.megolm.v1.aes-sha2"22908
+ ],22909
+ "device_id": "ALICEDEVICE1957",22910
+ "keys": {22911
+ "curve25519:ALICEDEVICE1957": "97dzThXer6YzePlauCs8SvplK7Uu2YTErg3WDhnfcgo",22912
+ "ed25519:ALICEDEVICE1957": "JM7fHK0nOR63T0+YnZx8vScu395kOgFuOV4gkxuQwNo"22913
+ },22914
+ "signatures": {22915
+ "@alice_1957:hs1": {22916
+ "ed25519:ALICEDEVICE1957": "utKiG/oWn0LSbXkYgsj7kdG8NocQcbsbZis3pa4wMijtT25agGsY+b0A1GnnxTPtssvx+D6bgzChOOVXhlugCQ"22917
+ }22918
+ },22919
+ "user_id": "@alice_1957:hs1",22920
+ "unsigned": {}22921
+ }22922
+ },22923
+ "@alice_1958:hs1": {22924
+ "ALICEDEVICE1958": {22925
+ "algorithms": [22926
+ "m.olm.v1.curve25519-aes-sha2",22927
+ "m.megolm.v1.aes-sha2"22928
+ ],22929
+ "device_id": "ALICEDEVICE1958",22930
+ "keys": {22931
+ "curve25519:ALICEDEVICE1958": "5bWKeg73SgEdb8efgTVF4c/hD+zB9CZkSkaBm69UwR4",22932
+ "ed25519:ALICEDEVICE1958": "u+3MZhDiltssPXdiHL372ZIE860+kqrZTFvJzRQq6ok"22933
+ },22934
+ "signatures": {22935
+ "@alice_1958:hs1": {22936
+ "ed25519:ALICEDEVICE1958": "VzZkkwd6BSKxoOP3SlTylS6e9Uut/8mPfcC1Xdl8xyxO1E2pKHlzJ18GS5neblhwz0CvbVLY28PwHUu3TQXCDA"22937
+ }22938
+ },22939
+ "user_id": "@alice_1958:hs1",22940
+ "unsigned": {}22941
+ }22942
+ },22943
+ "@alice_1973:hs1": {22944
+ "ALICEDEVICE1973": {22945
+ "algorithms": [22946
+ "m.olm.v1.curve25519-aes-sha2",22947
+ "m.megolm.v1.aes-sha2"22948
+ ],22949
+ "device_id": "ALICEDEVICE1973",22950
+ "keys": {22951
+ "curve25519:ALICEDEVICE1973": "/h30ZgRJFRKtoOI6dRwSbm2zQ4QgoiY6pgcz3vn7tnw",22952
+ "ed25519:ALICEDEVICE1973": "D8YEC3LKK054sfN2t1PUNd5VjsfoZ4YB7lfDw1MF7NE"22953
+ },22954
+ "signatures": {22955
+ "@alice_1973:hs1": {22956
+ "ed25519:ALICEDEVICE1973": "R++A5oU47sa7S9XDdv9xZea+KN7b48+wqRXxdLg6fdfNsNtdKJNWR1EMn9QH0HYAojyiKdITg+lGYkqGWu8MBg"22957
+ }22958
+ },22959
+ "user_id": "@alice_1973:hs1",22960
+ "unsigned": {}22961
+ }22962
+ },22963
+ "@alice_1979:hs1": {22964
+ "ALICEDEVICE1979": {22965
+ "algorithms": [22966
+ "m.olm.v1.curve25519-aes-sha2",22967
+ "m.megolm.v1.aes-sha2"22968
+ ],22969
+ "device_id": "ALICEDEVICE1979",22970
+ "keys": {22971
+ "curve25519:ALICEDEVICE1979": "7yLH5wNWNX0i//ddGZ0c1Yvi2UmMqshxNLUPQX+Cd0s",22972
+ "ed25519:ALICEDEVICE1979": "gqNLODDhugAmv30+NQlR6Oqkah8bd0PPcShfFCPPp2s"22973
+ },22974
+ "signatures": {22975
+ "@alice_1979:hs1": {22976
+ "ed25519:ALICEDEVICE1979": "Qgxf5q5pjc4BfQecvOFiwBvsm+TXfF/tPbGHjn9RdjtDidSqFWJOa63yVGbo7+K9AIzS9aETly7N8OTBgbgXCQ"22977
+ }22978
+ },22979
+ "user_id": "@alice_1979:hs1",22980
+ "unsigned": {}22981
+ }22982
+ },22983
+ "@alice_1983:hs1": {22984
+ "ALICEDEVICE1983": {22985
+ "algorithms": [22986
+ "m.olm.v1.curve25519-aes-sha2",22987
+ "m.megolm.v1.aes-sha2"22988
+ ],22989
+ "device_id": "ALICEDEVICE1983",22990
+ "keys": {22991
+ "curve25519:ALICEDEVICE1983": "NaUXpIMefJexsfcIbWY3wiaj0Rb7kqB9E8IMw45ybjI",22992
+ "ed25519:ALICEDEVICE1983": "pCu29sXFWWLEsTIZyLFsw3ufw14JD3QA6FFEFdxWnng"22993
+ },22994
+ "signatures": {22995
+ "@alice_1983:hs1": {22996
+ "ed25519:ALICEDEVICE1983": "906u4qc3sXU/QNP/i3LJSh9q2+iEX3xDUpJEkAA+mKEFMav++ZJIQCorARvDX82LB7FtQDSO5QRPlRWYMLHXBw"22997
+ }22998
+ },22999
+ "user_id": "@alice_1983:hs1",23000
+ "unsigned": {}23001
+ }23002
+ },23003
+ "@alice_1986:hs1": {23004
+ "ALICEDEVICE1986": {23005
+ "algorithms": [23006
+ "m.olm.v1.curve25519-aes-sha2",23007
+ "m.megolm.v1.aes-sha2"23008
+ ],23009
+ "device_id": "ALICEDEVICE1986",23010
+ "keys": {23011
+ "curve25519:ALICEDEVICE1986": "9MOhBZUkP8rohdrI6KKpFAOKrroT5ranKFmpLVnAiV8",23012
+ "ed25519:ALICEDEVICE1986": "qGxYkHb8BbHQfwDQHaPjxg69WLlRmE0izvZl7x/Ca0M"23013
+ },23014
+ "signatures": {23015
+ "@alice_1986:hs1": {23016
+ "ed25519:ALICEDEVICE1986": "1N8XD3lWFC8d9H3m3boGLLoUV3SoHkRX93zUPfAoQIkuOMB+sPteHWL0kFCfEKC37RCRnrCuxCElj4XPOXe4Dg"23017
+ }23018
+ },23019
+ "user_id": "@alice_1986:hs1",23020
+ "unsigned": {}23021
+ }23022
+ },23023
+ "@alice_198:hs1": {23024
+ "ALICEDEVICE198": {23025
+ "algorithms": [23026
+ "m.olm.v1.curve25519-aes-sha2",23027
+ "m.megolm.v1.aes-sha2"23028
+ ],23029
+ "device_id": "ALICEDEVICE198",23030
+ "keys": {23031
+ "curve25519:ALICEDEVICE198": "mRVqoZsjO85Yp6yWAlkQkfQ8fAYvr9lS7TAZVgJ1aV8",23032
+ "ed25519:ALICEDEVICE198": "TtRBkKOy1m/S7u246Gd/LkYbkGSsGmzgW/PhwlkF4D8"23033
+ },23034
+ "signatures": {23035
+ "@alice_198:hs1": {23036
+ "ed25519:ALICEDEVICE198": "Imv8A7eIi8/dWhBSQR8o3l1od5WVoEXUahE9BTKvONJOLEE9j25KODQKwi6TXf4IUPC3TRxLH9weo1bUAzvdBw"23037
+ }23038
+ },23039
+ "user_id": "@alice_198:hs1",23040
+ "unsigned": {}23041
+ }23042
+ },23043
+ "@alice_1:hs1": {23044
+ "ALICEDEVICE1": {23045
+ "algorithms": [23046
+ "m.olm.v1.curve25519-aes-sha2",23047
+ "m.megolm.v1.aes-sha2"23048
+ ],23049
+ "device_id": "ALICEDEVICE1",23050
+ "keys": {23051
+ "curve25519:ALICEDEVICE1": "E1Ns85gWkGgNZEJKf66NvTuafTZum2t6S8bKAXDk1Cc",23052
+ "ed25519:ALICEDEVICE1": "lZ4Xfa/7+VFZUY6yVQ1QxrTE5dNAnHppVxWIqTNf8vE"23053
+ },23054
+ "signatures": {23055
+ "@alice_1:hs1": {23056
+ "ed25519:ALICEDEVICE1": "mZu/aHeSfnHTYVvrWkk/M0DYfu2HHTPIPcKFr6eTkgWGD28qqI3qWq8XfNzM6azxuzpI+doGghNn2/jwBeXoDg"23057
+ }23058
+ },23059
+ "user_id": "@alice_1:hs1",23060
+ "unsigned": {}23061
+ }23062
+ },23063
+ "@alice_209:hs1": {23064
+ "ALICEDEVICE209": {23065
+ "algorithms": [23066
+ "m.olm.v1.curve25519-aes-sha2",23067
+ "m.megolm.v1.aes-sha2"23068
+ ],23069
+ "device_id": "ALICEDEVICE209",23070
+ "keys": {23071
+ "curve25519:ALICEDEVICE209": "DlR1fPZdhAMdUKZA5iPxzma8qTENFFGW49OIANRdCnc",23072
+ "ed25519:ALICEDEVICE209": "qOAaslnzCEEiW+OA0U4QVp5Olefn7nxkkddBpsPr8ec"23073
+ },23074
+ "signatures": {23075
+ "@alice_209:hs1": {23076
+ "ed25519:ALICEDEVICE209": "hsMUhPsyhKq69sGnNL7PeiwYXwqOrjo4Ahf1X9OxcdIKwbuMFF7QlUX/KAvhvSMT2L+Ma6RV0YNMBOeJxNGwDw"23077
+ }23078
+ },23079
+ "user_id": "@alice_209:hs1",23080
+ "unsigned": {}23081
+ }23082
+ },23083
+ "@alice_21:hs1": {23084
+ "ALICEDEVICE21": {23085
+ "algorithms": [23086
+ "m.olm.v1.curve25519-aes-sha2",23087
+ "m.megolm.v1.aes-sha2"23088
+ ],23089
+ "device_id": "ALICEDEVICE21",23090
+ "keys": {23091
+ "curve25519:ALICEDEVICE21": "EJ6qv81itSE1nLQHbnlHPfCfBa2vpTOw7FyaVLShxFs",23092
+ "ed25519:ALICEDEVICE21": "TWACbKRnap5VR0nBykTdnAzTnG/QQsnqq17dgQoVTxo"23093
+ },23094
+ "signatures": {23095
+ "@alice_21:hs1": {23096
+ "ed25519:ALICEDEVICE21": "meGBoJ+bBfl0/fGrsNObu0hJUwy4/vFYolbbh26+BRvPUPVuF1lrRpelmGXdLh0Z4KiTgf3ChFJ6QzJm/X6BBA"23097
+ }23098
+ },23099
+ "user_id": "@alice_21:hs1",23100
+ "unsigned": {}23101
+ }23102
+ },23103
+ "@alice_227:hs1": {23104
+ "ALICEDEVICE227": {23105
+ "algorithms": [23106
+ "m.olm.v1.curve25519-aes-sha2",23107
+ "m.megolm.v1.aes-sha2"23108
+ ],23109
+ "device_id": "ALICEDEVICE227",23110
+ "keys": {23111
+ "curve25519:ALICEDEVICE227": "xkc3brQgxv7RCozZfXuy8sY1Lzgx5ce3VCinQcf3wBQ",23112
+ "ed25519:ALICEDEVICE227": "ZG5dqtDukYqaJE5uAflhYfi1Apjio4slaygbh+vkWus"23113
+ },23114
+ "signatures": {23115
+ "@alice_227:hs1": {23116
+ "ed25519:ALICEDEVICE227": "rbN81GGD4tzfK8jYCexSF1/0gKSWdHF5janEaAbmV0m4CLNdkp/9SvaPDUvtmUSb9a4uWjXIb5ogohzo2IxNDg"23117
+ }23118
+ },23119
+ "user_id": "@alice_227:hs1",23120
+ "unsigned": {}23121
+ }23122
+ },23123
+ "@alice_22:hs1": {23124
+ "ALICEDEVICE22": {23125
+ "algorithms": [23126
+ "m.olm.v1.curve25519-aes-sha2",23127
+ "m.megolm.v1.aes-sha2"23128
+ ],23129
+ "device_id": "ALICEDEVICE22",23130
+ "keys": {23131
+ "curve25519:ALICEDEVICE22": "Sm+eDQYmztnDyTP8Hpuxgd6MYldiowP27T4JAuhN730",23132
+ "ed25519:ALICEDEVICE22": "vOhcC9jKAUq9M/VhZ70NpLJQ74MbGZNtFonoIncJsnM"23133
+ },23134
+ "signatures": {23135
+ "@alice_22:hs1": {23136
+ "ed25519:ALICEDEVICE22": "/jcDvntGS1fCW9M7KuGHaQEI3lyUIOVuleD0gPA3fXc/BrpqTadOBHPmB6RGPNsAMLnouQjCCF1hEHIBC4p0Cg"23137
+ }23138
+ },23139
+ "user_id": "@alice_22:hs1",23140
+ "unsigned": {}23141
+ }23142
+ },23143
+ "@alice_231:hs1": {23144
+ "ALICEDEVICE231": {23145
+ "algorithms": [23146
+ "m.olm.v1.curve25519-aes-sha2",23147
+ "m.megolm.v1.aes-sha2"23148
+ ],23149
+ "device_id": "ALICEDEVICE231",23150
+ "keys": {23151
+ "curve25519:ALICEDEVICE231": "JcpFZXAEu3inKv/p3KQdKaiRGuxwVl8qodV6F2M7PCY",23152
+ "ed25519:ALICEDEVICE231": "Y0CWFL397Teh36E4/QNIO7bOlhF3FxB9AmnfCUxXOiA"23153
+ },23154
+ "signatures": {23155
+ "@alice_231:hs1": {23156
+ "ed25519:ALICEDEVICE231": "nH+hVT6x7+WqyTfYe7vXtJcIkzt8ExCykqdw7PcYwrYsFXhC/pZSI+4bqQScJptgOtF2L74/4/tjgO2HmWbuBA"23157
+ }23158
+ },23159
+ "user_id": "@alice_231:hs1",23160
+ "unsigned": {}23161
+ }23162
+ },23163
+ "@alice_232:hs1": {23164
+ "ALICEDEVICE232": {23165
+ "algorithms": [23166
+ "m.olm.v1.curve25519-aes-sha2",23167
+ "m.megolm.v1.aes-sha2"23168
+ ],23169
+ "device_id": "ALICEDEVICE232",23170
+ "keys": {23171
+ "curve25519:ALICEDEVICE232": "ez4BwXmq/yDUMunjdmzAPH+7m311gUdxTSlXMquf/X0",23172
+ "ed25519:ALICEDEVICE232": "QegpELSMTBbJHOwo9HpxEpsZjPiaAWyWmesZKaruwFY"23173
+ },23174
+ "signatures": {23175
+ "@alice_232:hs1": {23176
+ "ed25519:ALICEDEVICE232": "ujQ6WlAh6mtVmwwMETokIppnWRpHOAB4hw7wBk6H6O3vkuTOB5lGML+Y4CyiCql03ADjpv9t8YleIdJptjgNAA"23177
+ }23178
+ },23179
+ "user_id": "@alice_232:hs1",23180
+ "unsigned": {}23181
+ }23182
+ },23183
+ "@alice_233:hs1": {23184
+ "ALICEDEVICE233": {23185
+ "algorithms": [23186
+ "m.olm.v1.curve25519-aes-sha2",23187
+ "m.megolm.v1.aes-sha2"23188
+ ],23189
+ "device_id": "ALICEDEVICE233",23190
+ "keys": {23191
+ "curve25519:ALICEDEVICE233": "6ixHSePMOwkX/5BbDosVGX9IUxsJtHtsgixVVy3Xn0E",23192
+ "ed25519:ALICEDEVICE233": "i32COmzQdd8jwUEr8uIk/0wgFQ4lnwN0yUlcu5QoL6c"23193
+ },23194
+ "signatures": {23195
+ "@alice_233:hs1": {23196
+ "ed25519:ALICEDEVICE233": "3hRBIa7I9Qpq6cGftGO5HT0Z9458T9lASAWszq15vZtZrX+m0vuAjhmuCooqNcZ7VYP8V9MLKl+GeJi+5jJTAw"23197
+ }23198
+ },23199
+ "user_id": "@alice_233:hs1",23200
+ "unsigned": {}23201
+ }23202
+ },23203
+ "@alice_236:hs1": {23204
+ "ALICEDEVICE236": {23205
+ "algorithms": [23206
+ "m.olm.v1.curve25519-aes-sha2",23207
+ "m.megolm.v1.aes-sha2"23208
+ ],23209
+ "device_id": "ALICEDEVICE236",23210
+ "keys": {23211
+ "curve25519:ALICEDEVICE236": "c8OT7mZPCbSbh4o59NzdeR4yLaJDNaZ+WTpYHjDG4Vc",23212
+ "ed25519:ALICEDEVICE236": "Pzf26dPCF2tjp05s18ZtpIEPh6+tCNDOBmMhsbLoUNE"23213
+ },23214
+ "signatures": {23215
+ "@alice_236:hs1": {23216
+ "ed25519:ALICEDEVICE236": "/XLQGABJsiNwzYLZ1/81MyEY721GVbp8L6F0sjC2teGeH+zCcV1WyNqTv+6YwkveDy34H3iLYTh8PP0tu682BA"23217
+ }23218
+ },23219
+ "user_id": "@alice_236:hs1",23220
+ "unsigned": {}23221
+ }23222
+ },23223
+ "@alice_237:hs1": {23224
+ "ALICEDEVICE237": {23225
+ "algorithms": [23226
+ "m.olm.v1.curve25519-aes-sha2",23227
+ "m.megolm.v1.aes-sha2"23228
+ ],23229
+ "device_id": "ALICEDEVICE237",23230
+ "keys": {23231
+ "curve25519:ALICEDEVICE237": "rW88dGtc1Cwy9EyihEeUQrJhw8txVNfHwWJgp66MgXU",23232
+ "ed25519:ALICEDEVICE237": "NMdjov2Mw2RUGsWv3rF00bV6q3zwG7s/M0NhFEtux1E"23233
+ },23234
+ "signatures": {23235
+ "@alice_237:hs1": {23236
+ "ed25519:ALICEDEVICE237": "mWDeFY4KeuJtG1gvI4TbGPERsgG/DdOTkDuiyHl5hBCD5Ab86Mn+iCnY/dimXKGJhm0D5pmOojgLlMFzkl+YDQ"23237
+ }23238
+ },23239
+ "user_id": "@alice_237:hs1",23240
+ "unsigned": {}23241
+ }23242
+ },23243
+ "@alice_263:hs1": {23244
+ "ALICEDEVICE263": {23245
+ "algorithms": [23246
+ "m.olm.v1.curve25519-aes-sha2",23247
+ "m.megolm.v1.aes-sha2"23248
+ ],23249
+ "device_id": "ALICEDEVICE263",23250
+ "keys": {23251
+ "curve25519:ALICEDEVICE263": "y5sllBHBHkFfYFoFkDQZEfq6WPBbSKml6Z7nDVUxVg8",23252
+ "ed25519:ALICEDEVICE263": "TU1M23ROO1QVZcgsi8OzBuQybYou4xUoHbPvMF57EWg"23253
+ },23254
+ "signatures": {23255
+ "@alice_263:hs1": {23256
+ "ed25519:ALICEDEVICE263": "jh9DElxVs+oAsEMy6QxG1fCA1vP5FtxddrFWSgNX3h34hGBqygaR13gcVP5hhN9PorKoETLpZ8djlW5Gg+nyBA"23257
+ }23258
+ },23259
+ "user_id": "@alice_263:hs1",23260
+ "unsigned": {}23261
+ }23262
+ },23263
+ "@alice_269:hs1": {23264
+ "ALICEDEVICE269": {23265
+ "algorithms": [23266
+ "m.olm.v1.curve25519-aes-sha2",23267
+ "m.megolm.v1.aes-sha2"23268
+ ],23269
+ "device_id": "ALICEDEVICE269",23270
+ "keys": {23271
+ "curve25519:ALICEDEVICE269": "ugWpURKryx4vMbbsJlHOkINJ5LSN/GSotwK2ww3Xkl8",23272
+ "ed25519:ALICEDEVICE269": "e5oXjGTYYSnzKD4/rVinLX7OnRMXYtOznr35puHm8bY"23273
+ },23274
+ "signatures": {23275
+ "@alice_269:hs1": {23276
+ "ed25519:ALICEDEVICE269": "8dvo87D2Be3aoqq4iGRDj2xOP6IBt1strUwM5n9jA91jwhgiK/OkD4Zaibg7PbKPJUWWTFeF+Vo5fGOHdpYwDg"23277
+ }23278
+ },23279
+ "user_id": "@alice_269:hs1",23280
+ "unsigned": {}23281
+ }23282
+ },23283
+ "@alice_280:hs1": {23284
+ "ALICEDEVICE280": {23285
+ "algorithms": [23286
+ "m.olm.v1.curve25519-aes-sha2",23287
+ "m.megolm.v1.aes-sha2"23288
+ ],23289
+ "device_id": "ALICEDEVICE280",23290
+ "keys": {23291
+ "curve25519:ALICEDEVICE280": "SNIfXZF3s0JzK2T570zeuLlFaxp2wW3nIByORA4fTno",23292
+ "ed25519:ALICEDEVICE280": "BYuPyFE/4nAqRJHsIQALh6RelXo9pUPH5e7n0lGE2sg"23293
+ },23294
+ "signatures": {23295
+ "@alice_280:hs1": {23296
+ "ed25519:ALICEDEVICE280": "XUr0iivmv8wDJVJykBUIavQ0uc6ensj4ZPZDW8+SoJesgF2IbRr3giC5EK3HrAAJTJBEnn1CYf40F7duOIfCCw"23297
+ }23298
+ },23299
+ "user_id": "@alice_280:hs1",23300
+ "unsigned": {}23301
+ }23302
+ },23303
+ "@alice_290:hs1": {23304
+ "ALICEDEVICE290": {23305
+ "algorithms": [23306
+ "m.olm.v1.curve25519-aes-sha2",23307
+ "m.megolm.v1.aes-sha2"23308
+ ],23309
+ "device_id": "ALICEDEVICE290",23310
+ "keys": {23311
+ "curve25519:ALICEDEVICE290": "2Qk7C18CQc3veNyNwQA6og9vF7fA9rC7BlfggvGJrWg",23312
+ "ed25519:ALICEDEVICE290": "3vyfqSr6TiJBX3oAicpDrV35c6Et5eH4PZ6BSK2oUTE"23313
+ },23314
+ "signatures": {23315
+ "@alice_290:hs1": {23316
+ "ed25519:ALICEDEVICE290": "TVbQfxSqQLyd2AUQGb3Crcz+7Gna642LbWMwduYb1CN/pcjPURhkM6s9V7Qn7oNz1IhXYS9dOy8csyBD2bcGBw"23317
+ }23318
+ },23319
+ "user_id": "@alice_290:hs1",23320
+ "unsigned": {}23321
+ }23322
+ },23323
+ "@alice_306:hs1": {23324
+ "ALICEDEVICE306": {23325
+ "algorithms": [23326
+ "m.olm.v1.curve25519-aes-sha2",23327
+ "m.megolm.v1.aes-sha2"23328
+ ],23329
+ "device_id": "ALICEDEVICE306",23330
+ "keys": {23331
+ "curve25519:ALICEDEVICE306": "HQ80l4oFC8SjYusdiUY0RC7L6C/tkX7wT1b8n6bSi3c",23332
+ "ed25519:ALICEDEVICE306": "geGlmHrkF2F/2fFVLTWuLKNnxXFHtXZmBFtu9jNL2mY"23333
+ },23334
+ "signatures": {23335
+ "@alice_306:hs1": {23336
+ "ed25519:ALICEDEVICE306": "egtBfSSc51bNEinkRE16gejTQOGPi3VKISyOkNJMWmqEVLQwoaxtOzvgWtM/9i/9zbJjRey48QSEloOLU7K5Cw"23337
+ }23338
+ },23339
+ "user_id": "@alice_306:hs1",23340
+ "unsigned": {}23341
+ }23342
+ },23343
+ "@alice_309:hs1": {23344
+ "ALICEDEVICE309": {23345
+ "algorithms": [23346
+ "m.olm.v1.curve25519-aes-sha2",23347
+ "m.megolm.v1.aes-sha2"23348
+ ],23349
+ "device_id": "ALICEDEVICE309",23350
+ "keys": {23351
+ "curve25519:ALICEDEVICE309": "qmtorkFj5Q/rj5FgOSTdBVmMbmCdiIcsuKVdbdER6QU",23352
+ "ed25519:ALICEDEVICE309": "OqugxYGIVkXC/s2/yZscGx/MFY69sM5DQnHjtSvMkcc"23353
+ },23354
+ "signatures": {23355
+ "@alice_309:hs1": {23356
+ "ed25519:ALICEDEVICE309": "5FfD4JXZgzvrUQBkSvgE7Y5qtFrkYErR1UJ3rV2vFj5kkrIFWyshC2zhMpGnbKqxFTKgOoGZ0mK4/QLzJJMMAQ"23357
+ }23358
+ },23359
+ "user_id": "@alice_309:hs1",23360
+ "unsigned": {}23361
+ }23362
+ },23363
+ "@alice_312:hs1": {23364
+ "ALICEDEVICE312": {23365
+ "algorithms": [23366
+ "m.olm.v1.curve25519-aes-sha2",23367
+ "m.megolm.v1.aes-sha2"23368
+ ],23369
+ "device_id": "ALICEDEVICE312",23370
+ "keys": {23371
+ "curve25519:ALICEDEVICE312": "qhgcqELXLgj7/Ouno0R2dPCnr8CvezpuLhbBkA4SpRw",23372
+ "ed25519:ALICEDEVICE312": "MhVf4fPXQ+BdPskyUvEumka7giNqdOOsUFMpIn0V+2A"23373
+ },23374
+ "signatures": {23375
+ "@alice_312:hs1": {23376
+ "ed25519:ALICEDEVICE312": "Brq9cyJx1iZ8TX1tgNopj+0E3mAK4T9j9EvFvQgp37T+qJ38acgVUcgHhfU+65eneVfGJfbbPDUgRxVkg9h8Dg"23377
+ }23378
+ },23379
+ "user_id": "@alice_312:hs1",23380
+ "unsigned": {}23381
+ }23382
+ },23383
+ "@alice_32:hs1": {23384
+ "ALICEDEVICE32": {23385
+ "algorithms": [23386
+ "m.olm.v1.curve25519-aes-sha2",23387
+ "m.megolm.v1.aes-sha2"23388
+ ],23389
+ "device_id": "ALICEDEVICE32",23390
+ "keys": {23391
+ "curve25519:ALICEDEVICE32": "m4VJFXcrv75o7+RqT1Pm9IJaoFqn8gNaLSaatIWoBxg",23392
+ "ed25519:ALICEDEVICE32": "ZnRL27hcDjYLCdWrGmZSrdnXJbJkpbfw1F7T6T5mDGo"23393
+ },23394
+ "signatures": {23395
+ "@alice_32:hs1": {23396
+ "ed25519:ALICEDEVICE32": "VnuN+nlFXtcK72/yPT1PfX62fmKQZ2/pQHc4K9x4q62qmPzEngCSqvXmZsH37+NVpzoSwC9D/zodROEBaKw/Dg"23397
+ }23398
+ },23399
+ "user_id": "@alice_32:hs1",23400
+ "unsigned": {}23401
+ }23402
+ },23403
+ "@alice_337:hs1": {23404
+ "ALICEDEVICE337": {23405
+ "algorithms": [23406
+ "m.olm.v1.curve25519-aes-sha2",23407
+ "m.megolm.v1.aes-sha2"23408
+ ],23409
+ "device_id": "ALICEDEVICE337",23410
+ "keys": {23411
+ "curve25519:ALICEDEVICE337": "LV2aoC0/SFY0iXONY60Sg8B4kPx0j9tqsx6m/O58xl0",23412
+ "ed25519:ALICEDEVICE337": "v+t3SHvjRLm2QGr7owHuxEas+Pwtr8Y9g2rqCK9YvuM"23413
+ },23414
+ "signatures": {23415
+ "@alice_337:hs1": {23416
+ "ed25519:ALICEDEVICE337": "gboqmwjFtsrW+cqN4Ay+v4brke0cIG3IG6oEPbitRNNOolaGSi6iu0Rykt4VKJJ4tlSR8Oa/y6dTeVw7ShHaBQ"23417
+ }23418
+ },23419
+ "user_id": "@alice_337:hs1",23420
+ "unsigned": {}23421
+ }23422
+ },23423
+ "@alice_357:hs1": {23424
+ "ALICEDEVICE357": {23425
+ "algorithms": [23426
+ "m.olm.v1.curve25519-aes-sha2",23427
+ "m.megolm.v1.aes-sha2"23428
+ ],23429
+ "device_id": "ALICEDEVICE357",23430
+ "keys": {23431
+ "curve25519:ALICEDEVICE357": "vL1eH4ObERuSCzI7RuoG9R9CZ+Z+7eHqIbvqfy/6vzY",23432
+ "ed25519:ALICEDEVICE357": "gGQj5XXJKwVbG6fvjYor7jm3z++v9KhV8l0bCqdTl3s"23433
+ },23434
+ "signatures": {23435
+ "@alice_357:hs1": {23436
+ "ed25519:ALICEDEVICE357": "UHCUxEkVAHRIXJnLeAMiE31UIMFKDWybWmUPWEnMyxycHYIyqdoVnIC3X5qBkiIsE6yRWGiIJJm2K6tJwMnrAg"23437
+ }23438
+ },23439
+ "user_id": "@alice_357:hs1",23440
+ "unsigned": {}23441
+ }23442
+ },23443
+ "@alice_35:hs1": {23444
+ "ALICEDEVICE35": {23445
+ "algorithms": [23446
+ "m.olm.v1.curve25519-aes-sha2",23447
+ "m.megolm.v1.aes-sha2"23448
+ ],23449
+ "device_id": "ALICEDEVICE35",23450
+ "keys": {23451
+ "curve25519:ALICEDEVICE35": "tlY+ExO0eAn9r32czgvV0y5IEXRL5zy98wePs0Ddhig",23452
+ "ed25519:ALICEDEVICE35": "wDhLvkXT+Xnzy5UpAjEwofISk64J/U+OSTh6qd3Tw1s"23453
+ },23454
+ "signatures": {23455
+ "@alice_35:hs1": {23456
+ "ed25519:ALICEDEVICE35": "ZvB2MmAmOV9/yilJ53yHxIZg5CurJvXGZu64eyKnFtNNyyHSL7XcH39RSN22DDByaahlSJ2quj0EMMY3tzeDDw"23457
+ }23458
+ },23459
+ "user_id": "@alice_35:hs1",23460
+ "unsigned": {}23461
+ }23462
+ },23463
+ "@alice_366:hs1": {23464
+ "ALICEDEVICE366": {23465
+ "algorithms": [23466
+ "m.olm.v1.curve25519-aes-sha2",23467
+ "m.megolm.v1.aes-sha2"23468
+ ],23469
+ "device_id": "ALICEDEVICE366",23470
+ "keys": {23471
+ "curve25519:ALICEDEVICE366": "SqAufoppm5ZyUnZWWMXkT2sBq4F8jJg1kMRo0TU1rkY",23472
+ "ed25519:ALICEDEVICE366": "rzPHV0EJqhbYLuX4imTRMEC/eM/ImYNkDVtyjMMtwLU"23473
+ },23474
+ "signatures": {23475
+ "@alice_366:hs1": {23476
+ "ed25519:ALICEDEVICE366": "O2GHAhv9O5RrCmw6IKg3XwiPtpkCv98G7So3t5PMKhSB6RAcev55og4fS4vjBvMcyCKdg+M4lTXubl1zewnnBQ"23477
+ }23478
+ },23479
+ "user_id": "@alice_366:hs1",23480
+ "unsigned": {}23481
+ }23482
+ },23483
+ "@alice_371:hs1": {23484
+ "ALICEDEVICE371": {23485
+ "algorithms": [23486
+ "m.olm.v1.curve25519-aes-sha2",23487
+ "m.megolm.v1.aes-sha2"23488
+ ],23489
+ "device_id": "ALICEDEVICE371",23490
+ "keys": {23491
+ "curve25519:ALICEDEVICE371": "l9GIgHdrtMQVwXutJvWvKKzOSfBYUsV2Yj7Sm5Zy4zk",23492
+ "ed25519:ALICEDEVICE371": "rFWBr06blAbcT5/LEtSzoFCEVOfxqet6aBgabzh8K1Q"23493
+ },23494
+ "signatures": {23495
+ "@alice_371:hs1": {23496
+ "ed25519:ALICEDEVICE371": "QbieG8LjbGEZdScT8+FmxLju+TaQtPKv9SVz+JWfugP1rdB4eoUx5+ulllQsy4WzKgbqbat105yzTv7o6PVSCQ"23497
+ }23498
+ },23499
+ "user_id": "@alice_371:hs1",23500
+ "unsigned": {}23501
+ }23502
+ },23503
+ "@alice_376:hs1": {23504
+ "ALICEDEVICE376": {23505
+ "algorithms": [23506
+ "m.olm.v1.curve25519-aes-sha2",23507
+ "m.megolm.v1.aes-sha2"23508
+ ],23509
+ "device_id": "ALICEDEVICE376",23510
+ "keys": {23511
+ "curve25519:ALICEDEVICE376": "/g5uwMJsZnNXYxNqgCBgVbOS8G/0OBB5gOryBw2x+hY",23512
+ "ed25519:ALICEDEVICE376": "EzQZLuQekNBA/GGD1VGginwFo4Ivysc+rf61dvwNgqo"23513
+ },23514
+ "signatures": {23515
+ "@alice_376:hs1": {23516
+ "ed25519:ALICEDEVICE376": "Cct0ZSqzUy8ICIf+NTTpYK6xODgWMBidb3Hkku+G89Pvljagr/rqOEWC7/9ZlFqgMRVaoBd0RPtGQREXhJgxAw"23517
+ }23518
+ },23519
+ "user_id": "@alice_376:hs1",23520
+ "unsigned": {}23521
+ }23522
+ },23523
+ "@alice_381:hs1": {23524
+ "ALICEDEVICE381": {23525
+ "algorithms": [23526
+ "m.olm.v1.curve25519-aes-sha2",23527
+ "m.megolm.v1.aes-sha2"23528
+ ],23529
+ "device_id": "ALICEDEVICE381",23530
+ "keys": {23531
+ "curve25519:ALICEDEVICE381": "4PZ5GXKbyScJg8kKEVBB4Q30bX+5kRnz0OSKJmOG4Rs",23532
+ "ed25519:ALICEDEVICE381": "kSB6WaSjvXKaZj7dlxmmKNyW0a3DbZMYPzuZPnAivdk"23533
+ },23534
+ "signatures": {23535
+ "@alice_381:hs1": {23536
+ "ed25519:ALICEDEVICE381": "n4D95Ve0oKikLgQ9uN4TcZOSOiT40ZL2CA7MuvdMUke6PqHYvqzMjcGlGpiXG5uTutyTirGWIjjDK+YjuTaVCg"23537
+ }23538
+ },23539
+ "user_id": "@alice_381:hs1",23540
+ "unsigned": {}23541
+ }23542
+ },23543
+ "@alice_393:hs1": {23544
+ "ALICEDEVICE393": {23545
+ "algorithms": [23546
+ "m.olm.v1.curve25519-aes-sha2",23547
+ "m.megolm.v1.aes-sha2"23548
+ ],23549
+ "device_id": "ALICEDEVICE393",23550
+ "keys": {23551
+ "curve25519:ALICEDEVICE393": "Y1we/jR0brCIDV5yUvAFvJb9vSXumrxwfzP2iXZTwlU",23552
+ "ed25519:ALICEDEVICE393": "d4+B/7EE6NsmFbI961IbC9mpknqik3xLQSTpOlY0/8w"23553
+ },23554
+ "signatures": {23555
+ "@alice_393:hs1": {23556
+ "ed25519:ALICEDEVICE393": "VW6xYTNlBv8aXqK4u3wZClspjV4It6EUMyAGnfb+hv1wTksVvIhmhJJU5ZModiK0m6NS5wsiMOcRKMkJI4VMCw"23557
+ }23558
+ },23559
+ "user_id": "@alice_393:hs1",23560
+ "unsigned": {}23561
+ }23562
+ },23563
+ "@alice_40:hs1": {23564
+ "ALICEDEVICE40": {23565
+ "algorithms": [23566
+ "m.olm.v1.curve25519-aes-sha2",23567
+ "m.megolm.v1.aes-sha2"23568
+ ],23569
+ "device_id": "ALICEDEVICE40",23570
+ "keys": {23571
+ "curve25519:ALICEDEVICE40": "ntWG1d+Gx0kUBgPFJSBxLTEKov6CDm1wT3Ry4+zFtQ4",23572
+ "ed25519:ALICEDEVICE40": "1XBu5chXEvBPAk4BDqH2MhdqAuS/0YBXmLSmqcKde4A"23573
+ },23574
+ "signatures": {23575
+ "@alice_40:hs1": {23576
+ "ed25519:ALICEDEVICE40": "oOPVMl86Y1VqK9gLsaYUN4jzbWwbQkTEhVoFX7PoNQt2yTH6Sfi3lGPoMTFsAopAsIZtvI8OUpP2FUkX3ripCg"23577
+ }23578
+ },23579
+ "user_id": "@alice_40:hs1",23580
+ "unsigned": {}23581
+ }23582
+ },23583
+ "@alice_410:hs1": {23584
+ "ALICEDEVICE410": {23585
+ "algorithms": [23586
+ "m.olm.v1.curve25519-aes-sha2",23587
+ "m.megolm.v1.aes-sha2"23588
+ ],23589
+ "device_id": "ALICEDEVICE410",23590
+ "keys": {23591
+ "curve25519:ALICEDEVICE410": "c0pxePike8Bkz2x5o0tmUcLZmLvJXdIE/7ilv5H//x8",23592
+ "ed25519:ALICEDEVICE410": "AhxPsBAsKR9ZAEYNG/BHIfv57BMyUjuVqoY75UbcOA0"23593
+ },23594
+ "signatures": {23595
+ "@alice_410:hs1": {23596
+ "ed25519:ALICEDEVICE410": "PByleBdLQZrivM4sKFYR7s4+Vbqxff3ygzKaGnEejkjxnSIW1/vIQ1OZ5JSEZtnFUBVAWUGwGx4DOPOYa4t+Cw"23597
+ }23598
+ },23599
+ "user_id": "@alice_410:hs1",23600
+ "unsigned": {}23601
+ }23602
+ },23603
+ "@alice_414:hs1": {23604
+ "ALICEDEVICE414": {23605
+ "algorithms": [23606
+ "m.olm.v1.curve25519-aes-sha2",23607
+ "m.megolm.v1.aes-sha2"23608
+ ],23609
+ "device_id": "ALICEDEVICE414",23610
+ "keys": {23611
+ "curve25519:ALICEDEVICE414": "ZW4LStpsvypxE9v27WSY8924a7dBJZitrIbtIJF9AX8",23612
+ "ed25519:ALICEDEVICE414": "I1b1z851+WJtzOKqMp/iKT4qOgT2koqkEM874XbSwsI"23613
+ },23614
+ "signatures": {23615
+ "@alice_414:hs1": {23616
+ "ed25519:ALICEDEVICE414": "m06R2Zh1RLn9CF4S+8Kxco0VlSKMVUX6z0YvqiR0VD33CnnJm3jmh2Mdx53OPzZXMUdbNJ8AuxyGU4kHmbwtCw"23617
+ }23618
+ },23619
+ "user_id": "@alice_414:hs1",23620
+ "unsigned": {}23621
+ }23622
+ },23623
+ "@alice_415:hs1": {23624
+ "ALICEDEVICE415": {23625
+ "algorithms": [23626
+ "m.olm.v1.curve25519-aes-sha2",23627
+ "m.megolm.v1.aes-sha2"23628
+ ],23629
+ "device_id": "ALICEDEVICE415",23630
+ "keys": {23631
+ "curve25519:ALICEDEVICE415": "fLUdiLh4RkiJSyHiRNnEEFC01tt2pcc6xFwJzqjmHyg",23632
+ "ed25519:ALICEDEVICE415": "mg/2P2cM3PfLyPsmyWvAwl5pKSjaWTOViR8c01OApBQ"23633
+ },23634
+ "signatures": {23635
+ "@alice_415:hs1": {23636
+ "ed25519:ALICEDEVICE415": "WbySXmJfWGzmhNDgB4IBCN9rk9ukkRPpzXvI/s4rq2t9YCkwK/JKT1d610wCYfM1S2UmGhzsdVAK2++4leeGBg"23637
+ }23638
+ },23639
+ "user_id": "@alice_415:hs1",23640
+ "unsigned": {}23641
+ }23642
+ },23643
+ "@alice_423:hs1": {23644
+ "ALICEDEVICE423": {23645
+ "algorithms": [23646
+ "m.olm.v1.curve25519-aes-sha2",23647
+ "m.megolm.v1.aes-sha2"23648
+ ],23649
+ "device_id": "ALICEDEVICE423",23650
+ "keys": {23651
+ "curve25519:ALICEDEVICE423": "NU5OUmO1Mjb5dljZiCrjmXEfG1H7p8oPtIkkAYfHCFE",23652
+ "ed25519:ALICEDEVICE423": "mzBrjcvSesNxa28IR/0CRM+4AskulUhYPyVmmU3nObw"23653
+ },23654
+ "signatures": {23655
+ "@alice_423:hs1": {23656
+ "ed25519:ALICEDEVICE423": "/BRumr926/gk6XDPHoiozOCB7IGfCaqZ9brcl3y++W17Y4zRcFIpjComlS0KXtCSzLQcgMqyJ2mOcqp4w7DEDA"23657
+ }23658
+ },23659
+ "user_id": "@alice_423:hs1",23660
+ "unsigned": {}23661
+ }23662
+ },23663
+ "@alice_435:hs1": {23664
+ "ALICEDEVICE435": {23665
+ "algorithms": [23666
+ "m.olm.v1.curve25519-aes-sha2",23667
+ "m.megolm.v1.aes-sha2"23668
+ ],23669
+ "device_id": "ALICEDEVICE435",23670
+ "keys": {23671
+ "curve25519:ALICEDEVICE435": "ytXlwkFk595jU/mcx/M6UcG4NZqzMJJZsK0exwTVyFo",23672
+ "ed25519:ALICEDEVICE435": "F6gZQZxV6CNrV+z2Gph/fwJKlRHdySoSQZQaR7pRXRg"23673
+ },23674
+ "signatures": {23675
+ "@alice_435:hs1": {23676
+ "ed25519:ALICEDEVICE435": "9tOxzVwzwAaSMeOWzi8mIFdE6DrW9NSOR8+jVfpZGrbpONUHhPnOjU7rz1uCGVpkDmotTnyUDRhPeDUa8LvjCw"23677
+ }23678
+ },23679
+ "user_id": "@alice_435:hs1",23680
+ "unsigned": {}23681
+ }23682
+ },23683
+ "@alice_453:hs1": {23684
+ "ALICEDEVICE453": {23685
+ "algorithms": [23686
+ "m.olm.v1.curve25519-aes-sha2",23687
+ "m.megolm.v1.aes-sha2"23688
+ ],23689
+ "device_id": "ALICEDEVICE453",23690
+ "keys": {23691
+ "curve25519:ALICEDEVICE453": "MMZtPAy9uVIvFcLII0QyDOHq8iymaxUqW5RH7R6LJBE",23692
+ "ed25519:ALICEDEVICE453": "vcJwGvhP+qooQTtmK113pUzNfNbWdNDtoAKg4wsK8I4"23693
+ },23694
+ "signatures": {23695
+ "@alice_453:hs1": {23696
+ "ed25519:ALICEDEVICE453": "3Y7FCCcOYpHPxLCbb9UwtsAqNPl0QGZf6NC1aReqXXhvfeY81Sio863wtGYiJrUjRjP4XUFfd/f9tf5URmG5Bg"23697
+ }23698
+ },23699
+ "user_id": "@alice_453:hs1",23700
+ "unsigned": {}23701
+ }23702
+ },23703
+ "@alice_458:hs1": {23704
+ "ALICEDEVICE458": {23705
+ "algorithms": [23706
+ "m.olm.v1.curve25519-aes-sha2",23707
+ "m.megolm.v1.aes-sha2"23708
+ ],23709
+ "device_id": "ALICEDEVICE458",23710
+ "keys": {23711
+ "curve25519:ALICEDEVICE458": "ky57HL4LWnxVIelgN4DEoRZdlQ4JCQHaZq1SbVmGslk",23712
+ "ed25519:ALICEDEVICE458": "Ia9AlnVUbDAJUOt5SQe0zYwicut39sSbmIW1g12F2GA"23713
+ },23714
+ "signatures": {23715
+ "@alice_458:hs1": {23716
+ "ed25519:ALICEDEVICE458": "3LKIFaaomo9N0Swaq9Dh2If6D+5Q9Rj2ehuM3vkYwVlbMCDK8YoCqhgNSen/UYvc28UYP8OpZvfMA6o4yoqIBA"23717
+ }23718
+ },23719
+ "user_id": "@alice_458:hs1",23720
+ "unsigned": {}23721
+ }23722
+ },23723
+ "@alice_460:hs1": {23724
+ "ALICEDEVICE460": {23725
+ "algorithms": [23726
+ "m.olm.v1.curve25519-aes-sha2",23727
+ "m.megolm.v1.aes-sha2"23728
+ ],23729
+ "device_id": "ALICEDEVICE460",23730
+ "keys": {23731
+ "curve25519:ALICEDEVICE460": "65gNNSvKy93Yum/c6iql7VRYxpthAr74iKzFVZZ1dQ0",23732
+ "ed25519:ALICEDEVICE460": "2qPwyXSApvOoW7MEdIMJXk5rt3ZNHpewQJwWrBJkOzE"23733
+ },23734
+ "signatures": {23735
+ "@alice_460:hs1": {23736
+ "ed25519:ALICEDEVICE460": "Asl7CuarElop9ZYlnNhI2jR7222ale0HOSl6/9MSWkxbM2Br+wFXiYrld4cM5UNOC9EfEGT+79LlJx49wMG+Dg"23737
+ }23738
+ },23739
+ "user_id": "@alice_460:hs1",23740
+ "unsigned": {}23741
+ }23742
+ },23743
+ "@alice_482:hs1": {23744
+ "ALICEDEVICE482": {23745
+ "algorithms": [23746
+ "m.olm.v1.curve25519-aes-sha2",23747
+ "m.megolm.v1.aes-sha2"23748
+ ],23749
+ "device_id": "ALICEDEVICE482",23750
+ "keys": {23751
+ "curve25519:ALICEDEVICE482": "tY3XLWmssKFpa2SWNrBP4PiYLFeuYeGcSu2eKQGol3Y",23752
+ "ed25519:ALICEDEVICE482": "CtX/QvDG7TaP89Fuqd4jB4oZvGm5up7ZBVbgkPHY7nQ"23753
+ },23754
+ "signatures": {23755
+ "@alice_482:hs1": {23756
+ "ed25519:ALICEDEVICE482": "TlWrGun/64n5DgNV4gRt//d/7fHExNhhFNKy1+Je8mX8cuOO/Gj8KImwU0CpbZFxIJMunXtyC7HNXY9j72yZBQ"23757
+ }23758
+ },23759
+ "user_id": "@alice_482:hs1",23760
+ "unsigned": {}23761
+ }23762
+ },23763
+ "@alice_489:hs1": {23764
+ "ALICEDEVICE489": {23765
+ "algorithms": [23766
+ "m.olm.v1.curve25519-aes-sha2",23767
+ "m.megolm.v1.aes-sha2"23768
+ ],23769
+ "device_id": "ALICEDEVICE489",23770
+ "keys": {23771
+ "curve25519:ALICEDEVICE489": "HpwGZtOwNQnHrov8LqhmHkIUIgi9KavLCTYENKHaXRo",23772
+ "ed25519:ALICEDEVICE489": "3MheOS5SmN+nK5gEg9yRIl2AoRvzL0JYquxdNx/roN4"23773
+ },23774
+ "signatures": {23775
+ "@alice_489:hs1": {23776
+ "ed25519:ALICEDEVICE489": "BCPhL4ieI5FV5h096dhV/9LSD+ta+J/HRpmv48d4y/3bbWqefrEp0n25n01miPemWWJU+7o9CYayCoVZmOqzDA"23777
+ }23778
+ },23779
+ "user_id": "@alice_489:hs1",23780
+ "unsigned": {}23781
+ }23782
+ },23783
+ "@alice_49:hs1": {23784
+ "ALICEDEVICE49": {23785
+ "algorithms": [23786
+ "m.olm.v1.curve25519-aes-sha2",23787
+ "m.megolm.v1.aes-sha2"23788
+ ],23789
+ "device_id": "ALICEDEVICE49",23790
+ "keys": {23791
+ "curve25519:ALICEDEVICE49": "hAG36inn5uZbbCFXyZSLSs6ATt1woXPZVPdDquCUEHs",23792
+ "ed25519:ALICEDEVICE49": "iINDWR+16aROJdKPi95u3ZvUBadsc58Gcv9XtjWSft4"23793
+ },23794
+ "signatures": {23795
+ "@alice_49:hs1": {23796
+ "ed25519:ALICEDEVICE49": "EAlcUonmVrjKRFvtMoUROFLPcFnP6S2Dg0VHuUhS82mwh9LG5uidzuj5Sy+P1O/CcppdYQj/8Ffl7p/aQuzfBA"23797
+ }23798
+ },23799
+ "user_id": "@alice_49:hs1",23800
+ "unsigned": {}23801
+ }23802
+ },23803
+ "@alice_520:hs1": {23804
+ "ALICEDEVICE520": {23805
+ "algorithms": [23806
+ "m.olm.v1.curve25519-aes-sha2",23807
+ "m.megolm.v1.aes-sha2"23808
+ ],23809
+ "device_id": "ALICEDEVICE520",23810
+ "keys": {23811
+ "curve25519:ALICEDEVICE520": "tg+XPv8gpXkrq2IEeTYG7GUGPzOp0GIZZgWL3Sp6jTs",23812
+ "ed25519:ALICEDEVICE520": "B5ug+9m0ZbkOVl6Xwau6agMRw4txbhbQ0XI73nQPpro"23813
+ },23814
+ "signatures": {23815
+ "@alice_520:hs1": {23816
+ "ed25519:ALICEDEVICE520": "mCFNV3R0FXrbvChhrJhHEmxc/KiYV5IWZxDl1Wla4eEqi6cweG/Y3+8NsMKpZvmZjq8OUVPTD5ohypfOQDY2Aw"23817
+ }23818
+ },23819
+ "user_id": "@alice_520:hs1",23820
+ "unsigned": {}23821
+ }23822
+ },23823
+ "@alice_521:hs1": {23824
+ "ALICEDEVICE521": {23825
+ "algorithms": [23826
+ "m.olm.v1.curve25519-aes-sha2",23827
+ "m.megolm.v1.aes-sha2"23828
+ ],23829
+ "device_id": "ALICEDEVICE521",23830
+ "keys": {23831
+ "curve25519:ALICEDEVICE521": "KfVHvbE7Fa1sSXRxoTy0GKSCbTJvwA+39GfFV7WAmTI",23832
+ "ed25519:ALICEDEVICE521": "nRXRWdvwzuY/8a4vUjpy+tb4UNA6bYxFlykrnQ3pTGI"23833
+ },23834
+ "signatures": {23835
+ "@alice_521:hs1": {23836
+ "ed25519:ALICEDEVICE521": "uAFF7XWSW/LDXVsxk9lviS6qCvaRUptTfTB1D5PkeCzHyhLBvZ+XSsVsgP1Jp04lvJU3jD9C/zSU0GCDq4jKAA"23837
+ }23838
+ },23839
+ "user_id": "@alice_521:hs1",23840
+ "unsigned": {}23841
+ }23842
+ },23843
+ "@alice_529:hs1": {23844
+ "ALICEDEVICE529": {23845
+ "algorithms": [23846
+ "m.olm.v1.curve25519-aes-sha2",23847
+ "m.megolm.v1.aes-sha2"23848
+ ],23849
+ "device_id": "ALICEDEVICE529",23850
+ "keys": {23851
+ "curve25519:ALICEDEVICE529": "4JGIowsdDIXDNCeqAkRwekzvLRgEIaDLwwadAY1983A",23852
+ "ed25519:ALICEDEVICE529": "i3WHJAFkSZfw6pK2pgU8fMyO8iTRZc/CwsUdTOwaI/g"23853
+ },23854
+ "signatures": {23855
+ "@alice_529:hs1": {23856
+ "ed25519:ALICEDEVICE529": "DZZ6GFU6kpB3ImsRhURwbP2ymEv4VbIjPhseXJim5g6/41rDIbaFJHRCXOh9KabRlGIa+KgY1YT6bVv5CrAyBQ"23857
+ }23858
+ },23859
+ "user_id": "@alice_529:hs1",23860
+ "unsigned": {}23861
+ }23862
+ },23863
+ "@alice_534:hs1": {23864
+ "ALICEDEVICE534": {23865
+ "algorithms": [23866
+ "m.olm.v1.curve25519-aes-sha2",23867
+ "m.megolm.v1.aes-sha2"23868
+ ],23869
+ "device_id": "ALICEDEVICE534",23870
+ "keys": {23871
+ "curve25519:ALICEDEVICE534": "vb8u1Cid9K0tzz2EOyp6Vk+PZiIbyt3dnI5C010bFCs",23872
+ "ed25519:ALICEDEVICE534": "JtoYxLsX1sizO7ujC7erddmOadNB+rtPqQTe68HKI5Q"23873
+ },23874
+ "signatures": {23875
+ "@alice_534:hs1": {23876
+ "ed25519:ALICEDEVICE534": "4gPfhHUJtm4jdrVxl+oncjt7gs+lVnmfXsswZ1c8FJOas4zaYQbVPGkabSDyomAhBfRXRmB0GneDmh68xW8oCQ"23877
+ }23878
+ },23879
+ "user_id": "@alice_534:hs1",23880
+ "unsigned": {}23881
+ }23882
+ },23883
+ "@alice_553:hs1": {23884
+ "ALICEDEVICE553": {23885
+ "algorithms": [23886
+ "m.olm.v1.curve25519-aes-sha2",23887
+ "m.megolm.v1.aes-sha2"23888
+ ],23889
+ "device_id": "ALICEDEVICE553",23890
+ "keys": {23891
+ "curve25519:ALICEDEVICE553": "UNnDvIJ6Yds2dDo5UuZK2ye7GPssQZ3yFubkSRtv7AM",23892
+ "ed25519:ALICEDEVICE553": "L/zXlhxR3BlPJN0U63nw1oLWkATqwFYr3zRLjhrGzTE"23893
+ },23894
+ "signatures": {23895
+ "@alice_553:hs1": {23896
+ "ed25519:ALICEDEVICE553": "fcsY4/nSrY0qBusd3UqRO2ZNgtYwUVEL6iuBm28n3FVxDRNJkzFTTa/OTNz4vQpgZu4Dibrc8htUDXXb1cRuCg"23897
+ }23898
+ },23899
+ "user_id": "@alice_553:hs1",23900
+ "unsigned": {}23901
+ }23902
+ },23903
+ "@alice_565:hs1": {23904
+ "ALICEDEVICE565": {23905
+ "algorithms": [23906
+ "m.olm.v1.curve25519-aes-sha2",23907
+ "m.megolm.v1.aes-sha2"23908
+ ],23909
+ "device_id": "ALICEDEVICE565",23910
+ "keys": {23911
+ "curve25519:ALICEDEVICE565": "8BYQpOsZ8NAF3QWLEI/VM1GjQGPUmFyfAeLsIU6/4Xg",23912
+ "ed25519:ALICEDEVICE565": "XUrEbIN2AwYmqjfxony5JwTr6w153zxklbKD5mvLk5U"23913
+ },23914
+ "signatures": {23915
+ "@alice_565:hs1": {23916
+ "ed25519:ALICEDEVICE565": "rti4Eg82V3Z+V5Gxoy0KLlr7CUkuZxx49zZP1IRY3tfaRmttLXl02nKlbNGEPfFowJOVcMydQjYFvuko1mCpDg"23917
+ }23918
+ },23919
+ "user_id": "@alice_565:hs1",23920
+ "unsigned": {}23921
+ }23922
+ },23923
+ "@alice_568:hs1": {23924
+ "ALICEDEVICE568": {23925
+ "algorithms": [23926
+ "m.olm.v1.curve25519-aes-sha2",23927
+ "m.megolm.v1.aes-sha2"23928
+ ],23929
+ "device_id": "ALICEDEVICE568",23930
+ "keys": {23931
+ "curve25519:ALICEDEVICE568": "gaGna2zgYV1zLpZh0VIZjmOH64Km2TZ3Qgctq5q6eRE",23932
+ "ed25519:ALICEDEVICE568": "knYKAvypDfC68+xvAZiw7pFD+Vf6mT4uaJ61x0oPSQs"23933
+ },23934
+ "signatures": {23935
+ "@alice_568:hs1": {23936
+ "ed25519:ALICEDEVICE568": "iNxmqErze+avJhcsiDgFDJ9wZl2/Hc3TDAx36LGwZumxB/6e82gGdJwrbRGU8pNW3dTKKtO3SK78xM9zUJcQAw"23937
+ }23938
+ },23939
+ "user_id": "@alice_568:hs1",23940
+ "unsigned": {}23941
+ }23942
+ },23943
+ "@alice_573:hs1": {23944
+ "ALICEDEVICE573": {23945
+ "algorithms": [23946
+ "m.olm.v1.curve25519-aes-sha2",23947
+ "m.megolm.v1.aes-sha2"23948
+ ],23949
+ "device_id": "ALICEDEVICE573",23950
+ "keys": {23951
+ "curve25519:ALICEDEVICE573": "L6boHiZ7pvsZHCvw+8lHNyfr2nUfcU71uBy+XqKOMXw",23952
+ "ed25519:ALICEDEVICE573": "aWDzoZ3EOpizeG0Bd6UJO5WEF6psOi4LYcgpkPKnNpo"23953
+ },23954
+ "signatures": {23955
+ "@alice_573:hs1": {23956
+ "ed25519:ALICEDEVICE573": "XC3+RSpawORbggSTfmPnkpypiSfe9SyIN0w5xFRlWx319G+TuRTWMFF03U9dlaClxD5gd4DlYNNtpBrqFvomBA"23957
+ }23958
+ },23959
+ "user_id": "@alice_573:hs1",23960
+ "unsigned": {}23961
+ }23962
+ },23963
+ "@alice_574:hs1": {23964
+ "ALICEDEVICE574": {23965
+ "algorithms": [23966
+ "m.olm.v1.curve25519-aes-sha2",23967
+ "m.megolm.v1.aes-sha2"23968
+ ],23969
+ "device_id": "ALICEDEVICE574",23970
+ "keys": {23971
+ "curve25519:ALICEDEVICE574": "eraLLMHNJRvdwp5TujBudkD1FKOhyaraTGV6s5Q2qFU",23972
+ "ed25519:ALICEDEVICE574": "yLeL3d61qIjlys2q/DhdHlDhRIIz7y1AwVbdRTZmz+0"23973
+ },23974
+ "signatures": {23975
+ "@alice_574:hs1": {23976
+ "ed25519:ALICEDEVICE574": "C4Sh1gdHm5IDcYojRgCtCsR6WGVGnyIZKSZK6xYN6tdRrHNmkQBPqzTyDG9LysYKc3s56zCuUFB4fp1r67JDDQ"23977
+ }23978
+ },23979
+ "user_id": "@alice_574:hs1",23980
+ "unsigned": {}23981
+ }23982
+ },23983
+ "@alice_582:hs1": {23984
+ "ALICEDEVICE582": {23985
+ "algorithms": [23986
+ "m.olm.v1.curve25519-aes-sha2",23987
+ "m.megolm.v1.aes-sha2"23988
+ ],23989
+ "device_id": "ALICEDEVICE582",23990
+ "keys": {23991
+ "curve25519:ALICEDEVICE582": "YeWsn4AmSJrkHI5Q6xyQKkpirf8MmeK6q+CfGl3t+Qc",23992
+ "ed25519:ALICEDEVICE582": "w1x70MOzXFrcZ7gL/4bq4AdCarT/EOVyW4e1VCZoih8"23993
+ },23994
+ "signatures": {23995
+ "@alice_582:hs1": {23996
+ "ed25519:ALICEDEVICE582": "T0y2ddguPL/xF1KTWE/S8klBLQt4Sp3vVRBj+NLIiC/ORogFnoWQalEV5O7Ul2+4VPj60ZZWo45Qqk8rWK7bAw"23997
+ }23998
+ },23999
+ "user_id": "@alice_582:hs1",24000
+ "unsigned": {}24001
+ }24002
+ },24003
+ "@alice_589:hs1": {24004
+ "ALICEDEVICE589": {24005
+ "algorithms": [24006
+ "m.olm.v1.curve25519-aes-sha2",24007
+ "m.megolm.v1.aes-sha2"24008
+ ],24009
+ "device_id": "ALICEDEVICE589",24010
+ "keys": {24011
+ "curve25519:ALICEDEVICE589": "ejUmkOQ9FxfIB7wa0ubXaKEkWPybn3Z0L/LbNvF5cBU",24012
+ "ed25519:ALICEDEVICE589": "I+JyicXZKELp3VkoICSpuBPfZMmcV/oz4Kf0PXf6arQ"24013
+ },24014
+ "signatures": {24015
+ "@alice_589:hs1": {24016
+ "ed25519:ALICEDEVICE589": "qKpqbF97fzpkEsDOBJ6aaHbQ09fJrfRu3ssmikJXb7zEIeHlc5WITydrq4wpGsmqxm6aeLdqBEpO3Rl/HtJGCA"24017
+ }24018
+ },24019
+ "user_id": "@alice_589:hs1",24020
+ "unsigned": {}24021
+ }24022
+ },24023
+ "@alice_606:hs1": {24024
+ "ALICEDEVICE606": {24025
+ "algorithms": [24026
+ "m.olm.v1.curve25519-aes-sha2",24027
+ "m.megolm.v1.aes-sha2"24028
+ ],24029
+ "device_id": "ALICEDEVICE606",24030
+ "keys": {24031
+ "curve25519:ALICEDEVICE606": "0js5RdZNqT17DFXlrwmX0B3H4ASaEEjNW/C5qBRqkUY",24032
+ "ed25519:ALICEDEVICE606": "gvrtj02JffuB7avS/Hyh/70csiSC1jBxnUC+CBOSEkE"24033
+ },24034
+ "signatures": {24035
+ "@alice_606:hs1": {24036
+ "ed25519:ALICEDEVICE606": "P3WJGa9qgKD/zCiqBAc8flu2SnNgOl+kycduxEwlQuvpNTUcG51hvBrngBtHOVFbmb3zFpwbVRRrqKopZQ9OAw"24037
+ }24038
+ },24039
+ "user_id": "@alice_606:hs1",24040
+ "unsigned": {}24041
+ }24042
+ },24043
+ "@alice_608:hs1": {24044
+ "ALICEDEVICE608": {24045
+ "algorithms": [24046
+ "m.olm.v1.curve25519-aes-sha2",24047
+ "m.megolm.v1.aes-sha2"24048
+ ],24049
+ "device_id": "ALICEDEVICE608",24050
+ "keys": {24051
+ "curve25519:ALICEDEVICE608": "nZbkblpRVMPkoR1KsYI/uBmDPhfjp2Fvx1vNao5h6zE",24052
+ "ed25519:ALICEDEVICE608": "aeEBYM7asuUeA7TwhHzNHRRAsrQhwctHIoHZRv1ZOj8"24053
+ },24054
+ "signatures": {24055
+ "@alice_608:hs1": {24056
+ "ed25519:ALICEDEVICE608": "BGmJYNtNQJzLyaDveG2RghcY1sx4//DUDalnv46FhUuXNeR/t+lyeXrBlKNfSQ5SYad8jdmUoldW3iJbMgSQAg"24057
+ }24058
+ },24059
+ "user_id": "@alice_608:hs1",24060
+ "unsigned": {}24061
+ }24062
+ },24063
+ "@alice_621:hs1": {24064
+ "ALICEDEVICE621": {24065
+ "algorithms": [24066
+ "m.olm.v1.curve25519-aes-sha2",24067
+ "m.megolm.v1.aes-sha2"24068
+ ],24069
+ "device_id": "ALICEDEVICE621",24070
+ "keys": {24071
+ "curve25519:ALICEDEVICE621": "Y7/J0yQL6H+ujY3Tsrdc6HwRMBanhZMAO1xzeXgxp2Y",24072
+ "ed25519:ALICEDEVICE621": "FlI9m32BtLby1smFlbnlfkvsnCv9rEYMXrqMdjxWLKE"24073
+ },24074
+ "signatures": {24075
+ "@alice_621:hs1": {24076
+ "ed25519:ALICEDEVICE621": "D0rhrHHbVvYryVbuqbVnmT8eKzExoYnlGO/0f7ETXrqeM9SqRGaXlhNu4aBDys9JcyRPvhF9bjErGLgonDQqBQ"24077
+ }24078
+ },24079
+ "user_id": "@alice_621:hs1",24080
+ "unsigned": {}24081
+ }24082
+ },24083
+ "@alice_624:hs1": {24084
+ "ALICEDEVICE624": {24085
+ "algorithms": [24086
+ "m.olm.v1.curve25519-aes-sha2",24087
+ "m.megolm.v1.aes-sha2"24088
+ ],24089
+ "device_id": "ALICEDEVICE624",24090
+ "keys": {24091
+ "curve25519:ALICEDEVICE624": "tW41k9l4Ff9Srqo6CeowzLpEwhVnDB8eSyHl0Av80iU",24092
+ "ed25519:ALICEDEVICE624": "G5PQnLbuZNv5XD5PRPPbQL1BfHEwAO6AHbWW/cBuVro"24093
+ },24094
+ "signatures": {24095
+ "@alice_624:hs1": {24096
+ "ed25519:ALICEDEVICE624": "w/4ovzgqF/bt2Yuua0e8622/AJMcM+YzNDqyCpvZ2+iyQZjp3GnH5KRDuYdpCgTRaak8kFf8lPJJU4HiOnTRDA"24097
+ }24098
+ },24099
+ "user_id": "@alice_624:hs1",24100
+ "unsigned": {}24101
+ }24102
+ },24103
+ "@alice_630:hs1": {24104
+ "ALICEDEVICE630": {24105
+ "algorithms": [24106
+ "m.olm.v1.curve25519-aes-sha2",24107
+ "m.megolm.v1.aes-sha2"24108
+ ],24109
+ "device_id": "ALICEDEVICE630",24110
+ "keys": {24111
+ "curve25519:ALICEDEVICE630": "227S68eTewS4xWhu3at2H2ojSVIN9BwKPbSELRuKRns",24112
+ "ed25519:ALICEDEVICE630": "x1uHN+TzOzXqoiIytr7NuAHyno6FU2TR81TaHsarxaw"24113
+ },24114
+ "signatures": {24115
+ "@alice_630:hs1": {24116
+ "ed25519:ALICEDEVICE630": "ulrn7AcQSxRw4d8HVx54QYUFc1THI0BSxC8D7Pg5b0PXFRGwOPqgsbbDKQzaloaeWALb2vcyo/YCiwkg5gZQCg"24117
+ }24118
+ },24119
+ "user_id": "@alice_630:hs1",24120
+ "unsigned": {}24121
+ }24122
+ },24123
+ "@alice_632:hs1": {24124
+ "ALICEDEVICE632": {24125
+ "algorithms": [24126
+ "m.olm.v1.curve25519-aes-sha2",24127
+ "m.megolm.v1.aes-sha2"24128
+ ],24129
+ "device_id": "ALICEDEVICE632",24130
+ "keys": {24131
+ "curve25519:ALICEDEVICE632": "xrMIpuJeAl6nHzlP7+TmA91iXmiBPlBB0XKQd+nbCho",24132
+ "ed25519:ALICEDEVICE632": "ahbbdfw3tIhWlZs8c1S5g1aFkiPHlCyajNYWcVinQyc"24133
+ },24134
+ "signatures": {24135
+ "@alice_632:hs1": {24136
+ "ed25519:ALICEDEVICE632": "J5jDnQU+oMyHJCQvcFz1ohzUzx/e/bmtPrpGgZfU1EgcYoVCexj5sfNsj9C1ju5fHXFd49dLCU5j3OvEUHE8BQ"24137
+ }24138
+ },24139
+ "user_id": "@alice_632:hs1",24140
+ "unsigned": {}24141
+ }24142
+ },24143
+ "@alice_639:hs1": {24144
+ "ALICEDEVICE639": {24145
+ "algorithms": [24146
+ "m.olm.v1.curve25519-aes-sha2",24147
+ "m.megolm.v1.aes-sha2"24148
+ ],24149
+ "device_id": "ALICEDEVICE639",24150
+ "keys": {24151
+ "curve25519:ALICEDEVICE639": "0Odur276dlK8XKQTvU4LyAJ3mERCCK8zx+LS4rqvVws",24152
+ "ed25519:ALICEDEVICE639": "KKr1BVZ0w0/62su3BduQX0pOu+jxagcj4MoM5rTVMUg"24153
+ },24154
+ "signatures": {24155
+ "@alice_639:hs1": {24156
+ "ed25519:ALICEDEVICE639": "9kPjm3OB/Xu3ccXEW8MO8TVu+UDXDRDdMxiSPO7eHrfLFhrHb4GPSjWoie9RuSjiOkVz4ZPBfTSkies6i6Z1DQ"24157
+ }24158
+ },24159
+ "user_id": "@alice_639:hs1",24160
+ "unsigned": {}24161
+ }24162
+ },24163
+ "@alice_643:hs1": {24164
+ "ALICEDEVICE643": {24165
+ "algorithms": [24166
+ "m.olm.v1.curve25519-aes-sha2",24167
+ "m.megolm.v1.aes-sha2"24168
+ ],24169
+ "device_id": "ALICEDEVICE643",24170
+ "keys": {24171
+ "curve25519:ALICEDEVICE643": "tDkWZSCYil32MZdfI5IGSjr3LLg7vkADCNmSVVC+9R8",24172
+ "ed25519:ALICEDEVICE643": "CVNVAR5e6c007UNG5IZsj7LylzXzcFeOcOC1LDtmwW0"24173
+ },24174
+ "signatures": {24175
+ "@alice_643:hs1": {24176
+ "ed25519:ALICEDEVICE643": "MCmzIKHkZuauHKzfvoR61wiHm54R1epgHRlYEyyNwE0++DufxAcPpVZeU32EPwtCUG4At/lrwOZbkIksAfmGAA"24177
+ }24178
+ },24179
+ "user_id": "@alice_643:hs1",24180
+ "unsigned": {}24181
+ }24182
+ },24183
+ "@alice_644:hs1": {24184
+ "ALICEDEVICE644": {24185
+ "algorithms": [24186
+ "m.olm.v1.curve25519-aes-sha2",24187
+ "m.megolm.v1.aes-sha2"24188
+ ],24189
+ "device_id": "ALICEDEVICE644",24190
+ "keys": {24191
+ "curve25519:ALICEDEVICE644": "R9iSAff4iijMz84T9kSJ7nDrTJtaEwZmOt6GQ+9EpXg",24192
+ "ed25519:ALICEDEVICE644": "WOnYphe8Ua9CIBt7OJlgFA+FXcEqrDaLYjGIuAlrHCU"24193
+ },24194
+ "signatures": {24195
+ "@alice_644:hs1": {24196
+ "ed25519:ALICEDEVICE644": "3yZgLFsx2266bw1E4j5ke+HuVixxuRM9SKV/+599M2yAbhdjzHLau/HdbusrKL1SdjYI5tiKjzBtkhs/3YasDw"24197
+ }24198
+ },24199
+ "user_id": "@alice_644:hs1",24200
+ "unsigned": {}24201
+ }24202
+ },24203
+ "@alice_645:hs1": {24204
+ "ALICEDEVICE645": {24205
+ "algorithms": [24206
+ "m.olm.v1.curve25519-aes-sha2",24207
+ "m.megolm.v1.aes-sha2"24208
+ ],24209
+ "device_id": "ALICEDEVICE645",24210
+ "keys": {24211
+ "curve25519:ALICEDEVICE645": "x4e7Tb6C68qoeJUUzI/Cd+iB2++kgax0i8yW5Y7ATGc",24212
+ "ed25519:ALICEDEVICE645": "9P39QkLjG5MhSQVTa5Bwvn1ETHI6aRYVbhgpCwkVXnI"24213
+ },24214
+ "signatures": {24215
+ "@alice_645:hs1": {24216
+ "ed25519:ALICEDEVICE645": "Ozfx1QhBEgR1uXw5p5TFI4k0FXEYUX/CNwUBgmN+UNh9mvfmKZAyO76U46pT51y8COeqgs7cS624lKaqVDDbCQ"24217
+ }24218
+ },24219
+ "user_id": "@alice_645:hs1",24220
+ "unsigned": {}24221
+ }24222
+ },24223
+ "@alice_65:hs1": {24224
+ "ALICEDEVICE65": {24225
+ "algorithms": [24226
+ "m.olm.v1.curve25519-aes-sha2",24227
+ "m.megolm.v1.aes-sha2"24228
+ ],24229
+ "device_id": "ALICEDEVICE65",24230
+ "keys": {24231
+ "curve25519:ALICEDEVICE65": "OdCYoMcKNvhcPLnrVHh5rBVEWYzR5Srefi/rgnJvIG4",24232
+ "ed25519:ALICEDEVICE65": "4fj5O6NgHUsTjk3onfqmc1+ajzFedCYXAc0bwtwqfK8"24233
+ },24234
+ "signatures": {24235
+ "@alice_65:hs1": {24236
+ "ed25519:ALICEDEVICE65": "46Pqv7FUW36Ce604s56VKAZxw8bVOGkz+qyEJOeTyxB7BG7FXcQ/MceX3zqg+V4nnssvTso+JO1t+cgkTejSCA"24237
+ }24238
+ },24239
+ "user_id": "@alice_65:hs1",24240
+ "unsigned": {}24241
+ }24242
+ },24243
+ "@alice_661:hs1": {24244
+ "ALICEDEVICE661": {24245
+ "algorithms": [24246
+ "m.olm.v1.curve25519-aes-sha2",24247
+ "m.megolm.v1.aes-sha2"24248
+ ],24249
+ "device_id": "ALICEDEVICE661",24250
+ "keys": {24251
+ "curve25519:ALICEDEVICE661": "QfyHSBffg+/5YWrri7yJLwGNNWSQPfj4RbX8sQ37SQ0",24252
+ "ed25519:ALICEDEVICE661": "M0U9Dk5VuKd8OzOofSPKDjoZB7PE01OpW8XOdv5O6xo"24253
+ },24254
+ "signatures": {24255
+ "@alice_661:hs1": {24256
+ "ed25519:ALICEDEVICE661": "aYyWDcfSRQ9S7qi2ECInQTdFAuuIBMHNTwA3TC2WkbBVoycfY7FKUjGAnooNvxhEmu4nSK7gBqFOVVJNUlZNAA"24257
+ }24258
+ },24259
+ "user_id": "@alice_661:hs1",24260
+ "unsigned": {}24261
+ }24262
+ },24263
+ "@alice_665:hs1": {24264
+ "ALICEDEVICE665": {24265
+ "algorithms": [24266
+ "m.olm.v1.curve25519-aes-sha2",24267
+ "m.megolm.v1.aes-sha2"24268
+ ],24269
+ "device_id": "ALICEDEVICE665",24270
+ "keys": {24271
+ "curve25519:ALICEDEVICE665": "HDHQqDBW4LiUE4GJAryL28oAFZlSmFzyVNYKZ4MTJDA",24272
+ "ed25519:ALICEDEVICE665": "G2eMsRRYRqaJ1y1AN4CTFVifpOHpn1K8cr4B/bHjQzs"24273
+ },24274
+ "signatures": {24275
+ "@alice_665:hs1": {24276
+ "ed25519:ALICEDEVICE665": "oDA8Uml91j4LZN801ogTMZaqcXeTAbopEziIkNfObsHU9nbsOcuoPQ2OFeBj2TGEuSYYolJ/1wWo/MWfnbMTDA"24277
+ }24278
+ },24279
+ "user_id": "@alice_665:hs1",24280
+ "unsigned": {}24281
+ }24282
+ },24283
+ "@alice_666:hs1": {24284
+ "ALICEDEVICE666": {24285
+ "algorithms": [24286
+ "m.olm.v1.curve25519-aes-sha2",24287
+ "m.megolm.v1.aes-sha2"24288
+ ],24289
+ "device_id": "ALICEDEVICE666",24290
+ "keys": {24291
+ "curve25519:ALICEDEVICE666": "/Am4iLA2v4c/CLp+CV9Vv09FB4o2lqafeeKm/uJsZAQ",24292
+ "ed25519:ALICEDEVICE666": "eDpeQKKTVKx3n7kU4ebx+esbdnxBCha+TbwsJUBq0CA"24293
+ },24294
+ "signatures": {24295
+ "@alice_666:hs1": {24296
+ "ed25519:ALICEDEVICE666": "6hpVUmui0rJ4t088Hr0VxdFuBmLfCmoVgyyuVAGey6xzp/ARSrLylxrwRIUengQA9EDHnxXBYsrN7osDivcuAw"24297
+ }24298
+ },24299
+ "user_id": "@alice_666:hs1",24300
+ "unsigned": {}24301
+ }24302
+ },24303
+ "@alice_66:hs1": {24304
+ "ALICEDEVICE66": {24305
+ "algorithms": [24306
+ "m.olm.v1.curve25519-aes-sha2",24307
+ "m.megolm.v1.aes-sha2"24308
+ ],24309
+ "device_id": "ALICEDEVICE66",24310
+ "keys": {24311
+ "curve25519:ALICEDEVICE66": "tnRWSJMZVQx5RUe3PvWt8sxiewedoLx0KpjuXK39CyY",24312
+ "ed25519:ALICEDEVICE66": "CefY/q53yAWnmN2SLGvd5e9jPHZshhGpjlBDmriHvt8"24313
+ },24314
+ "signatures": {24315
+ "@alice_66:hs1": {24316
+ "ed25519:ALICEDEVICE66": "/AXUA30Zlvk2uJaeUCFqjesR2PEGP/iabXRzwTfLFEBT9d26uErn5RM74MxruSHsQe+lD4MK9G6prBptH/nkCA"24317
+ }24318
+ },24319
+ "user_id": "@alice_66:hs1",24320
+ "unsigned": {}24321
+ }24322
+ },24323
+ "@alice_671:hs1": {24324
+ "ALICEDEVICE671": {24325
+ "algorithms": [24326
+ "m.olm.v1.curve25519-aes-sha2",24327
+ "m.megolm.v1.aes-sha2"24328
+ ],24329
+ "device_id": "ALICEDEVICE671",24330
+ "keys": {24331
+ "curve25519:ALICEDEVICE671": "H16BvwSxpd0n2df8h49wwh9lTq56mYaWas/VrCmyfGI",24332
+ "ed25519:ALICEDEVICE671": "3FEdmRN6aNRkpXjp8QCKNke0G4MbQSe0iRWCnFeabq4"24333
+ },24334
+ "signatures": {24335
+ "@alice_671:hs1": {24336
+ "ed25519:ALICEDEVICE671": "i38pf9lNYJCq0k0YSyVeUXHnmiRPDU3Xggw61R2obIQNmWKTjVfohd9zcl87g+jnAYGlrgi6yZUhXwgEymEDDA"24337
+ }24338
+ },24339
+ "user_id": "@alice_671:hs1",24340
+ "unsigned": {}24341
+ }24342
+ },24343
+ "@alice_673:hs1": {24344
+ "ALICEDEVICE673": {24345
+ "algorithms": [24346
+ "m.olm.v1.curve25519-aes-sha2",24347
+ "m.megolm.v1.aes-sha2"24348
+ ],24349
+ "device_id": "ALICEDEVICE673",24350
+ "keys": {24351
+ "curve25519:ALICEDEVICE673": "gJwZsWWvPYYBm/xkGcOtTzYT0IHSuCOeWUfQ5tNwTX8",24352
+ "ed25519:ALICEDEVICE673": "+th9Fxri5r4kCOTIb/oRDth+KsVEg8w9REj9pHfBSEU"24353
+ },24354
+ "signatures": {24355
+ "@alice_673:hs1": {24356
+ "ed25519:ALICEDEVICE673": "XXcfYfSi8QROTlKbZUjQA2qYB7U1R0ExoCLFFVE9Re17cKCAjpDmCN9+YL48Nq+KIeRckDhdcIdw08AfLyCuCw"24357
+ }24358
+ },24359
+ "user_id": "@alice_673:hs1",24360
+ "unsigned": {}24361
+ }24362
+ },24363
+ "@alice_685:hs1": {24364
+ "ALICEDEVICE685": {24365
+ "algorithms": [24366
+ "m.olm.v1.curve25519-aes-sha2",24367
+ "m.megolm.v1.aes-sha2"24368
+ ],24369
+ "device_id": "ALICEDEVICE685",24370
+ "keys": {24371
+ "curve25519:ALICEDEVICE685": "f3/TGzV9In7qr7B0K5sBFfIvlVJP/FSZCYVtGCV0ng4",24372
+ "ed25519:ALICEDEVICE685": "I+8fE1hNy9gT+z/n29VO72iXjRWACDzBRC3oWR9pozI"24373
+ },24374
+ "signatures": {24375
+ "@alice_685:hs1": {24376
+ "ed25519:ALICEDEVICE685": "Akf16K4E61ZuskmQ44ruH+dAXvFHo6QoZjswmPL9cAU3bUcfa1Y9tV5R/dHkCWs5ooIdmT21MRXGypJ9a5KYBQ"24377
+ }24378
+ },24379
+ "user_id": "@alice_685:hs1",24380
+ "unsigned": {}24381
+ }24382
+ },24383
+ "@alice_691:hs1": {24384
+ "ALICEDEVICE691": {24385
+ "algorithms": [24386
+ "m.olm.v1.curve25519-aes-sha2",24387
+ "m.megolm.v1.aes-sha2"24388
+ ],24389
+ "device_id": "ALICEDEVICE691",24390
+ "keys": {24391
+ "curve25519:ALICEDEVICE691": "Zyp7QrKwf5Zj7r3ULgHdPEDodqFFhweYirdU+MU42Hs",24392
+ "ed25519:ALICEDEVICE691": "/C8Gt0kC5CuKJJLy1U+2wXnCqnzoJkvnf2WuLlIiN/8"24393
+ },24394
+ "signatures": {24395
+ "@alice_691:hs1": {24396
+ "ed25519:ALICEDEVICE691": "mb5IjngmUftBVRu/AP4ZaFVrY564HVaVHRFNtgvqOQtS3vaQb6ONv8+96xbz3urfYfayLTvHk7xzb1ZGxV+3DQ"24397
+ }24398
+ },24399
+ "user_id": "@alice_691:hs1",24400
+ "unsigned": {}24401
+ }24402
+ },24403
+ "@alice_692:hs1": {24404
+ "ALICEDEVICE692": {24405
+ "algorithms": [24406
+ "m.olm.v1.curve25519-aes-sha2",24407
+ "m.megolm.v1.aes-sha2"24408
+ ],24409
+ "device_id": "ALICEDEVICE692",24410
+ "keys": {24411
+ "curve25519:ALICEDEVICE692": "8gyQJr+M5bV+bGINylu0yC9adAWlmA4iy2cQHDFKcCw",24412
+ "ed25519:ALICEDEVICE692": "p2OqRb/Cnnks3BDYp4RmhOD65WboYu1NdduBQvY/lbA"24413
+ },24414
+ "signatures": {24415
+ "@alice_692:hs1": {24416
+ "ed25519:ALICEDEVICE692": "WWlik0pfgAiFsW/Op3vAPV2WF57QJQgJbMdcMCmFYH640YRsUGXEdec33j+sKedzFz1Et48Rcpc2xaGCS8CZAw"24417
+ }24418
+ },24419
+ "user_id": "@alice_692:hs1",24420
+ "unsigned": {}24421
+ }24422
+ },24423
+ "@alice_694:hs1": {24424
+ "ALICEDEVICE694": {24425
+ "algorithms": [24426
+ "m.olm.v1.curve25519-aes-sha2",24427
+ "m.megolm.v1.aes-sha2"24428
+ ],24429
+ "device_id": "ALICEDEVICE694",24430
+ "keys": {24431
+ "curve25519:ALICEDEVICE694": "f9a9sTtuGmNK/opeQNT3ECeeNarlTSfD5Lw4NH6qvF0",24432
+ "ed25519:ALICEDEVICE694": "gHkEyAYW3z8x8FvwnDr0GV7u1KGn+EpqU22ehptHNFY"24433
+ },24434
+ "signatures": {24435
+ "@alice_694:hs1": {24436
+ "ed25519:ALICEDEVICE694": "l2nLdtSx+d274MS2f+ypGVDgvc0kv85F0Pk6m1WYRzhFMdPAlFYrutwHtJ+t/pOY4ZDfYs3+ILT0R2Ph9TBmBA"24437
+ }24438
+ },24439
+ "user_id": "@alice_694:hs1",24440
+ "unsigned": {}24441
+ }24442
+ },24443
+ "@alice_708:hs1": {24444
+ "ALICEDEVICE708": {24445
+ "algorithms": [24446
+ "m.olm.v1.curve25519-aes-sha2",24447
+ "m.megolm.v1.aes-sha2"24448
+ ],24449
+ "device_id": "ALICEDEVICE708",24450
+ "keys": {24451
+ "curve25519:ALICEDEVICE708": "exhZrv+Tf9T6zgJ36pL4P2lkT6phV20yqH2A+sqVDgI",24452
+ "ed25519:ALICEDEVICE708": "orhEuwTCO3DDegTKyTos7FhGdUrfoem4hqwecSzzMQ8"24453
+ },24454
+ "signatures": {24455
+ "@alice_708:hs1": {24456
+ "ed25519:ALICEDEVICE708": "s01WPOVldBuV9J973FXYWeVTaX10gGyvC6U9cyRsb4tpHlB9f70Gd//NxnH41EtJJDbJnTn7+iZzHDvM8j/yDg"24457
+ }24458
+ },24459
+ "user_id": "@alice_708:hs1",24460
+ "unsigned": {}24461
+ }24462
+ },24463
+ "@alice_70:hs1": {24464
+ "ALICEDEVICE70": {24465
+ "algorithms": [24466
+ "m.olm.v1.curve25519-aes-sha2",24467
+ "m.megolm.v1.aes-sha2"24468
+ ],24469
+ "device_id": "ALICEDEVICE70",24470
+ "keys": {24471
+ "curve25519:ALICEDEVICE70": "ZEyKZpyPU+VsY19bm3FFvAvsQ6fkIyoR62PsomtiY2c",24472
+ "ed25519:ALICEDEVICE70": "+H+qSXJS9yv3bAw2lgNw60W2lhobjOCeqP+dGzz7rb4"24473
+ },24474
+ "signatures": {24475
+ "@alice_70:hs1": {24476
+ "ed25519:ALICEDEVICE70": "iZSYtsPvXbvpOzBYtXENF0ZqqhB86vMa94RhqflZYTo20v0W8/xLnGCD+HLrVvBS1t0J4JW0kBsKNUYdL0fIDA"24477
+ }24478
+ },24479
+ "user_id": "@alice_70:hs1",24480
+ "unsigned": {}24481
+ }24482
+ },24483
+ "@alice_710:hs1": {24484
+ "ALICEDEVICE710": {24485
+ "algorithms": [24486
+ "m.olm.v1.curve25519-aes-sha2",24487
+ "m.megolm.v1.aes-sha2"24488
+ ],24489
+ "device_id": "ALICEDEVICE710",24490
+ "keys": {24491
+ "curve25519:ALICEDEVICE710": "/iLPyg74OhPUGIZQ27uNY7SeaNI08aBwqcdRBeoa5GI",24492
+ "ed25519:ALICEDEVICE710": "WIAhqsYMIwG74I1rvuCp+kd/WHn9Bseh6rl7+k3vXXw"24493
+ },24494
+ "signatures": {24495
+ "@alice_710:hs1": {24496
+ "ed25519:ALICEDEVICE710": "YGtf2Y7dqgXN+PubBmawGsTj27evZHTr8Oz7P7Byrd7xxE5nUCVuor/JkN4dfZ4dd7jIHiFaAjjprviz+L2tDg"24497
+ }24498
+ },24499
+ "user_id": "@alice_710:hs1",24500
+ "unsigned": {}24501
+ }24502
+ },24503
+ "@alice_713:hs1": {24504
+ "ALICEDEVICE713": {24505
+ "algorithms": [24506
+ "m.olm.v1.curve25519-aes-sha2",24507
+ "m.megolm.v1.aes-sha2"24508
+ ],24509
+ "device_id": "ALICEDEVICE713",24510
+ "keys": {24511
+ "curve25519:ALICEDEVICE713": "XFFeznTNmfGGimnRrvxFVRUaTbPxGeeEnd1pdNOw/WE",24512
+ "ed25519:ALICEDEVICE713": "McujtiXLLVoBBPxznSWegIoPqnTtBhnwJXCJx6UbJjA"24513
+ },24514
+ "signatures": {24515
+ "@alice_713:hs1": {24516
+ "ed25519:ALICEDEVICE713": "VgGutsfBDts4SFaAu/2PGp2qzU3LQW9PMLH2mzMnyE0LaMcCA3tAR8RcOaMLO1W44SkPmZgCiJq0ZZSzGgvcDg"24517
+ }24518
+ },24519
+ "user_id": "@alice_713:hs1",24520
+ "unsigned": {}24521
+ }24522
+ },24523
+ "@alice_726:hs1": {24524
+ "ALICEDEVICE726": {24525
+ "algorithms": [24526
+ "m.olm.v1.curve25519-aes-sha2",24527
+ "m.megolm.v1.aes-sha2"24528
+ ],24529
+ "device_id": "ALICEDEVICE726",24530
+ "keys": {24531
+ "curve25519:ALICEDEVICE726": "dy4mEY3BFtCt3kYrtD8rZJXqhDE1bKldzHBYeqIJrns",24532
+ "ed25519:ALICEDEVICE726": "1tNlCDgQeioiR5k4Ez1dFQwBsXfHLvlhDTThUObP0wk"24533
+ },24534
+ "signatures": {24535
+ "@alice_726:hs1": {24536
+ "ed25519:ALICEDEVICE726": "ptEvQOXMKNaRVDgMKjQBrTt9luL6YjYJ7KLzKs6ho1m/65KaaPtVaMr2HS0l4b+Wl9AkmduARL9+1bjOQFXRCw"24537
+ }24538
+ },24539
+ "user_id": "@alice_726:hs1",24540
+ "unsigned": {}24541
+ }24542
+ },24543
+ "@alice_727:hs1": {24544
+ "ALICEDEVICE727": {24545
+ "algorithms": [24546
+ "m.olm.v1.curve25519-aes-sha2",24547
+ "m.megolm.v1.aes-sha2"24548
+ ],24549
+ "device_id": "ALICEDEVICE727",24550
+ "keys": {24551
+ "curve25519:ALICEDEVICE727": "x9UwRmn2UDT6Bg9e+ooa1ZHeWIpo6lUp5wDp2UQqzFw",24552
+ "ed25519:ALICEDEVICE727": "8/z4KLI6xOJxyvwzkaogQPfK7jihDQnjAwXwzmLzAYk"24553
+ },24554
+ "signatures": {24555
+ "@alice_727:hs1": {24556
+ "ed25519:ALICEDEVICE727": "Q567hfYyBuVBaRjRXaIeYihgsVUVTNB9UC4gDuKEKvPaY/vFXOYZQGxQu3xIx0NRZWa+EKZ/HUXoLtNm+yEeBw"24557
+ }24558
+ },24559
+ "user_id": "@alice_727:hs1",24560
+ "unsigned": {}24561
+ }24562
+ },24563
+ "@alice_752:hs1": {24564
+ "ALICEDEVICE752": {24565
+ "algorithms": [24566
+ "m.olm.v1.curve25519-aes-sha2",24567
+ "m.megolm.v1.aes-sha2"24568
+ ],24569
+ "device_id": "ALICEDEVICE752",24570
+ "keys": {24571
+ "curve25519:ALICEDEVICE752": "T1BqrsV679ltMGpbhy2VUmutafqwjXDhhY4kgTMci3w",24572
+ "ed25519:ALICEDEVICE752": "CkiqsiRKHv2BwWZiJf1EujgyYGQ1gqTPaKEbsBYrYic"24573
+ },24574
+ "signatures": {24575
+ "@alice_752:hs1": {24576
+ "ed25519:ALICEDEVICE752": "r4Z6IKOQiBOdoomxZNtCK1YrFaD3ShABs+66he6DZN+nUxzT5O13QreKL36OEkjBkgmCcp2lzvBoe3ZxFaVzBw"24577
+ }24578
+ },24579
+ "user_id": "@alice_752:hs1",24580
+ "unsigned": {}24581
+ }24582
+ },24583
+ "@alice_756:hs1": {24584
+ "ALICEDEVICE756": {24585
+ "algorithms": [24586
+ "m.olm.v1.curve25519-aes-sha2",24587
+ "m.megolm.v1.aes-sha2"24588
+ ],24589
+ "device_id": "ALICEDEVICE756",24590
+ "keys": {24591
+ "curve25519:ALICEDEVICE756": "JsjsWehyxWI+QjnMLAGd0Dxkf2welHRTdCrIHNDzdRk",24592
+ "ed25519:ALICEDEVICE756": "sMY4pnSre6L9dVnOvqERxRR5CLKOQhd1vUEmrLnupB4"24593
+ },24594
+ "signatures": {24595
+ "@alice_756:hs1": {24596
+ "ed25519:ALICEDEVICE756": "CFeaGgtAgb5XEUCGLbixgS2f/Dz+VzfsYG9ZSMXMO8yGpLwjStPq+7yJpRfQUIzHKpevv8pbzMhbPj4yE2u5DQ"24597
+ }24598
+ },24599
+ "user_id": "@alice_756:hs1",24600
+ "unsigned": {}24601
+ }24602
+ },24603
+ "@alice_761:hs1": {24604
+ "ALICEDEVICE761": {24605
+ "algorithms": [24606
+ "m.olm.v1.curve25519-aes-sha2",24607
+ "m.megolm.v1.aes-sha2"24608
+ ],24609
+ "device_id": "ALICEDEVICE761",24610
+ "keys": {24611
+ "curve25519:ALICEDEVICE761": "5VxQl8LitYUyqaykm7vvxO695gR+F2ZGwfWQy/zM8Fk",24612
+ "ed25519:ALICEDEVICE761": "sbby5euqvnqwRfi7c2XSSo0hM8B0jxytXpKIj3mxg9M"24613
+ },24614
+ "signatures": {24615
+ "@alice_761:hs1": {24616
+ "ed25519:ALICEDEVICE761": "Tex+GaEGqJlBDJ0mO/uZimkfDcndG956h/ovQeYP3Zp98PsS8CaTUSRas/u9utPxcev2UYqbHXBXPlWaneX8Bw"24617
+ }24618
+ },24619
+ "user_id": "@alice_761:hs1",24620
+ "unsigned": {}24621
+ }24622
+ },24623
+ "@alice_765:hs1": {24624
+ "ALICEDEVICE765": {24625
+ "algorithms": [24626
+ "m.olm.v1.curve25519-aes-sha2",24627
+ "m.megolm.v1.aes-sha2"24628
+ ],24629
+ "device_id": "ALICEDEVICE765",24630
+ "keys": {24631
+ "curve25519:ALICEDEVICE765": "DXU2HwFrzcUugCdfMvP1J5LAu3js9trgKvU6gdHT3Ug",24632
+ "ed25519:ALICEDEVICE765": "MFRSGesMKyBcmbIEH5QZoG3zHdpLJXLXzLtNMVGWDDU"24633
+ },24634
+ "signatures": {24635
+ "@alice_765:hs1": {24636
+ "ed25519:ALICEDEVICE765": "cVcF0X2OnEY/pn+skxj2wp+ls80dwj7EJjhwU41MPDT0C6EEFu9Cd2HmAl+dvODjVVbnttZttRb0Y8U4EbDrBg"24637
+ }24638
+ },24639
+ "user_id": "@alice_765:hs1",24640
+ "unsigned": {}24641
+ }24642
+ },24643
+ "@alice_774:hs1": {24644
+ "ALICEDEVICE774": {24645
+ "algorithms": [24646
+ "m.olm.v1.curve25519-aes-sha2",24647
+ "m.megolm.v1.aes-sha2"24648
+ ],24649
+ "device_id": "ALICEDEVICE774",24650
+ "keys": {24651
+ "curve25519:ALICEDEVICE774": "VYQ513YljtKo2zqWB3UtbA49vlToO2jcGV6InV7BmBM",24652
+ "ed25519:ALICEDEVICE774": "r3LWV/RxjNMg58bxoltXiA/hAzPPCfqibP9JHvYQI6s"24653
+ },24654
+ "signatures": {24655
+ "@alice_774:hs1": {24656
+ "ed25519:ALICEDEVICE774": "vyE2gje+82GcN6/zuwf1pDZkze60QTpl7HJu1A8DOtc+rV20r3MMuGEcSxZmeWMzAFpSfU6xlLgSc1vCHqr0Bw"24657
+ }24658
+ },24659
+ "user_id": "@alice_774:hs1",24660
+ "unsigned": {}24661
+ }24662
+ },24663
+ "@alice_780:hs1": {24664
+ "ALICEDEVICE780": {24665
+ "algorithms": [24666
+ "m.olm.v1.curve25519-aes-sha2",24667
+ "m.megolm.v1.aes-sha2"24668
+ ],24669
+ "device_id": "ALICEDEVICE780",24670
+ "keys": {24671
+ "curve25519:ALICEDEVICE780": "DAUdyU5762E3468K/J4tQZkV9zvZRpdQflhCSiVgtTE",24672
+ "ed25519:ALICEDEVICE780": "MWk6mparEwji8mjDv6SdDRsqc2pAU7NZCYSgMYqd8Fg"24673
+ },24674
+ "signatures": {24675
+ "@alice_780:hs1": {24676
+ "ed25519:ALICEDEVICE780": "Hda6WmQjyNoto0BOOB3s2ZKrB2RQBqf8e5srJueMo6xlsQR7cug3oCsvQ7geeXBNyeFlFdMGksi8DAAf5SF3CA"24677
+ }24678
+ },24679
+ "user_id": "@alice_780:hs1",24680
+ "unsigned": {}24681
+ }24682
+ },24683
+ "@alice_789:hs1": {24684
+ "ALICEDEVICE789": {24685
+ "algorithms": [24686
+ "m.olm.v1.curve25519-aes-sha2",24687
+ "m.megolm.v1.aes-sha2"24688
+ ],24689
+ "device_id": "ALICEDEVICE789",24690
+ "keys": {24691
+ "curve25519:ALICEDEVICE789": "7gWX+oodwLFCyPPaOLcl6DlA/9OXQg4Z6miJO55mAic",24692
+ "ed25519:ALICEDEVICE789": "g75eoZBfEmLnL/gR7ASgl5rDlk+39dyfXbyg9R9mskg"24693
+ },24694
+ "signatures": {24695
+ "@alice_789:hs1": {24696
+ "ed25519:ALICEDEVICE789": "gFNOaOsVAlD9TbgMfXTzZtvE9jWB5Bs6H41kOkro53qgdWXXd9yfyHgux766yGqXye6EHvNVnJOX5ukQjTHZDg"24697
+ }24698
+ },24699
+ "user_id": "@alice_789:hs1",24700
+ "unsigned": {}24701
+ }24702
+ },24703
+ "@alice_793:hs1": {24704
+ "ALICEDEVICE793": {24705
+ "algorithms": [24706
+ "m.olm.v1.curve25519-aes-sha2",24707
+ "m.megolm.v1.aes-sha2"24708
+ ],24709
+ "device_id": "ALICEDEVICE793",24710
+ "keys": {24711
+ "curve25519:ALICEDEVICE793": "mRXaP53sTNlnFm9z9AGzDxcsYMAQN3XscB6HS6f2nUU",24712
+ "ed25519:ALICEDEVICE793": "dpDMz+dMM19+rhIFeZIsCI3esmeAmu3uso+JgVS9LR8"24713
+ },24714
+ "signatures": {24715
+ "@alice_793:hs1": {24716
+ "ed25519:ALICEDEVICE793": "zd+KKIjwwYzaskyJOVoEjpXuTLfc//W/Ub3j+eVqprGW9dbuZZW86fm5vV6PIoxQkuayVS/7wYmPeZIYR4WKAg"24717
+ }24718
+ },24719
+ "user_id": "@alice_793:hs1",24720
+ "unsigned": {}24721
+ }24722
+ },24723
+ "@alice_803:hs1": {24724
+ "ALICEDEVICE803": {24725
+ "algorithms": [24726
+ "m.olm.v1.curve25519-aes-sha2",24727
+ "m.megolm.v1.aes-sha2"24728
+ ],24729
+ "device_id": "ALICEDEVICE803",24730
+ "keys": {24731
+ "curve25519:ALICEDEVICE803": "vGjQ1b4rwTDxRcoU8jBs4ZOYPOD38htm5bPAiZElAAU",24732
+ "ed25519:ALICEDEVICE803": "N7bmo1pForG9qgQYnmFPDtrzHW7TN+6ONjNtTIU2sas"24733
+ },24734
+ "signatures": {24735
+ "@alice_803:hs1": {24736
+ "ed25519:ALICEDEVICE803": "7DTFaOK1HxsgVt0CrOFQuDP1wxTuA8l/qtB3k+pZ/i94NQ4vJyv8L9DCQ1zOG0ee0D/GvR4CUzaOiYsGM6SLAw"24737
+ }24738
+ },24739
+ "user_id": "@alice_803:hs1",24740
+ "unsigned": {}24741
+ }24742
+ },24743
+ "@alice_811:hs1": {24744
+ "ALICEDEVICE811": {24745
+ "algorithms": [24746
+ "m.olm.v1.curve25519-aes-sha2",24747
+ "m.megolm.v1.aes-sha2"24748
+ ],24749
+ "device_id": "ALICEDEVICE811",24750
+ "keys": {24751
+ "curve25519:ALICEDEVICE811": "0lBBZLntKacP4qouFPe8X9GXu/P9wA1vBA+FToVO3Dw",24752
+ "ed25519:ALICEDEVICE811": "moqZOsl2Yal21eUw4QpfJPTyNfrAkeX+SrKjh+R/4c4"24753
+ },24754
+ "signatures": {24755
+ "@alice_811:hs1": {24756
+ "ed25519:ALICEDEVICE811": "WtPFPwTsNxnJBep5E5YFraaKNOMXGKDRcqZxibFN+0+2Wp7UUv0V70dQKwRAghYv04NZv2SlCbCoUc9XCoJQDA"24757
+ }24758
+ },24759
+ "user_id": "@alice_811:hs1",24760
+ "unsigned": {}24761
+ }24762
+ },24763
+ "@alice_827:hs1": {24764
+ "ALICEDEVICE827": {24765
+ "algorithms": [24766
+ "m.olm.v1.curve25519-aes-sha2",24767
+ "m.megolm.v1.aes-sha2"24768
+ ],24769
+ "device_id": "ALICEDEVICE827",24770
+ "keys": {24771
+ "curve25519:ALICEDEVICE827": "StGzzhHoORG5voEjXp53z2jvuAVDq9HnTlhNet2oRR4",24772
+ "ed25519:ALICEDEVICE827": "/YsUr/YZjIY3XnsBhdewRvKbFg6JH2yRKTT55/Z6H8A"24773
+ },24774
+ "signatures": {24775
+ "@alice_827:hs1": {24776
+ "ed25519:ALICEDEVICE827": "UxPitDFRht7i5vrqEwX/jYnPYvqLWQG++eRyFHvNiT4tBiS+lcasIf9wGvBeFWCf/tdBEJJqBWNeq87SJfExAw"24777
+ }24778
+ },24779
+ "user_id": "@alice_827:hs1",24780
+ "unsigned": {}24781
+ }24782
+ },24783
+ "@alice_829:hs1": {24784
+ "ALICEDEVICE829": {24785
+ "algorithms": [24786
+ "m.olm.v1.curve25519-aes-sha2",24787
+ "m.megolm.v1.aes-sha2"24788
+ ],24789
+ "device_id": "ALICEDEVICE829",24790
+ "keys": {24791
+ "curve25519:ALICEDEVICE829": "LLAzTJ5qi9/scSEnQLHE0m8bG0iQMlgOu+BQFmy3oVM",24792
+ "ed25519:ALICEDEVICE829": "Fd6EG+mVGGC5ERMbi5/223KDc83ykOsseNgIbqwva60"24793
+ },24794
+ "signatures": {24795
+ "@alice_829:hs1": {24796
+ "ed25519:ALICEDEVICE829": "yBAbJx0GO4zkiREiHEcxcsl51JA+jhsXejuclUC6CMxhlm5L1NSWvHVvoFvwQfuhliVdtDmWZJl5hnPtcKzvAw"24797
+ }24798
+ },24799
+ "user_id": "@alice_829:hs1",24800
+ "unsigned": {}24801
+ }24802
+ },24803
+ "@alice_832:hs1": {24804
+ "ALICEDEVICE832": {24805
+ "algorithms": [24806
+ "m.olm.v1.curve25519-aes-sha2",24807
+ "m.megolm.v1.aes-sha2"24808
+ ],24809
+ "device_id": "ALICEDEVICE832",24810
+ "keys": {24811
+ "curve25519:ALICEDEVICE832": "LJgZwo5nUeQmbri+RYLblapUCoRUvHoFq2AewT84TRc",24812
+ "ed25519:ALICEDEVICE832": "vTwSbQnagUmcc0GVOdRV5tCq4Co8NviE6HfJjw6GUis"24813
+ },24814
+ "signatures": {24815
+ "@alice_832:hs1": {24816
+ "ed25519:ALICEDEVICE832": "Vut3GAgfeqnWI3KjUxwZLwKVjfUjpV+m4AEi8BzVIZX2FZ9Nz4LoHBdZAj5gLXC2+J5JRhizbYsgaTEmnLgLDA"24817
+ }24818
+ },24819
+ "user_id": "@alice_832:hs1",24820
+ "unsigned": {}24821
+ }24822
+ },24823
+ "@alice_843:hs1": {24824
+ "ALICEDEVICE843": {24825
+ "algorithms": [24826
+ "m.olm.v1.curve25519-aes-sha2",24827
+ "m.megolm.v1.aes-sha2"24828
+ ],24829
+ "device_id": "ALICEDEVICE843",24830
+ "keys": {24831
+ "curve25519:ALICEDEVICE843": "HhQB3Gqg/p56LWRc6T8FGjcflMHl7mCEz/4AeFclTkk",24832
+ "ed25519:ALICEDEVICE843": "Mb6zKZuNfya6qZrH3JHTPuGJgl22Qaw0vPP8N+J8M3k"24833
+ },24834
+ "signatures": {24835
+ "@alice_843:hs1": {24836
+ "ed25519:ALICEDEVICE843": "s2bUHcXYB9CkUV3E4HWDQQvLCj06Tr22Sf4U1EV0r//Je8495x3iah1Aoih89vxR1eVYWeP+dsxKoOB4ZZzMCw"24837
+ }24838
+ },24839
+ "user_id": "@alice_843:hs1",24840
+ "unsigned": {}24841
+ }24842
+ },24843
+ "@alice_844:hs1": {24844
+ "ALICEDEVICE844": {24845
+ "algorithms": [24846
+ "m.olm.v1.curve25519-aes-sha2",24847
+ "m.megolm.v1.aes-sha2"24848
+ ],24849
+ "device_id": "ALICEDEVICE844",24850
+ "keys": {24851
+ "curve25519:ALICEDEVICE844": "t7Qm+wqKx/4xqXnwIl9T9JptU7zPHFYg6IvspkdBKHM",24852
+ "ed25519:ALICEDEVICE844": "GRkMXORe+JIC00HziG6UcdYupj9d36PQZiyfO+NDlc8"24853
+ },24854
+ "signatures": {24855
+ "@alice_844:hs1": {24856
+ "ed25519:ALICEDEVICE844": "NP38WwhmZ5BLc0AhJMihAdK/T16F0eJkHbQyLpRf/p/TFBHyL5fbinj6oemXxaff+l4Kt/DH7gdZOTYxYEZaAA"24857
+ }24858
+ },24859
+ "user_id": "@alice_844:hs1",24860
+ "unsigned": {}24861
+ }24862
+ },24863
+ "@alice_846:hs1": {24864
+ "ALICEDEVICE846": {24865
+ "algorithms": [24866
+ "m.olm.v1.curve25519-aes-sha2",24867
+ "m.megolm.v1.aes-sha2"24868
+ ],24869
+ "device_id": "ALICEDEVICE846",24870
+ "keys": {24871
+ "curve25519:ALICEDEVICE846": "ffGGCfU/u5yodDqyXjfZDtGiES+AYr60oUd606Ly+zI",24872
+ "ed25519:ALICEDEVICE846": "Ye6BbuNtYrIZ1hg6jc1URCP6q76tYMiok9SDbTSRGpU"24873
+ },24874
+ "signatures": {24875
+ "@alice_846:hs1": {24876
+ "ed25519:ALICEDEVICE846": "cAelOMgKW7m45TsQ3YkR98y/1y9Q5g6ml7npR28YhisSMWA0K74A4FxyeR8u05rW/XxlBh9+TrUl27rpD4KoAw"24877
+ }24878
+ },24879
+ "user_id": "@alice_846:hs1",24880
+ "unsigned": {}24881
+ }24882
+ },24883
+ "@alice_850:hs1": {24884
+ "ALICEDEVICE850": {24885
+ "algorithms": [24886
+ "m.olm.v1.curve25519-aes-sha2",24887
+ "m.megolm.v1.aes-sha2"24888
+ ],24889
+ "device_id": "ALICEDEVICE850",24890
+ "keys": {24891
+ "curve25519:ALICEDEVICE850": "A+mMw+6mye6kUow1fFM4+Wz+KqbF0tvKCeHzcYtWfBM",24892
+ "ed25519:ALICEDEVICE850": "B5qDYYYr/3LDovYxzoWhiNzTnd9fua7DfE6rpwoMmJc"24893
+ },24894
+ "signatures": {24895
+ "@alice_850:hs1": {24896
+ "ed25519:ALICEDEVICE850": "0j8BkputvR150MO2hrjBgc2yoyX4XbqA2yFy9BL8OqPD1J940xkZqa0Ctn889oUy+aMmYq7nyC++B4u//sFRBg"24897
+ }24898
+ },24899
+ "user_id": "@alice_850:hs1",24900
+ "unsigned": {}24901
+ }24902
+ },24903
+ "@alice_856:hs1": {24904
+ "ALICEDEVICE856": {24905
+ "algorithms": [24906
+ "m.olm.v1.curve25519-aes-sha2",24907
+ "m.megolm.v1.aes-sha2"24908
+ ],24909
+ "device_id": "ALICEDEVICE856",24910
+ "keys": {24911
+ "curve25519:ALICEDEVICE856": "NB7MB0KvbnsSayIm5WUX3JyLBKrrOxChg4VPzVSGXXw",24912
+ "ed25519:ALICEDEVICE856": "gQ7H7290yIFUqoCabcmJFPbV3PygSW0pa0hbnXyAr70"24913
+ },24914
+ "signatures": {24915
+ "@alice_856:hs1": {24916
+ "ed25519:ALICEDEVICE856": "CRACHdYtznagwb/9oXyqeHDWOHzt9qtHVrlJ8TYxA43GCWF8BKtfnm5rkyt43efQCoBVY5zMGDEjtA1TjaybDQ"24917
+ }24918
+ },24919
+ "user_id": "@alice_856:hs1",24920
+ "unsigned": {}24921
+ }24922
+ },24923
+ "@alice_859:hs1": {24924
+ "ALICEDEVICE859": {24925
+ "algorithms": [24926
+ "m.olm.v1.curve25519-aes-sha2",24927
+ "m.megolm.v1.aes-sha2"24928
+ ],24929
+ "device_id": "ALICEDEVICE859",24930
+ "keys": {24931
+ "curve25519:ALICEDEVICE859": "l8W2+gA4efTbjzyqNbFSmFokZHcOLTGsuVpblIzNn1Y",24932
+ "ed25519:ALICEDEVICE859": "US584CMoBbw1nY893SLqafTI/AOqfp5nAZiZtLtAEqc"24933
+ },24934
+ "signatures": {24935
+ "@alice_859:hs1": {24936
+ "ed25519:ALICEDEVICE859": "pFmGWZikylyRdI63PKIkhZQjtYSK0lcGa4EzRMll3lpR0iy5Es/ShrMzj5/oImbfhXnfO1vaTnP0VSCvSRx4CA"24937
+ }24938
+ },24939
+ "user_id": "@alice_859:hs1",24940
+ "unsigned": {}24941
+ }24942
+ },24943
+ "@alice_866:hs1": {24944
+ "ALICEDEVICE866": {24945
+ "algorithms": [24946
+ "m.olm.v1.curve25519-aes-sha2",24947
+ "m.megolm.v1.aes-sha2"24948
+ ],24949
+ "device_id": "ALICEDEVICE866",24950
+ "keys": {24951
+ "curve25519:ALICEDEVICE866": "mmWc4HjYxFcn71MIG3r8/jbAr4ueTnafqMxsFnFgK14",24952
+ "ed25519:ALICEDEVICE866": "p+dSk4w+f3+JsP4djjiuf/ds09TvGYJ/+yuJf674EcE"24953
+ },24954
+ "signatures": {24955
+ "@alice_866:hs1": {24956
+ "ed25519:ALICEDEVICE866": "sBBAo6myUWXejbdehhI4fIQWW9RX/VbizsVbZlgqRXQBsESzD/hVspmWUcpAl0iTD541mOQ7Oz92EhlCU+YbCw"24957
+ }24958
+ },24959
+ "user_id": "@alice_866:hs1",24960
+ "unsigned": {}24961
+ }24962
+ },24963
+ "@alice_874:hs1": {24964
+ "ALICEDEVICE874": {24965
+ "algorithms": [24966
+ "m.olm.v1.curve25519-aes-sha2",24967
+ "m.megolm.v1.aes-sha2"24968
+ ],24969
+ "device_id": "ALICEDEVICE874",24970
+ "keys": {24971
+ "curve25519:ALICEDEVICE874": "TPc9YZM5Cej20uZx8Ov3ODO8ZJRaPvi4dcQM4goOK1w",24972
+ "ed25519:ALICEDEVICE874": "AX0IIdwrkZSMIKEe2hbvEDGkVXBEgYwazuXM9KWnhNw"24973
+ },24974
+ "signatures": {24975
+ "@alice_874:hs1": {24976
+ "ed25519:ALICEDEVICE874": "vBKmK1gla3KoAO2c50Wzwtqk5F0VNIxUoV45/MWlUm4Gjy0VllCCDLu85NNq7wne0JqvU5g/0cKD1B9eAP1BCA"24977
+ }24978
+ },24979
+ "user_id": "@alice_874:hs1",24980
+ "unsigned": {}24981
+ }24982
+ },24983
+ "@alice_901:hs1": {24984
+ "ALICEDEVICE901": {24985
+ "algorithms": [24986
+ "m.olm.v1.curve25519-aes-sha2",24987
+ "m.megolm.v1.aes-sha2"24988
+ ],24989
+ "device_id": "ALICEDEVICE901",24990
+ "keys": {24991
+ "curve25519:ALICEDEVICE901": "J4sM2vFuOXAj675Ic/xzE62Ss/YvE1rc2392P7kASRk",24992
+ "ed25519:ALICEDEVICE901": "vyf2KtpfwnX3+3odhGBB5FBF8bZA6vJRLo9RfT94fLQ"24993
+ },24994
+ "signatures": {24995
+ "@alice_901:hs1": {24996
+ "ed25519:ALICEDEVICE901": "QYPkMdmKzV+ERq5or/6eZMfFEEJDfTMN9u52Ppm22kHwWYXLUmDBvsBf/MYlNVP0n8d+WsmJAqm1JfbiD0Y+CQ"24997
+ }24998
+ },24999
+ "user_id": "@alice_901:hs1",25000
+ "unsigned": {}25001
+ }25002
+ },25003
+ "@alice_904:hs1": {25004
+ "ALICEDEVICE904": {25005
+ "algorithms": [25006
+ "m.olm.v1.curve25519-aes-sha2",25007
+ "m.megolm.v1.aes-sha2"25008
+ ],25009
+ "device_id": "ALICEDEVICE904",25010
+ "keys": {25011
+ "curve25519:ALICEDEVICE904": "5rzRp1veD+tmAVCe9earCfveDpf1Lv7FqQDebTFG9DY",25012
+ "ed25519:ALICEDEVICE904": "8t3ILk/wqf/+rY5rRTZBKMlvB7YWCjqspw4STZqK3jI"25013
+ },25014
+ "signatures": {25015
+ "@alice_904:hs1": {25016
+ "ed25519:ALICEDEVICE904": "bSKH60YXKL0Y54YC+sNnoNjgcSLJgvmXfLzU2F8STbOKUmJcDxAzBffDxJqWWAjFSD9mcxh704hlDGyHcwOSDw"25017
+ }25018
+ },25019
+ "user_id": "@alice_904:hs1",25020
+ "unsigned": {}25021
+ }25022
+ },25023
+ "@alice_909:hs1": {25024
+ "ALICEDEVICE909": {25025
+ "algorithms": [25026
+ "m.olm.v1.curve25519-aes-sha2",25027
+ "m.megolm.v1.aes-sha2"25028
+ ],25029
+ "device_id": "ALICEDEVICE909",25030
+ "keys": {25031
+ "curve25519:ALICEDEVICE909": "PzHa49yMBb1RMbl4uMhclwl2v/N7/+bYsWj5royWbWk",25032
+ "ed25519:ALICEDEVICE909": "yvB/mQtOcQPz31HYZTYKNjCDvSo+96ieGxpL0cDLQUM"25033
+ },25034
+ "signatures": {25035
+ "@alice_909:hs1": {25036
+ "ed25519:ALICEDEVICE909": "NLVoqDTxM4ASEC2rAyxzzlBI5ujws2g8GaQJuQa6xx3jwgZSEJ23Lcov4h0EJLCwcVG5k/QJ5TUX0ALw9PCqAw"25037
+ }25038
+ },25039
+ "user_id": "@alice_909:hs1",25040
+ "unsigned": {}25041
+ }25042
+ },25043
+ "@alice_912:hs1": {25044
+ "ALICEDEVICE912": {25045
+ "algorithms": [25046
+ "m.olm.v1.curve25519-aes-sha2",25047
+ "m.megolm.v1.aes-sha2"25048
+ ],25049
+ "device_id": "ALICEDEVICE912",25050
+ "keys": {25051
+ "curve25519:ALICEDEVICE912": "5SVTa+QlmxNEwvu1Cy7uV23BcIz0Lrqh0xHFYjhki1M",25052
+ "ed25519:ALICEDEVICE912": "O9rPsNTL3ccSY0LLN1DdJrec4sfkt3LMjNTNbGbcCCg"25053
+ },25054
+ "signatures": {25055
+ "@alice_912:hs1": {25056
+ "ed25519:ALICEDEVICE912": "KLwqL8HJACb/9iv19+d6vV9RD0zTWG1WrNhhWZA2geMCQCfDAKkwctpuIR7Y3gvQaAwCJOwO6JPD3nr8gS3oAw"25057
+ }25058
+ },25059
+ "user_id": "@alice_912:hs1",25060
+ "unsigned": {}25061
+ }25062
+ },25063
+ "@alice_920:hs1": {25064
+ "ALICEDEVICE920": {25065
+ "algorithms": [25066
+ "m.olm.v1.curve25519-aes-sha2",25067
+ "m.megolm.v1.aes-sha2"25068
+ ],25069
+ "device_id": "ALICEDEVICE920",25070
+ "keys": {25071
+ "curve25519:ALICEDEVICE920": "8aoDrsHLsR0+PMnisNEs1VvgWhMABpVNquD8Y8fEnls",25072
+ "ed25519:ALICEDEVICE920": "TY98X+2jrYyVGBgjvp6uloTUQw70snc6BQO1cbFlPfk"25073
+ },25074
+ "signatures": {25075
+ "@alice_920:hs1": {25076
+ "ed25519:ALICEDEVICE920": "ZPJYCRVhXaqIg8MZb3W+PMJrK6fijLLqGrAjytm1WnjCSEWW3jnI5jMjOsZDsMrvD9qg0GYODpoWgWIF4WubCA"25077
+ }25078
+ },25079
+ "user_id": "@alice_920:hs1",25080
+ "unsigned": {}25081
+ }25082
+ },25083
+ "@alice_928:hs1": {25084
+ "ALICEDEVICE928": {25085
+ "algorithms": [25086
+ "m.olm.v1.curve25519-aes-sha2",25087
+ "m.megolm.v1.aes-sha2"25088
+ ],25089
+ "device_id": "ALICEDEVICE928",25090
+ "keys": {25091
+ "curve25519:ALICEDEVICE928": "Q9dV0D1Owq0TK0hZNe8XUAuywTXCHUWXOV4U4vFB4Bk",25092
+ "ed25519:ALICEDEVICE928": "gbOL8kSI/4ftLUSFv3k1BhBSZdTlFfZGYOIACMqZigg"25093
+ },25094
+ "signatures": {25095
+ "@alice_928:hs1": {25096
+ "ed25519:ALICEDEVICE928": "UdiRNVfGHBnr6UR+bpfgIEp8r4vFhpbgaRXXeY1EGqFkRJzj2wOCBx/tl+VGU7c7cRukcNVCPPo/LCXfF29tCg"25097
+ }25098
+ },25099
+ "user_id": "@alice_928:hs1",25100
+ "unsigned": {}25101
+ }25102
+ },25103
+ "@alice_938:hs1": {25104
+ "ALICEDEVICE938": {25105
+ "algorithms": [25106
+ "m.olm.v1.curve25519-aes-sha2",25107
+ "m.megolm.v1.aes-sha2"25108
+ ],25109
+ "device_id": "ALICEDEVICE938",25110
+ "keys": {25111
+ "curve25519:ALICEDEVICE938": "7WPGasGiaFm/ZNK1eTxIZCVPfPOXoaRYPHoRVAvmCj0",25112
+ "ed25519:ALICEDEVICE938": "T1fg3B2L3SYi2auOG6JsWjORzQEZm8Wik37hX4w44v0"25113
+ },25114
+ "signatures": {25115
+ "@alice_938:hs1": {25116
+ "ed25519:ALICEDEVICE938": "NkHltXMMrpze/3ZCoMfWf1R/bNWMP4RqCYRaXeM58wiGKDw9JotQsgyQtlhDIOHUBoxwMtnGq3k5iOvlRa9JDA"25117
+ }25118
+ },25119
+ "user_id": "@alice_938:hs1",25120
+ "unsigned": {}25121
+ }25122
+ },25123
+ "@alice_943:hs1": {25124
+ "ALICEDEVICE943": {25125
+ "algorithms": [25126
+ "m.olm.v1.curve25519-aes-sha2",25127
+ "m.megolm.v1.aes-sha2"25128
+ ],25129
+ "device_id": "ALICEDEVICE943",25130
+ "keys": {25131
+ "curve25519:ALICEDEVICE943": "fserhHPanoVdJtGFcPP/ppdRohuKyubbvAE4shBz4WA",25132
+ "ed25519:ALICEDEVICE943": "4AHeyhXmVqtSWoYA3aLfGNGKcx6PP3gqIIuoqPBGB80"25133
+ },25134
+ "signatures": {25135
+ "@alice_943:hs1": {25136
+ "ed25519:ALICEDEVICE943": "Jcl86JRBIMH3xpsX57FOQ8oYM6k4dKTG31OFOKgZ4BfKNqZ7z8Nz6obhPm7Mun+ehM4W0wq6fKa8LZYmEzBTBg"25137
+ }25138
+ },25139
+ "user_id": "@alice_943:hs1",25140
+ "unsigned": {}25141
+ }25142
+ },25143
+ "@alice_952:hs1": {25144
+ "ALICEDEVICE952": {25145
+ "algorithms": [25146
+ "m.olm.v1.curve25519-aes-sha2",25147
+ "m.megolm.v1.aes-sha2"25148
+ ],25149
+ "device_id": "ALICEDEVICE952",25150
+ "keys": {25151
+ "curve25519:ALICEDEVICE952": "lVxofyJinZDVXczNWMBeP1RqTtrfDMlrhYT+92CPkVs",25152
+ "ed25519:ALICEDEVICE952": "GjupUuJhVduC3HbLtzEXulmnONzD/t6AH5t4PhbT9Jc"25153
+ },25154
+ "signatures": {25155
+ "@alice_952:hs1": {25156
+ "ed25519:ALICEDEVICE952": "RTtOWyE1v/ANI1aygWg8QFuKg9ZjcCZy6vwxopYYVh4HfV40u5T+Zfou9SrWr7kHXp4sdbbs+k5Idi/lFxAXAw"25157
+ }25158
+ },25159
+ "user_id": "@alice_952:hs1",25160
+ "unsigned": {}25161
+ }25162
+ },25163
+ "@alice_954:hs1": {25164
+ "ALICEDEVICE954": {25165
+ "algorithms": [25166
+ "m.olm.v1.curve25519-aes-sha2",25167
+ "m.megolm.v1.aes-sha2"25168
+ ],25169
+ "device_id": "ALICEDEVICE954",25170
+ "keys": {25171
+ "curve25519:ALICEDEVICE954": "xaHjvWlFHqiCppS36uMjLnGpSay6mEcFfM7weIf7Xzk",25172
+ "ed25519:ALICEDEVICE954": "UvM/eUDOyo1n/wpt7ZHXpz3YqfgzoTHpag4qLOKdI+c"25173
+ },25174
+ "signatures": {25175
+ "@alice_954:hs1": {25176
+ "ed25519:ALICEDEVICE954": "T3qgQ+LOGMGE7ybB5VHocj4c5PzvPDg7jJNXUD6ON3iD5ue7PsdM+nZ8+f7UcF07j4vM+8L2rMOr656N4u3WCg"25177
+ }25178
+ },25179
+ "user_id": "@alice_954:hs1",25180
+ "unsigned": {}25181
+ }25182
+ },25183
+ "@alice_968:hs1": {25184
+ "ALICEDEVICE968": {25185
+ "algorithms": [25186
+ "m.olm.v1.curve25519-aes-sha2",25187
+ "m.megolm.v1.aes-sha2"25188
+ ],25189
+ "device_id": "ALICEDEVICE968",25190
+ "keys": {25191
+ "curve25519:ALICEDEVICE968": "6cr8FBS7ee8RRoZU5s1uCajMD2Wmeqk23cHZDs+OQx0",25192
+ "ed25519:ALICEDEVICE968": "qQGdpVUfcrkC++YVJ+GNALaWYPnZNj+viSucsGxD5yQ"25193
+ },25194
+ "signatures": {25195
+ "@alice_968:hs1": {25196
+ "ed25519:ALICEDEVICE968": "NJwAGO/5BlpZjC5EuXQ0YdE0oqeqh0DfLhin/W3Iad2p67lPtmxgfjk5FuznlQ7GhATQ8GDMmHSfq0goLQhLCQ"25197
+ }25198
+ },25199
+ "user_id": "@alice_968:hs1",25200
+ "unsigned": {}25201
+ }25202
+ },25203
+ "@alice_974:hs1": {25204
+ "ALICEDEVICE974": {25205
+ "algorithms": [25206
+ "m.olm.v1.curve25519-aes-sha2",25207
+ "m.megolm.v1.aes-sha2"25208
+ ],25209
+ "device_id": "ALICEDEVICE974",25210
+ "keys": {25211
+ "curve25519:ALICEDEVICE974": "NdETJnhkjtEyZ+RBAR4B8Kzl/f0v6bXATn8JFY9vaFE",25212
+ "ed25519:ALICEDEVICE974": "0bm/FwVT8QJBJfG8J3IsyWobIWNom8CmIXLada+IaRY"25213
+ },25214
+ "signatures": {25215
+ "@alice_974:hs1": {25216
+ "ed25519:ALICEDEVICE974": "JD0yCD3/F0EiJfaGFxOUbCPbeNeUra/BzJAKOcy3qugwhkxeI6c8vvNsrowE1CKW8zbZCOfNjk1M99iTGrLAAQ"25217
+ }25218
+ },25219
+ "user_id": "@alice_974:hs1",25220
+ "unsigned": {}25221
+ }25222
+ },25223
+ "@alice_975:hs1": {25224
+ "ALICEDEVICE975": {25225
+ "algorithms": [25226
+ "m.olm.v1.curve25519-aes-sha2",25227
+ "m.megolm.v1.aes-sha2"25228
+ ],25229
+ "device_id": "ALICEDEVICE975",25230
+ "keys": {25231
+ "curve25519:ALICEDEVICE975": "VERy3ULgwUzKb8h+3WLgr80p6wxoDx1p0fw+1gfLInU",25232
+ "ed25519:ALICEDEVICE975": "3erhwUoU35yD1GtXKfAAIwoE0a82aseLQHLjyC9sE/I"25233
+ },25234
+ "signatures": {25235
+ "@alice_975:hs1": {25236
+ "ed25519:ALICEDEVICE975": "7sS3+BOkq/Gn/Ak5VmiZydvJqR+ljJwOlD3TgPdI9IZ5n2f94AZ6hwTZQhuSix7Olee/vYM1GT9hNAcpH7l3AQ"25237
+ }25238
+ },25239
+ "user_id": "@alice_975:hs1",25240
+ "unsigned": {}25241
+ }25242
+ },25243
+ "@alice_985:hs1": {25244
+ "ALICEDEVICE985": {25245
+ "algorithms": [25246
+ "m.olm.v1.curve25519-aes-sha2",25247
+ "m.megolm.v1.aes-sha2"25248
+ ],25249
+ "device_id": "ALICEDEVICE985",25250
+ "keys": {25251
+ "curve25519:ALICEDEVICE985": "ypF/pLItybuTBfXPCgAUCu9jvFKGw5lCYyT/EbVM5HI",25252
+ "ed25519:ALICEDEVICE985": "pc1sGQjhoTN7z9pooBnZM0OVN7MhmF2d2ZTLXBoRYYI"25253
+ },25254
+ "signatures": {25255
+ "@alice_985:hs1": {25256
+ "ed25519:ALICEDEVICE985": "Dtb7tv189NlLhDOvi+x+hwbcxEW/APMF7pIZg15a5pZk/BAsNH5ZonDsasZ1Um5lUk6iZvg26n9Zzw8UWOxYBA"25257
+ }25258
+ },25259
+ "user_id": "@alice_985:hs1",25260
+ "unsigned": {}25261
+ }25262
+ },25263
+ "@alice_991:hs1": {25264
+ "ALICEDEVICE991": {25265
+ "algorithms": [25266
+ "m.olm.v1.curve25519-aes-sha2",25267
+ "m.megolm.v1.aes-sha2"25268
+ ],25269
+ "device_id": "ALICEDEVICE991",25270
+ "keys": {25271
+ "curve25519:ALICEDEVICE991": "AGa6/bBJqJyf0M5RVQHRbrPN9O5ZOsHvJidsJpiWUk0",25272
+ "ed25519:ALICEDEVICE991": "7Ubt6MLxQU4lj4sLQBkUlsFxPXA4s+5bz1i+lXILD6I"25273
+ },25274
+ "signatures": {25275
+ "@alice_991:hs1": {25276
+ "ed25519:ALICEDEVICE991": "4Cb9RwVh4xahtOqwdrxoLuqDotDi47zd+Mz+79xrzlKm6BU1sCKtVWVlmNYE573vnE7I8C5t5g4yYLXRMyCmCg"25277
+ }25278
+ },25279
+ "user_id": "@alice_991:hs1",25280
+ "unsigned": {}25281
+ }25282
+ },25283
+ "@alice_999:hs1": {25284
+ "ALICEDEVICE999": {25285
+ "algorithms": [25286
+ "m.olm.v1.curve25519-aes-sha2",25287
+ "m.megolm.v1.aes-sha2"25288
+ ],25289
+ "device_id": "ALICEDEVICE999",25290
+ "keys": {25291
+ "curve25519:ALICEDEVICE999": "yPtd1FLNcWGJERaNPeTogdDcb+jXH0Hnq0csYDKyvTE",25292
+ "ed25519:ALICEDEVICE999": "bsOBSotiTjHFBJxjayZlAYYu0ja3K9odBHmYDNzZla4"25293
+ },25294
+ "signatures": {25295
+ "@alice_999:hs1": {25296
+ "ed25519:ALICEDEVICE999": "DS9Iv8Q/KY1q8dEEbuwGaXqQtekqoVNaZWwIkc4Zh0bODC0VIO4cOgYKPLYJm4da8Whhv4bYZaWYuEL+EGhGAw"25297
+ }25298
+ },25299
+ "user_id": "@alice_999:hs1",25300
+ "unsigned": {}25301
+ }25302
+ },25303
+ "@alice_1009:hs1": {25304
+ "ALICEDEVICE1009": {25305
+ "algorithms": [25306
+ "m.olm.v1.curve25519-aes-sha2",25307
+ "m.megolm.v1.aes-sha2"25308
+ ],25309
+ "device_id": "ALICEDEVICE1009",25310
+ "keys": {25311
+ "curve25519:ALICEDEVICE1009": "c5yWaOwn9EB4EOXQ1FQX9xNHBEGCkzXYDrldSo276Wc",25312
+ "ed25519:ALICEDEVICE1009": "spqVKbXOhMIFdrT+kRvzV2E1a772l5b4s5HUYaDX5OI"25313
+ },25314
+ "signatures": {25315
+ "@alice_1009:hs1": {25316
+ "ed25519:ALICEDEVICE1009": "aPubvJVmIfy0pvApk338s98McwuamXiWy78bVqdIB6qzSMWDj/el5tLxUSCgRPYEWoARrDzQjSm6G9scnJHaAQ"25317
+ }25318
+ },25319
+ "user_id": "@alice_1009:hs1",25320
+ "unsigned": {}25321
+ }25322
+ },25323
+ "@alice_100:hs1": {25324
+ "ALICEDEVICE100": {25325
+ "algorithms": [25326
+ "m.olm.v1.curve25519-aes-sha2",25327
+ "m.megolm.v1.aes-sha2"25328
+ ],25329
+ "device_id": "ALICEDEVICE100",25330
+ "keys": {25331
+ "curve25519:ALICEDEVICE100": "D8LcRZOYW8sCM+oKDicZ8GcqyrJYdato2ZZYJUAnZTY",25332
+ "ed25519:ALICEDEVICE100": "1+dK8Dz8+B2mtSoN88rgjUeacZlhGoOKX6HkFqThHkU"25333
+ },25334
+ "signatures": {25335
+ "@alice_100:hs1": {25336
+ "ed25519:ALICEDEVICE100": "OPe5soa/GFGMUfAHroN3T2MyE8m/lcm1RNEdfdelj9vD2DdreDwZ8vQ7WBfERpfmFnFtihSUjuw4V/IfU2P/Dg"25337
+ }25338
+ },25339
+ "user_id": "@alice_100:hs1",25340
+ "unsigned": {}25341
+ }25342
+ },25343
+ "@alice_1021:hs1": {25344
+ "ALICEDEVICE1021": {25345
+ "algorithms": [25346
+ "m.olm.v1.curve25519-aes-sha2",25347
+ "m.megolm.v1.aes-sha2"25348
+ ],25349
+ "device_id": "ALICEDEVICE1021",25350
+ "keys": {25351
+ "curve25519:ALICEDEVICE1021": "BTJ8F5KliGAhLyweHPYwXAQ1h2h2vpOWV3K1KGM6ohU",25352
+ "ed25519:ALICEDEVICE1021": "64N4+VSku+nhBBR7mFJmX/y1iR1F5dvSWLk3zGvSTXY"25353
+ },25354
+ "signatures": {25355
+ "@alice_1021:hs1": {25356
+ "ed25519:ALICEDEVICE1021": "P68e/N13zWFBeJou7/wQkcz/H7GqvDY0mcrpvHIVTHI/3lw2nJfaJZl0mDMmTyAj4hVfW8zU7RO/DgtJB2H+BA"25357
+ }25358
+ },25359
+ "user_id": "@alice_1021:hs1",25360
+ "unsigned": {}25361
+ }25362
+ },25363
+ "@alice_1027:hs1": {25364
+ "ALICEDEVICE1027": {25365
+ "algorithms": [25366
+ "m.olm.v1.curve25519-aes-sha2",25367
+ "m.megolm.v1.aes-sha2"25368
+ ],25369
+ "device_id": "ALICEDEVICE1027",25370
+ "keys": {25371
+ "curve25519:ALICEDEVICE1027": "bRBgriMB9gy/jLPiBoR/mCdV63hPDURonS19nErso08",25372
+ "ed25519:ALICEDEVICE1027": "4Dk0XmC+GUE6AgJfpzTBceZV1dEz1nS3jXP5BePkR+s"25373
+ },25374
+ "signatures": {25375
+ "@alice_1027:hs1": {25376
+ "ed25519:ALICEDEVICE1027": "skAN2WwVDwO1mP376/ZDTw88vlXNQ7/mcv/0yo/LEn7rgkijMJc7Oy/SQIkccPF/wbq68dWRlx3bRMliKtLMDQ"25377
+ }25378
+ },25379
+ "user_id": "@alice_1027:hs1",25380
+ "unsigned": {}25381
+ }25382
+ },25383
+ "@alice_1031:hs1": {25384
+ "ALICEDEVICE1031": {25385
+ "algorithms": [25386
+ "m.olm.v1.curve25519-aes-sha2",25387
+ "m.megolm.v1.aes-sha2"25388
+ ],25389
+ "device_id": "ALICEDEVICE1031",25390
+ "keys": {25391
+ "curve25519:ALICEDEVICE1031": "Glyt00MHrE3NL+ySEWhpexoPck/w99Q5S0CbcX3cHGQ",25392
+ "ed25519:ALICEDEVICE1031": "Zi+GhpAKq7dG3RjtS/DFhZjgX0S1nUsbrHSPAB8Nfng"25393
+ },25394
+ "signatures": {25395
+ "@alice_1031:hs1": {25396
+ "ed25519:ALICEDEVICE1031": "hePQXS0Fvz9wkCCi+aXXMwCgNa9a3nwtTXX607x6irk0JWqu3cblpaOpaM19j34mK3a59QBSWG+FQuV6F3T3Dw"25397
+ }25398
+ },25399
+ "user_id": "@alice_1031:hs1",25400
+ "unsigned": {}25401
+ }25402
+ },25403
+ "@alice_1033:hs1": {25404
+ "ALICEDEVICE1033": {25405
+ "algorithms": [25406
+ "m.olm.v1.curve25519-aes-sha2",25407
+ "m.megolm.v1.aes-sha2"25408
+ ],25409
+ "device_id": "ALICEDEVICE1033",25410
+ "keys": {25411
+ "curve25519:ALICEDEVICE1033": "N024rMz6zdAPKOtZiqIqMpTZ7F+CloaskCffviJC5Qg",25412
+ "ed25519:ALICEDEVICE1033": "ZjutKGHLIbjCu5i1GRA4LHmFInMJS0Potdh2vbeaDV4"25413
+ },25414
+ "signatures": {25415
+ "@alice_1033:hs1": {25416
+ "ed25519:ALICEDEVICE1033": "AfTud7ZeB2lbAJao3HuTX64RfyHKxu3EBc3s5PmLeeiI82sY5ghNNZ3SEEBp76GVZB0+9/bBHqZV145I/zkxDw"25417
+ }25418
+ },25419
+ "user_id": "@alice_1033:hs1",25420
+ "unsigned": {}25421
+ }25422
+ },25423
+ "@alice_1034:hs1": {25424
+ "ALICEDEVICE1034": {25425
+ "algorithms": [25426
+ "m.olm.v1.curve25519-aes-sha2",25427
+ "m.megolm.v1.aes-sha2"25428
+ ],25429
+ "device_id": "ALICEDEVICE1034",25430
+ "keys": {25431
+ "curve25519:ALICEDEVICE1034": "46LXww8uNYp/iPSbD/IyCPC8m5Sm8VLy4YGqID/P1k4",25432
+ "ed25519:ALICEDEVICE1034": "QUMmV0aM/3hbmeZWBZ9wew9ufB0QVKV273diC/6glJI"25433
+ },25434
+ "signatures": {25435
+ "@alice_1034:hs1": {25436
+ "ed25519:ALICEDEVICE1034": "R028PD97rh8MobrYebD94jlh0etCtiH/W1ktXyET1guVgN3Rd7hSfL98ym6rOSpHcXwHBVpSNahO+Vg+cf/0Bg"25437
+ }25438
+ },25439
+ "user_id": "@alice_1034:hs1",25440
+ "unsigned": {}25441
+ }25442
+ },25443
+ "@alice_1035:hs1": {25444
+ "ALICEDEVICE1035": {25445
+ "algorithms": [25446
+ "m.olm.v1.curve25519-aes-sha2",25447
+ "m.megolm.v1.aes-sha2"25448
+ ],25449
+ "device_id": "ALICEDEVICE1035",25450
+ "keys": {25451
+ "curve25519:ALICEDEVICE1035": "N2YQa8eJTilrS9mTJFax8mPieWwDRq/6OaIqkdeflV4",25452
+ "ed25519:ALICEDEVICE1035": "aBJM6L7QwHTpNc39bRUCPpXS9llbUDYfcavDO0cOKoE"25453
+ },25454
+ "signatures": {25455
+ "@alice_1035:hs1": {25456
+ "ed25519:ALICEDEVICE1035": "Gb1eKJcTLvpAszCj6koXr+HdRIiyvUf1PjdI7q2Y1PBGy/FvXtzh6HXdTK+cC6Q4UV9HpZdmzpmnFTZ91aSjDg"25457
+ }25458
+ },25459
+ "user_id": "@alice_1035:hs1",25460
+ "unsigned": {}25461
+ }25462
+ },25463
+ "@alice_1041:hs1": {25464
+ "ALICEDEVICE1041": {25465
+ "algorithms": [25466
+ "m.olm.v1.curve25519-aes-sha2",25467
+ "m.megolm.v1.aes-sha2"25468
+ ],25469
+ "device_id": "ALICEDEVICE1041",25470
+ "keys": {25471
+ "curve25519:ALICEDEVICE1041": "1ThnGsLKv8Hxosmb7KpZZF9bYnWrhH6AfC5Z62oeCBI",25472
+ "ed25519:ALICEDEVICE1041": "awq/cprthFupewj881P8ZTqYBhLlR45BS/7e0sqr2+s"25473
+ },25474
+ "signatures": {25475
+ "@alice_1041:hs1": {25476
+ "ed25519:ALICEDEVICE1041": "A2PC3SldjfyEODhL/BSvI07QfrmYr9tP54OoWYei/DeUxD+5vmQeE88MK+5apuXj6LSk8MqvzRMDtCJaKGN9Dg"25477
+ }25478
+ },25479
+ "user_id": "@alice_1041:hs1",25480
+ "unsigned": {}25481
+ }25482
+ },25483
+ "@alice_1054:hs1": {25484
+ "ALICEDEVICE1054": {25485
+ "algorithms": [25486
+ "m.olm.v1.curve25519-aes-sha2",25487
+ "m.megolm.v1.aes-sha2"25488
+ ],25489
+ "device_id": "ALICEDEVICE1054",25490
+ "keys": {25491
+ "curve25519:ALICEDEVICE1054": "d2oDGZB0OXJ5LLqNX1ijgmjsr5m40XqSviqJrjscVTo",25492
+ "ed25519:ALICEDEVICE1054": "zjQsBY8eOp1BNYSpWtTu9e38t1YQPFTWu5Zyc/i17Io"25493
+ },25494
+ "signatures": {25495
+ "@alice_1054:hs1": {25496
+ "ed25519:ALICEDEVICE1054": "Rl6WLIa0c6uA5yN4+Uj+t+fCKesPUYc0KccxBmZO3fq9LTRF+7Q+iMsBm2fk02Iv9OoERUEVhqbe7eFSYY2SCA"25497
+ }25498
+ },25499
+ "user_id": "@alice_1054:hs1",25500
+ "unsigned": {}25501
+ }25502
+ },25503
+ "@alice_1064:hs1": {25504
+ "ALICEDEVICE1064": {25505
+ "algorithms": [25506
+ "m.olm.v1.curve25519-aes-sha2",25507
+ "m.megolm.v1.aes-sha2"25508
+ ],25509
+ "device_id": "ALICEDEVICE1064",25510
+ "keys": {25511
+ "curve25519:ALICEDEVICE1064": "S+NP/iJ90ZZ0Jsc4+/nMYSD+45USGuXkmtf1QFdwmnA",25512
+ "ed25519:ALICEDEVICE1064": "TAbYZW3GFFVBqbM+5w/p9fbJTFWEhcsrmgHzV/SxPbM"25513
+ },25514
+ "signatures": {25515
+ "@alice_1064:hs1": {25516
+ "ed25519:ALICEDEVICE1064": "bBYSyhyLvqxemQdZQGJ6GZFOs+71HeVZNFRHaVSh2zoU/xi1KwrP65PRySIGT1tymMUIPIDGeLJl/9/jY2dhCg"25517
+ }25518
+ },25519
+ "user_id": "@alice_1064:hs1",25520
+ "unsigned": {}25521
+ }25522
+ },25523
+ "@alice_1066:hs1": {25524
+ "ALICEDEVICE1066": {25525
+ "algorithms": [25526
+ "m.olm.v1.curve25519-aes-sha2",25527
+ "m.megolm.v1.aes-sha2"25528
+ ],25529
+ "device_id": "ALICEDEVICE1066",25530
+ "keys": {25531
+ "curve25519:ALICEDEVICE1066": "x3Mw3Uru9dpCieHvPcfrWH7XtWBkoOYwl0N+kRAcDD8",25532
+ "ed25519:ALICEDEVICE1066": "0dUj+WL5JXt8S+anMgWbd3SbtVakPL1wLfXriBrC2rI"25533
+ },25534
+ "signatures": {25535
+ "@alice_1066:hs1": {25536
+ "ed25519:ALICEDEVICE1066": "cuiR+cANupyzvLxVWOjS1dt2MUL8JRIpl34Yd3rEtfe60GDu3xJdBcQc4Sa8yk26f5MM3+JNE3NdFDu34odaDQ"25537
+ }25538
+ },25539
+ "user_id": "@alice_1066:hs1",25540
+ "unsigned": {}25541
+ }25542
+ },25543
+ "@alice_1071:hs1": {25544
+ "ALICEDEVICE1071": {25545
+ "algorithms": [25546
+ "m.olm.v1.curve25519-aes-sha2",25547
+ "m.megolm.v1.aes-sha2"25548
+ ],25549
+ "device_id": "ALICEDEVICE1071",25550
+ "keys": {25551
+ "curve25519:ALICEDEVICE1071": "vdGIVxcqZXcTwkbsWxFt+8ybqArfCOvtsV49wHOe9QA",25552
+ "ed25519:ALICEDEVICE1071": "gxNRIBjHfeiQD8TGqTY1IK+kLthCXgaUPF/BBIy3RqU"25553
+ },25554
+ "signatures": {25555
+ "@alice_1071:hs1": {25556
+ "ed25519:ALICEDEVICE1071": "wqGIWYJv5MI/MICddeeJl0hutDayhXk0Z7ZfYeG+YPhgHYisf14rTbYZxVdR6cIEMv4phWuhaEP6v/18i+KcCw"25557
+ }25558
+ },25559
+ "user_id": "@alice_1071:hs1",25560
+ "unsigned": {}25561
+ }25562
+ },25563
+ "@alice_107:hs1": {25564
+ "ALICEDEVICE107": {25565
+ "algorithms": [25566
+ "m.olm.v1.curve25519-aes-sha2",25567
+ "m.megolm.v1.aes-sha2"25568
+ ],25569
+ "device_id": "ALICEDEVICE107",25570
+ "keys": {25571
+ "curve25519:ALICEDEVICE107": "mtqt8+Bp7wSJ0C/nDiB8isXjNEPOz153zflZ5Dg17VI",25572
+ "ed25519:ALICEDEVICE107": "33YXBwQVi4PzJDb/HcB7skFME00dVTbmrPPFRRRE5mw"25573
+ },25574
+ "signatures": {25575
+ "@alice_107:hs1": {25576
+ "ed25519:ALICEDEVICE107": "92o5c2X7xGLY4LK9fb79AtxAr29Ep+OJVshDwqMpTTkr3XPYpY2FQrifAVz1fyiVfiX60bJcGf3RFqDWoajlDA"25577
+ }25578
+ },25579
+ "user_id": "@alice_107:hs1",25580
+ "unsigned": {}25581
+ }25582
+ },25583
+ "@alice_1080:hs1": {25584
+ "ALICEDEVICE1080": {25585
+ "algorithms": [25586
+ "m.olm.v1.curve25519-aes-sha2",25587
+ "m.megolm.v1.aes-sha2"25588
+ ],25589
+ "device_id": "ALICEDEVICE1080",25590
+ "keys": {25591
+ "curve25519:ALICEDEVICE1080": "JGxqCFIPzfyNOkmsDck6jAm1RDgGjg8JpNBachIaB20",25592
+ "ed25519:ALICEDEVICE1080": "sUmTuepfLHXOQPUpoiI1gP5X4QXq6F5/BAu27IkBCRA"25593
+ },25594
+ "signatures": {25595
+ "@alice_1080:hs1": {25596
+ "ed25519:ALICEDEVICE1080": "/P5oXweQwl8TMP0oS7n5t8OSYXuv0G17K+cyFdwhXKBf3eRhK+uqLKhwmT6tAevRhvMUdsqk/pmUzUGqUqUUDg"25597
+ }25598
+ },25599
+ "user_id": "@alice_1080:hs1",25600
+ "unsigned": {}25601
+ }25602
+ },25603
+ "@alice_1086:hs1": {25604
+ "ALICEDEVICE1086": {25605
+ "algorithms": [25606
+ "m.olm.v1.curve25519-aes-sha2",25607
+ "m.megolm.v1.aes-sha2"25608
+ ],25609
+ "device_id": "ALICEDEVICE1086",25610
+ "keys": {25611
+ "curve25519:ALICEDEVICE1086": "jYdFK74eDkkej/B0BsBbZw1Mb+gL0F3AWx9CocQQXlQ",25612
+ "ed25519:ALICEDEVICE1086": "GLmD/BqIO4MTRiKNsUHbyK6JUui/lBlYPcvoRtDDdH0"25613
+ },25614
+ "signatures": {25615
+ "@alice_1086:hs1": {25616
+ "ed25519:ALICEDEVICE1086": "gb6dK0isCLVdQYW9E/NTTpdEdqrnAdBGKPvQ/zNpslZt8Aei1G9H+0KnJyfxhZTU5cdWHGRCMzEQI9N0+hwtDQ"25617
+ }25618
+ },25619
+ "user_id": "@alice_1086:hs1",25620
+ "unsigned": {}25621
+ }25622
+ },25623
+ "@alice_1088:hs1": {25624
+ "ALICEDEVICE1088": {25625
+ "algorithms": [25626
+ "m.olm.v1.curve25519-aes-sha2",25627
+ "m.megolm.v1.aes-sha2"25628
+ ],25629
+ "device_id": "ALICEDEVICE1088",25630
+ "keys": {25631
+ "curve25519:ALICEDEVICE1088": "GHbpMUSnqft8b/eTuO8t249bR44Lc6C5JS19o7eAEi8",25632
+ "ed25519:ALICEDEVICE1088": "PnlQxuigOC2rkBBRycULoFVtvmpabO1Yulo+L/pSg+g"25633
+ },25634
+ "signatures": {25635
+ "@alice_1088:hs1": {25636
+ "ed25519:ALICEDEVICE1088": "dY9f8mUl6bfwRHNwi/Kfplf+9RfZz2Y0ndhmcI+tS/iKNWGNzIQPEsjwL/Ps3fPwOi72v098q3skYtRz11kLBg"25637
+ }25638
+ },25639
+ "user_id": "@alice_1088:hs1",25640
+ "unsigned": {}25641
+ }25642
+ },25643
+ "@alice_1098:hs1": {25644
+ "ALICEDEVICE1098": {25645
+ "algorithms": [25646
+ "m.olm.v1.curve25519-aes-sha2",25647
+ "m.megolm.v1.aes-sha2"25648
+ ],25649
+ "device_id": "ALICEDEVICE1098",25650
+ "keys": {25651
+ "curve25519:ALICEDEVICE1098": "qsmhzSFvMAwdrqLo67qQmiH8vb/crRSGSF9xGYCSCFk",25652
+ "ed25519:ALICEDEVICE1098": "QVhLMicXBwGeRdP8nIlbwZGQESqSoSpXehosSe+Jth4"25653
+ },25654
+ "signatures": {25655
+ "@alice_1098:hs1": {25656
+ "ed25519:ALICEDEVICE1098": "7BlGvEWHzrIPkXax8W6S2weQpCfgo81843H0M3DAlNJHZPD6sZ5UcbXk0zpSDy1WS3u3ZiMacwcoDP83CN6KBw"25657
+ }25658
+ },25659
+ "user_id": "@alice_1098:hs1",25660
+ "unsigned": {}25661
+ }25662
+ },25663
+ "@alice_1101:hs1": {25664
+ "ALICEDEVICE1101": {25665
+ "algorithms": [25666
+ "m.olm.v1.curve25519-aes-sha2",25667
+ "m.megolm.v1.aes-sha2"25668
+ ],25669
+ "device_id": "ALICEDEVICE1101",25670
+ "keys": {25671
+ "curve25519:ALICEDEVICE1101": "hbKDU9vX9QAjQex54f350y/KG7+Icgzk/U0SoYoqonI",25672
+ "ed25519:ALICEDEVICE1101": "ebtoMIiKd8lNuS4jEHJyP+FaXLyDUiUigChf8nrpXJo"25673
+ },25674
+ "signatures": {25675
+ "@alice_1101:hs1": {25676
+ "ed25519:ALICEDEVICE1101": "n5+cTZdNuLpj4hyE7Ff7OR9YnGQ+2Nld9JWqKojYj3WfNmFWa4S1smlWjWzHkKf3ZIpikeIduIUP3CpF6v7xDg"25677
+ }25678
+ },25679
+ "user_id": "@alice_1101:hs1",25680
+ "unsigned": {}25681
+ }25682
+ },25683
+ "@alice_1117:hs1": {25684
+ "ALICEDEVICE1117": {25685
+ "algorithms": [25686
+ "m.olm.v1.curve25519-aes-sha2",25687
+ "m.megolm.v1.aes-sha2"25688
+ ],25689
+ "device_id": "ALICEDEVICE1117",25690
+ "keys": {25691
+ "curve25519:ALICEDEVICE1117": "zHv1wbHIPbkvwnhHZXo1MI9ixHDVV9bfQKoDpSxW7Co",25692
+ "ed25519:ALICEDEVICE1117": "mvIuMgr2LIAEW/XnBWwIp52tTgSNOHcVkSb7dW+rNUY"25693
+ },25694
+ "signatures": {25695
+ "@alice_1117:hs1": {25696
+ "ed25519:ALICEDEVICE1117": "fy0t19Oy87PCJeEY2DGKlMKSR8hv3fRXY8FRTSDwZHBPSUOEk5iO/3+/VLFSGVzU689aFUjMqnyGYuC0cAC3AA"25697
+ }25698
+ },25699
+ "user_id": "@alice_1117:hs1",25700
+ "unsigned": {}25701
+ }25702
+ },25703
+ "@alice_1125:hs1": {25704
+ "ALICEDEVICE1125": {25705
+ "algorithms": [25706
+ "m.olm.v1.curve25519-aes-sha2",25707
+ "m.megolm.v1.aes-sha2"25708
+ ],25709
+ "device_id": "ALICEDEVICE1125",25710
+ "keys": {25711
+ "curve25519:ALICEDEVICE1125": "F21OZxOFv4USGqrdJ02AJmNT1AHTGaqme8OAoAGkvRI",25712
+ "ed25519:ALICEDEVICE1125": "opkDGpgqjQQofO8oPOsnXGAecrJTmUOHnHUn/CjQERI"25713
+ },25714
+ "signatures": {25715
+ "@alice_1125:hs1": {25716
+ "ed25519:ALICEDEVICE1125": "iyuugBp6aIxJWaOP9v+PZOeZ32t+Zi6NaMM+E7av4U56Gqo2tt00BokXQLRGAQGBkxGWgmxa11QorGg72jt8Bg"25717
+ }25718
+ },25719
+ "user_id": "@alice_1125:hs1",25720
+ "unsigned": {}25721
+ }25722
+ },25723
+ "@alice_1132:hs1": {25724
+ "ALICEDEVICE1132": {25725
+ "algorithms": [25726
+ "m.olm.v1.curve25519-aes-sha2",25727
+ "m.megolm.v1.aes-sha2"25728
+ ],25729
+ "device_id": "ALICEDEVICE1132",25730
+ "keys": {25731
+ "curve25519:ALICEDEVICE1132": "ne4McD97G0Y/GBzoCYLqWA8dOF6i2uNV2G9fU7PfZjI",25732
+ "ed25519:ALICEDEVICE1132": "8ulwqKh4zZoaLblraw+Asf19XV+p0D7N23tt9xWO0kE"25733
+ },25734
+ "signatures": {25735
+ "@alice_1132:hs1": {25736
+ "ed25519:ALICEDEVICE1132": "ycbGPKHviPkbBfQNj0uQ98kWK2yK02z/O3KYJIsXx0oe8Lfzox5G4CXh4/ajnkUUhcsDvpAoCDW+0HhetOZrBg"25737
+ }25738
+ },25739
+ "user_id": "@alice_1132:hs1",25740
+ "unsigned": {}25741
+ }25742
+ },25743
+ "@alice_1163:hs1": {25744
+ "ALICEDEVICE1163": {25745
+ "algorithms": [25746
+ "m.olm.v1.curve25519-aes-sha2",25747
+ "m.megolm.v1.aes-sha2"25748
+ ],25749
+ "device_id": "ALICEDEVICE1163",25750
+ "keys": {25751
+ "curve25519:ALICEDEVICE1163": "+a2MxE/kC6R79JbF+GBksPwpH+ZHM91AmhMRvn/WC0s",25752
+ "ed25519:ALICEDEVICE1163": "/ApxPHGln8YpPH/G6S7I1EogLuu9/BHvzp1b/v2c/qM"25753
+ },25754
+ "signatures": {25755
+ "@alice_1163:hs1": {25756
+ "ed25519:ALICEDEVICE1163": "JjV7ygnXXBiLH9dnLOeshbfSBvpphC5fkDkex+iMGLH2JkJeTJ3Di74ZKPJDxNrYTQD9G2bg2d6Et9M4bPctCA"25757
+ }25758
+ },25759
+ "user_id": "@alice_1163:hs1",25760
+ "unsigned": {}25761
+ }25762
+ },25763
+ "@alice_1166:hs1": {25764
+ "ALICEDEVICE1166": {25765
+ "algorithms": [25766
+ "m.olm.v1.curve25519-aes-sha2",25767
+ "m.megolm.v1.aes-sha2"25768
+ ],25769
+ "device_id": "ALICEDEVICE1166",25770
+ "keys": {25771
+ "curve25519:ALICEDEVICE1166": "Pjv5NVbjZk3eR/IlcTw1f9+tCahQcY9uVc/dpHRLZxA",25772
+ "ed25519:ALICEDEVICE1166": "aEJN/xyN2KIOa69KdqlIzu1UQDOh72BgxT43FsEQ/wA"25773
+ },25774
+ "signatures": {25775
+ "@alice_1166:hs1": {25776
+ "ed25519:ALICEDEVICE1166": "5i3tSZsD6qlIgpP4KUjjA8mbOxSnvcBi2JWmAEkSfXGBu9DeiOfHGosaeS7JB/bEAQWgEJydNe1skFbbq35rBw"25777
+ }25778
+ },25779
+ "user_id": "@alice_1166:hs1",25780
+ "unsigned": {}25781
+ }25782
+ },25783
+ "@alice_1171:hs1": {25784
+ "ALICEDEVICE1171": {25785
+ "algorithms": [25786
+ "m.olm.v1.curve25519-aes-sha2",25787
+ "m.megolm.v1.aes-sha2"25788
+ ],25789
+ "device_id": "ALICEDEVICE1171",25790
+ "keys": {25791
+ "curve25519:ALICEDEVICE1171": "xUJmzeOT5EwiJPhlsNOaRbUyZwW+ggZpUkkQGIxL+j0",25792
+ "ed25519:ALICEDEVICE1171": "SnKYI2yGA/xIRlZ6E6/IBE9KWnDrs97HbGFQOCuJM2g"25793
+ },25794
+ "signatures": {25795
+ "@alice_1171:hs1": {25796
+ "ed25519:ALICEDEVICE1171": "V5da9eTXFQ8i5FtHWNShSkumA/CxhxQosWKDe7Pr/tZDoytn9acV3Rb2g3fi0bz3RAo3s4UTKzzw5ToM1HF2BQ"25797
+ }25798
+ },25799
+ "user_id": "@alice_1171:hs1",25800
+ "unsigned": {}25801
+ }25802
+ },25803
+ "@alice_1177:hs1": {25804
+ "ALICEDEVICE1177": {25805
+ "algorithms": [25806
+ "m.olm.v1.curve25519-aes-sha2",25807
+ "m.megolm.v1.aes-sha2"25808
+ ],25809
+ "device_id": "ALICEDEVICE1177",25810
+ "keys": {25811
+ "curve25519:ALICEDEVICE1177": "2yHAgvLzEOmsUIujsMr6MoHx/sgX+OnLhX0f7xQKIRI",25812
+ "ed25519:ALICEDEVICE1177": "X6hn8hF3fSe/pX2xbI6KTvv5jW99pYEskML5zgY2PEU"25813
+ },25814
+ "signatures": {25815
+ "@alice_1177:hs1": {25816
+ "ed25519:ALICEDEVICE1177": "up2hbadurxtC+zaWl8irQatg82W2Rf9ajMSSpvH6trUnlwdSAJwhsVHoBfxqFul28v1rUFn5o9KiCwSeJSPDCA"25817
+ }25818
+ },25819
+ "user_id": "@alice_1177:hs1",25820
+ "unsigned": {}25821
+ }25822
+ },25823
+ "@alice_1179:hs1": {25824
+ "ALICEDEVICE1179": {25825
+ "algorithms": [25826
+ "m.olm.v1.curve25519-aes-sha2",25827
+ "m.megolm.v1.aes-sha2"25828
+ ],25829
+ "device_id": "ALICEDEVICE1179",25830
+ "keys": {25831
+ "curve25519:ALICEDEVICE1179": "PqujknaAxjuYXTP1Mu6IrKlDBisvhHtjNhfxnHp4Xns",25832
+ "ed25519:ALICEDEVICE1179": "hp/4NAuVSP0NU5+srUabpOKzh6picTsjIiDtqRzmRrk"25833
+ },25834
+ "signatures": {25835
+ "@alice_1179:hs1": {25836
+ "ed25519:ALICEDEVICE1179": "8QstQVCKEXFFfnXgNBAfoKtqOpaMB2US3F7WpmZ2ndX+o0I0OoCYkVpFXU6TDPODGJ43YiWQAEX4cRvYpIO5AQ"25837
+ }25838
+ },25839
+ "user_id": "@alice_1179:hs1",25840
+ "unsigned": {}25841
+ }25842
+ },25843
+ "@alice_117:hs1": {25844
+ "ALICEDEVICE117": {25845
+ "algorithms": [25846
+ "m.olm.v1.curve25519-aes-sha2",25847
+ "m.megolm.v1.aes-sha2"25848
+ ],25849
+ "device_id": "ALICEDEVICE117",25850
+ "keys": {25851
+ "curve25519:ALICEDEVICE117": "HxEQCas+YhMJAN9wCV04JVOcZxvQxDDWojMsn9XzbXA",25852
+ "ed25519:ALICEDEVICE117": "TF201XM+brDhOM+gFHZ+OD/oEBp9TDD+7zqXyZmsxDI"25853
+ },25854
+ "signatures": {25855
+ "@alice_117:hs1": {25856
+ "ed25519:ALICEDEVICE117": "UeqUCQHLJ88+Y/6rMxDyhtVPuLCKp44Cb5/DkyxIhkv0hoMEVBTEfGl0zIsjaGJVNHqja2peB9SkfIiLmGHuBQ"25857
+ }25858
+ },25859
+ "user_id": "@alice_117:hs1",25860
+ "unsigned": {}25861
+ }25862
+ },25863
+ "@alice_1185:hs1": {25864
+ "ALICEDEVICE1185": {25865
+ "algorithms": [25866
+ "m.olm.v1.curve25519-aes-sha2",25867
+ "m.megolm.v1.aes-sha2"25868
+ ],25869
+ "device_id": "ALICEDEVICE1185",25870
+ "keys": {25871
+ "curve25519:ALICEDEVICE1185": "2l9lGkynzkF2/I9BurPbpMfpLsWkQwpkH16GCLjujR0",25872
+ "ed25519:ALICEDEVICE1185": "R2qZkeGFMHIxTiRL41LhRA13fMO/2yxQOqbGIl536Cg"25873
+ },25874
+ "signatures": {25875
+ "@alice_1185:hs1": {25876
+ "ed25519:ALICEDEVICE1185": "VLIoxCEiLi2t/I07X28SzPaZom6FwSsZzr8on3pQhAVfd2EYHoiiuIWE9hpB13X+DCi81gbV94czrRkUTTezBA"25877
+ }25878
+ },25879
+ "user_id": "@alice_1185:hs1",25880
+ "unsigned": {}25881
+ }25882
+ },25883
+ "@alice_120:hs1": {25884
+ "ALICEDEVICE120": {25885
+ "algorithms": [25886
+ "m.olm.v1.curve25519-aes-sha2",25887
+ "m.megolm.v1.aes-sha2"25888
+ ],25889
+ "device_id": "ALICEDEVICE120",25890
+ "keys": {25891
+ "curve25519:ALICEDEVICE120": "ctFHsNGIb0St1RC4p1XlFASw5D1pvV1xAzIa/mMBTx0",25892
+ "ed25519:ALICEDEVICE120": "aZOz/U94MX5Pt9XeICyRyQl4C4+7HkoBXtvgjNVvblY"25893
+ },25894
+ "signatures": {25895
+ "@alice_120:hs1": {25896
+ "ed25519:ALICEDEVICE120": "NIaGLNs+mBMz5OG/sB4/YPJdmo+s3obHr7DObRTxBQbuBdYMxVpvE0GdcGujC9ALvLbleRA3V2t1KhbF38W/AA"25897
+ }25898
+ },25899
+ "user_id": "@alice_120:hs1",25900
+ "unsigned": {}25901
+ }25902
+ },25903
+ "@alice_1213:hs1": {25904
+ "ALICEDEVICE1213": {25905
+ "algorithms": [25906
+ "m.olm.v1.curve25519-aes-sha2",25907
+ "m.megolm.v1.aes-sha2"25908
+ ],25909
+ "device_id": "ALICEDEVICE1213",25910
+ "keys": {25911
+ "curve25519:ALICEDEVICE1213": "H+JeVhcoXW9SMtrSW6Yi8IDrvnP4BzIbEjNZsISOAjo",25912
+ "ed25519:ALICEDEVICE1213": "RAJYvGKJMP3r0oTuOErctOvgkPwPM1m5DHH4ypfeb3s"25913
+ },25914
+ "signatures": {25915
+ "@alice_1213:hs1": {25916
+ "ed25519:ALICEDEVICE1213": "+5itbKEBF9NtTLzmPdcVW/50D1NkqSfVeiBVFPu6vfiH9U6JrZ3j5DtJWWUWH9sDMT88pCrFD+GZFtfZUWNrDA"25917
+ }25918
+ },25919
+ "user_id": "@alice_1213:hs1",25920
+ "unsigned": {}25921
+ }25922
+ },25923
+ "@alice_1220:hs1": {25924
+ "ALICEDEVICE1220": {25925
+ "algorithms": [25926
+ "m.olm.v1.curve25519-aes-sha2",25927
+ "m.megolm.v1.aes-sha2"25928
+ ],25929
+ "device_id": "ALICEDEVICE1220",25930
+ "keys": {25931
+ "curve25519:ALICEDEVICE1220": "azMF5lIJEuwoCcDk9x3EmBLIt+wbq4uwenY+HdBvFTk",25932
+ "ed25519:ALICEDEVICE1220": "/5t7hqbHDibmEMqkC2Tq6BC9+tgOm9FByuXiiYjjq1E"25933
+ },25934
+ "signatures": {25935
+ "@alice_1220:hs1": {25936
+ "ed25519:ALICEDEVICE1220": "rho4t7R1piMQJfna/cOEjWTlvbwTTJYIGvGN+/kg4FXzkPukrHtkefdzTse7t6Nstp4N1vbK/UpTOvKkD+9TBw"25937
+ }25938
+ },25939
+ "user_id": "@alice_1220:hs1",25940
+ "unsigned": {}25941
+ }25942
+ },25943
+ "@alice_1240:hs1": {25944
+ "ALICEDEVICE1240": {25945
+ "algorithms": [25946
+ "m.olm.v1.curve25519-aes-sha2",25947
+ "m.megolm.v1.aes-sha2"25948
+ ],25949
+ "device_id": "ALICEDEVICE1240",25950
+ "keys": {25951
+ "curve25519:ALICEDEVICE1240": "ME7596ZVduZXIYAbIiyk3tOuNW6lD63UBH6OVBRCUmI",25952
+ "ed25519:ALICEDEVICE1240": "3vVAiPqTyy/L8knc5WIQn8JNCep5pB/8J6AIUTnMpqk"25953
+ },25954
+ "signatures": {25955
+ "@alice_1240:hs1": {25956
+ "ed25519:ALICEDEVICE1240": "hL99qmSS4XAVNg8P1rzrRVfiX4HACd94XbyZ5G8Lt6vUhdAgqsF+1enYM8z+ia/gRRJckg1r2o448FNTP2jwDg"25957
+ }25958
+ },25959
+ "user_id": "@alice_1240:hs1",25960
+ "unsigned": {}25961
+ }25962
+ },25963
+ "@alice_1242:hs1": {25964
+ "ALICEDEVICE1242": {25965
+ "algorithms": [25966
+ "m.olm.v1.curve25519-aes-sha2",25967
+ "m.megolm.v1.aes-sha2"25968
+ ],25969
+ "device_id": "ALICEDEVICE1242",25970
+ "keys": {25971
+ "curve25519:ALICEDEVICE1242": "U1QU5UvKAPO0DHc+d8rXXCtcXwzf7n0z/JWFBgxuOXQ",25972
+ "ed25519:ALICEDEVICE1242": "nA7G5P6RlSBo+71092ZooL4IUczPanIjbtjUX3aNPdY"25973
+ },25974
+ "signatures": {25975
+ "@alice_1242:hs1": {25976
+ "ed25519:ALICEDEVICE1242": "X2mP1KermW+1HJUJess5zVgGKyKJ/98BKl4qfAmdNQqr+/ONVGRcfjx00hjYDKG48+9UGoQZuhgHj1qmqz42DQ"25977
+ }25978
+ },25979
+ "user_id": "@alice_1242:hs1",25980
+ "unsigned": {}25981
+ }25982
+ },25983
+ "@alice_1246:hs1": {25984
+ "ALICEDEVICE1246": {25985
+ "algorithms": [25986
+ "m.olm.v1.curve25519-aes-sha2",25987
+ "m.megolm.v1.aes-sha2"25988
+ ],25989
+ "device_id": "ALICEDEVICE1246",25990
+ "keys": {25991
+ "curve25519:ALICEDEVICE1246": "6mrGrVatmhsL0iIsgbf2YTRJKy0ewik6TbWO6Y98E1c",25992
+ "ed25519:ALICEDEVICE1246": "P/HrOX5VB1qH8ZSZoO/1Aiq89O5xoR1mnDp3ZMAQpnA"25993
+ },25994
+ "signatures": {25995
+ "@alice_1246:hs1": {25996
+ "ed25519:ALICEDEVICE1246": "15Nf4eX/uBnPVKlJEjeBPJVW+/ixsu0n7dG0jaR3QsJ4oQMX6oniX4HfniSs3C23c3L1UzE71YIIfHGgCUkVCg"25997
+ }25998
+ },25999
+ "user_id": "@alice_1246:hs1",26000
+ "unsigned": {}26001
+ }26002
+ },26003
+ "@alice_1271:hs1": {26004
+ "ALICEDEVICE1271": {26005
+ "algorithms": [26006
+ "m.olm.v1.curve25519-aes-sha2",26007
+ "m.megolm.v1.aes-sha2"26008
+ ],26009
+ "device_id": "ALICEDEVICE1271",26010
+ "keys": {26011
+ "curve25519:ALICEDEVICE1271": "ZGRXUfcS4gkJlDa/9ytYYMLAxvlyOnhDG2FzbgsgDVA",26012
+ "ed25519:ALICEDEVICE1271": "A/AVBI4xzRrrtVPIbBSKVRVkeCLt1f+wjwVKOHSnrCs"26013
+ },26014
+ "signatures": {26015
+ "@alice_1271:hs1": {26016
+ "ed25519:ALICEDEVICE1271": "zkI2oVFlfwgueFSdzSd5tvRs4EIdgzAroPFllZ6o6A0uyviJfjmgewDJxcstHQr9VQVi74NUJpjl6WpII+btCQ"26017
+ }26018
+ },26019
+ "user_id": "@alice_1271:hs1",26020
+ "unsigned": {}26021
+ }26022
+ },26023
+ "@alice_1272:hs1": {26024
+ "ALICEDEVICE1272": {26025
+ "algorithms": [26026
+ "m.olm.v1.curve25519-aes-sha2",26027
+ "m.megolm.v1.aes-sha2"26028
+ ],26029
+ "device_id": "ALICEDEVICE1272",26030
+ "keys": {26031
+ "curve25519:ALICEDEVICE1272": "zrDZvrw+JYtbZjqp9V6lhDcf02P4xdRhcLXfKlLBZ3w",26032
+ "ed25519:ALICEDEVICE1272": "oGQ/5zV0sQgZFcb2dc+IimOTh2TUARBuiX8ZfX31Ew8"26033
+ },26034
+ "signatures": {26035
+ "@alice_1272:hs1": {26036
+ "ed25519:ALICEDEVICE1272": "psrzUheBffQ/4L7BGCOlcXMg5RV/jTg4ZfgDITthaLBL4t4cEoF5kDiMVPQYIku8dLGnH2NyD7E6kYb4vabjDg"26037
+ }26038
+ },26039
+ "user_id": "@alice_1272:hs1",26040
+ "unsigned": {}26041
+ }26042
+ },26043
+ "@alice_1281:hs1": {26044
+ "ALICEDEVICE1281": {26045
+ "algorithms": [26046
+ "m.olm.v1.curve25519-aes-sha2",26047
+ "m.megolm.v1.aes-sha2"26048
+ ],26049
+ "device_id": "ALICEDEVICE1281",26050
+ "keys": {26051
+ "curve25519:ALICEDEVICE1281": "xssYSWcoNkNXqvGdfYwP5ueW/OImwW9QNhEqAhn6iCw",26052
+ "ed25519:ALICEDEVICE1281": "QWeCmpXgZVeYDnns7irZPAtPm2i2Y72skttPU1fQmN4"26053
+ },26054
+ "signatures": {26055
+ "@alice_1281:hs1": {26056
+ "ed25519:ALICEDEVICE1281": "hKNgK1fFutzD7zJNiCUDOsjDEBAKKDtA0+alhBwQa0IsZoSrL78Zpp/HXh92jvJZAHpAA3MbRdaSXJSF3tlwCQ"26057
+ }26058
+ },26059
+ "user_id": "@alice_1281:hs1",26060
+ "unsigned": {}26061
+ }26062
+ },26063
+ "@alice_1285:hs1": {26064
+ "ALICEDEVICE1285": {26065
+ "algorithms": [26066
+ "m.olm.v1.curve25519-aes-sha2",26067
+ "m.megolm.v1.aes-sha2"26068
+ ],26069
+ "device_id": "ALICEDEVICE1285",26070
+ "keys": {26071
+ "curve25519:ALICEDEVICE1285": "Hc/cetcVJc3mSaonG9olF6+r1E4WxN2icyd8+6dHyQQ",26072
+ "ed25519:ALICEDEVICE1285": "ftqz65r51IOPntTi4qxp5rgRwFyWMlYquDE+/mXNSJ8"26073
+ },26074
+ "signatures": {26075
+ "@alice_1285:hs1": {26076
+ "ed25519:ALICEDEVICE1285": "Fp82CSLgUoLiPy9TwRMbt9vEt0QOxaOXhe20ZyUvp6tVYN5cYYt4DQtNp7/QpUGadqouUzzZ3hDPPgAUM5kBBQ"26077
+ }26078
+ },26079
+ "user_id": "@alice_1285:hs1",26080
+ "unsigned": {}26081
+ }26082
+ },26083
+ "@alice_1304:hs1": {26084
+ "ALICEDEVICE1304": {26085
+ "algorithms": [26086
+ "m.olm.v1.curve25519-aes-sha2",26087
+ "m.megolm.v1.aes-sha2"26088
+ ],26089
+ "device_id": "ALICEDEVICE1304",26090
+ "keys": {26091
+ "curve25519:ALICEDEVICE1304": "sIDynojQdr6YWn9E6/+/9GM8KUmxhniZpXRHru8hQmk",26092
+ "ed25519:ALICEDEVICE1304": "ypk4ID27LFqsroU8vReDvmUhJ0ShyLM80zchlvRYYDI"26093
+ },26094
+ "signatures": {26095
+ "@alice_1304:hs1": {26096
+ "ed25519:ALICEDEVICE1304": "Cll2hIvlLFu6XYbvyl0jSBcsSj4imhDjfD026G+mjZzOFLIJe7HBLASttDagT928121jHglxauyoYiQVY/TSDQ"26097
+ }26098
+ },26099
+ "user_id": "@alice_1304:hs1",26100
+ "unsigned": {}26101
+ }26102
+ },26103
+ "@alice_1310:hs1": {26104
+ "ALICEDEVICE1310": {26105
+ "algorithms": [26106
+ "m.olm.v1.curve25519-aes-sha2",26107
+ "m.megolm.v1.aes-sha2"26108
+ ],26109
+ "device_id": "ALICEDEVICE1310",26110
+ "keys": {26111
+ "curve25519:ALICEDEVICE1310": "2nAMTKN/vbqqtsP0V+ltQkBJdpzK54P7H0NS14xH1zY",26112
+ "ed25519:ALICEDEVICE1310": "AF1H09/b9AjA2/UOhyk4FB1o84wkjXZlvPRPmsN/c9U"26113
+ },26114
+ "signatures": {26115
+ "@alice_1310:hs1": {26116
+ "ed25519:ALICEDEVICE1310": "8/E7PTleV8yGeGjND+ux0hNjJoLXp6bDmQjZNWxpmdsVkJhbkEKeoRkzHfHAiJgPAq4BVvP62rQ7eWuTrRmhDg"26117
+ }26118
+ },26119
+ "user_id": "@alice_1310:hs1",26120
+ "unsigned": {}26121
+ }26122
+ },26123
+ "@alice_1343:hs1": {26124
+ "ALICEDEVICE1343": {26125
+ "algorithms": [26126
+ "m.olm.v1.curve25519-aes-sha2",26127
+ "m.megolm.v1.aes-sha2"26128
+ ],26129
+ "device_id": "ALICEDEVICE1343",26130
+ "keys": {26131
+ "curve25519:ALICEDEVICE1343": "xWvh763p2dLGr09My6sJGQN3zB0MmFr4JzTV1SbQwD4",26132
+ "ed25519:ALICEDEVICE1343": "a4w7LCstAkZdHpOFTL1fglCteYBs1NLIDeNtXI31vpU"26133
+ },26134
+ "signatures": {26135
+ "@alice_1343:hs1": {26136
+ "ed25519:ALICEDEVICE1343": "5HNMRXcy81ZQsg6+VMevYintGXgP5QtgkAvWl62W4E9bAkL4m2z39x0VKbRto2w5OiXp1LuF1vvGv3Ru/kMmDw"26137
+ }26138
+ },26139
+ "user_id": "@alice_1343:hs1",26140
+ "unsigned": {}26141
+ }26142
+ },26143
+ "@alice_1383:hs1": {26144
+ "ALICEDEVICE1383": {26145
+ "algorithms": [26146
+ "m.olm.v1.curve25519-aes-sha2",26147
+ "m.megolm.v1.aes-sha2"26148
+ ],26149
+ "device_id": "ALICEDEVICE1383",26150
+ "keys": {26151
+ "curve25519:ALICEDEVICE1383": "O2bLOae3xhPnnwdgYhYGJhXTl11ecObCdHWkC/qXjz4",26152
+ "ed25519:ALICEDEVICE1383": "ShjE7uCD1uXOlD0V7rdsnJMHgYiuDQgPtR0Md/Abl5w"26153
+ },26154
+ "signatures": {26155
+ "@alice_1383:hs1": {26156
+ "ed25519:ALICEDEVICE1383": "LAmHW4g4S3UbUsq0WB+/yfQpCdqT9wfR4LiCpyq2X7Ixx9taEaUBkVQ64Z067rSXbFhS3p6ECipmlzvfwjLcAw"26157
+ }26158
+ },26159
+ "user_id": "@alice_1383:hs1",26160
+ "unsigned": {}26161
+ }26162
+ },26163
+ "@alice_1385:hs1": {26164
+ "ALICEDEVICE1385": {26165
+ "algorithms": [26166
+ "m.olm.v1.curve25519-aes-sha2",26167
+ "m.megolm.v1.aes-sha2"26168
+ ],26169
+ "device_id": "ALICEDEVICE1385",26170
+ "keys": {26171
+ "curve25519:ALICEDEVICE1385": "XF5sx+7ebbpq37CCajkKCLMwWCUAmPGaYlEPt3pDp1w",26172
+ "ed25519:ALICEDEVICE1385": "lXmpE3ItT5BPzihXrL/N34s8JktQ0lpLUCyx6uNJmAI"26173
+ },26174
+ "signatures": {26175
+ "@alice_1385:hs1": {26176
+ "ed25519:ALICEDEVICE1385": "71y28Qa/skpvSKHpCTtFVtKDI8yQvNd0J58nPo7ucPgPr/DmXGHAiD6vu4GyMbClqp9eXgl05IKlxHN2pdczAA"26177
+ }26178
+ },26179
+ "user_id": "@alice_1385:hs1",26180
+ "unsigned": {}26181
+ }26182
+ },26183
+ "@alice_1396:hs1": {26184
+ "ALICEDEVICE1396": {26185
+ "algorithms": [26186
+ "m.olm.v1.curve25519-aes-sha2",26187
+ "m.megolm.v1.aes-sha2"26188
+ ],26189
+ "device_id": "ALICEDEVICE1396",26190
+ "keys": {26191
+ "curve25519:ALICEDEVICE1396": "E6zJqFrkZ5L7NxU9tWbIumt0C/M+cVeXpqzXvGOD5BQ",26192
+ "ed25519:ALICEDEVICE1396": "+il/bajcjlSVyItmEQPDnZpXXjiiHdX+zE6wFK8JXWY"26193
+ },26194
+ "signatures": {26195
+ "@alice_1396:hs1": {26196
+ "ed25519:ALICEDEVICE1396": "qY/wCGWAg5flbrn8B0irlozu3MFq1yTB0bd2i8BoZbPJ4WURCZXoJTzBWrgkE7UA0WBYAapY4LZmRLdUzcIVAg"26197
+ }26198
+ },26199
+ "user_id": "@alice_1396:hs1",26200
+ "unsigned": {}26201
+ }26202
+ },26203
+ "@alice_139:hs1": {26204
+ "ALICEDEVICE139": {26205
+ "algorithms": [26206
+ "m.olm.v1.curve25519-aes-sha2",26207
+ "m.megolm.v1.aes-sha2"26208
+ ],26209
+ "device_id": "ALICEDEVICE139",26210
+ "keys": {26211
+ "curve25519:ALICEDEVICE139": "Gp5KT3TKR83ffnEm0lFzhyKOrwbUfdVEVcCXqzdNaw0",26212
+ "ed25519:ALICEDEVICE139": "SsbmuPqwG1QRcczM2JxhMjVr3QS8DtnyGLkML/mXIqA"26213
+ },26214
+ "signatures": {26215
+ "@alice_139:hs1": {26216
+ "ed25519:ALICEDEVICE139": "98/xwkqiVDpI0i+OzxtHaHmfvBV0bHBbPrPeQjccAkIQiTYDnWDubHO0jcmbUC+W2+IkrdMWYklMhLnSzdTCDw"26217
+ }26218
+ },26219
+ "user_id": "@alice_139:hs1",26220
+ "unsigned": {}26221
+ }26222
+ },26223
+ "@alice_1404:hs1": {26224
+ "ALICEDEVICE1404": {26225
+ "algorithms": [26226
+ "m.olm.v1.curve25519-aes-sha2",26227
+ "m.megolm.v1.aes-sha2"26228
+ ],26229
+ "device_id": "ALICEDEVICE1404",26230
+ "keys": {26231
+ "curve25519:ALICEDEVICE1404": "zcpUNII5zCiCfNwkm7tEcD/sUbvwAsKpdB1b8vllfhI",26232
+ "ed25519:ALICEDEVICE1404": "4G0vDKtcQb5Kcrc3axPP9YxNxPpJYEIx7cxKVZmF6Ps"26233
+ },26234
+ "signatures": {26235
+ "@alice_1404:hs1": {26236
+ "ed25519:ALICEDEVICE1404": "ow+edA79tPyi4HkwP5x5XQgdB4tWEzJ9oP0qiYFkiOS6qpAzG5b3C2BG2ndVMJiauw1wnpLKag4GK8F4FPEUDA"26237
+ }26238
+ },26239
+ "user_id": "@alice_1404:hs1",26240
+ "unsigned": {}26241
+ }26242
+ },26243
+ "@alice_1425:hs1": {26244
+ "ALICEDEVICE1425": {26245
+ "algorithms": [26246
+ "m.olm.v1.curve25519-aes-sha2",26247
+ "m.megolm.v1.aes-sha2"26248
+ ],26249
+ "device_id": "ALICEDEVICE1425",26250
+ "keys": {26251
+ "curve25519:ALICEDEVICE1425": "SctIlFbwCS5yIseb4wuRMFaZNYa8DhiCn+1X+z7PqHE",26252
+ "ed25519:ALICEDEVICE1425": "Ng/WEIKcEkDJ1Sv+u/1a3PdPjKgDuOaX4Xroy+5a1Yg"26253
+ },26254
+ "signatures": {26255
+ "@alice_1425:hs1": {26256
+ "ed25519:ALICEDEVICE1425": "XH8cc3SvnmqVNpJPTSsSwy9zIiv6WSANVchK75uTWFFi48LJco92A53aXdJOVDL/YIH1K8uejauxV3tYjAsmAg"26257
+ }26258
+ },26259
+ "user_id": "@alice_1425:hs1",26260
+ "unsigned": {}26261
+ }26262
+ },26263
+ "@alice_1439:hs1": {26264
+ "ALICEDEVICE1439": {26265
+ "algorithms": [26266
+ "m.olm.v1.curve25519-aes-sha2",26267
+ "m.megolm.v1.aes-sha2"26268
+ ],26269
+ "device_id": "ALICEDEVICE1439",26270
+ "keys": {26271
+ "curve25519:ALICEDEVICE1439": "T87495zIyrNTtk5vFh8X5UsPAYRsYUx1084Dt3tYOSo",26272
+ "ed25519:ALICEDEVICE1439": "kfmlCIw2xEd5k4DiMDrgPqGilcd0efKFx4NNXtVVdS8"26273
+ },26274
+ "signatures": {26275
+ "@alice_1439:hs1": {26276
+ "ed25519:ALICEDEVICE1439": "+utj/T9+UbExLrJimEplNy5WkyUlgGGkb7EF64ahkb9QFZsJ8/5bhn5t4u3myOPfg5x+HwM+/CXSzAFq2Fa1CQ"26277
+ }26278
+ },26279
+ "user_id": "@alice_1439:hs1",26280
+ "unsigned": {}26281
+ }26282
+ },26283
+ "@alice_1443:hs1": {26284
+ "ALICEDEVICE1443": {26285
+ "algorithms": [26286
+ "m.olm.v1.curve25519-aes-sha2",26287
+ "m.megolm.v1.aes-sha2"26288
+ ],26289
+ "device_id": "ALICEDEVICE1443",26290
+ "keys": {26291
+ "curve25519:ALICEDEVICE1443": "mtOLenL+vdEl32EaGHHNxewyWRFcsbrg1LYzeaMQkgI",26292
+ "ed25519:ALICEDEVICE1443": "hjweVJHzJ5qzFdyvQrE+42cLmr0hI+AxF0GFfqWylrQ"26293
+ },26294
+ "signatures": {26295
+ "@alice_1443:hs1": {26296
+ "ed25519:ALICEDEVICE1443": "S60pM4LHNE2GKCtfjieJgbwS/m8X9L3Vb6MF8UMrH68SPXlSPndTPUXEXTxdLvGoAWIIbvoBsBM1a7JCsIupCA"26297
+ }26298
+ },26299
+ "user_id": "@alice_1443:hs1",26300
+ "unsigned": {}26301
+ }26302
+ },26303
+ "@alice_1451:hs1": {26304
+ "ALICEDEVICE1451": {26305
+ "algorithms": [26306
+ "m.olm.v1.curve25519-aes-sha2",26307
+ "m.megolm.v1.aes-sha2"26308
+ ],26309
+ "device_id": "ALICEDEVICE1451",26310
+ "keys": {26311
+ "curve25519:ALICEDEVICE1451": "MkNgqEhPf9dP49OylkSYRJqAMCkckFGmgl+unWYDvm0",26312
+ "ed25519:ALICEDEVICE1451": "spyzpOP+3aGHOxV2M4b9wzGdudW9Lm1RCdvh/D2syTc"26313
+ },26314
+ "signatures": {26315
+ "@alice_1451:hs1": {26316
+ "ed25519:ALICEDEVICE1451": "X8NVa+eEbbUNdkz1/RaEysZkZ6rH63wQQOGaHjs+JDC72Aasc6y6rfT2QCLI34/qF+8TMsiuIIGsJyH5mlrpDQ"26317
+ }26318
+ },26319
+ "user_id": "@alice_1451:hs1",26320
+ "unsigned": {}26321
+ }26322
+ },26323
+ "@alice_1470:hs1": {26324
+ "ALICEDEVICE1470": {26325
+ "algorithms": [26326
+ "m.olm.v1.curve25519-aes-sha2",26327
+ "m.megolm.v1.aes-sha2"26328
+ ],26329
+ "device_id": "ALICEDEVICE1470",26330
+ "keys": {26331
+ "curve25519:ALICEDEVICE1470": "hWGcHypXYhrijmTsq2WyIhAsdhd6kqtO9GIT4F6kST4",26332
+ "ed25519:ALICEDEVICE1470": "2wgzUUc1A53rw5VxfFuFjptGJULF1yX36iFihWWNSHY"26333
+ },26334
+ "signatures": {26335
+ "@alice_1470:hs1": {26336
+ "ed25519:ALICEDEVICE1470": "stXljIBeO4GnIKhmL6lqpBGc6IkSiNHU/Anw48kRdX6LWrBc0+Mjkb/Zq75N5tpsWNhOTdt2RhF7dkboaMA6CQ"26337
+ }26338
+ },26339
+ "user_id": "@alice_1470:hs1",26340
+ "unsigned": {}26341
+ }26342
+ },26343
+ "@alice_1471:hs1": {26344
+ "ALICEDEVICE1471": {26345
+ "algorithms": [26346
+ "m.olm.v1.curve25519-aes-sha2",26347
+ "m.megolm.v1.aes-sha2"26348
+ ],26349
+ "device_id": "ALICEDEVICE1471",26350
+ "keys": {26351
+ "curve25519:ALICEDEVICE1471": "MwhdWnq0gY566bNu4uhCaRMXyhSBo6G78Ksi3Ms2/FE",26352
+ "ed25519:ALICEDEVICE1471": "k4axd36L3jx9xq/HAVHWYNKnp1JM1Nd7HM2hLN1E+8s"26353
+ },26354
+ "signatures": {26355
+ "@alice_1471:hs1": {26356
+ "ed25519:ALICEDEVICE1471": "OBW46vFG/HeF6Tmbn19gt+0RIIlzZUMtVCKi+IgVZBjYhT+T1UhH+gIajxDnP78Jo4Ma2sWGW2XZ4NfYyRoLAg"26357
+ }26358
+ },26359
+ "user_id": "@alice_1471:hs1",26360
+ "unsigned": {}26361
+ }26362
+ },26363
+ "@alice_1473:hs1": {26364
+ "ALICEDEVICE1473": {26365
+ "algorithms": [26366
+ "m.olm.v1.curve25519-aes-sha2",26367
+ "m.megolm.v1.aes-sha2"26368
+ ],26369
+ "device_id": "ALICEDEVICE1473",26370
+ "keys": {26371
+ "curve25519:ALICEDEVICE1473": "ZpAu2Ca/wTFrmGyEA6a+qNS2FBZvzvBndKzPscsU+0g",26372
+ "ed25519:ALICEDEVICE1473": "/6v8+OZTKW33kJIbq6jFnRLqo9JwlYAeuJFgfGjmDtw"26373
+ },26374
+ "signatures": {26375
+ "@alice_1473:hs1": {26376
+ "ed25519:ALICEDEVICE1473": "AF/hHo1L2AEqJ0plYgZysYpulQ8MTYVNmj0bWmviMCftjabf6V5wpZNb9culdfhi5nnvwigzda3BbNDEohjZBw"26377
+ }26378
+ },26379
+ "user_id": "@alice_1473:hs1",26380
+ "unsigned": {}26381
+ }26382
+ },26383
+ "@alice_1476:hs1": {26384
+ "ALICEDEVICE1476": {26385
+ "algorithms": [26386
+ "m.olm.v1.curve25519-aes-sha2",26387
+ "m.megolm.v1.aes-sha2"26388
+ ],26389
+ "device_id": "ALICEDEVICE1476",26390
+ "keys": {26391
+ "curve25519:ALICEDEVICE1476": "GjMKVYChxXZxlJCaX0aLyh35vuhfXNoyVSLEcYJCNV0",26392
+ "ed25519:ALICEDEVICE1476": "zwXYFrBMXYubhg2cKAjQzVfLNKlBTBeZVypqMpHQsbA"26393
+ },26394
+ "signatures": {26395
+ "@alice_1476:hs1": {26396
+ "ed25519:ALICEDEVICE1476": "v/SNfBDf3ic4SfRP2l3IP0UFTJ4af7eh3w2rXqZeWYjgAYj9nVttL4HLnUjI3F2tgkggLXIT/oZadpEIMnlWAQ"26397
+ }26398
+ },26399
+ "user_id": "@alice_1476:hs1",26400
+ "unsigned": {}26401
+ }26402
+ },26403
+ "@alice_1481:hs1": {26404
+ "ALICEDEVICE1481": {26405
+ "algorithms": [26406
+ "m.olm.v1.curve25519-aes-sha2",26407
+ "m.megolm.v1.aes-sha2"26408
+ ],26409
+ "device_id": "ALICEDEVICE1481",26410
+ "keys": {26411
+ "curve25519:ALICEDEVICE1481": "YhTJjespwiJkDf/Im5gqcQdXqg68bdG5J3OoSy1/owY",26412
+ "ed25519:ALICEDEVICE1481": "nYwEQ2GqsjjvUa7lKafzA93TEq0/lqxzZI0wHiBqsLg"26413
+ },26414
+ "signatures": {26415
+ "@alice_1481:hs1": {26416
+ "ed25519:ALICEDEVICE1481": "UDmwzmZ9et2IyCoupUTV7SABbV9G7YEvShmpqBt3OdE+iNC0bSdwJyCBv0XxmjhdKjEANZ2JgZe/1IirQhKwAw"26417
+ }26418
+ },26419
+ "user_id": "@alice_1481:hs1",26420
+ "unsigned": {}26421
+ }26422
+ },26423
+ "@alice_148:hs1": {26424
+ "ALICEDEVICE148": {26425
+ "algorithms": [26426
+ "m.olm.v1.curve25519-aes-sha2",26427
+ "m.megolm.v1.aes-sha2"26428
+ ],26429
+ "device_id": "ALICEDEVICE148",26430
+ "keys": {26431
+ "curve25519:ALICEDEVICE148": "R/d/tsohnfk5UhB2WQxMm5IX+8QHPeSOsbWFoiYOeiE",26432
+ "ed25519:ALICEDEVICE148": "kbIUZLhWoZJmjhbC8VlBqv1ZU735CrtNx6hA3rrj20E"26433
+ },26434
+ "signatures": {26435
+ "@alice_148:hs1": {26436
+ "ed25519:ALICEDEVICE148": "K3TNwkqSgPSf+G5hC/IVq9hkgXONM17ckuWfDiTYs6DfppH+adw25PeKavSEVdvD376W2mSJr43bHWTVM7jjCA"26437
+ }26438
+ },26439
+ "user_id": "@alice_148:hs1",26440
+ "unsigned": {}26441
+ }26442
+ },26443
+ "@alice_1494:hs1": {26444
+ "ALICEDEVICE1494": {26445
+ "algorithms": [26446
+ "m.olm.v1.curve25519-aes-sha2",26447
+ "m.megolm.v1.aes-sha2"26448
+ ],26449
+ "device_id": "ALICEDEVICE1494",26450
+ "keys": {26451
+ "curve25519:ALICEDEVICE1494": "J/aHC/jdfrPAl97hY4mqkYa4O/gtrOKhoS1Ksz3aGkE",26452
+ "ed25519:ALICEDEVICE1494": "ZSIgrp20/Kh27L/R7bInx7H6rKTYvo8DXTkMUL8E6Pw"26453
+ },26454
+ "signatures": {26455
+ "@alice_1494:hs1": {26456
+ "ed25519:ALICEDEVICE1494": "OffA/lhLrL4SBLUwkO7vyvpdlAiOIsknBVhCpT39mRDHoRmjvc27EQGT1XLuX3yziPF+4jvwsk0Md2+HSIWBDw"26457
+ }26458
+ },26459
+ "user_id": "@alice_1494:hs1",26460
+ "unsigned": {}26461
+ }26462
+ },26463
+ "@alice_1497:hs1": {26464
+ "ALICEDEVICE1497": {26465
+ "algorithms": [26466
+ "m.olm.v1.curve25519-aes-sha2",26467
+ "m.megolm.v1.aes-sha2"26468
+ ],26469
+ "device_id": "ALICEDEVICE1497",26470
+ "keys": {26471
+ "curve25519:ALICEDEVICE1497": "rqAvDBy8GnqSYWPWi4OlfchNDGBREdt9Pm7LfMjPj0g",26472
+ "ed25519:ALICEDEVICE1497": "N0lhr2tAV3hXUYknur4rw/r6x7shRV9v1AY+LaAmzxs"26473
+ },26474
+ "signatures": {26475
+ "@alice_1497:hs1": {26476
+ "ed25519:ALICEDEVICE1497": "RHkdOUX0sKW5f41rJPPlYUatws/jhvBHZkGg9tma0jepjTjEoLFa8jC2Pkd24jP1AIGWAmcbcXc7k8InUbKdDw"26477
+ }26478
+ },26479
+ "user_id": "@alice_1497:hs1",26480
+ "unsigned": {}26481
+ }26482
+ },26483
+ "@alice_1501:hs1": {26484
+ "ALICEDEVICE1501": {26485
+ "algorithms": [26486
+ "m.olm.v1.curve25519-aes-sha2",26487
+ "m.megolm.v1.aes-sha2"26488
+ ],26489
+ "device_id": "ALICEDEVICE1501",26490
+ "keys": {26491
+ "curve25519:ALICEDEVICE1501": "rBhRi0q/BBn5cAvDnNRzDRe9MT7G2s+/t681XNBVzB0",26492
+ "ed25519:ALICEDEVICE1501": "x1qaRSfzNQcy9g1UbVBxwbpLPNwIu7Kln4fF5BXjl4w"26493
+ },26494
+ "signatures": {26495
+ "@alice_1501:hs1": {26496
+ "ed25519:ALICEDEVICE1501": "3afyOYbVP7LuC90NQd5Rh0FBCUL7GxpaY8V1ji+9A2KrK+9caVaUgEK+gzysjLh35hu1kR1Wld9MKH8EECtBBw"26497
+ }26498
+ },26499
+ "user_id": "@alice_1501:hs1",26500
+ "unsigned": {}26501
+ }26502
+ },26503
+ "@alice_1509:hs1": {26504
+ "ALICEDEVICE1509": {26505
+ "algorithms": [26506
+ "m.olm.v1.curve25519-aes-sha2",26507
+ "m.megolm.v1.aes-sha2"26508
+ ],26509
+ "device_id": "ALICEDEVICE1509",26510
+ "keys": {26511
+ "curve25519:ALICEDEVICE1509": "yW8x8T32WRQBkz6man3I+YGsutjfTbTfR+Od4uu3oC0",26512
+ "ed25519:ALICEDEVICE1509": "jg9VcHuottyD8JmhS/1lTxCmLsMO7VpSwqfkuKxIhlg"26513
+ },26514
+ "signatures": {26515
+ "@alice_1509:hs1": {26516
+ "ed25519:ALICEDEVICE1509": "0OcHlQvIACIZEgej+82yKebq13GI3qajPTALPDq83VK3nRnG733pXLM9bpBX304TBLXkJO8Isr6j5YfPqXxfAg"26517
+ }26518
+ },26519
+ "user_id": "@alice_1509:hs1",26520
+ "unsigned": {}26521
+ }26522
+ },26523
+ "@alice_1515:hs1": {26524
+ "ALICEDEVICE1515": {26525
+ "algorithms": [26526
+ "m.olm.v1.curve25519-aes-sha2",26527
+ "m.megolm.v1.aes-sha2"26528
+ ],26529
+ "device_id": "ALICEDEVICE1515",26530
+ "keys": {26531
+ "curve25519:ALICEDEVICE1515": "bACcyrmuQAUPNkNjBMOHMNN1Rtpaj4i9BpPOiIjK4hY",26532
+ "ed25519:ALICEDEVICE1515": "ll19rpe0TAJcbaU3L0AJFLGW0cEuXGHAa8Xt/j1+VO0"26533
+ },26534
+ "signatures": {26535
+ "@alice_1515:hs1": {26536
+ "ed25519:ALICEDEVICE1515": "HPvvqluRdlv4RXY7idrkU/jlWaKKRa68MEFDU9eJM0pCFWn8FJvi7Hs+29K7zFBU1vj7tyQmcnIbBxcFOBdJBw"26537
+ }26538
+ },26539
+ "user_id": "@alice_1515:hs1",26540
+ "unsigned": {}26541
+ }26542
+ },26543
+ "@alice_1516:hs1": {26544
+ "ALICEDEVICE1516": {26545
+ "algorithms": [26546
+ "m.olm.v1.curve25519-aes-sha2",26547
+ "m.megolm.v1.aes-sha2"26548
+ ],26549
+ "device_id": "ALICEDEVICE1516",26550
+ "keys": {26551
+ "curve25519:ALICEDEVICE1516": "2d+eHfG9UK7/DxV543v/fDNcfV14/WD4Ze5gCI9EaTQ",26552
+ "ed25519:ALICEDEVICE1516": "Vm4YtAepnTDDRqYhGnfJtF7M09sA0oApN2Ic/ijREq8"26553
+ },26554
+ "signatures": {26555
+ "@alice_1516:hs1": {26556
+ "ed25519:ALICEDEVICE1516": "sH/nRUA/eBcZpmzRIL5RVbrWgu5ZHtgEYhlyktI3otNn2ZfGHrZN/ykrApYCwvM+H37JjfSC6Ta3SBLw/mtDBA"26557
+ }26558
+ },26559
+ "user_id": "@alice_1516:hs1",26560
+ "unsigned": {}26561
+ }26562
+ },26563
+ "@alice_1522:hs1": {26564
+ "ALICEDEVICE1522": {26565
+ "algorithms": [26566
+ "m.olm.v1.curve25519-aes-sha2",26567
+ "m.megolm.v1.aes-sha2"26568
+ ],26569
+ "device_id": "ALICEDEVICE1522",26570
+ "keys": {26571
+ "curve25519:ALICEDEVICE1522": "dd6DGjZNpmUw+aAc9fNAv7zmx358wyZo+TPo9lCn/wg",26572
+ "ed25519:ALICEDEVICE1522": "mSpscWEjHSaCAxEtM2wu0x2LRSGtrggdUUuIceLTMpw"26573
+ },26574
+ "signatures": {26575
+ "@alice_1522:hs1": {26576
+ "ed25519:ALICEDEVICE1522": "OIJ6hfYWI9ysFSEdafoxXpyWguiA6NNpxi3IrOzsTjGIpRsMn31848uQuFzGyARHMyyAmos85O5jL1+j15/1BQ"26577
+ }26578
+ },26579
+ "user_id": "@alice_1522:hs1",26580
+ "unsigned": {}26581
+ }26582
+ },26583
+ "@alice_1531:hs1": {26584
+ "ALICEDEVICE1531": {26585
+ "algorithms": [26586
+ "m.olm.v1.curve25519-aes-sha2",26587
+ "m.megolm.v1.aes-sha2"26588
+ ],26589
+ "device_id": "ALICEDEVICE1531",26590
+ "keys": {26591
+ "curve25519:ALICEDEVICE1531": "AsEVjII6Wfn2h5ooue+WIRqs/WihY1lODZxEr8Qb814",26592
+ "ed25519:ALICEDEVICE1531": "xGozvaoBjSNV1MWXx2oKxEFJqZ429GK6h2CLWRAkeHo"26593
+ },26594
+ "signatures": {26595
+ "@alice_1531:hs1": {26596
+ "ed25519:ALICEDEVICE1531": "xg6Lwh0qEZXu4aC0xsulcr+/w6CwpwM3QJNq6ikmt/svG1AsUy93Q2mfxeHYRGECylevNe1BwdqXsNfxml7dCA"26597
+ }26598
+ },26599
+ "user_id": "@alice_1531:hs1",26600
+ "unsigned": {}26601
+ }26602
+ },26603
+ "@alice_1536:hs1": {26604
+ "ALICEDEVICE1536": {26605
+ "algorithms": [26606
+ "m.olm.v1.curve25519-aes-sha2",26607
+ "m.megolm.v1.aes-sha2"26608
+ ],26609
+ "device_id": "ALICEDEVICE1536",26610
+ "keys": {26611
+ "curve25519:ALICEDEVICE1536": "oeWcm8B7Y6GWahZvbfvfTRzoHpqLlyckTxOPK2JdYno",26612
+ "ed25519:ALICEDEVICE1536": "1WInpdlj+BW2WWnEwYy9/XN+Tmupyz0hkl6lQ4xpE2M"26613
+ },26614
+ "signatures": {26615
+ "@alice_1536:hs1": {26616
+ "ed25519:ALICEDEVICE1536": "u5bKN4uzmACrtJtX872Qv4gECq6PJjHxbeVqtxf1fB+Y3GRPKzNTIhVGRcfgCvge7nKToWAtWVL8ajfs7ciJBg"26617
+ }26618
+ },26619
+ "user_id": "@alice_1536:hs1",26620
+ "unsigned": {}26621
+ }26622
+ },26623
+ "@alice_1537:hs1": {26624
+ "ALICEDEVICE1537": {26625
+ "algorithms": [26626
+ "m.olm.v1.curve25519-aes-sha2",26627
+ "m.megolm.v1.aes-sha2"26628
+ ],26629
+ "device_id": "ALICEDEVICE1537",26630
+ "keys": {26631
+ "curve25519:ALICEDEVICE1537": "55R1CgnKP1K99LR0xJ6qVjWfBGuQUy7dID+FLXD+OnI",26632
+ "ed25519:ALICEDEVICE1537": "E7LX2ghJfUWx57+VILdmLrUnhetSmtRuEb47cvp2MSI"26633
+ },26634
+ "signatures": {26635
+ "@alice_1537:hs1": {26636
+ "ed25519:ALICEDEVICE1537": "QxJZcrqYmoIrc2YWI4Fvue09vn1g7tadxTv/nLpgolc4msrF324CSre6lRRm2cwmEEYJXCkc3feGw1y99PaZAQ"26637
+ }26638
+ },26639
+ "user_id": "@alice_1537:hs1",26640
+ "unsigned": {}26641
+ }26642
+ },26643
+ "@alice_1539:hs1": {26644
+ "ALICEDEVICE1539": {26645
+ "algorithms": [26646
+ "m.olm.v1.curve25519-aes-sha2",26647
+ "m.megolm.v1.aes-sha2"26648
+ ],26649
+ "device_id": "ALICEDEVICE1539",26650
+ "keys": {26651
+ "curve25519:ALICEDEVICE1539": "8kXo+EsBj0WUJO3epH/Cv69eknwZawIm/XvSuEa6Yz0",26652
+ "ed25519:ALICEDEVICE1539": "uJN8OM0zzBKQuYeKsL0Y5nliJ9xfdjiyeldInN3DKik"26653
+ },26654
+ "signatures": {26655
+ "@alice_1539:hs1": {26656
+ "ed25519:ALICEDEVICE1539": "188zjekdEXFQsp30nQnRGjN5wUQho7rvIxiM3B4nSwskgEqHsmK7pbTkqshIaH+Bma9J7XDA84LM9gwJB05YAQ"26657
+ }26658
+ },26659
+ "user_id": "@alice_1539:hs1",26660
+ "unsigned": {}26661
+ }26662
+ },26663
+ "@alice_1541:hs1": {26664
+ "ALICEDEVICE1541": {26665
+ "algorithms": [26666
+ "m.olm.v1.curve25519-aes-sha2",26667
+ "m.megolm.v1.aes-sha2"26668
+ ],26669
+ "device_id": "ALICEDEVICE1541",26670
+ "keys": {26671
+ "curve25519:ALICEDEVICE1541": "2dTz5e4TD1YsjKYH+o2tzSk5DQVBcrFWiOsHEl5nbF0",26672
+ "ed25519:ALICEDEVICE1541": "+uFIf3yeaT3vNcG1Zv/+fICjOkA5WDsXdRquZKqTCXw"26673
+ },26674
+ "signatures": {26675
+ "@alice_1541:hs1": {26676
+ "ed25519:ALICEDEVICE1541": "gmj8FPCanhCaaBgMOCRyhh1cAC/oR3GtwFLHdwcAUA06N2jL1BE6vfXFQPxKl+cHg5eulU/8MwNm2OM4YLttAw"26677
+ }26678
+ },26679
+ "user_id": "@alice_1541:hs1",26680
+ "unsigned": {}26681
+ }26682
+ },26683
+ "@alice_1543:hs1": {26684
+ "ALICEDEVICE1543": {26685
+ "algorithms": [26686
+ "m.olm.v1.curve25519-aes-sha2",26687
+ "m.megolm.v1.aes-sha2"26688
+ ],26689
+ "device_id": "ALICEDEVICE1543",26690
+ "keys": {26691
+ "curve25519:ALICEDEVICE1543": "xrDcAebMOoG10uVao/ukeL5BXmo2EqMwhWuPgqsQGjg",26692
+ "ed25519:ALICEDEVICE1543": "TJJypIPKic2LLEXrQybQzedzFW2EI1aCdKOXWIpJaTY"26693
+ },26694
+ "signatures": {26695
+ "@alice_1543:hs1": {26696
+ "ed25519:ALICEDEVICE1543": "btjp72KeJ9Kj5WUZyzrKNMSF9koI+mAVb5adoP4APg0G5hxDJakpQN5SFk2iUmHfjLfXQE1LY/uJ49q8EF3nBA"26697
+ }26698
+ },26699
+ "user_id": "@alice_1543:hs1",26700
+ "unsigned": {}26701
+ }26702
+ },26703
+ "@alice_1547:hs1": {26704
+ "ALICEDEVICE1547": {26705
+ "algorithms": [26706
+ "m.olm.v1.curve25519-aes-sha2",26707
+ "m.megolm.v1.aes-sha2"26708
+ ],26709
+ "device_id": "ALICEDEVICE1547",26710
+ "keys": {26711
+ "curve25519:ALICEDEVICE1547": "in+AOAGrTqCvFjUlvmagmCW2ZZAiiolGG8ZmLH63EnY",26712
+ "ed25519:ALICEDEVICE1547": "63KNobMyAMR55yjq0tKLM9hM//V6KU5lauk3ME1oi/Y"26713
+ },26714
+ "signatures": {26715
+ "@alice_1547:hs1": {26716
+ "ed25519:ALICEDEVICE1547": "dUWvqHA811lpIWRWo4UEBc4cO1fP4nlwocUCTuAP/yBUnz42Z5CiRmjRnUzkkQEPYPN32hBmry3wVoFEOyjxCA"26717
+ }26718
+ },26719
+ "user_id": "@alice_1547:hs1",26720
+ "unsigned": {}26721
+ }26722
+ },26723
+ "@alice_154:hs1": {26724
+ "ALICEDEVICE154": {26725
+ "algorithms": [26726
+ "m.olm.v1.curve25519-aes-sha2",26727
+ "m.megolm.v1.aes-sha2"26728
+ ],26729
+ "device_id": "ALICEDEVICE154",26730
+ "keys": {26731
+ "curve25519:ALICEDEVICE154": "3zAPmlS+YmcMGHGCX11R51/Swt99BZl9M5X9Cao3QUw",26732
+ "ed25519:ALICEDEVICE154": "EHktb2uKzTcJeH+igmR5jS9LpZKRh0DyFGLFMzFWOH8"26733
+ },26734
+ "signatures": {26735
+ "@alice_154:hs1": {26736
+ "ed25519:ALICEDEVICE154": "7rZcnQdJo9o/IiZ+L4HGmP+HsBayK6/KLI5JBJS0xpnMNr8lZh+ZARCLu9NRZhmoB1+nGtqsfDWLt/3emHCbBQ"26737
+ }26738
+ },26739
+ "user_id": "@alice_154:hs1",26740
+ "unsigned": {}26741
+ }26742
+ },26743
+ "@alice_1550:hs1": {26744
+ "ALICEDEVICE1550": {26745
+ "algorithms": [26746
+ "m.olm.v1.curve25519-aes-sha2",26747
+ "m.megolm.v1.aes-sha2"26748
+ ],26749
+ "device_id": "ALICEDEVICE1550",26750
+ "keys": {26751
+ "curve25519:ALICEDEVICE1550": "9u9pZkzW0/VEbhTLT7Zs2nZ+0xGFYDam5f9tqmhkCnM",26752
+ "ed25519:ALICEDEVICE1550": "DvdUb13Q5st5vCZpZ1YaYC0TInyNf9d3d0iITeDo3jI"26753
+ },26754
+ "signatures": {26755
+ "@alice_1550:hs1": {26756
+ "ed25519:ALICEDEVICE1550": "Rn4bMvIxbaw7dVCgIzsFhxemptJrCm0Rfi3J/+Loi0nXgb+w5PD2S6qFKDam0S36FRWXg9AzR5OX33Y5NCn7Bg"26757
+ }26758
+ },26759
+ "user_id": "@alice_1550:hs1",26760
+ "unsigned": {}26761
+ }26762
+ },26763
+ "@alice_1570:hs1": {26764
+ "ALICEDEVICE1570": {26765
+ "algorithms": [26766
+ "m.olm.v1.curve25519-aes-sha2",26767
+ "m.megolm.v1.aes-sha2"26768
+ ],26769
+ "device_id": "ALICEDEVICE1570",26770
+ "keys": {26771
+ "curve25519:ALICEDEVICE1570": "YTqZ1Bx6zgf5ehzMIPvRsgxUM7DBxiyn7cegrwcaqX4",26772
+ "ed25519:ALICEDEVICE1570": "tNgJVa3OP5I+LqORLydv8SINys4owBb8yJoRbau02Uw"26773
+ },26774
+ "signatures": {26775
+ "@alice_1570:hs1": {26776
+ "ed25519:ALICEDEVICE1570": "MBJgJPoygo8qbFPsuLX/jja5oVse1B7MIr4WmXB8V5+peyf2AAVS5CFu2eJkJwA/X1DjC3TjAlrVW6KfKgwxCA"26777
+ }26778
+ },26779
+ "user_id": "@alice_1570:hs1",26780
+ "unsigned": {}26781
+ }26782
+ },26783
+ "@alice_1575:hs1": {26784
+ "ALICEDEVICE1575": {26785
+ "algorithms": [26786
+ "m.olm.v1.curve25519-aes-sha2",26787
+ "m.megolm.v1.aes-sha2"26788
+ ],26789
+ "device_id": "ALICEDEVICE1575",26790
+ "keys": {26791
+ "curve25519:ALICEDEVICE1575": "4GAa7itRAVgFqYWBaUjrFlQ4PmdtzAZAum3V62VjfR4",26792
+ "ed25519:ALICEDEVICE1575": "JmLMCuMkg9wNVFJFCb2x1dMKIotm/nhwJhykSzQfjb8"26793
+ },26794
+ "signatures": {26795
+ "@alice_1575:hs1": {26796
+ "ed25519:ALICEDEVICE1575": "Hexsw/idpcKQjYgNZPSL5KlJgkpc/NEbiyhvTkAIN8ihyFlhFUM4zwbtQzGcqy3nc5F7B6MlWGiYWRVIJoezAg"26797
+ }26798
+ },26799
+ "user_id": "@alice_1575:hs1",26800
+ "unsigned": {}26801
+ }26802
+ },26803
+ "@alice_157:hs1": {26804
+ "ALICEDEVICE157": {26805
+ "algorithms": [26806
+ "m.olm.v1.curve25519-aes-sha2",26807
+ "m.megolm.v1.aes-sha2"26808
+ ],26809
+ "device_id": "ALICEDEVICE157",26810
+ "keys": {26811
+ "curve25519:ALICEDEVICE157": "xwk55451y/aQD+4JLjGknJ67SiSPtKJQhoriwTCI4n0",26812
+ "ed25519:ALICEDEVICE157": "ps46uBZ/pm+CETZrWmAKDI6RwOHs4otWfLQ8Vy25LUE"26813
+ },26814
+ "signatures": {26815
+ "@alice_157:hs1": {26816
+ "ed25519:ALICEDEVICE157": "MwAx56TEuLMToPd2j0YwMgqzcwJE6MG9EEa+l9xgjozQOdOoB0unQ27u2r27rAWeJtCyC7ECijZ9wI+4Gy8YDA"26817
+ }26818
+ },26819
+ "user_id": "@alice_157:hs1",26820
+ "unsigned": {}26821
+ }26822
+ },26823
+ "@alice_1584:hs1": {26824
+ "ALICEDEVICE1584": {26825
+ "algorithms": [26826
+ "m.olm.v1.curve25519-aes-sha2",26827
+ "m.megolm.v1.aes-sha2"26828
+ ],26829
+ "device_id": "ALICEDEVICE1584",26830
+ "keys": {26831
+ "curve25519:ALICEDEVICE1584": "7F+K7pMZNqRKirLdrJ7JYrrCVlZsdUshw13743FS7Xo",26832
+ "ed25519:ALICEDEVICE1584": "Lv1uADwZLt6GLjQGJV1RnXWwN931VlAKHY6iav8WP7U"26833
+ },26834
+ "signatures": {26835
+ "@alice_1584:hs1": {26836
+ "ed25519:ALICEDEVICE1584": "ctZmGowQuPi3Zu6xRUryjiVx3U4EOz7DXR3w/v1xlZpsdsXuoSf3lTtURVKEQEZnLrCSgXyvgqsRz5YsUzhGBA"26837
+ }26838
+ },26839
+ "user_id": "@alice_1584:hs1",26840
+ "unsigned": {}26841
+ }26842
+ },26843
+ "@alice_1588:hs1": {26844
+ "ALICEDEVICE1588": {26845
+ "algorithms": [26846
+ "m.olm.v1.curve25519-aes-sha2",26847
+ "m.megolm.v1.aes-sha2"26848
+ ],26849
+ "device_id": "ALICEDEVICE1588",26850
+ "keys": {26851
+ "curve25519:ALICEDEVICE1588": "b4VmiHQ+/BLo22oCzaMMK7nqFEGL7iYl3Nk8HTQEGHo",26852
+ "ed25519:ALICEDEVICE1588": "PYTNgKgcHIIiF9zu79r+5bNgH2np/u8rWt/CI0CDAhk"26853
+ },26854
+ "signatures": {26855
+ "@alice_1588:hs1": {26856
+ "ed25519:ALICEDEVICE1588": "jD9JuEoQRLEY47WFXgn6iW0Ed+JD03MQmnZWjm+zexXxr2+eYUGYN2pACIOHk4IdH2D7Np6wZqkO4k3q+W/eDQ"26857
+ }26858
+ },26859
+ "user_id": "@alice_1588:hs1",26860
+ "unsigned": {}26861
+ }26862
+ },26863
+ "@alice_158:hs1": {26864
+ "ALICEDEVICE158": {26865
+ "algorithms": [26866
+ "m.olm.v1.curve25519-aes-sha2",26867
+ "m.megolm.v1.aes-sha2"26868
+ ],26869
+ "device_id": "ALICEDEVICE158",26870
+ "keys": {26871
+ "curve25519:ALICEDEVICE158": "sf7RM/fDFa5lu7JXZhubKI7zAI0gBcUUbqr0fCmu8gQ",26872
+ "ed25519:ALICEDEVICE158": "NyvDfBlXVBtuPKdUuoj71UymkVwQAfUnne31meLLCRQ"26873
+ },26874
+ "signatures": {26875
+ "@alice_158:hs1": {26876
+ "ed25519:ALICEDEVICE158": "R/mUEyukWk/mlCXf7NB9e1qe7AfAjsl4mr2m2n5zdN2QdGlyYQyWPLAijMWA4qZ2B3LkSD2rkZEVJYdUGy36Cw"26877
+ }26878
+ },26879
+ "user_id": "@alice_158:hs1",26880
+ "unsigned": {}26881
+ }26882
+ },26883
+ "@alice_1604:hs1": {26884
+ "ALICEDEVICE1604": {26885
+ "algorithms": [26886
+ "m.olm.v1.curve25519-aes-sha2",26887
+ "m.megolm.v1.aes-sha2"26888
+ ],26889
+ "device_id": "ALICEDEVICE1604",26890
+ "keys": {26891
+ "curve25519:ALICEDEVICE1604": "HxQ5k/cxLEEXRlehnvCaAEqaw/ChyTfBhMmLIi7sqlg",26892
+ "ed25519:ALICEDEVICE1604": "IPcvFMiMm+xZp1EghA1WewZsE+igfwh4fli8z0DwG1Q"26893
+ },26894
+ "signatures": {26895
+ "@alice_1604:hs1": {26896
+ "ed25519:ALICEDEVICE1604": "OqBAc1nmA7Fc5fuVBfTN6LJJxTMsN/v1QItRBeFHpbjR/IhqI4GfamJZ0zlKwHRrwcbp+OqGAgceEc1fkFYZAQ"26897
+ }26898
+ },26899
+ "user_id": "@alice_1604:hs1",26900
+ "unsigned": {}26901
+ }26902
+ },26903
+ "@alice_1605:hs1": {26904
+ "ALICEDEVICE1605": {26905
+ "algorithms": [26906
+ "m.olm.v1.curve25519-aes-sha2",26907
+ "m.megolm.v1.aes-sha2"26908
+ ],26909
+ "device_id": "ALICEDEVICE1605",26910
+ "keys": {26911
+ "curve25519:ALICEDEVICE1605": "xnLHyGi7fHmyeJ9THs3DUE0jcx8M9mZq5Qp9wPVvTx8",26912
+ "ed25519:ALICEDEVICE1605": "oyAVdaiaouXb/sF1X9ev7P0m0wQel2YRjw+RDszXLEY"26913
+ },26914
+ "signatures": {26915
+ "@alice_1605:hs1": {26916
+ "ed25519:ALICEDEVICE1605": "lGd/UfCHZPLjxPSkow7CEa4M4aEFAttT7sdjJCwQBs8igb8TTYxGQ/j5nXni9NKix1nJLUXRvhVPISM9Em62DQ"26917
+ }26918
+ },26919
+ "user_id": "@alice_1605:hs1",26920
+ "unsigned": {}26921
+ }26922
+ },26923
+ "@alice_1606:hs1": {26924
+ "ALICEDEVICE1606": {26925
+ "algorithms": [26926
+ "m.olm.v1.curve25519-aes-sha2",26927
+ "m.megolm.v1.aes-sha2"26928
+ ],26929
+ "device_id": "ALICEDEVICE1606",26930
+ "keys": {26931
+ "curve25519:ALICEDEVICE1606": "vHL2G46jFqYWHOAwDHruuYHUCH85FV7JeLt1NsQjgTs",26932
+ "ed25519:ALICEDEVICE1606": "RcFKJe4mc9dJo9ZLf95oLjT7Ui5Q3rfRRLSyjMR0Awg"26933
+ },26934
+ "signatures": {26935
+ "@alice_1606:hs1": {26936
+ "ed25519:ALICEDEVICE1606": "HrJRtjfDVp8yxA0/i6T7Qvq+f35pa3Gx1yuXkTk0pRkkepsxbGbPDg5ndqDd1c1YEXPj3yDPr9TchH8hbhnTDA"26937
+ }26938
+ },26939
+ "user_id": "@alice_1606:hs1",26940
+ "unsigned": {}26941
+ }26942
+ },26943
+ "@alice_1611:hs1": {26944
+ "ALICEDEVICE1611": {26945
+ "algorithms": [26946
+ "m.olm.v1.curve25519-aes-sha2",26947
+ "m.megolm.v1.aes-sha2"26948
+ ],26949
+ "device_id": "ALICEDEVICE1611",26950
+ "keys": {26951
+ "curve25519:ALICEDEVICE1611": "Pd7jL9wkvUCQV0PKM2GRfqlmNEzLdXiip0IiazaYwhk",26952
+ "ed25519:ALICEDEVICE1611": "q6uBETuimq2FJCKoyXZbt1KjM2awJP9Vv/UP55b17i4"26953
+ },26954
+ "signatures": {26955
+ "@alice_1611:hs1": {26956
+ "ed25519:ALICEDEVICE1611": "RRucPLAXuF2nTV+7QwmK9cUxp6D4Mncghf3knFJgCnJ5DvYDrt/XLNm4A7ZnQ46LERGdwW+HYRCSSqgJ7QMwAg"26957
+ }26958
+ },26959
+ "user_id": "@alice_1611:hs1",26960
+ "unsigned": {}26961
+ }26962
+ },26963
+ "@alice_1618:hs1": {26964
+ "ALICEDEVICE1618": {26965
+ "algorithms": [26966
+ "m.olm.v1.curve25519-aes-sha2",26967
+ "m.megolm.v1.aes-sha2"26968
+ ],26969
+ "device_id": "ALICEDEVICE1618",26970
+ "keys": {26971
+ "curve25519:ALICEDEVICE1618": "VKkeUSfnW9VoWeB1bhsFxee7P+7jAOWIzkXwtPdf+Xk",26972
+ "ed25519:ALICEDEVICE1618": "pzhjgQUJ1VckyVWCV/7CKqDTd6ty4jjqADp18hKIzNo"26973
+ },26974
+ "signatures": {26975
+ "@alice_1618:hs1": {26976
+ "ed25519:ALICEDEVICE1618": "2BFHLCE/0J2J9TcL6MxvVYZnoylnMuwcH13PmjghcqFDDocDdzf18JhKq8kwPgHqiLgxdsUzwbkXXZC1AWEmDw"26977
+ }26978
+ },26979
+ "user_id": "@alice_1618:hs1",26980
+ "unsigned": {}26981
+ }26982
+ },26983
+ "@alice_1630:hs1": {26984
+ "ALICEDEVICE1630": {26985
+ "algorithms": [26986
+ "m.olm.v1.curve25519-aes-sha2",26987
+ "m.megolm.v1.aes-sha2"26988
+ ],26989
+ "device_id": "ALICEDEVICE1630",26990
+ "keys": {26991
+ "curve25519:ALICEDEVICE1630": "Cc6VW59IhIQtAOhUFNkOJUVEt+AaoeyK3SlGxM96ckA",26992
+ "ed25519:ALICEDEVICE1630": "Zdc4SgbZ38ZSzI5HosTrbavjN5BS+ZIbHWMldaRRjLs"26993
+ },26994
+ "signatures": {26995
+ "@alice_1630:hs1": {26996
+ "ed25519:ALICEDEVICE1630": "y7FE0w6LgZ5szfuvrzkYkwKE8DtPzbjKrzbvUkGE7XbpVRm+JbB/InDVCuJygt/rAT1uyA/CoUZP0Iq7AUynAA"26997
+ }26998
+ },26999
+ "user_id": "@alice_1630:hs1",27000
+ "unsigned": {}27001
+ }27002
+ },27003
+ "@alice_1653:hs1": {27004
+ "ALICEDEVICE1653": {27005
+ "algorithms": [27006
+ "m.olm.v1.curve25519-aes-sha2",27007
+ "m.megolm.v1.aes-sha2"27008
+ ],27009
+ "device_id": "ALICEDEVICE1653",27010
+ "keys": {27011
+ "curve25519:ALICEDEVICE1653": "ydpM7Ew9rAdgrUAr9EUuOx6ufdXkcYg7yhBLaadSqgY",27012
+ "ed25519:ALICEDEVICE1653": "tI3/+RQ9zF0QGG40qiWxLucCMeFH+Bo7fLquymBEG2U"27013
+ },27014
+ "signatures": {27015
+ "@alice_1653:hs1": {27016
+ "ed25519:ALICEDEVICE1653": "6602cUR6LcE2pZc9K2nx9n8Udh+vOGtwnQ7/abx8JBubS7mNnlMO/IB1+Pu4eQDyO2kgf/w42RrhyJkIjS12AA"27017
+ }27018
+ },27019
+ "user_id": "@alice_1653:hs1",27020
+ "unsigned": {}27021
+ }27022
+ },27023
+ "@alice_1669:hs1": {27024
+ "ALICEDEVICE1669": {27025
+ "algorithms": [27026
+ "m.olm.v1.curve25519-aes-sha2",27027
+ "m.megolm.v1.aes-sha2"27028
+ ],27029
+ "device_id": "ALICEDEVICE1669",27030
+ "keys": {27031
+ "curve25519:ALICEDEVICE1669": "dDNJ2rF8qBHtxBLS4SHmHzfwVjiaBINZtSFDcYQKuEo",27032
+ "ed25519:ALICEDEVICE1669": "19+yHQn0Y25jVy44nuVz3Y8K9p5Cyd4jJUxO8h0wO68"27033
+ },27034
+ "signatures": {27035
+ "@alice_1669:hs1": {27036
+ "ed25519:ALICEDEVICE1669": "aBsD45+KLdTYeGUBM3ByErCmiu/aTU7LCrQEHrbfmnDtoQhhSIemlV185t6fURY0p1ixS2Elx/l44vh9/vVRAg"27037
+ }27038
+ },27039
+ "user_id": "@alice_1669:hs1",27040
+ "unsigned": {}27041
+ }27042
+ },27043
+ "@alice_1673:hs1": {27044
+ "ALICEDEVICE1673": {27045
+ "algorithms": [27046
+ "m.olm.v1.curve25519-aes-sha2",27047
+ "m.megolm.v1.aes-sha2"27048
+ ],27049
+ "device_id": "ALICEDEVICE1673",27050
+ "keys": {27051
+ "curve25519:ALICEDEVICE1673": "ZHKKsnF8PtbMW+7s5OoHMyLA0xc/OstFF5DCfrliYkc",27052
+ "ed25519:ALICEDEVICE1673": "cy/5K2vyx+xHy6NPCgKdOMZD61+ART+3d8/1AKxxrZ4"27053
+ },27054
+ "signatures": {27055
+ "@alice_1673:hs1": {27056
+ "ed25519:ALICEDEVICE1673": "z+WwkZO2wbGD94SG7XbdwjxUIfOILic3OrrTFD/g5HbQHtRWJ3pDHVi7DgduyE281RL+AFsZMFO7VV2pPCoRDA"27057
+ }27058
+ },27059
+ "user_id": "@alice_1673:hs1",27060
+ "unsigned": {}27061
+ }27062
+ },27063
+ "@alice_1683:hs1": {27064
+ "ALICEDEVICE1683": {27065
+ "algorithms": [27066
+ "m.olm.v1.curve25519-aes-sha2",27067
+ "m.megolm.v1.aes-sha2"27068
+ ],27069
+ "device_id": "ALICEDEVICE1683",27070
+ "keys": {27071
+ "curve25519:ALICEDEVICE1683": "NsYQl0CvIJKJYxb0szxTPebg4KoVqtIFMSGDXpgtJQs",27072
+ "ed25519:ALICEDEVICE1683": "qBuYyudYpXVZuIAAU+a37+O/HVIuK4uSEpEtFTdM7t8"27073
+ },27074
+ "signatures": {27075
+ "@alice_1683:hs1": {27076
+ "ed25519:ALICEDEVICE1683": "TsgniwMrIMkHj+RQ/EKSE1jLCUzmA4oDoUq/djwMSx5XtEvVSmP1jyLbnATd95GOgxz959rYd1V0mFSFEcMFDg"27077
+ }27078
+ },27079
+ "user_id": "@alice_1683:hs1",27080
+ "unsigned": {}27081
+ }27082
+ },27083
+ "@alice_1684:hs1": {27084
+ "ALICEDEVICE1684": {27085
+ "algorithms": [27086
+ "m.olm.v1.curve25519-aes-sha2",27087
+ "m.megolm.v1.aes-sha2"27088
+ ],27089
+ "device_id": "ALICEDEVICE1684",27090
+ "keys": {27091
+ "curve25519:ALICEDEVICE1684": "sAi7EYb4oGHfcwSS8lZaAZPSx2VUo7rzi9MC8udKWR4",27092
+ "ed25519:ALICEDEVICE1684": "yf0z1bGsc6V31B7sr77JEJw2eUSRuyRllb1wA3nhh/w"27093
+ },27094
+ "signatures": {27095
+ "@alice_1684:hs1": {27096
+ "ed25519:ALICEDEVICE1684": "tKfPaWekTcAHbXEiYLepUNBaYZjKKspJ/jTGMEVk6KQ5VbmyTjP1hZPrAQ7SmKHerTnGnTcd4Dptx/xlhy9DDA"27097
+ }27098
+ },27099
+ "user_id": "@alice_1684:hs1",27100
+ "unsigned": {}27101
+ }27102
+ },27103
+ "@alice_1691:hs1": {27104
+ "ALICEDEVICE1691": {27105
+ "algorithms": [27106
+ "m.olm.v1.curve25519-aes-sha2",27107
+ "m.megolm.v1.aes-sha2"27108
+ ],27109
+ "device_id": "ALICEDEVICE1691",27110
+ "keys": {27111
+ "curve25519:ALICEDEVICE1691": "PQahrzouxI8rp7BBcb2Efzn1t5L6SZgNsz3Cp52jAXI",27112
+ "ed25519:ALICEDEVICE1691": "7J+Y7aY9O9xjTU0jnZn7SM52rUl5imFuQ0ZdTrJcAZw"27113
+ },27114
+ "signatures": {27115
+ "@alice_1691:hs1": {27116
+ "ed25519:ALICEDEVICE1691": "pbmEnYwRRZJb4H9rb9WkBpNyNsKRyZtuN/aWF9fyureN27rPnSCYlY1c6cDq2iuTPLtM9TVSEQIFzjunPaRGCg"27117
+ }27118
+ },27119
+ "user_id": "@alice_1691:hs1",27120
+ "unsigned": {}27121
+ }27122
+ },27123
+ "@alice_1693:hs1": {27124
+ "ALICEDEVICE1693": {27125
+ "algorithms": [27126
+ "m.olm.v1.curve25519-aes-sha2",27127
+ "m.megolm.v1.aes-sha2"27128
+ ],27129
+ "device_id": "ALICEDEVICE1693",27130
+ "keys": {27131
+ "curve25519:ALICEDEVICE1693": "rtRGoR+MuRTImNq2prU3c1ZikaYGjMKHDXK9QkM7hhY",27132
+ "ed25519:ALICEDEVICE1693": "8ZSB6NjQ7cVbNGZNtzxiMVuZOgQOqfvxMIMY/7C257o"27133
+ },27134
+ "signatures": {27135
+ "@alice_1693:hs1": {27136
+ "ed25519:ALICEDEVICE1693": "28M/73LszGKmmdnAho9ghDmFS0mHW2kWjwsdGfmFRtI8feHgoQrahjYZTIDCyzlT5o1tA3gqxYZa8/gXAMi8AQ"27137
+ }27138
+ },27139
+ "user_id": "@alice_1693:hs1",27140
+ "unsigned": {}27141
+ }27142
+ },27143
+ "@alice_1717:hs1": {27144
+ "ALICEDEVICE1717": {27145
+ "algorithms": [27146
+ "m.olm.v1.curve25519-aes-sha2",27147
+ "m.megolm.v1.aes-sha2"27148
+ ],27149
+ "device_id": "ALICEDEVICE1717",27150
+ "keys": {27151
+ "curve25519:ALICEDEVICE1717": "g9zY/Ibe9IjfmXsIaNQfHcMBlfrTjzo+sNPBWLiICUA",27152
+ "ed25519:ALICEDEVICE1717": "+J8UQYmWWQ74bL1BLiREeqtRlYJ0rqZKE1ibVOT0too"27153
+ },27154
+ "signatures": {27155
+ "@alice_1717:hs1": {27156
+ "ed25519:ALICEDEVICE1717": "XteCC+mvIFtTqfxiPky6m8kpImWRSwXE72S6UCqjgl0FS9dVvfPI9puzI5pBpX+jtueV2wVqMYyh30zkiqakDQ"27157
+ }27158
+ },27159
+ "user_id": "@alice_1717:hs1",27160
+ "unsigned": {}27161
+ }27162
+ },27163
+ "@alice_171:hs1": {27164
+ "ALICEDEVICE171": {27165
+ "algorithms": [27166
+ "m.olm.v1.curve25519-aes-sha2",27167
+ "m.megolm.v1.aes-sha2"27168
+ ],27169
+ "device_id": "ALICEDEVICE171",27170
+ "keys": {27171
+ "curve25519:ALICEDEVICE171": "9AKRqltA5b4CEqwfoE2Vk6/66kgSaINQCDxBAimDGRA",27172
+ "ed25519:ALICEDEVICE171": "/fXAkPp2GvzzqiERe6Aqst9//REN2Fa0NfINW2Opop0"27173
+ },27174
+ "signatures": {27175
+ "@alice_171:hs1": {27176
+ "ed25519:ALICEDEVICE171": "HXO0P1XirjWp2x0D0HkO/is3UYGyAtPiA3STp8h4tjLhNBdY9uCKdhY9eTGiT7qoCztX5ygg/Yc4AS2mNdG4CA"27177
+ }27178
+ },27179
+ "user_id": "@alice_171:hs1",27180
+ "unsigned": {}27181
+ }27182
+ },27183
+ "@alice_1724:hs1": {27184
+ "ALICEDEVICE1724": {27185
+ "algorithms": [27186
+ "m.olm.v1.curve25519-aes-sha2",27187
+ "m.megolm.v1.aes-sha2"27188
+ ],27189
+ "device_id": "ALICEDEVICE1724",27190
+ "keys": {27191
+ "curve25519:ALICEDEVICE1724": "zJACqqf6r8h1M8/HkSlJJeRtnt6LdArrHlSQ46iy5lQ",27192
+ "ed25519:ALICEDEVICE1724": "Io1lcn+3SfyNAYB+PPEL8qB96qlW0QfDPyqkI27KN5E"27193
+ },27194
+ "signatures": {27195
+ "@alice_1724:hs1": {27196
+ "ed25519:ALICEDEVICE1724": "EMyb+Sm/WpZDgyvXU7ZyvU0+/NEbWsMAMDFXKpVxtjt17OshnVKuW7DCuzpFYaO/iE3meMsi8LsJC8ISBMd1Dg"27197
+ }27198
+ },27199
+ "user_id": "@alice_1724:hs1",27200
+ "unsigned": {}27201
+ }27202
+ },27203
+ "@alice_1731:hs1": {27204
+ "ALICEDEVICE1731": {27205
+ "algorithms": [27206
+ "m.olm.v1.curve25519-aes-sha2",27207
+ "m.megolm.v1.aes-sha2"27208
+ ],27209
+ "device_id": "ALICEDEVICE1731",27210
+ "keys": {27211
+ "curve25519:ALICEDEVICE1731": "qwEwrTk3nAsFVfI/3qOyA8BMk+Vh2INpWSqEbtV4YR4",27212
+ "ed25519:ALICEDEVICE1731": "yxRwC/1VDRscBVMDgufyy02yc9WytiRxW3yf99EVDU0"27213
+ },27214
+ "signatures": {27215
+ "@alice_1731:hs1": {27216
+ "ed25519:ALICEDEVICE1731": "qpFCKRfAj7vk9Q5xhiv5pS/ljU2z9e8zJhHg9BG/6xT4Enh03OTke2cR4DqglkEj4IXhSq8nKvW8qgRMxOERDQ"27217
+ }27218
+ },27219
+ "user_id": "@alice_1731:hs1",27220
+ "unsigned": {}27221
+ }27222
+ },27223
+ "@alice_1736:hs1": {27224
+ "ALICEDEVICE1736": {27225
+ "algorithms": [27226
+ "m.olm.v1.curve25519-aes-sha2",27227
+ "m.megolm.v1.aes-sha2"27228
+ ],27229
+ "device_id": "ALICEDEVICE1736",27230
+ "keys": {27231
+ "curve25519:ALICEDEVICE1736": "otFcP4vUx7yX39rcVziy3dLug1iTTpjgIyT1EEFr1Bk",27232
+ "ed25519:ALICEDEVICE1736": "8Tc985Y9YwnVy4vC2dm8UP1L8xdocZIpqbhRt0vBaX8"27233
+ },27234
+ "signatures": {27235
+ "@alice_1736:hs1": {27236
+ "ed25519:ALICEDEVICE1736": "tLh9qg1TDe8BPsAeGhl+YerZC+tguO1NOXnUl6NQXbJ2WVMiTkExdGxAetn6+XKzPtZDayVHXfcvHkVwy+xHAA"27237
+ }27238
+ },27239
+ "user_id": "@alice_1736:hs1",27240
+ "unsigned": {}27241
+ }27242
+ },27243
+ "@alice_1738:hs1": {27244
+ "ALICEDEVICE1738": {27245
+ "algorithms": [27246
+ "m.olm.v1.curve25519-aes-sha2",27247
+ "m.megolm.v1.aes-sha2"27248
+ ],27249
+ "device_id": "ALICEDEVICE1738",27250
+ "keys": {27251
+ "curve25519:ALICEDEVICE1738": "fO/pVg7t33OjH9k1xxYNL/yYunOx097uIgtMiSEDSE4",27252
+ "ed25519:ALICEDEVICE1738": "IgJrMEg7DFWVqoWy/Mt0m+SP45qkGQiwS8bG09xsZfg"27253
+ },27254
+ "signatures": {27255
+ "@alice_1738:hs1": {27256
+ "ed25519:ALICEDEVICE1738": "lZZOCgaGVHWjnj4Q7dI3Hm9tCd8oEqTSvcTSu5P7yoCQzmvZgfQs7XB2Q60d25qJqWFgdRaCh/EUuOMmyTr3CA"27257
+ }27258
+ },27259
+ "user_id": "@alice_1738:hs1",27260
+ "unsigned": {}27261
+ }27262
+ },27263
+ "@alice_1747:hs1": {27264
+ "ALICEDEVICE1747": {27265
+ "algorithms": [27266
+ "m.olm.v1.curve25519-aes-sha2",27267
+ "m.megolm.v1.aes-sha2"27268
+ ],27269
+ "device_id": "ALICEDEVICE1747",27270
+ "keys": {27271
+ "curve25519:ALICEDEVICE1747": "pSoVB5xErNe8z0MbLVNqS9F4YPdSG5LvaBuwkfYZ20Q",27272
+ "ed25519:ALICEDEVICE1747": "5bgY5zguJ9cAjuLtzTdqc+XmW4rweHjYkbB3TmtpfPw"27273
+ },27274
+ "signatures": {27275
+ "@alice_1747:hs1": {27276
+ "ed25519:ALICEDEVICE1747": "yaW5Kzr3G3jF7Qcy2jidwY/7o1801JByuHB+ypeEnES/RMGCdIyYpR+1Vuin7oogETJy+NgF80Awr/Vw7WdQDw"27277
+ }27278
+ },27279
+ "user_id": "@alice_1747:hs1",27280
+ "unsigned": {}27281
+ }27282
+ },27283
+ "@alice_1750:hs1": {27284
+ "ALICEDEVICE1750": {27285
+ "algorithms": [27286
+ "m.olm.v1.curve25519-aes-sha2",27287
+ "m.megolm.v1.aes-sha2"27288
+ ],27289
+ "device_id": "ALICEDEVICE1750",27290
+ "keys": {27291
+ "curve25519:ALICEDEVICE1750": "CtmoT4PMveW1HpW0oLHwkf2uyXcQb1p2eflWUAZ0IiI",27292
+ "ed25519:ALICEDEVICE1750": "ADiwW5zzWgq2KN9gtlPuIvD4gSfoW+f7zAe8IqGnSPk"27293
+ },27294
+ "signatures": {27295
+ "@alice_1750:hs1": {27296
+ "ed25519:ALICEDEVICE1750": "opSX64D6+cTRxUmrVSwJzKRjqr46vBpaJz5tpeWN55eEkLgg870PJ0KFKByG7rsNhYN0vpf9R6iOj+SfFOvjAA"27297
+ }27298
+ },27299
+ "user_id": "@alice_1750:hs1",27300
+ "unsigned": {}27301
+ }27302
+ },27303
+ "@alice_1759:hs1": {27304
+ "ALICEDEVICE1759": {27305
+ "algorithms": [27306
+ "m.olm.v1.curve25519-aes-sha2",27307
+ "m.megolm.v1.aes-sha2"27308
+ ],27309
+ "device_id": "ALICEDEVICE1759",27310
+ "keys": {27311
+ "curve25519:ALICEDEVICE1759": "Q7Loi4GmpdDlPOwNbF+nyEn5vC6am4+xP22LMxQpuFY",27312
+ "ed25519:ALICEDEVICE1759": "RaPflBwl3dO7h6LXUvQKkkgzWawN9XVoYffKYiyKS4s"27313
+ },27314
+ "signatures": {27315
+ "@alice_1759:hs1": {27316
+ "ed25519:ALICEDEVICE1759": "Vdsv3TCCvNjNolSBtQ45xqgopH/w8oi7YB2L7gdf2/duMBA2sUpw7IUu/oQuFWxBIyUZst29DrOjA7Z2jqy2DQ"27317
+ }27318
+ },27319
+ "user_id": "@alice_1759:hs1",27320
+ "unsigned": {}27321
+ }27322
+ },27323
+ "@alice_1769:hs1": {27324
+ "ALICEDEVICE1769": {27325
+ "algorithms": [27326
+ "m.olm.v1.curve25519-aes-sha2",27327
+ "m.megolm.v1.aes-sha2"27328
+ ],27329
+ "device_id": "ALICEDEVICE1769",27330
+ "keys": {27331
+ "curve25519:ALICEDEVICE1769": "ydTYVsiuQH6MeB0UEH/OhRDjv/ASWrflG2o8IiM/Bz4",27332
+ "ed25519:ALICEDEVICE1769": "oYr7fnD/NkzrbIyaCoFTpHXJlxwXLIPvw36G/Ci3pRQ"27333
+ },27334
+ "signatures": {27335
+ "@alice_1769:hs1": {27336
+ "ed25519:ALICEDEVICE1769": "YTUdZ6RwTY3bXRdpdcP14I3lIjSiWk0QvQLdBmeHFtS1p98f1IdUE5nvT5XNX+DgsmDCPzu0b2qGreC9zBAbBQ"27337
+ }27338
+ },27339
+ "user_id": "@alice_1769:hs1",27340
+ "unsigned": {}27341
+ }27342
+ },27343
+ "@alice_1780:hs1": {27344
+ "ALICEDEVICE1780": {27345
+ "algorithms": [27346
+ "m.olm.v1.curve25519-aes-sha2",27347
+ "m.megolm.v1.aes-sha2"27348
+ ],27349
+ "device_id": "ALICEDEVICE1780",27350
+ "keys": {27351
+ "curve25519:ALICEDEVICE1780": "242Pi0aRAN4esZr6PV//zT1pR2UgH6W6w3v1Fcu0xk8",27352
+ "ed25519:ALICEDEVICE1780": "aiwsrStIHieohgOpou/O/MiDSa3PFg3yimy0+nn0zHk"27353
+ },27354
+ "signatures": {27355
+ "@alice_1780:hs1": {27356
+ "ed25519:ALICEDEVICE1780": "wfFgr4c5X5KK35jNhi95IFf5nmBLbJEMGKWWFFKhc0UrkpsnHh4/fIry9xyn+JF8r1hC6CV7wCmPOXWojtjMDA"27357
+ }27358
+ },27359
+ "user_id": "@alice_1780:hs1",27360
+ "unsigned": {}27361
+ }27362
+ },27363
+ "@alice_1785:hs1": {27364
+ "ALICEDEVICE1785": {27365
+ "algorithms": [27366
+ "m.olm.v1.curve25519-aes-sha2",27367
+ "m.megolm.v1.aes-sha2"27368
+ ],27369
+ "device_id": "ALICEDEVICE1785",27370
+ "keys": {27371
+ "curve25519:ALICEDEVICE1785": "BFOk3FcTuDp1JQ5PLCwPGyEBT0ChywxhaIHvhGzDlEw",27372
+ "ed25519:ALICEDEVICE1785": "m/DddxZJ7snRm8uUmO0dMDT7pC3fAkti5ZoY472mBWM"27373
+ },27374
+ "signatures": {27375
+ "@alice_1785:hs1": {27376
+ "ed25519:ALICEDEVICE1785": "SeznMsWzxq2rnNjUp1TqzSZNPs3WW9plPNdSVkt8rv9X9Qo/ytbn3Ep3VJeOjkNzjpMv2KFlDSOFTbKT8/5DAQ"27377
+ }27378
+ },27379
+ "user_id": "@alice_1785:hs1",27380
+ "unsigned": {}27381
+ }27382
+ },27383
+ "@alice_1787:hs1": {27384
+ "ALICEDEVICE1787": {27385
+ "algorithms": [27386
+ "m.olm.v1.curve25519-aes-sha2",27387
+ "m.megolm.v1.aes-sha2"27388
+ ],27389
+ "device_id": "ALICEDEVICE1787",27390
+ "keys": {27391
+ "curve25519:ALICEDEVICE1787": "hpgqkO9ODGgxSMQoHnSEumoOw/O4g1LoQNX5VPGUbxk",27392
+ "ed25519:ALICEDEVICE1787": "K2C2Bzhcrkf5pgxLmrjPGznMHVbOlPMtDyqhpjdwAfw"27393
+ },27394
+ "signatures": {27395
+ "@alice_1787:hs1": {27396
+ "ed25519:ALICEDEVICE1787": "fm/dFHI7ZEcY8Lz242oANdWDdwgetprLqDrY69bk3SXqfAIJLnUv7JcYcHSWdG5XhWrKLa+XJszT9xynvsu9AQ"27397
+ }27398
+ },27399
+ "user_id": "@alice_1787:hs1",27400
+ "unsigned": {}27401
+ }27402
+ },27403
+ "@alice_1788:hs1": {27404
+ "ALICEDEVICE1788": {27405
+ "algorithms": [27406
+ "m.olm.v1.curve25519-aes-sha2",27407
+ "m.megolm.v1.aes-sha2"27408
+ ],27409
+ "device_id": "ALICEDEVICE1788",27410
+ "keys": {27411
+ "curve25519:ALICEDEVICE1788": "RhNDrzpqVALYriOh/APNc06nY5V7+NwJU5GFszq2xSA",27412
+ "ed25519:ALICEDEVICE1788": "3XIdXoSaUIci9oHOaUbLPjWuouDVZKILQkHPEsJ6UHQ"27413
+ },27414
+ "signatures": {27415
+ "@alice_1788:hs1": {27416
+ "ed25519:ALICEDEVICE1788": "bMCI+B3OGpNHB9uFco1UX2W6v9c5IHeMOEOmuwqtKE3pKQ5KF85SDmLbE/Qfi+RMNQ9aK6xrsWQUB+3KKMdZAw"27417
+ }27418
+ },27419
+ "user_id": "@alice_1788:hs1",27420
+ "unsigned": {}27421
+ }27422
+ },27423
+ "@alice_1798:hs1": {27424
+ "ALICEDEVICE1798": {27425
+ "algorithms": [27426
+ "m.olm.v1.curve25519-aes-sha2",27427
+ "m.megolm.v1.aes-sha2"27428
+ ],27429
+ "device_id": "ALICEDEVICE1798",27430
+ "keys": {27431
+ "curve25519:ALICEDEVICE1798": "ob0hFuf2gKuigIYXcad+v30bMq/1JfetmdJ6Uadm0jc",27432
+ "ed25519:ALICEDEVICE1798": "k0u05xmkrW8Lyo0XODLBY0jETHptuXKfgNcUU2LVoUU"27433
+ },27434
+ "signatures": {27435
+ "@alice_1798:hs1": {27436
+ "ed25519:ALICEDEVICE1798": "ZGCBThga067eYihqn4Xb2aXrPhYOorCinx+FxisUb+/RFh+xOfcS7TpkmvUjwDjLeKs/lReYjCEN+eIHrT5qCg"27437
+ }27438
+ },27439
+ "user_id": "@alice_1798:hs1",27440
+ "unsigned": {}27441
+ }27442
+ },27443
+ "@alice_179:hs1": {27444
+ "ALICEDEVICE179": {27445
+ "algorithms": [27446
+ "m.olm.v1.curve25519-aes-sha2",27447
+ "m.megolm.v1.aes-sha2"27448
+ ],27449
+ "device_id": "ALICEDEVICE179",27450
+ "keys": {27451
+ "curve25519:ALICEDEVICE179": "e2Jq9UL/NT5LEJMz3AbRBRGDBCFb0DYGTXRdnfZl+hU",27452
+ "ed25519:ALICEDEVICE179": "MsRAE3NEY0fONxhtDdMeka2EeAa24Vsb8x12be++SXM"27453
+ },27454
+ "signatures": {27455
+ "@alice_179:hs1": {27456
+ "ed25519:ALICEDEVICE179": "llN5e70tdIg64xM41Kifm18Y+zZunN3MU1DuB8AJ6p+9ntbaCOxaGUuhg11qiXA3eh/7z5YZdDh5+CvqB71SAw"27457
+ }27458
+ },27459
+ "user_id": "@alice_179:hs1",27460
+ "unsigned": {}27461
+ }27462
+ },27463
+ "@alice_1809:hs1": {27464
+ "ALICEDEVICE1809": {27465
+ "algorithms": [27466
+ "m.olm.v1.curve25519-aes-sha2",27467
+ "m.megolm.v1.aes-sha2"27468
+ ],27469
+ "device_id": "ALICEDEVICE1809",27470
+ "keys": {27471
+ "curve25519:ALICEDEVICE1809": "ipNbIs44DwIwTxhJiVXIzVPd+tN94Pw0Njcbgt6lsj4",27472
+ "ed25519:ALICEDEVICE1809": "WIUZQb1UUqkzwHmRa95I7LF45cs20E4VaEVKEYxiXt4"27473
+ },27474
+ "signatures": {27475
+ "@alice_1809:hs1": {27476
+ "ed25519:ALICEDEVICE1809": "Cjg+J+QMAeSLwVZFm2d6btUlJQ7XfIeG4FT6Wga9A2UQn+xtiTP9epOpGjwnkcIT/Md8+XuL7fTUeUnNke9eBw"27477
+ }27478
+ },27479
+ "user_id": "@alice_1809:hs1",27480
+ "unsigned": {}27481
+ }27482
+ },27483
+ "@alice_1817:hs1": {27484
+ "ALICEDEVICE1817": {27485
+ "algorithms": [27486
+ "m.olm.v1.curve25519-aes-sha2",27487
+ "m.megolm.v1.aes-sha2"27488
+ ],27489
+ "device_id": "ALICEDEVICE1817",27490
+ "keys": {27491
+ "curve25519:ALICEDEVICE1817": "7tjUEyehgX4hmgHa6mWoEJKNFx5VLdxM0HYyB3qkeGg",27492
+ "ed25519:ALICEDEVICE1817": "FaXcn0vHnAcutEXJjmUeZmrka/WCvxx3tZkVCm0q/jE"27493
+ },27494
+ "signatures": {27495
+ "@alice_1817:hs1": {27496
+ "ed25519:ALICEDEVICE1817": "TdWwJd1SlReL0iwacGiVNzjOcoKDmfHCVjox2rP0M5tSyPrqqBtpDjf8evQsk3U3UBBd4gGOzex2QrCmeaH5CQ"27497
+ }27498
+ },27499
+ "user_id": "@alice_1817:hs1",27500
+ "unsigned": {}27501
+ }27502
+ },27503
+ "@alice_1818:hs1": {27504
+ "ALICEDEVICE1818": {27505
+ "algorithms": [27506
+ "m.olm.v1.curve25519-aes-sha2",27507
+ "m.megolm.v1.aes-sha2"27508
+ ],27509
+ "device_id": "ALICEDEVICE1818",27510
+ "keys": {27511
+ "curve25519:ALICEDEVICE1818": "QLNTcrIl32Ejlj/L7CqgJufQMmV/oX2zftEiGVhBPBs",27512
+ "ed25519:ALICEDEVICE1818": "pntP5bpUgi7etMltdf3qQ1LxgEDqNVGWS5q1E49GjBw"27513
+ },27514
+ "signatures": {27515
+ "@alice_1818:hs1": {27516
+ "ed25519:ALICEDEVICE1818": "uHU29GAsk4X0jVE6XicgKj3k9mRMt/euSd1larhqAfJ7UYrD3Bf36Zhi02hrVgvZw2aPCbqQIQ2HrshXS+wkDQ"27517
+ }27518
+ },27519
+ "user_id": "@alice_1818:hs1",27520
+ "unsigned": {}27521
+ }27522
+ },27523
+ "@alice_1842:hs1": {27524
+ "ALICEDEVICE1842": {27525
+ "algorithms": [27526
+ "m.olm.v1.curve25519-aes-sha2",27527
+ "m.megolm.v1.aes-sha2"27528
+ ],27529
+ "device_id": "ALICEDEVICE1842",27530
+ "keys": {27531
+ "curve25519:ALICEDEVICE1842": "SwK85crLM1AzOcppvodcX/hefrh2EduQCMbG2I1eWC0",27532
+ "ed25519:ALICEDEVICE1842": "QydGH10GEm0tRMLZgjNkTib/LNWrfkiHkT8dNdxWNfU"27533
+ },27534
+ "signatures": {27535
+ "@alice_1842:hs1": {27536
+ "ed25519:ALICEDEVICE1842": "oR4HdQwZEb1vsrP3j+nHM26OiXv57XhKhYGuDOeAT8x1eG+1xj1PdVPeg0B4OLT1qkAw5FZvhy071t7uTnGLBg"27537
+ }27538
+ },27539
+ "user_id": "@alice_1842:hs1",27540
+ "unsigned": {}27541
+ }27542
+ },27543
+ "@alice_1853:hs1": {27544
+ "ALICEDEVICE1853": {27545
+ "algorithms": [27546
+ "m.olm.v1.curve25519-aes-sha2",27547
+ "m.megolm.v1.aes-sha2"27548
+ ],27549
+ "device_id": "ALICEDEVICE1853",27550
+ "keys": {27551
+ "curve25519:ALICEDEVICE1853": "sFCL7/FqpCPStBP9oRxVxLcEkjMvF79TMUWcj/fvOmY",27552
+ "ed25519:ALICEDEVICE1853": "4kEw9RC1L1eyeepKMTWI+GmCl4meX3S6UAeQfc2x5tg"27553
+ },27554
+ "signatures": {27555
+ "@alice_1853:hs1": {27556
+ "ed25519:ALICEDEVICE1853": "ORDZC9A8HWMQlIfYkWKwnbNU9l1z1PK44RNJMD4NImIEnwEoH7Q6+G24+JD9upS++N+xgMDM6xNKdBcVF5U2Bw"27557
+ }27558
+ },27559
+ "user_id": "@alice_1853:hs1",27560
+ "unsigned": {}27561
+ }27562
+ },27563
+ "@alice_185:hs1": {27564
+ "ALICEDEVICE185": {27565
+ "algorithms": [27566
+ "m.olm.v1.curve25519-aes-sha2",27567
+ "m.megolm.v1.aes-sha2"27568
+ ],27569
+ "device_id": "ALICEDEVICE185",27570
+ "keys": {27571
+ "curve25519:ALICEDEVICE185": "+g/q0YESOSRV2+hqmxwInf6ZWHyF2rGnqK2+zfzTggc",27572
+ "ed25519:ALICEDEVICE185": "9vSfbCe+vSDRXxISrIe0jvdcY/JdlT8oG9Kq7k/ea6s"27573
+ },27574
+ "signatures": {27575
+ "@alice_185:hs1": {27576
+ "ed25519:ALICEDEVICE185": "LnGoovxy7+RxP8K9AokdHZAkzgLbIIvpHeEoy4UQf5goGaoRbC1vW5Vc1fh6f51NQH+xfxqEROHd+flMaQQqDQ"27577
+ }27578
+ },27579
+ "user_id": "@alice_185:hs1",27580
+ "unsigned": {}27581
+ }27582
+ },27583
+ "@alice_1872:hs1": {27584
+ "ALICEDEVICE1872": {27585
+ "algorithms": [27586
+ "m.olm.v1.curve25519-aes-sha2",27587
+ "m.megolm.v1.aes-sha2"27588
+ ],27589
+ "device_id": "ALICEDEVICE1872",27590
+ "keys": {27591
+ "curve25519:ALICEDEVICE1872": "itpXVbTr2iXyy8+PChAENpxxLJy63aBda96HnZCi1F4",27592
+ "ed25519:ALICEDEVICE1872": "T6WQNGhI49vo90PiUrAec0RddIka0e27pq8BI4MIsRY"27593
+ },27594
+ "signatures": {27595
+ "@alice_1872:hs1": {27596
+ "ed25519:ALICEDEVICE1872": "sVn6eM3LHy2fi1+2u/VcnnO0ObvfXOaDfIIboRdNoUGB4lLdEmYi0EAKIFqF+04W6uVjcqthmT+7+Jl/8UVVDw"27597
+ }27598
+ },27599
+ "user_id": "@alice_1872:hs1",27600
+ "unsigned": {}27601
+ }27602
+ },27603
+ "@alice_1893:hs1": {27604
+ "ALICEDEVICE1893": {27605
+ "algorithms": [27606
+ "m.olm.v1.curve25519-aes-sha2",27607
+ "m.megolm.v1.aes-sha2"27608
+ ],27609
+ "device_id": "ALICEDEVICE1893",27610
+ "keys": {27611
+ "curve25519:ALICEDEVICE1893": "PfRLhyXIy6VBO79hvzW4oJ5hRK10XR1AK7YEaEIR5ww",27612
+ "ed25519:ALICEDEVICE1893": "iQ+IK5kPCMaU6336HyysNI/uHhrR9v/VFLBTN3TP6F8"27613
+ },27614
+ "signatures": {27615
+ "@alice_1893:hs1": {27616
+ "ed25519:ALICEDEVICE1893": "2jMyIGuFYFPSbmMMcESpOFk8ybhKvhvcDp7EF0+mYxyClnJwcLk72fqOr5yiwOWwcSL7v+cXyK/dgI+jJmRsDA"27617
+ }27618
+ },27619
+ "user_id": "@alice_1893:hs1",27620
+ "unsigned": {}27621
+ }27622
+ },27623
+ "@alice_1902:hs1": {27624
+ "ALICEDEVICE1902": {27625
+ "algorithms": [27626
+ "m.olm.v1.curve25519-aes-sha2",27627
+ "m.megolm.v1.aes-sha2"27628
+ ],27629
+ "device_id": "ALICEDEVICE1902",27630
+ "keys": {27631
+ "curve25519:ALICEDEVICE1902": "uL/nkqDGs8tbPoiE7MVoH2s9y5bx3i9GzvEtNGAh1lo",27632
+ "ed25519:ALICEDEVICE1902": "mFpxk87zIm1D27cIyWuUjfu97XlpaOCmQu3Znndlz8Q"27633
+ },27634
+ "signatures": {27635
+ "@alice_1902:hs1": {27636
+ "ed25519:ALICEDEVICE1902": "eoQ5hlEqHHBWHTRGJLczUBx+laNl0K47hhtt9k6xf6gCyQ5U47peTHJvqGx8rOBaEy3kuKGGOXNDIqqxu9QtDQ"27637
+ }27638
+ },27639
+ "user_id": "@alice_1902:hs1",27640
+ "unsigned": {}27641
+ }27642
+ },27643
+ "@alice_1903:hs1": {27644
+ "ALICEDEVICE1903": {27645
+ "algorithms": [27646
+ "m.olm.v1.curve25519-aes-sha2",27647
+ "m.megolm.v1.aes-sha2"27648
+ ],27649
+ "device_id": "ALICEDEVICE1903",27650
+ "keys": {27651
+ "curve25519:ALICEDEVICE1903": "AMqoCj+Ta3fZTUtRhP39VRsOxFkYy7AyV7PL/OofR2w",27652
+ "ed25519:ALICEDEVICE1903": "McxKE6dHFbM5Y1VhXlFqQnjZsLEgvlBi0OOcawOta64"27653
+ },27654
+ "signatures": {27655
+ "@alice_1903:hs1": {27656
+ "ed25519:ALICEDEVICE1903": "kDvd8CAVEcz8zM8ix54/HTxXELpfltOsP019bMTDKR6kYUNKb1SEQ2q5IGWBH/dp4+8OggPuFbCKbrYeJ55zAQ"27657
+ }27658
+ },27659
+ "user_id": "@alice_1903:hs1",27660
+ "unsigned": {}27661
+ }27662
+ },27663
+ "@alice_1911:hs1": {27664
+ "ALICEDEVICE1911": {27665
+ "algorithms": [27666
+ "m.olm.v1.curve25519-aes-sha2",27667
+ "m.megolm.v1.aes-sha2"27668
+ ],27669
+ "device_id": "ALICEDEVICE1911",27670
+ "keys": {27671
+ "curve25519:ALICEDEVICE1911": "xq09jLssBLh4fSfj4qF7O+tHqCvwQSc13FCXPHYi728",27672
+ "ed25519:ALICEDEVICE1911": "eGauqXQgkIote3tbqJ4isa1gpmR6aQmsTHtaJEIvC1I"27673
+ },27674
+ "signatures": {27675
+ "@alice_1911:hs1": {27676
+ "ed25519:ALICEDEVICE1911": "mFzZ0oK8P6WdZ0aBylM8hMmM7FQ9nSkrfmRZA0yDJQTmPAles4zbBeNaKXJ+M8oJ/9xXl03k3IoPVi0577VeAQ"27677
+ }27678
+ },27679
+ "user_id": "@alice_1911:hs1",27680
+ "unsigned": {}27681
+ }27682
+ },27683
+ "@alice_1920:hs1": {27684
+ "ALICEDEVICE1920": {27685
+ "algorithms": [27686
+ "m.olm.v1.curve25519-aes-sha2",27687
+ "m.megolm.v1.aes-sha2"27688
+ ],27689
+ "device_id": "ALICEDEVICE1920",27690
+ "keys": {27691
+ "curve25519:ALICEDEVICE1920": "v0nbfUlhQtjzbmZCqCHVPiw8mqNtKWLYLlaatImxgFc",27692
+ "ed25519:ALICEDEVICE1920": "kltLEU3EGv5Ey6TQVtcEcTW4BQ/XYW5oQiHtAVY6Y3U"27693
+ },27694
+ "signatures": {27695
+ "@alice_1920:hs1": {27696
+ "ed25519:ALICEDEVICE1920": "UTYMs2upamiz9PRh/4xy80wX4kQlV8MSHzVoRt3MJtuRw089+Ydbl9exoPCIgYSizijzo0T3uw36U2KRqvlZCA"27697
+ }27698
+ },27699
+ "user_id": "@alice_1920:hs1",27700
+ "unsigned": {}27701
+ }27702
+ },27703
+ "@alice_1929:hs1": {27704
+ "ALICEDEVICE1929": {27705
+ "algorithms": [27706
+ "m.olm.v1.curve25519-aes-sha2",27707
+ "m.megolm.v1.aes-sha2"27708
+ ],27709
+ "device_id": "ALICEDEVICE1929",27710
+ "keys": {27711
+ "curve25519:ALICEDEVICE1929": "e+2rxs4hcYpDMp1RacesPqZ1tbL5Pz5gfL/tjrMc3j0",27712
+ "ed25519:ALICEDEVICE1929": "ULVstXBzDUeostZIC26d+3cTjwDn5M0fp5lbE+exFh0"27713
+ },27714
+ "signatures": {27715
+ "@alice_1929:hs1": {27716
+ "ed25519:ALICEDEVICE1929": "citlJgJUXA+mEAbVTohvIuE7EFLY2j4nf57l5S8bEs7PsaLN+s30SkmHS+WdYbdsSbslyAHblMOMYUlAMrCNDA"27717
+ }27718
+ },27719
+ "user_id": "@alice_1929:hs1",27720
+ "unsigned": {}27721
+ }27722
+ },27723
+ "@alice_1930:hs1": {27724
+ "ALICEDEVICE1930": {27725
+ "algorithms": [27726
+ "m.olm.v1.curve25519-aes-sha2",27727
+ "m.megolm.v1.aes-sha2"27728
+ ],27729
+ "device_id": "ALICEDEVICE1930",27730
+ "keys": {27731
+ "curve25519:ALICEDEVICE1930": "xehd7Xuzu2dS62ax4DtEQj3ayYICXG+M6jx7HbmEmkA",27732
+ "ed25519:ALICEDEVICE1930": "gDhdBdKY4d6JVqI7wNcED+RVaQW4VlZDgDB3jPFsMXk"27733
+ },27734
+ "signatures": {27735
+ "@alice_1930:hs1": {27736
+ "ed25519:ALICEDEVICE1930": "DqNxyOITbpfg1WTOp+DV6R3acSEFR7iToAHtxSOI6Gn3MlFODVCqDeMmVWMgIuEgBtKt5tMuUP1zzuyEdNACDQ"27737
+ }27738
+ },27739
+ "user_id": "@alice_1930:hs1",27740
+ "unsigned": {}27741
+ }27742
+ },27743
+ "@alice_1940:hs1": {27744
+ "ALICEDEVICE1940": {27745
+ "algorithms": [27746
+ "m.olm.v1.curve25519-aes-sha2",27747
+ "m.megolm.v1.aes-sha2"27748
+ ],27749
+ "device_id": "ALICEDEVICE1940",27750
+ "keys": {27751
+ "curve25519:ALICEDEVICE1940": "LeShwAJrQmkvDF4+R237EF9e5C2Li/QXFBAAFtQpTBg",27752
+ "ed25519:ALICEDEVICE1940": "bEKmGHdU5jGMVFUjAX5hCpy2Jlt8Cml5C5Ge9G0MH0c"27753
+ },27754
+ "signatures": {27755
+ "@alice_1940:hs1": {27756
+ "ed25519:ALICEDEVICE1940": "lYx+Gymz4PTOCV+8nrhVu5IdbF9NnwmB9g5trcYUeDRKgFQAVQWFhms54C+qjHkQCUfDiwJV3fFfKbjuXhpJDA"27757
+ }27758
+ },27759
+ "user_id": "@alice_1940:hs1",27760
+ "unsigned": {}27761
+ }27762
+ },27763
+ "@alice_194:hs1": {27764
+ "ALICEDEVICE194": {27765
+ "algorithms": [27766
+ "m.olm.v1.curve25519-aes-sha2",27767
+ "m.megolm.v1.aes-sha2"27768
+ ],27769
+ "device_id": "ALICEDEVICE194",27770
+ "keys": {27771
+ "curve25519:ALICEDEVICE194": "629fTSDy1Ejpni8NnzlS+IE6HD3jP7jZiJJhVU6bMSU",27772
+ "ed25519:ALICEDEVICE194": "JR882IZCc7/SktZ+2gi5MxaYgtBurfZ9AhzxTzcKpN4"27773
+ },27774
+ "signatures": {27775
+ "@alice_194:hs1": {27776
+ "ed25519:ALICEDEVICE194": "Ulh+20eJFPUw9dCJUy2X9mM1IqZQeKt9nLKfZp2vNIcKZP69RErq1gYapKLP1vuETaYhIjuv9OiO/TAG6mrPAQ"27777
+ }27778
+ },27779
+ "user_id": "@alice_194:hs1",27780
+ "unsigned": {}27781
+ }27782
+ },27783
+ "@alice_1956:hs1": {27784
+ "ALICEDEVICE1956": {27785
+ "algorithms": [27786
+ "m.olm.v1.curve25519-aes-sha2",27787
+ "m.megolm.v1.aes-sha2"27788
+ ],27789
+ "device_id": "ALICEDEVICE1956",27790
+ "keys": {27791
+ "curve25519:ALICEDEVICE1956": "SCuUYuQKRN8PPKs1sk6uUcfr3fQw+RJKGNXfj/7P+g0",27792
+ "ed25519:ALICEDEVICE1956": "KKvq65ilUd8qEcXiKKUwwNyXzpNjP4WObM10ElOanxE"27793
+ },27794
+ "signatures": {27795
+ "@alice_1956:hs1": {27796
+ "ed25519:ALICEDEVICE1956": "qz1el9ZbENZoiDLMxphRwftBJ1nX6WCxEIuczsZ3njvbyTwzVxL/w6txZD75e/mOjitYxrXb+2y+iknHVqFlCw"27797
+ }27798
+ },27799
+ "user_id": "@alice_1956:hs1",27800
+ "unsigned": {}27801
+ }27802
+ },27803
+ "@alice_1969:hs1": {27804
+ "ALICEDEVICE1969": {27805
+ "algorithms": [27806
+ "m.olm.v1.curve25519-aes-sha2",27807
+ "m.megolm.v1.aes-sha2"27808
+ ],27809
+ "device_id": "ALICEDEVICE1969",27810
+ "keys": {27811
+ "curve25519:ALICEDEVICE1969": "w1ckQEJyeyCwFL9o3c3Ul7oPfkxvym38WidGsfkL/Fs",27812
+ "ed25519:ALICEDEVICE1969": "PpkvHTZLNPopQeSkWbtSEaVDxV/Vh9pvnNwx47rH360"27813
+ },27814
+ "signatures": {27815
+ "@alice_1969:hs1": {27816
+ "ed25519:ALICEDEVICE1969": "LgbYbot8k83qftqnRx+s/iqREw14sAD1UJKVNLmwiS7yQawi7E1XOqoTVIo4uUks824E/sKLq2kwSXWlNt3XBg"27817
+ }27818
+ },27819
+ "user_id": "@alice_1969:hs1",27820
+ "unsigned": {}27821
+ }27822
+ },27823
+ "@alice_1987:hs1": {27824
+ "ALICEDEVICE1987": {27825
+ "algorithms": [27826
+ "m.olm.v1.curve25519-aes-sha2",27827
+ "m.megolm.v1.aes-sha2"27828
+ ],27829
+ "device_id": "ALICEDEVICE1987",27830
+ "keys": {27831
+ "curve25519:ALICEDEVICE1987": "xJAyzhUAbTJQPHEBjgsoX0sJM7KMUAxPE76155BuP0Q",27832
+ "ed25519:ALICEDEVICE1987": "XNFySAntl1dcCnKcY8NkXPyt9MD7YRAexTqYoq4inYo"27833
+ },27834
+ "signatures": {27835
+ "@alice_1987:hs1": {27836
+ "ed25519:ALICEDEVICE1987": "Sniy0RxnL23Vg6YSzvYhb1zA3RipxM7Kj7sEEyO9UVcM5ZX2Hw5N3o/aXNViN/h/7ce/kD9gAaSvWbKbRokJCg"27837
+ }27838
+ },27839
+ "user_id": "@alice_1987:hs1",27840
+ "unsigned": {}27841
+ }27842
+ },27843
+ "@alice_1990:hs1": {27844
+ "ALICEDEVICE1990": {27845
+ "algorithms": [27846
+ "m.olm.v1.curve25519-aes-sha2",27847
+ "m.megolm.v1.aes-sha2"27848
+ ],27849
+ "device_id": "ALICEDEVICE1990",27850
+ "keys": {27851
+ "curve25519:ALICEDEVICE1990": "lUtUhzbXC9rXpDVI5sdCGVysWXsRkX/LdEj+mKlijy0",27852
+ "ed25519:ALICEDEVICE1990": "ZH9zAffAn5znRKLcFNx8nASWVpgVWL06yD832EkH9f8"27853
+ },27854
+ "signatures": {27855
+ "@alice_1990:hs1": {27856
+ "ed25519:ALICEDEVICE1990": "i3UPR29r6oI4rNlrhFu9a8eJU6oGnmleVekjs+rNA/lrB65qW8kWyTZHwqi35IJUmsTdZw+9URr0POKs+N4EDw"27857
+ }27858
+ },27859
+ "user_id": "@alice_1990:hs1",27860
+ "unsigned": {}27861
+ }27862
+ },27863
+ "@alice_1992:hs1": {27864
+ "ALICEDEVICE1992": {27865
+ "algorithms": [27866
+ "m.olm.v1.curve25519-aes-sha2",27867
+ "m.megolm.v1.aes-sha2"27868
+ ],27869
+ "device_id": "ALICEDEVICE1992",27870
+ "keys": {27871
+ "curve25519:ALICEDEVICE1992": "InzlOIm4Nql6WAaDLbjhtS9dn8oB6d2wQo5xKQo9SzM",27872
+ "ed25519:ALICEDEVICE1992": "+mDIKz0Nn2O9usGNT0JD8tBycZeFCpLUyk1KF4aGLRM"27873
+ },27874
+ "signatures": {27875
+ "@alice_1992:hs1": {27876
+ "ed25519:ALICEDEVICE1992": "Eqn2DBfNe+Vj1ULktFZ4CctnVXZC85tvBap7UHmQfKechVyYPe6igGiQMxZL6ZiL1gx1f3xewZeU+DjK8zU3Cw"27877
+ }27878
+ },27879
+ "user_id": "@alice_1992:hs1",27880
+ "unsigned": {}27881
+ }27882
+ },27883
+ "@alice_206:hs1": {27884
+ "ALICEDEVICE206": {27885
+ "algorithms": [27886
+ "m.olm.v1.curve25519-aes-sha2",27887
+ "m.megolm.v1.aes-sha2"27888
+ ],27889
+ "device_id": "ALICEDEVICE206",27890
+ "keys": {27891
+ "curve25519:ALICEDEVICE206": "fzUZsQ2j+HbA3PBR717yn6RKtnG4dv/tOuYh7T9h+SY",27892
+ "ed25519:ALICEDEVICE206": "y0P8nx9SEEyrdyTisKL+KIXYC8AkZeY1zZrzKeiWUEY"27893
+ },27894
+ "signatures": {27895
+ "@alice_206:hs1": {27896
+ "ed25519:ALICEDEVICE206": "NZR4lZCLf4lYYbOMAKK+LpXFBRjfhybOMH6fAZUG7Xx3qRWcsoatNV16ZQG07rpqAuMgKUdcwxgonYvM0P7JDw"27897
+ }27898
+ },27899
+ "user_id": "@alice_206:hs1",27900
+ "unsigned": {}27901
+ }27902
+ },27903
+ "@alice_229:hs1": {27904
+ "ALICEDEVICE229": {27905
+ "algorithms": [27906
+ "m.olm.v1.curve25519-aes-sha2",27907
+ "m.megolm.v1.aes-sha2"27908
+ ],27909
+ "device_id": "ALICEDEVICE229",27910
+ "keys": {27911
+ "curve25519:ALICEDEVICE229": "Cff4usOxB+GHbRQBOhVJC835SDZ4m/ieeLVfg7vm9mM",27912
+ "ed25519:ALICEDEVICE229": "UGwbZrHD7oglJhY5+yfJD137JfuUIjp4/p/D+8HUOQk"27913
+ },27914
+ "signatures": {27915
+ "@alice_229:hs1": {27916
+ "ed25519:ALICEDEVICE229": "blmXEv8aLBl/H41pptq+piElKpNDaTfyUaYQNvTEmAp2Dt2jEbHfKtNv/UmhHX9PsEYeZPLFRxjxLn9CvLFcCA"27917
+ }27918
+ },27919
+ "user_id": "@alice_229:hs1",27920
+ "unsigned": {}27921
+ }27922
+ },27923
+ "@alice_240:hs1": {27924
+ "ALICEDEVICE240": {27925
+ "algorithms": [27926
+ "m.olm.v1.curve25519-aes-sha2",27927
+ "m.megolm.v1.aes-sha2"27928
+ ],27929
+ "device_id": "ALICEDEVICE240",27930
+ "keys": {27931
+ "curve25519:ALICEDEVICE240": "VLQGTbkUin/DrT3t8o9inZ25NbfuP5QHYbKcy0MN5Fo",27932
+ "ed25519:ALICEDEVICE240": "0pZt4Jhe5BazQsM854yempTafhibl8SIazC9OQ3n2Co"27933
+ },27934
+ "signatures": {27935
+ "@alice_240:hs1": {27936
+ "ed25519:ALICEDEVICE240": "2zV93B5X2lKhoVQj6pd5P+i2pQBziSVI/XMn/jUcQJUIKT5ZnKOvNEkYbQ5KGnP/RqUbjwvW18y+/h/0YjpHDg"27937
+ }27938
+ },27939
+ "user_id": "@alice_240:hs1",27940
+ "unsigned": {}27941
+ }27942
+ },27943
+ "@alice_256:hs1": {27944
+ "ALICEDEVICE256": {27945
+ "algorithms": [27946
+ "m.olm.v1.curve25519-aes-sha2",27947
+ "m.megolm.v1.aes-sha2"27948
+ ],27949
+ "device_id": "ALICEDEVICE256",27950
+ "keys": {27951
+ "curve25519:ALICEDEVICE256": "RxW+ktQ01VlykBMTwhg0QvP8ewORIX5AaGKpqsX/sn4",27952
+ "ed25519:ALICEDEVICE256": "VWEdTdO8efLum0KzS4ss8gZNTEnnVk1kjnHxNYq9ZqU"27953
+ },27954
+ "signatures": {27955
+ "@alice_256:hs1": {27956
+ "ed25519:ALICEDEVICE256": "5rrjPo6KCOpAUQ5Pn3L4cqevkh+rGSfflxel0Q+IWFnCyUIILLvEPBZ8bv5p+aOwb7+QMN17jWEe5bMRzPX/Aw"27957
+ }27958
+ },27959
+ "user_id": "@alice_256:hs1",27960
+ "unsigned": {}27961
+ }27962
+ },27963
+ "@alice_26:hs1": {27964
+ "ALICEDEVICE26": {27965
+ "algorithms": [27966
+ "m.olm.v1.curve25519-aes-sha2",27967
+ "m.megolm.v1.aes-sha2"27968
+ ],27969
+ "device_id": "ALICEDEVICE26",27970
+ "keys": {27971
+ "curve25519:ALICEDEVICE26": "HoGyXqUnEsfEleFYVIbZEwAAuYtH8G1emefo42oN/DU",27972
+ "ed25519:ALICEDEVICE26": "SEE1Y5s6r9tQS+G0g/QLaZL8sha3bowOCCEF5NLb0nc"27973
+ },27974
+ "signatures": {27975
+ "@alice_26:hs1": {27976
+ "ed25519:ALICEDEVICE26": "0dlMDeZqabMD2LbQ9g/hg7/0Bu6ZUN5RnltQ0ygNbD33vLvVoYk4kmLgluqUxkgk0RIYBbUgydBzjlxixoJlDQ"27977
+ }27978
+ },27979
+ "user_id": "@alice_26:hs1",27980
+ "unsigned": {}27981
+ }27982
+ },27983
+ "@alice_276:hs1": {27984
+ "ALICEDEVICE276": {27985
+ "algorithms": [27986
+ "m.olm.v1.curve25519-aes-sha2",27987
+ "m.megolm.v1.aes-sha2"27988
+ ],27989
+ "device_id": "ALICEDEVICE276",27990
+ "keys": {27991
+ "curve25519:ALICEDEVICE276": "p0k83Q4yMI3A2MRxgg7RbcocxyYB79fCx//TBPiCU30",27992
+ "ed25519:ALICEDEVICE276": "hVl05/nWMNHJ0SP2WYZNehPbPf3CZWLXRqpvdNsWIyk"27993
+ },27994
+ "signatures": {27995
+ "@alice_276:hs1": {27996
+ "ed25519:ALICEDEVICE276": "PEKS9J09VffhTg/l83U6P0aPqGF1YBPwiQKYCCojVZA5yvb/SNSs4vIluvwgFh+xrhv4+cP2//Fg1bLba3orDA"27997
+ }27998
+ },27999
+ "user_id": "@alice_276:hs1",28000
+ "unsigned": {}28001
+ }28002
+ },28003
+ "@alice_283:hs1": {28004
+ "ALICEDEVICE283": {28005
+ "algorithms": [28006
+ "m.olm.v1.curve25519-aes-sha2",28007
+ "m.megolm.v1.aes-sha2"28008
+ ],28009
+ "device_id": "ALICEDEVICE283",28010
+ "keys": {28011
+ "curve25519:ALICEDEVICE283": "6wpm1tMeM+nSOY9epT7vvAyffbmUJ35w+FLn3CmgV2I",28012
+ "ed25519:ALICEDEVICE283": "saUDbjkzZiDTs52RrE/cXhtPd1Z95XdU0DQh/Bmh4z8"28013
+ },28014
+ "signatures": {28015
+ "@alice_283:hs1": {28016
+ "ed25519:ALICEDEVICE283": "yy6LBir1wueyaDiONulrp47C5R5uAivQSFL7XNrzky7O/UuW+LLQ0wAnCV6igXR1747fLQsuqaqxUm5Hgm3iDw"28017
+ }28018
+ },28019
+ "user_id": "@alice_283:hs1",28020
+ "unsigned": {}28021
+ }28022
+ },28023
+ "@alice_28:hs1": {28024
+ "ALICEDEVICE28": {28025
+ "algorithms": [28026
+ "m.olm.v1.curve25519-aes-sha2",28027
+ "m.megolm.v1.aes-sha2"28028
+ ],28029
+ "device_id": "ALICEDEVICE28",28030
+ "keys": {28031
+ "curve25519:ALICEDEVICE28": "6WG7CuIUqpLA5dAR1lzWhrp6Skn+S7epoW4aMR0IciQ",28032
+ "ed25519:ALICEDEVICE28": "E/tIj2ZS9Ty5P0BoTTdbGMzZSCNOtJdEROrm0cEldls"28033
+ },28034
+ "signatures": {28035
+ "@alice_28:hs1": {28036
+ "ed25519:ALICEDEVICE28": "ro1+TO7GcZirWVFyEjD846O9Yu8J8jrnWcxz40EuGUm+o0ZXo5EO7fSP0/FJpR0OHAvSCyFXORoz0pP4KlrTDw"28037
+ }28038
+ },28039
+ "user_id": "@alice_28:hs1",28040
+ "unsigned": {}28041
+ }28042
+ },28043
+ "@alice_291:hs1": {28044
+ "ALICEDEVICE291": {28045
+ "algorithms": [28046
+ "m.olm.v1.curve25519-aes-sha2",28047
+ "m.megolm.v1.aes-sha2"28048
+ ],28049
+ "device_id": "ALICEDEVICE291",28050
+ "keys": {28051
+ "curve25519:ALICEDEVICE291": "Ma+NdfI0bg5Y9wzmfNJ8q0y5+lnIU1EPUrX8M82BK2w",28052
+ "ed25519:ALICEDEVICE291": "CSeexGcXw7G61qoGUcS0p3QhB8IZrDNYq/lbVhLYf34"28053
+ },28054
+ "signatures": {28055
+ "@alice_291:hs1": {28056
+ "ed25519:ALICEDEVICE291": "CHHYPz5boZDxCoEaCQIY8w0UO51Utrze2hbfjCSqlNCWj1AU/CWJlPt+plbTZf/1nEq8Il8ID0NnhoIr0OvBBA"28057
+ }28058
+ },28059
+ "user_id": "@alice_291:hs1",28060
+ "unsigned": {}28061
+ }28062
+ },28063
+ "@alice_296:hs1": {28064
+ "ALICEDEVICE296": {28065
+ "algorithms": [28066
+ "m.olm.v1.curve25519-aes-sha2",28067
+ "m.megolm.v1.aes-sha2"28068
+ ],28069
+ "device_id": "ALICEDEVICE296",28070
+ "keys": {28071
+ "curve25519:ALICEDEVICE296": "65uVTP8OymFZtNPhxS7hTMzRYNE50Q0jud+G6FCGbFQ",28072
+ "ed25519:ALICEDEVICE296": "M7vTMe4kZYH3YnC0hrOSC0PL3+K+Wsqt8EjfV912n2k"28073
+ },28074
+ "signatures": {28075
+ "@alice_296:hs1": {28076
+ "ed25519:ALICEDEVICE296": "/qsBk3Fks73iI6TDfD3yynK5P1n5QWyGlqu+/4axOV/hnZyP2I21MmLlv4AVjktdtdDMH1TS8zwfdq7aEy71CA"28077
+ }28078
+ },28079
+ "user_id": "@alice_296:hs1",28080
+ "unsigned": {}28081
+ }28082
+ },28083
+ "@alice_29:hs1": {28084
+ "ALICEDEVICE29": {28085
+ "algorithms": [28086
+ "m.olm.v1.curve25519-aes-sha2",28087
+ "m.megolm.v1.aes-sha2"28088
+ ],28089
+ "device_id": "ALICEDEVICE29",28090
+ "keys": {28091
+ "curve25519:ALICEDEVICE29": "VjrXvSm/6VpXGDNtm48P+nq9TBA6uIStV8IAWQ2M4Es",28092
+ "ed25519:ALICEDEVICE29": "NiqojwhfxgyT69KuxCoTFEIbDnCJbkvuruxSsZxignk"28093
+ },28094
+ "signatures": {28095
+ "@alice_29:hs1": {28096
+ "ed25519:ALICEDEVICE29": "MAyIlX2awdhCrcuSa2lPPoBRck1kF8TLPlpb/+0ERSyhniN5vstJQEeTvONzrAE9uQrtzr/A8dVC+4lKBEavAw"28097
+ }28098
+ },28099
+ "user_id": "@alice_29:hs1",28100
+ "unsigned": {}28101
+ }28102
+ },28103
+ "@alice_301:hs1": {28104
+ "ALICEDEVICE301": {28105
+ "algorithms": [28106
+ "m.olm.v1.curve25519-aes-sha2",28107
+ "m.megolm.v1.aes-sha2"28108
+ ],28109
+ "device_id": "ALICEDEVICE301",28110
+ "keys": {28111
+ "curve25519:ALICEDEVICE301": "0+o6GR2f1+xj59JTJJFgC/HNvhusLxRjUYVUlMSxNyw",28112
+ "ed25519:ALICEDEVICE301": "i1Zydgw7oYELzpS+TDmhd5GRlnpjwTNOuE2J14/YrOA"28113
+ },28114
+ "signatures": {28115
+ "@alice_301:hs1": {28116
+ "ed25519:ALICEDEVICE301": "NFZXsvzpy+Awitg8cPAZUidciU6aRTcApT/r5spBPaTgac648HhoKRy/DYhwCgBKuT44OBwKANMPTxWQ3hejAA"28117
+ }28118
+ },28119
+ "user_id": "@alice_301:hs1",28120
+ "unsigned": {}28121
+ }28122
+ },28123
+ "@alice_303:hs1": {28124
+ "ALICEDEVICE303": {28125
+ "algorithms": [28126
+ "m.olm.v1.curve25519-aes-sha2",28127
+ "m.megolm.v1.aes-sha2"28128
+ ],28129
+ "device_id": "ALICEDEVICE303",28130
+ "keys": {28131
+ "curve25519:ALICEDEVICE303": "rq7ZG+wx3gAm58lOBDewAFNOfcj+MHOswPxwrtj+RxU",28132
+ "ed25519:ALICEDEVICE303": "SyBW0ePEYwRIOagRBiA1SFjMZgORxgqdZ/KHJEbsJ6c"28133
+ },28134
+ "signatures": {28135
+ "@alice_303:hs1": {28136
+ "ed25519:ALICEDEVICE303": "YcgWMaz9COEBQZt40raLyM18mKcd2TjOcYV6Oa7i2kTsSaSTpNEUwlXSRV4UMNyZHtohbEE/kaiNL3ALcaQBDA"28137
+ }28138
+ },28139
+ "user_id": "@alice_303:hs1",28140
+ "unsigned": {}28141
+ }28142
+ },28143
+ "@alice_30:hs1": {28144
+ "ALICEDEVICE30": {28145
+ "algorithms": [28146
+ "m.olm.v1.curve25519-aes-sha2",28147
+ "m.megolm.v1.aes-sha2"28148
+ ],28149
+ "device_id": "ALICEDEVICE30",28150
+ "keys": {28151
+ "curve25519:ALICEDEVICE30": "Cy40syO0KtSKScCO8EsANeM/AtD1Dm0CUTfWDmIyazM",28152
+ "ed25519:ALICEDEVICE30": "TWTXfQ6zCOtY5Z/Xwkybt7OSD8mAnZOYq9V2pbbgi00"28153
+ },28154
+ "signatures": {28155
+ "@alice_30:hs1": {28156
+ "ed25519:ALICEDEVICE30": "Td6NUwJckJ+r1eIYW32kdfqFnTzmQrbfxnPwNpErjAuMvQdz9eTFSTUnD68OucivbYvk9cruiRrWQdWwf2N+AQ"28157
+ }28158
+ },28159
+ "user_id": "@alice_30:hs1",28160
+ "unsigned": {}28161
+ }28162
+ },28163
+ "@alice_311:hs1": {28164
+ "ALICEDEVICE311": {28165
+ "algorithms": [28166
+ "m.olm.v1.curve25519-aes-sha2",28167
+ "m.megolm.v1.aes-sha2"28168
+ ],28169
+ "device_id": "ALICEDEVICE311",28170
+ "keys": {28171
+ "curve25519:ALICEDEVICE311": "7pMlqxgFIfMKLOUFSA01mIDX9sHYFWEGYpnOclllcyw",28172
+ "ed25519:ALICEDEVICE311": "n2Mp8q+7v4kwLp/Du2TASCbmd35goGoPoUzBouSXewU"28173
+ },28174
+ "signatures": {28175
+ "@alice_311:hs1": {28176
+ "ed25519:ALICEDEVICE311": "EjSdNuIwoPf7u6YszNXghOERyBRyV9ZWHb34NfU0PBUQnNVLvbo2VOcakP1grrppllk+KXGYie1H9vKYkMLADA"28177
+ }28178
+ },28179
+ "user_id": "@alice_311:hs1",28180
+ "unsigned": {}28181
+ }28182
+ },28183
+ "@alice_313:hs1": {28184
+ "ALICEDEVICE313": {28185
+ "algorithms": [28186
+ "m.olm.v1.curve25519-aes-sha2",28187
+ "m.megolm.v1.aes-sha2"28188
+ ],28189
+ "device_id": "ALICEDEVICE313",28190
+ "keys": {28191
+ "curve25519:ALICEDEVICE313": "T3KAixZRq5BKdrI1Xm72wUfsOSKoNzWbOUgqjmpDw1g",28192
+ "ed25519:ALICEDEVICE313": "mpbLMdECNd7yal/CsnwJoI4e0YUBk6XvT3N115kPx7E"28193
+ },28194
+ "signatures": {28195
+ "@alice_313:hs1": {28196
+ "ed25519:ALICEDEVICE313": "ncbTtXLPIzCjTJiqWht9ZWDtD8PiD6lt0N3mpX8nqY68/0bLBLa2I5ajEsRXD4ZUwley+QTdVPKLfHCHEgChDA"28197
+ }28198
+ },28199
+ "user_id": "@alice_313:hs1",28200
+ "unsigned": {}28201
+ }28202
+ },28203
+ "@alice_317:hs1": {28204
+ "ALICEDEVICE317": {28205
+ "algorithms": [28206
+ "m.olm.v1.curve25519-aes-sha2",28207
+ "m.megolm.v1.aes-sha2"28208
+ ],28209
+ "device_id": "ALICEDEVICE317",28210
+ "keys": {28211
+ "curve25519:ALICEDEVICE317": "F1IhDojavmATYCIr78jA5OBGxsPqJV1AXEpwnc5xHgw",28212
+ "ed25519:ALICEDEVICE317": "CDqvv8XBXMLM2y9g0BQCOYSaOpvNVvDa1ekyBkG55vU"28213
+ },28214
+ "signatures": {28215
+ "@alice_317:hs1": {28216
+ "ed25519:ALICEDEVICE317": "sKs2rfWvu4uG/Wree7zxOtwKhDEXLUIMA62UnZ2dl0CVcABWSdimsUBq2AoTKBYwfJpm5gAnw+E04vl2jpiDDw"28217
+ }28218
+ },28219
+ "user_id": "@alice_317:hs1",28220
+ "unsigned": {}28221
+ }28222
+ },28223
+ "@alice_319:hs1": {28224
+ "ALICEDEVICE319": {28225
+ "algorithms": [28226
+ "m.olm.v1.curve25519-aes-sha2",28227
+ "m.megolm.v1.aes-sha2"28228
+ ],28229
+ "device_id": "ALICEDEVICE319",28230
+ "keys": {28231
+ "curve25519:ALICEDEVICE319": "1XuaJ8uHG+vp65K1d4i9QHFgM/+8+jk1zwXMPi+gBl4",28232
+ "ed25519:ALICEDEVICE319": "yWxBLH8X4JKPQEq1gwkyYtRdYANEwJxgpCH/LHcODkw"28233
+ },28234
+ "signatures": {28235
+ "@alice_319:hs1": {28236
+ "ed25519:ALICEDEVICE319": "hqyufeG1lkwwJ8bsAf6kKSAvUccqIZTwKQ2sy6/+R4JginpUoAVrmzCGKy/3rxo4jzcrgCmbQzwMrFVZ4Bc6BQ"28237
+ }28238
+ },28239
+ "user_id": "@alice_319:hs1",28240
+ "unsigned": {}28241
+ }28242
+ },28243
+ "@alice_324:hs1": {28244
+ "ALICEDEVICE324": {28245
+ "algorithms": [28246
+ "m.olm.v1.curve25519-aes-sha2",28247
+ "m.megolm.v1.aes-sha2"28248
+ ],28249
+ "device_id": "ALICEDEVICE324",28250
+ "keys": {28251
+ "curve25519:ALICEDEVICE324": "sUFN9Kr0rRBuJNI9J/Yk/QZLByWqthXqJpTKghc/ikY",28252
+ "ed25519:ALICEDEVICE324": "QFgbjh1H6+mHaQIxSguXkMyFaI52tRhoWdBCXV8AMGk"28253
+ },28254
+ "signatures": {28255
+ "@alice_324:hs1": {28256
+ "ed25519:ALICEDEVICE324": "Yc5WtmQv1mtHUjihzLbEJfQG2Ov9eQvGcUGJ+MaajFkooOdco1n7Ucmerb0rGHhAQ3kTiGUWxiabbBNB5t5LCQ"28257
+ }28258
+ },28259
+ "user_id": "@alice_324:hs1",28260
+ "unsigned": {}28261
+ }28262
+ },28263
+ "@alice_329:hs1": {28264
+ "ALICEDEVICE329": {28265
+ "algorithms": [28266
+ "m.olm.v1.curve25519-aes-sha2",28267
+ "m.megolm.v1.aes-sha2"28268
+ ],28269
+ "device_id": "ALICEDEVICE329",28270
+ "keys": {28271
+ "curve25519:ALICEDEVICE329": "1Wdub1QaGY/e69tRmKmVapB6b3Lb9RS016jZ3XzqLlQ",28272
+ "ed25519:ALICEDEVICE329": "o+++20pNJiXNL7yvTyTAHNZgXq4btk6axKervn83dGE"28273
+ },28274
+ "signatures": {28275
+ "@alice_329:hs1": {28276
+ "ed25519:ALICEDEVICE329": "eYs+cVEAH+ZYTaRD+4xkI1ZY7vUjGP92FwgIjaj5IUNh3i6KTAlvId1DWdRTiDj9Urw0vS3dUF+i1xOsjFvOCA"28277
+ }28278
+ },28279
+ "user_id": "@alice_329:hs1",28280
+ "unsigned": {}28281
+ }28282
+ },28283
+ "@alice_333:hs1": {28284
+ "ALICEDEVICE333": {28285
+ "algorithms": [28286
+ "m.olm.v1.curve25519-aes-sha2",28287
+ "m.megolm.v1.aes-sha2"28288
+ ],28289
+ "device_id": "ALICEDEVICE333",28290
+ "keys": {28291
+ "curve25519:ALICEDEVICE333": "EYxhfwAz5DUbOu69JHJ17b8zkLGOC+P0STlgnlxCSQk",28292
+ "ed25519:ALICEDEVICE333": "cN6L6wCd9UxmKVw7D4Kdx3YaHzJXQMWcCdsOq8CTSYo"28293
+ },28294
+ "signatures": {28295
+ "@alice_333:hs1": {28296
+ "ed25519:ALICEDEVICE333": "iJwuLgGEXFatnfTKpba89bK0vhs4v8aKrka3SbYAUWKqSVSAgO861hy1OKu8GNwZq3QEBlkpUyI5cXpXX30hDg"28297
+ }28298
+ },28299
+ "user_id": "@alice_333:hs1",28300
+ "unsigned": {}28301
+ }28302
+ },28303
+ "@alice_334:hs1": {28304
+ "ALICEDEVICE334": {28305
+ "algorithms": [28306
+ "m.olm.v1.curve25519-aes-sha2",28307
+ "m.megolm.v1.aes-sha2"28308
+ ],28309
+ "device_id": "ALICEDEVICE334",28310
+ "keys": {28311
+ "curve25519:ALICEDEVICE334": "a7ZKbQ2oVGsZiJHedZY+6SfWsG/2GpY/O51YLAxGR3w",28312
+ "ed25519:ALICEDEVICE334": "wJ8C9Cmeqd2lpUezsiAUBN5sq6LnQF4EER8oQbpzKW0"28313
+ },28314
+ "signatures": {28315
+ "@alice_334:hs1": {28316
+ "ed25519:ALICEDEVICE334": "8MpBZeo+1XEOuiKGJMzeGGZdbnRwcmv6LMI39EAbZPYCwEFoL1KaGWtthXc1yn1W6Ry79ldEXphcWZ8AdgZiDw"28317
+ }28318
+ },28319
+ "user_id": "@alice_334:hs1",28320
+ "unsigned": {}28321
+ }28322
+ },28323
+ "@alice_335:hs1": {28324
+ "ALICEDEVICE335": {28325
+ "algorithms": [28326
+ "m.olm.v1.curve25519-aes-sha2",28327
+ "m.megolm.v1.aes-sha2"28328
+ ],28329
+ "device_id": "ALICEDEVICE335",28330
+ "keys": {28331
+ "curve25519:ALICEDEVICE335": "DHJDZ69nxae/kIoG9SlFHxu+z+b5J6B46Xu9gPwjPDk",28332
+ "ed25519:ALICEDEVICE335": "vnDagKN+k+2J4fW6E8G9bLJ5YRLIFq8rh3kwo8NuVdI"28333
+ },28334
+ "signatures": {28335
+ "@alice_335:hs1": {28336
+ "ed25519:ALICEDEVICE335": "WdKIAoBdjdnj31APB9BV0DBQkeHHsYeLYu76Ik7U/KiQhnPndjLmx5fYVN+E6CvHW3rKpdzwtQu0K7vJZFiFBg"28337
+ }28338
+ },28339
+ "user_id": "@alice_335:hs1",28340
+ "unsigned": {}28341
+ }28342
+ },28343
+ "@alice_346:hs1": {28344
+ "ALICEDEVICE346": {28345
+ "algorithms": [28346
+ "m.olm.v1.curve25519-aes-sha2",28347
+ "m.megolm.v1.aes-sha2"28348
+ ],28349
+ "device_id": "ALICEDEVICE346",28350
+ "keys": {28351
+ "curve25519:ALICEDEVICE346": "MxaWcnjAX7tWQbsDVmFSOpf7W95/7DE9jdqDowGeXwE",28352
+ "ed25519:ALICEDEVICE346": "1z5dFhsfbZEEP6O5YkvMUumM4WT2bkbz35QwDZwWh8Y"28353
+ },28354
+ "signatures": {28355
+ "@alice_346:hs1": {28356
+ "ed25519:ALICEDEVICE346": "L+pyy/vhoes93/Y7PBpWLp4vMTvvCFRGAs08Gv7YMLRW0HlRXVYGK6OmKPMeO2LC9cxxrEAVtWT9YPrceP+1CA"28357
+ }28358
+ },28359
+ "user_id": "@alice_346:hs1",28360
+ "unsigned": {}28361
+ }28362
+ },28363
+ "@alice_348:hs1": {28364
+ "ALICEDEVICE348": {28365
+ "algorithms": [28366
+ "m.olm.v1.curve25519-aes-sha2",28367
+ "m.megolm.v1.aes-sha2"28368
+ ],28369
+ "device_id": "ALICEDEVICE348",28370
+ "keys": {28371
+ "curve25519:ALICEDEVICE348": "M0FHA+aTlTVHw7TGEB2GeQzE9vHmv2z4Vhj2gGua0HI",28372
+ "ed25519:ALICEDEVICE348": "RIctWcVCsrkM85D+CCV6zZnJ7SFhZrUJSf1WtPRdg3w"28373
+ },28374
+ "signatures": {28375
+ "@alice_348:hs1": {28376
+ "ed25519:ALICEDEVICE348": "CfDD/DWpaSS1GXMAgOUBRrR3AIOhcyOa2ldul4Q5CpMq41ZYmi/z/SdRxj1eCvRBRakyseQW0F9mOSyzlvVhDA"28377
+ }28378
+ },28379
+ "user_id": "@alice_348:hs1",28380
+ "unsigned": {}28381
+ }28382
+ },28383
+ "@alice_355:hs1": {28384
+ "ALICEDEVICE355": {28385
+ "algorithms": [28386
+ "m.olm.v1.curve25519-aes-sha2",28387
+ "m.megolm.v1.aes-sha2"28388
+ ],28389
+ "device_id": "ALICEDEVICE355",28390
+ "keys": {28391
+ "curve25519:ALICEDEVICE355": "He85zJrgs9FdU8zcCQWNx/Y3e+onzPSeUZ9ph552uUo",28392
+ "ed25519:ALICEDEVICE355": "VVEUa/ZvokZBKcQQolqF+6cQy5XUg/k0eRbZ72zSJo0"28393
+ },28394
+ "signatures": {28395
+ "@alice_355:hs1": {28396
+ "ed25519:ALICEDEVICE355": "wlGlVgFb5wEJ+gnamsUU/k6Cv8j8HLDejfC0/hahbhk4R7tFWSsG9VfbofHCkdg8ljwvZ/RMBvV98QdnGm9sBQ"28397
+ }28398
+ },28399
+ "user_id": "@alice_355:hs1",28400
+ "unsigned": {}28401
+ }28402
+ },28403
+ "@alice_365:hs1": {28404
+ "ALICEDEVICE365": {28405
+ "algorithms": [28406
+ "m.olm.v1.curve25519-aes-sha2",28407
+ "m.megolm.v1.aes-sha2"28408
+ ],28409
+ "device_id": "ALICEDEVICE365",28410
+ "keys": {28411
+ "curve25519:ALICEDEVICE365": "nXnQh5+Jw7ZYDPtr/tjBrars+xpe3S41O9kKU6bXGV0",28412
+ "ed25519:ALICEDEVICE365": "ZWAreLrhsT7XH7ccY/Yb1UwbVRySe85690SAG4ORq94"28413
+ },28414
+ "signatures": {28415
+ "@alice_365:hs1": {28416
+ "ed25519:ALICEDEVICE365": "xaHBC9F/7tAjUAJtcQ4G+mUxsCKIKP7lazCOQ+Dg9C/WtRBj/X7Ud8pRkupbKdd+Od9VfeQDstXJMG9FO9uCCw"28417
+ }28418
+ },28419
+ "user_id": "@alice_365:hs1",28420
+ "unsigned": {}28421
+ }28422
+ },28423
+ "@alice_36:hs1": {28424
+ "ALICEDEVICE36": {28425
+ "algorithms": [28426
+ "m.olm.v1.curve25519-aes-sha2",28427
+ "m.megolm.v1.aes-sha2"28428
+ ],28429
+ "device_id": "ALICEDEVICE36",28430
+ "keys": {28431
+ "curve25519:ALICEDEVICE36": "lrI7XSUyhc+SY1fMADoLW10cauXA4Eu8MStTu+jlp0o",28432
+ "ed25519:ALICEDEVICE36": "0vCeOAuUIGfIb3fpJadsRD0B5RMZlhtoh6En37/jPwI"28433
+ },28434
+ "signatures": {28435
+ "@alice_36:hs1": {28436
+ "ed25519:ALICEDEVICE36": "NGW/18p4ndJxIX29E8xEhvgbDKBA7q2rtjS8l9OX6MwKDpfbP2YEU0XjfpR8ucvrE7+4IIu1hTas2A22K3uKCQ"28437
+ }28438
+ },28439
+ "user_id": "@alice_36:hs1",28440
+ "unsigned": {}28441
+ }28442
+ },28443
+ "@alice_370:hs1": {28444
+ "ALICEDEVICE370": {28445
+ "algorithms": [28446
+ "m.olm.v1.curve25519-aes-sha2",28447
+ "m.megolm.v1.aes-sha2"28448
+ ],28449
+ "device_id": "ALICEDEVICE370",28450
+ "keys": {28451
+ "curve25519:ALICEDEVICE370": "r2jTMAAosvmyPSPH73xiFZpOb89nP9FQuuL1hfl/gkA",28452
+ "ed25519:ALICEDEVICE370": "wtAOWZMo4dMJRaVwbHDNpQEjeQcQbANjI4Mmz+2pFn0"28453
+ },28454
+ "signatures": {28455
+ "@alice_370:hs1": {28456
+ "ed25519:ALICEDEVICE370": "ZzTow/PfYFs0fSyEyi5OYsZF+aSRHk2QVbnj/YeSp92AmgvgOSAspCDijY7+wjf7BCAoTLNZP2I6iyj+EkVJBA"28457
+ }28458
+ },28459
+ "user_id": "@alice_370:hs1",28460
+ "unsigned": {}28461
+ }28462
+ },28463
+ "@alice_375:hs1": {28464
+ "ALICEDEVICE375": {28465
+ "algorithms": [28466
+ "m.olm.v1.curve25519-aes-sha2",28467
+ "m.megolm.v1.aes-sha2"28468
+ ],28469
+ "device_id": "ALICEDEVICE375",28470
+ "keys": {28471
+ "curve25519:ALICEDEVICE375": "E7A1lDaxmUt6OUiE1M//Zhe/Dws+SeLGZaDKlxqajxk",28472
+ "ed25519:ALICEDEVICE375": "fnIjqQN2655dSV0kE3nTIY+BVVYjCigil3hRoljMe7Y"28473
+ },28474
+ "signatures": {28475
+ "@alice_375:hs1": {28476
+ "ed25519:ALICEDEVICE375": "wsewBejGnus2z7eZEKd+kVwbjDtCPiWN1RdrOwiqqPYFS+1hTZz3HrVmYLZ2EIZCgLvGeNjhLSEv8MsQs9kYDw"28477
+ }28478
+ },28479
+ "user_id": "@alice_375:hs1",28480
+ "unsigned": {}28481
+ }28482
+ },28483
+ "@alice_379:hs1": {28484
+ "ALICEDEVICE379": {28485
+ "algorithms": [28486
+ "m.olm.v1.curve25519-aes-sha2",28487
+ "m.megolm.v1.aes-sha2"28488
+ ],28489
+ "device_id": "ALICEDEVICE379",28490
+ "keys": {28491
+ "curve25519:ALICEDEVICE379": "qsUcsusW1/iNWgMUdpFamcp1eSZLBDwJ8kzhicoBTQo",28492
+ "ed25519:ALICEDEVICE379": "tLZP37yjzPh/e/1+tlEm4hu94bmY8wsMk1LBJfbLGJ8"28493
+ },28494
+ "signatures": {28495
+ "@alice_379:hs1": {28496
+ "ed25519:ALICEDEVICE379": "jCxdC3qj9trvPX4rItRjymENgs3RCz0Eaq6oyLpMxJo3gVmOzgnPLbq0d4h8IFHz4tLxlH8sWtIzCY3mERWXCw"28497
+ }28498
+ },28499
+ "user_id": "@alice_379:hs1",28500
+ "unsigned": {}28501
+ }28502
+ },28503
+ "@alice_396:hs1": {28504
+ "ALICEDEVICE396": {28505
+ "algorithms": [28506
+ "m.olm.v1.curve25519-aes-sha2",28507
+ "m.megolm.v1.aes-sha2"28508
+ ],28509
+ "device_id": "ALICEDEVICE396",28510
+ "keys": {28511
+ "curve25519:ALICEDEVICE396": "jKw9yy2IdKcc4GEM6+1IDBk5Tx5GbrQZ9F41OYjwwnw",28512
+ "ed25519:ALICEDEVICE396": "PydOAQg7ORjweJ7CCbcSfkm59CX6vhcSuyhBGroYiGs"28513
+ },28514
+ "signatures": {28515
+ "@alice_396:hs1": {28516
+ "ed25519:ALICEDEVICE396": "Yx7T03x2+ssjMuOWNM6DL69upPNimD1RBWvwUdU5jOCwweBnDmM614OaGdkECZ6TxTqo/jcZe9Al32Edjs/YBw"28517
+ }28518
+ },28519
+ "user_id": "@alice_396:hs1",28520
+ "unsigned": {}28521
+ }28522
+ },28523
+ "@alice_400:hs1": {28524
+ "ALICEDEVICE400": {28525
+ "algorithms": [28526
+ "m.olm.v1.curve25519-aes-sha2",28527
+ "m.megolm.v1.aes-sha2"28528
+ ],28529
+ "device_id": "ALICEDEVICE400",28530
+ "keys": {28531
+ "curve25519:ALICEDEVICE400": "473mEX3Q+8FN34CcBcy3QsXeZHMmLJnFpXw2qA/pqg0",28532
+ "ed25519:ALICEDEVICE400": "v513tbFHMBGkrUCPNtfC1CPn8yKPq8GtGN93Gj0ZN2E"28533
+ },28534
+ "signatures": {28535
+ "@alice_400:hs1": {28536
+ "ed25519:ALICEDEVICE400": "iAIvnBhpbzYtSvgY/jRz0+REEEbCIJ86Rj1dLwa9Y3Zk7qZvEM1gRCsehQoVsX9tg28G9i3qoAipQwbcKE+UCA"28537
+ }28538
+ },28539
+ "user_id": "@alice_400:hs1",28540
+ "unsigned": {}28541
+ }28542
+ },28543
+ "@alice_407:hs1": {28544
+ "ALICEDEVICE407": {28545
+ "algorithms": [28546
+ "m.olm.v1.curve25519-aes-sha2",28547
+ "m.megolm.v1.aes-sha2"28548
+ ],28549
+ "device_id": "ALICEDEVICE407",28550
+ "keys": {28551
+ "curve25519:ALICEDEVICE407": "hi819yVM7E/z8YQ1hiONCk12tXg+fv8ZXr2iWU5PLzU",28552
+ "ed25519:ALICEDEVICE407": "lNyXo9H40G760dEHJCNVHfVz7AXGiHHmUGTiMMnxTnk"28553
+ },28554
+ "signatures": {28555
+ "@alice_407:hs1": {28556
+ "ed25519:ALICEDEVICE407": "tvc7Src0ppoBHeLswoF7QcH7/UcpzqHT+snI+YSTm0XMemyD7TLvMdxOKnWyUDZmRNGJPEQufzaZivQCYX/ODg"28557
+ }28558
+ },28559
+ "user_id": "@alice_407:hs1",28560
+ "unsigned": {}28561
+ }28562
+ },28563
+ "@alice_413:hs1": {28564
+ "ALICEDEVICE413": {28565
+ "algorithms": [28566
+ "m.olm.v1.curve25519-aes-sha2",28567
+ "m.megolm.v1.aes-sha2"28568
+ ],28569
+ "device_id": "ALICEDEVICE413",28570
+ "keys": {28571
+ "curve25519:ALICEDEVICE413": "+55GAJ0A+/UhXAvX1Dek1aAyFudNvV6+ikV+V94ENEE",28572
+ "ed25519:ALICEDEVICE413": "4R3Nr7QfKbGZXaibwngHPNEWNwbuEC5tl9xIN9IUwQs"28573
+ },28574
+ "signatures": {28575
+ "@alice_413:hs1": {28576
+ "ed25519:ALICEDEVICE413": "8voH9ynmoTm6JQW3wPfOft++jDYF3BkyAEjQzRwfJdB/gOCg2aWu5wc4Fk1cyCdNOSHCjenCHLQ342ShwcMxDw"28577
+ }28578
+ },28579
+ "user_id": "@alice_413:hs1",28580
+ "unsigned": {}28581
+ }28582
+ },28583
+ "@alice_420:hs1": {28584
+ "ALICEDEVICE420": {28585
+ "algorithms": [28586
+ "m.olm.v1.curve25519-aes-sha2",28587
+ "m.megolm.v1.aes-sha2"28588
+ ],28589
+ "device_id": "ALICEDEVICE420",28590
+ "keys": {28591
+ "curve25519:ALICEDEVICE420": "+Wuv3coi3L+ZUEnGfJStj3neup/X17dRzLL0Y2WOwSE",28592
+ "ed25519:ALICEDEVICE420": "XSt7U3lBKMjDgM9kfGyEOK2JKuCOCZG5lW0Vc6MNI78"28593
+ },28594
+ "signatures": {28595
+ "@alice_420:hs1": {28596
+ "ed25519:ALICEDEVICE420": "5T1g4s82fe45YFsysaKxIaE/A0CvY0pP/2olBgQowLeIEXHO3ETkjBM24K9N3HwZhzjvgegMh+/+mqxJOEHwDA"28597
+ }28598
+ },28599
+ "user_id": "@alice_420:hs1",28600
+ "unsigned": {}28601
+ }28602
+ },28603
+ "@alice_424:hs1": {28604
+ "ALICEDEVICE424": {28605
+ "algorithms": [28606
+ "m.olm.v1.curve25519-aes-sha2",28607
+ "m.megolm.v1.aes-sha2"28608
+ ],28609
+ "device_id": "ALICEDEVICE424",28610
+ "keys": {28611
+ "curve25519:ALICEDEVICE424": "Y4l8JCqieBpMo3H8iXxyUeelZ+YlzIOwqHnWzR6ngk0",28612
+ "ed25519:ALICEDEVICE424": "mtdpV2TXMZZddCVUnXaZP17Ib7YzoypcwE1uMTRK8ME"28613
+ },28614
+ "signatures": {28615
+ "@alice_424:hs1": {28616
+ "ed25519:ALICEDEVICE424": "lRFwr3U5sXjdDSnNGTSp4igixwhEpcTCv2LmgCEeilx4+bzuoxAdl6WyTDKbLyAmRskOgKxb0JNcw3Bw8pPcDg"28617
+ }28618
+ },28619
+ "user_id": "@alice_424:hs1",28620
+ "unsigned": {}28621
+ }28622
+ },28623
+ "@alice_426:hs1": {28624
+ "ALICEDEVICE426": {28625
+ "algorithms": [28626
+ "m.olm.v1.curve25519-aes-sha2",28627
+ "m.megolm.v1.aes-sha2"28628
+ ],28629
+ "device_id": "ALICEDEVICE426",28630
+ "keys": {28631
+ "curve25519:ALICEDEVICE426": "dRRitJQgpTtw8z7GUyYmP/C3PYdlaQ46oOosHMim3HI",28632
+ "ed25519:ALICEDEVICE426": "1730CKgjsq5f2IHAH4KJmOKL5odkcyldACSY3J5kRuQ"28633
+ },28634
+ "signatures": {28635
+ "@alice_426:hs1": {28636
+ "ed25519:ALICEDEVICE426": "E6rUBKXMQEBj7zbY9t3pZjbhocCYIYyGF/0Birmqipz8lRt8TGJxOPjcwNMZGMr+HAs9BUig+zgSUPSNVH/kCQ"28637
+ }28638
+ },28639
+ "user_id": "@alice_426:hs1",28640
+ "unsigned": {}28641
+ }28642
+ },28643
+ "@alice_439:hs1": {28644
+ "ALICEDEVICE439": {28645
+ "algorithms": [28646
+ "m.olm.v1.curve25519-aes-sha2",28647
+ "m.megolm.v1.aes-sha2"28648
+ ],28649
+ "device_id": "ALICEDEVICE439",28650
+ "keys": {28651
+ "curve25519:ALICEDEVICE439": "jDAnvGWeKm6JeLofPwQKhA2lK8RC5QFo1o2z58o1BCo",28652
+ "ed25519:ALICEDEVICE439": "3ewAtT8yUuZBNtZWB+Hd4WE1zzMoRfskyKsEfbCHW04"28653
+ },28654
+ "signatures": {28655
+ "@alice_439:hs1": {28656
+ "ed25519:ALICEDEVICE439": "HQSCZJA1D5BWsyj4mE7hO+KMtXZ9s4Rx8DEx4Rddsld1k0o0fNas+gyq1k9imNfCe5CJBGRyPdmMxGjYOpdJBw"28657
+ }28658
+ },28659
+ "user_id": "@alice_439:hs1",28660
+ "unsigned": {}28661
+ }28662
+ },28663
+ "@alice_454:hs1": {28664
+ "ALICEDEVICE454": {28665
+ "algorithms": [28666
+ "m.olm.v1.curve25519-aes-sha2",28667
+ "m.megolm.v1.aes-sha2"28668
+ ],28669
+ "device_id": "ALICEDEVICE454",28670
+ "keys": {28671
+ "curve25519:ALICEDEVICE454": "+asy/6eH0NxW0zPB2gSBQiYhaihZ5hGH6a/1rKIYJFk",28672
+ "ed25519:ALICEDEVICE454": "HU3/jxjzdMLOzjZ1eSKJih1zMRuDXjI2QEpickaWA18"28673
+ },28674
+ "signatures": {28675
+ "@alice_454:hs1": {28676
+ "ed25519:ALICEDEVICE454": "M0arqUmSNVi8cZK/TRLB7xLuA1c5uKjC5juh5nadVJhjpDhxYez5PowCksgwH6JpQEhm8ocByCLkr6Ssr+gYBQ"28677
+ }28678
+ },28679
+ "user_id": "@alice_454:hs1",28680
+ "unsigned": {}28681
+ }28682
+ },28683
+ "@alice_464:hs1": {28684
+ "ALICEDEVICE464": {28685
+ "algorithms": [28686
+ "m.olm.v1.curve25519-aes-sha2",28687
+ "m.megolm.v1.aes-sha2"28688
+ ],28689
+ "device_id": "ALICEDEVICE464",28690
+ "keys": {28691
+ "curve25519:ALICEDEVICE464": "vulQX+S65EXkWL9JZhXXWqpXWe6AkNzGjFZB2S9gOyo",28692
+ "ed25519:ALICEDEVICE464": "VL3WmGVhev/uNnqD2AEPFhv5GmAsC021ec/gOPBHpQA"28693
+ },28694
+ "signatures": {28695
+ "@alice_464:hs1": {28696
+ "ed25519:ALICEDEVICE464": "Q+lYuQYK57+YaBLaT5V/HnwuX3dxFQvlv+TZCkjgvekMx/jm0j6Ej3l5brssik9Ex72fGnhWUcfiU5pf0UD4CQ"28697
+ }28698
+ },28699
+ "user_id": "@alice_464:hs1",28700
+ "unsigned": {}28701
+ }28702
+ },28703
+ "@alice_470:hs1": {28704
+ "ALICEDEVICE470": {28705
+ "algorithms": [28706
+ "m.olm.v1.curve25519-aes-sha2",28707
+ "m.megolm.v1.aes-sha2"28708
+ ],28709
+ "device_id": "ALICEDEVICE470",28710
+ "keys": {28711
+ "curve25519:ALICEDEVICE470": "VMTqUu5gB8aiVbvQ8i+VHHxXYtBNnUfmL1grLrufbFg",28712
+ "ed25519:ALICEDEVICE470": "yrNU8hUkh89DU0pD5piBmMhN9tbw4DKjHqGf+dT7dVo"28713
+ },28714
+ "signatures": {28715
+ "@alice_470:hs1": {28716
+ "ed25519:ALICEDEVICE470": "46XMe2MZp+TjWEV9ICWy/jIphxb8CeNfoxQh9vC6oNvW13VLkVMnhIC1NDg1L3QuYk1VYmktHgdzLCcZFjUTBg"28717
+ }28718
+ },28719
+ "user_id": "@alice_470:hs1",28720
+ "unsigned": {}28721
+ }28722
+ },28723
+ "@alice_474:hs1": {28724
+ "ALICEDEVICE474": {28725
+ "algorithms": [28726
+ "m.olm.v1.curve25519-aes-sha2",28727
+ "m.megolm.v1.aes-sha2"28728
+ ],28729
+ "device_id": "ALICEDEVICE474",28730
+ "keys": {28731
+ "curve25519:ALICEDEVICE474": "bK/n/JoW+36FwS9+yfTMgtjPCTIzF1dgW3TThN24sS8",28732
+ "ed25519:ALICEDEVICE474": "2DjeVpGKie/rsU6NsPIeyOcqkWGyBqhmTTctN1OkfSE"28733
+ },28734
+ "signatures": {28735
+ "@alice_474:hs1": {28736
+ "ed25519:ALICEDEVICE474": "lglEc+QTBHXSqIXEyQl3HVv7QAFPNOcmPPoz/YT33ZogE11PTNgjV7gvUtIc3HlaxPye03kDh31TffwiHEL+CA"28737
+ }28738
+ },28739
+ "user_id": "@alice_474:hs1",28740
+ "unsigned": {}28741
+ }28742
+ },28743
+ "@alice_477:hs1": {28744
+ "ALICEDEVICE477": {28745
+ "algorithms": [28746
+ "m.olm.v1.curve25519-aes-sha2",28747
+ "m.megolm.v1.aes-sha2"28748
+ ],28749
+ "device_id": "ALICEDEVICE477",28750
+ "keys": {28751
+ "curve25519:ALICEDEVICE477": "mrKJNFiutIfji4DWIWE0U+Hca+lVaWoln6SCKmDcQTY",28752
+ "ed25519:ALICEDEVICE477": "k6ibed6YVTp73vXA4kv1PPaOjPz6e9FYtvL81GMjOxI"28753
+ },28754
+ "signatures": {28755
+ "@alice_477:hs1": {28756
+ "ed25519:ALICEDEVICE477": "wCXgXcaseSJsR+IqSWloOw2xf24hXEsQTT6K0rJS7QCFrtZoGwwuV1Ieo3h/TPHVI/m0fVTaXyrEA+LpazZYAg"28757
+ }28758
+ },28759
+ "user_id": "@alice_477:hs1",28760
+ "unsigned": {}28761
+ }28762
+ },28763
+ "@alice_480:hs1": {28764
+ "ALICEDEVICE480": {28765
+ "algorithms": [28766
+ "m.olm.v1.curve25519-aes-sha2",28767
+ "m.megolm.v1.aes-sha2"28768
+ ],28769
+ "device_id": "ALICEDEVICE480",28770
+ "keys": {28771
+ "curve25519:ALICEDEVICE480": "izGoPgIBHuMAB/TkQZMNtmzFTCp+Sm0e3s76V6YlpUA",28772
+ "ed25519:ALICEDEVICE480": "rV7+ESCvj37CZjz/bz+XbuyG6PnO4vYIcyoGp2BgZ9c"28773
+ },28774
+ "signatures": {28775
+ "@alice_480:hs1": {28776
+ "ed25519:ALICEDEVICE480": "ZzvGL+zpCxu2pNKoWd/pxM7Zgb2aFTG1bI2EEMDwWw3IeTJLNOcoIUUXNhvJeI1ZFLtvoFQs0UTZ8v8UmTZUCA"28777
+ }28778
+ },28779
+ "user_id": "@alice_480:hs1",28780
+ "unsigned": {}28781
+ }28782
+ },28783
+ "@alice_483:hs1": {28784
+ "ALICEDEVICE483": {28785
+ "algorithms": [28786
+ "m.olm.v1.curve25519-aes-sha2",28787
+ "m.megolm.v1.aes-sha2"28788
+ ],28789
+ "device_id": "ALICEDEVICE483",28790
+ "keys": {28791
+ "curve25519:ALICEDEVICE483": "simUfLDzdwAcyOFJUShI55HlSRdkYmSBjq5Y9bamQH0",28792
+ "ed25519:ALICEDEVICE483": "itXg04bYup5G4nXyj7s/7wWIctvkkvg2+S+BkyYT2o8"28793
+ },28794
+ "signatures": {28795
+ "@alice_483:hs1": {28796
+ "ed25519:ALICEDEVICE483": "qR/OXKJ3n9MyhNq1R/w+iEq06DmqAmzpOfg1NBW9GZU0iHjLAXZkvvOCC0+EFixuMcMMtK3EzdEEaGQGyp62AQ"28797
+ }28798
+ },28799
+ "user_id": "@alice_483:hs1",28800
+ "unsigned": {}28801
+ }28802
+ },28803
+ "@alice_50:hs1": {28804
+ "ALICEDEVICE50": {28805
+ "algorithms": [28806
+ "m.olm.v1.curve25519-aes-sha2",28807
+ "m.megolm.v1.aes-sha2"28808
+ ],28809
+ "device_id": "ALICEDEVICE50",28810
+ "keys": {28811
+ "curve25519:ALICEDEVICE50": "ZE2QHXr/znBR/e6lRRDr0bqrvNP7+I2gK6INC4NTrDI",28812
+ "ed25519:ALICEDEVICE50": "2haJL428mGzh/JDj2d36pPNxnERjgXYo96Kw82CtEfc"28813
+ },28814
+ "signatures": {28815
+ "@alice_50:hs1": {28816
+ "ed25519:ALICEDEVICE50": "hfybAi3pnj2PLPWgpxwNHsuszybr/fBcbU5us8IcUjWAYlNmtaeeMeDBNxA0LNTi/Y3WSIKV732YzZ3Rnn4nDA"28817
+ }28818
+ },28819
+ "user_id": "@alice_50:hs1",28820
+ "unsigned": {}28821
+ }28822
+ },28823
+ "@alice_513:hs1": {28824
+ "ALICEDEVICE513": {28825
+ "algorithms": [28826
+ "m.olm.v1.curve25519-aes-sha2",28827
+ "m.megolm.v1.aes-sha2"28828
+ ],28829
+ "device_id": "ALICEDEVICE513",28830
+ "keys": {28831
+ "curve25519:ALICEDEVICE513": "MXCQpgOwlvJTMPKtrxg6UQfTb8FjUAqbIadHcMtYe0Y",28832
+ "ed25519:ALICEDEVICE513": "zxkOBx1wHrsibLuiYZvrQWvcFBYssdakQsbFfA90ESQ"28833
+ },28834
+ "signatures": {28835
+ "@alice_513:hs1": {28836
+ "ed25519:ALICEDEVICE513": "0PBSKMZlrThCR2bRfCtq19wP5vXgtR0fUdzizySaP56zuVARzZs8r/9eAW81Os4pW/R8cduXWJblpAVwx4Z/AA"28837
+ }28838
+ },28839
+ "user_id": "@alice_513:hs1",28840
+ "unsigned": {}28841
+ }28842
+ },28843
+ "@alice_526:hs1": {28844
+ "ALICEDEVICE526": {28845
+ "algorithms": [28846
+ "m.olm.v1.curve25519-aes-sha2",28847
+ "m.megolm.v1.aes-sha2"28848
+ ],28849
+ "device_id": "ALICEDEVICE526",28850
+ "keys": {28851
+ "curve25519:ALICEDEVICE526": "6N4HfoNHRBp5oFvoAlwtZXnZPcDazE3ZP7TgrdhnzhA",28852
+ "ed25519:ALICEDEVICE526": "UccGUNXe8n1pIDZ0uh6OzbE4KjUmYk2+3SczwCg2a8w"28853
+ },28854
+ "signatures": {28855
+ "@alice_526:hs1": {28856
+ "ed25519:ALICEDEVICE526": "gYOx9QjEM1msgsDBnAqXYDW9QdSwwUsn8OLsH6/4Cy/Z+9a1S3eFBHaFf3RSYjeMs0fse0td+JqqCsIrlNgaCQ"28857
+ }28858
+ },28859
+ "user_id": "@alice_526:hs1",28860
+ "unsigned": {}28861
+ }28862
+ },28863
+ "@alice_52:hs1": {28864
+ "ALICEDEVICE52": {28865
+ "algorithms": [28866
+ "m.olm.v1.curve25519-aes-sha2",28867
+ "m.megolm.v1.aes-sha2"28868
+ ],28869
+ "device_id": "ALICEDEVICE52",28870
+ "keys": {28871
+ "curve25519:ALICEDEVICE52": "kVT3pxLNsK+OXjdv3NiJTnRmEDjnvENYbtQY1aMmW0E",28872
+ "ed25519:ALICEDEVICE52": "hLS0Z3ldAWq16gfSLllsyEVaZx3L+QdDtKxnveXvVBs"28873
+ },28874
+ "signatures": {28875
+ "@alice_52:hs1": {28876
+ "ed25519:ALICEDEVICE52": "KncK6J8hBtetdbn2LCG3ie/Zsnd/2LQ2RD0x7t9EAeaBI3zd4cCauVWNlQMrO5sDtcGFzcjLljwpIpuwcGN2AQ"28877
+ }28878
+ },28879
+ "user_id": "@alice_52:hs1",28880
+ "unsigned": {}28881
+ }28882
+ },28883
+ "@alice_548:hs1": {28884
+ "ALICEDEVICE548": {28885
+ "algorithms": [28886
+ "m.olm.v1.curve25519-aes-sha2",28887
+ "m.megolm.v1.aes-sha2"28888
+ ],28889
+ "device_id": "ALICEDEVICE548",28890
+ "keys": {28891
+ "curve25519:ALICEDEVICE548": "J9HDT1HJyRPRkF1vKVUECdcIth1/udMr5I1lW6XpWkY",28892
+ "ed25519:ALICEDEVICE548": "lQRBLlBgWiKIY5TtUVKsewWAD6S6Q2Z4ODHeUByRsQk"28893
+ },28894
+ "signatures": {28895
+ "@alice_548:hs1": {28896
+ "ed25519:ALICEDEVICE548": "NPxS8kuvomVVco9UxsA/j1vmOue6MbRoqfiHzbnvQ7yLyCkOwoeVKZFzmmwGUV7Uf+UhZnnc4TZmDePtjtciCw"28897
+ }28898
+ },28899
+ "user_id": "@alice_548:hs1",28900
+ "unsigned": {}28901
+ }28902
+ },28903
+ "@alice_549:hs1": {28904
+ "ALICEDEVICE549": {28905
+ "algorithms": [28906
+ "m.olm.v1.curve25519-aes-sha2",28907
+ "m.megolm.v1.aes-sha2"28908
+ ],28909
+ "device_id": "ALICEDEVICE549",28910
+ "keys": {28911
+ "curve25519:ALICEDEVICE549": "0N0rCmqlcd/FX4JfRzDTZVzDmfQ2suOmr+/Nt7YSFkE",28912
+ "ed25519:ALICEDEVICE549": "BzdmZgVJ8p2Nm7V9HxXbn9a4aYVpUMqa0FA+E1KKMVA"28913
+ },28914
+ "signatures": {28915
+ "@alice_549:hs1": {28916
+ "ed25519:ALICEDEVICE549": "Z3lIUwfcuHZmAamsHJnlj1jUldQv/gKfo8KZSe1HIQaNbyj/dVz6OOmvxYnfvRN4zvXCSzd6rPZEBzXJpeO8Dw"28917
+ }28918
+ },28919
+ "user_id": "@alice_549:hs1",28920
+ "unsigned": {}28921
+ }28922
+ },28923
+ "@alice_557:hs1": {28924
+ "ALICEDEVICE557": {28925
+ "algorithms": [28926
+ "m.olm.v1.curve25519-aes-sha2",28927
+ "m.megolm.v1.aes-sha2"28928
+ ],28929
+ "device_id": "ALICEDEVICE557",28930
+ "keys": {28931
+ "curve25519:ALICEDEVICE557": "4hbiXySldRw+onqK8/QNrKCRr04nWzrQR0Lc5V711Us",28932
+ "ed25519:ALICEDEVICE557": "rPG0aTTO7/DjlBw59mNm9Oa9CGcVed6BK/NBM+KEdaw"28933
+ },28934
+ "signatures": {28935
+ "@alice_557:hs1": {28936
+ "ed25519:ALICEDEVICE557": "3rGw4ZOxLKAejz2xF47XX7HNRGw3QxjU8nFAIPwXRAMzanuK9x/xBm330GFWH69rqPCZJ4kmiD27C3JmMWx0AA"28937
+ }28938
+ },28939
+ "user_id": "@alice_557:hs1",28940
+ "unsigned": {}28941
+ }28942
+ },28943
+ "@alice_559:hs1": {28944
+ "ALICEDEVICE559": {28945
+ "algorithms": [28946
+ "m.olm.v1.curve25519-aes-sha2",28947
+ "m.megolm.v1.aes-sha2"28948
+ ],28949
+ "device_id": "ALICEDEVICE559",28950
+ "keys": {28951
+ "curve25519:ALICEDEVICE559": "HROz0qL3w5JnKPk63Lg+uMxdq+XfZdT6q+CnFCi8eHY",28952
+ "ed25519:ALICEDEVICE559": "Q+frxy5IRbtaSgohrcuRjqZsY3pXgQbo6QYXEugg8nc"28953
+ },28954
+ "signatures": {28955
+ "@alice_559:hs1": {28956
+ "ed25519:ALICEDEVICE559": "dFNENSMBCRT9Oaze2uz2bXHGdKl7E9TLTQxJ/Faa7k6KwUrw0wUAzwmXGGZMyKVvjq/m8CVbKD1M4300d0QpDQ"28957
+ }28958
+ },28959
+ "user_id": "@alice_559:hs1",28960
+ "unsigned": {}28961
+ }28962
+ },28963
+ "@alice_581:hs1": {28964
+ "ALICEDEVICE581": {28965
+ "algorithms": [28966
+ "m.olm.v1.curve25519-aes-sha2",28967
+ "m.megolm.v1.aes-sha2"28968
+ ],28969
+ "device_id": "ALICEDEVICE581",28970
+ "keys": {28971
+ "curve25519:ALICEDEVICE581": "TabH1flmIcHPpozdaweePEKCrkVNyRiWkNqOEMhE50w",28972
+ "ed25519:ALICEDEVICE581": "XPMXHLrKK6Uxei2i5eiRP8azAqJ5AjgrQ4azF9huOAM"28973
+ },28974
+ "signatures": {28975
+ "@alice_581:hs1": {28976
+ "ed25519:ALICEDEVICE581": "Mb1LmO+Ou84IRFvlkJkkh3sKM4hY6hwZcvjwB0T20dWBjHhBYx4yRwDRsFEBkRe7L3LKAFTD2i4G41j4OH2kCA"28977
+ }28978
+ },28979
+ "user_id": "@alice_581:hs1",28980
+ "unsigned": {}28981
+ }28982
+ },28983
+ "@alice_595:hs1": {28984
+ "ALICEDEVICE595": {28985
+ "algorithms": [28986
+ "m.olm.v1.curve25519-aes-sha2",28987
+ "m.megolm.v1.aes-sha2"28988
+ ],28989
+ "device_id": "ALICEDEVICE595",28990
+ "keys": {28991
+ "curve25519:ALICEDEVICE595": "DIBRbqGH4sNACMbuQ6ck6joD4FHjleKOkUZ7DhbNC18",28992
+ "ed25519:ALICEDEVICE595": "ogo3Gmpsq4e5evaViy9P7NUqJtbjNS8CPyPV/fymlDU"28993
+ },28994
+ "signatures": {28995
+ "@alice_595:hs1": {28996
+ "ed25519:ALICEDEVICE595": "90xIZePOj+/IhCzVz71ZYIT2QN4tds7h7xmHxBNYxxUxEZDEr9pQAAPCPMjFfUqkhfBAPFw/f6RAIhS7RaQdDQ"28997
+ }28998
+ },28999
+ "user_id": "@alice_595:hs1",29000
+ "unsigned": {}29001
+ }29002
+ },29003
+ "@alice_602:hs1": {29004
+ "ALICEDEVICE602": {29005
+ "algorithms": [29006
+ "m.olm.v1.curve25519-aes-sha2",29007
+ "m.megolm.v1.aes-sha2"29008
+ ],29009
+ "device_id": "ALICEDEVICE602",29010
+ "keys": {29011
+ "curve25519:ALICEDEVICE602": "7i6ly7wNhtkYo4kAwNyabGn1rd+6QPgBrSLXC2jdXBk",29012
+ "ed25519:ALICEDEVICE602": "C2HnwJcPf1vzvBPFws9k5EDpzTEDo+tZpUJtuBpqX3E"29013
+ },29014
+ "signatures": {29015
+ "@alice_602:hs1": {29016
+ "ed25519:ALICEDEVICE602": "EH1N96KDPLaJ/GJ5HpIeNLWYqfwwmHZirj9RJ8blJwzt/Bo19m6sr8Pkf0OAsqnX++xmHDwUdpPorn0UMWrYAg"29017
+ }29018
+ },29019
+ "user_id": "@alice_602:hs1",29020
+ "unsigned": {}29021
+ }29022
+ },29023
+ "@alice_604:hs1": {29024
+ "ALICEDEVICE604": {29025
+ "algorithms": [29026
+ "m.olm.v1.curve25519-aes-sha2",29027
+ "m.megolm.v1.aes-sha2"29028
+ ],29029
+ "device_id": "ALICEDEVICE604",29030
+ "keys": {29031
+ "curve25519:ALICEDEVICE604": "WeOlGRtT1nr5ARR2jaZjbk8/CajO3f/iN9v0bU645kc",29032
+ "ed25519:ALICEDEVICE604": "kUA3jETeqURZKoWje6X3b9zOV4U0Htnx6AJXo5NGwco"29033
+ },29034
+ "signatures": {29035
+ "@alice_604:hs1": {29036
+ "ed25519:ALICEDEVICE604": "tDsHOIOOCCvbEz8dzHTyZaFFtCqtA8xpuR5dvGGUm4BL+i9cqW2londvu+iXpGySJFEmdRJZpCMpp/crSXnqDA"29037
+ }29038
+ },29039
+ "user_id": "@alice_604:hs1",29040
+ "unsigned": {}29041
+ }29042
+ },29043
+ "@alice_605:hs1": {29044
+ "ALICEDEVICE605": {29045
+ "algorithms": [29046
+ "m.olm.v1.curve25519-aes-sha2",29047
+ "m.megolm.v1.aes-sha2"29048
+ ],29049
+ "device_id": "ALICEDEVICE605",29050
+ "keys": {29051
+ "curve25519:ALICEDEVICE605": "HiHxqLJ+t+x+lyCT02BYKCixAs3uDrlt08AOpJbW8zs",29052
+ "ed25519:ALICEDEVICE605": "yCGct0+ONEiG5zMBVrtB8IiPmY0bjP7OzLByvnZyiAM"29053
+ },29054
+ "signatures": {29055
+ "@alice_605:hs1": {29056
+ "ed25519:ALICEDEVICE605": "76bXVa+/6iuCrz0z5reHXzMjkSMQhbqoQ7UtOxbfh2VXaIGJqpqlmYu4wQZeOnFhJuv/vTIhJIFQH69dvgAnCw"29057
+ }29058
+ },29059
+ "user_id": "@alice_605:hs1",29060
+ "unsigned": {}29061
+ }29062
+ },29063
+ "@alice_612:hs1": {29064
+ "ALICEDEVICE612": {29065
+ "algorithms": [29066
+ "m.olm.v1.curve25519-aes-sha2",29067
+ "m.megolm.v1.aes-sha2"29068
+ ],29069
+ "device_id": "ALICEDEVICE612",29070
+ "keys": {29071
+ "curve25519:ALICEDEVICE612": "q6szh3Ia59UQLQOXyZ1mCD7Tk4MAVJ7W6NJHdffpjGY",29072
+ "ed25519:ALICEDEVICE612": "+kqoW9zmfLKrLlI2Dp740Wr2Twgkb7jD/9iNkmEuDtg"29073
+ },29074
+ "signatures": {29075
+ "@alice_612:hs1": {29076
+ "ed25519:ALICEDEVICE612": "pOCvbEezRz3v99zwEvQNPp0i2zGc0GDc5q/F/wSVJDFaEyk2XYjwzIqXv6xC8TjrKVFc+PkgpXS9MO70QmnbBw"29077
+ }29078
+ },29079
+ "user_id": "@alice_612:hs1",29080
+ "unsigned": {}29081
+ }29082
+ },29083
+ "@alice_614:hs1": {29084
+ "ALICEDEVICE614": {29085
+ "algorithms": [29086
+ "m.olm.v1.curve25519-aes-sha2",29087
+ "m.megolm.v1.aes-sha2"29088
+ ],29089
+ "device_id": "ALICEDEVICE614",29090
+ "keys": {29091
+ "curve25519:ALICEDEVICE614": "6Mk6iVZJ7UhGT5dMX1JmanoQ9PSphIIc2bgZe/giNTc",29092
+ "ed25519:ALICEDEVICE614": "pZkSrBRnvcCzFnkQf7zI3d4NwpaFUgHKpMndbANdp7k"29093
+ },29094
+ "signatures": {29095
+ "@alice_614:hs1": {29096
+ "ed25519:ALICEDEVICE614": "ma9PHtHAXzaVN2Ox5FuB3To3KsxlMZXInGufY/snOwO4HBLpdu3MVDbBtjGC8JO6XafBmJiT7K6xV4r3I1udDg"29097
+ }29098
+ },29099
+ "user_id": "@alice_614:hs1",29100
+ "unsigned": {}29101
+ }29102
+ },29103
+ "@alice_616:hs1": {29104
+ "ALICEDEVICE616": {29105
+ "algorithms": [29106
+ "m.olm.v1.curve25519-aes-sha2",29107
+ "m.megolm.v1.aes-sha2"29108
+ ],29109
+ "device_id": "ALICEDEVICE616",29110
+ "keys": {29111
+ "curve25519:ALICEDEVICE616": "WffehD34ySEokn9B0OQysw2jPtnWYQZANctf9UlcOEs",29112
+ "ed25519:ALICEDEVICE616": "TaJP7eJZ94JyzlJB/Hn6ikqhX1MKcUwCR+V/r8URGrQ"29113
+ },29114
+ "signatures": {29115
+ "@alice_616:hs1": {29116
+ "ed25519:ALICEDEVICE616": "FFyLbmO/b2t/r1zy7pmk4kIRVEidlzY/IyY6D7/3m0vFkphDOuUhE2DQ99ZvvjbBUdlxDTLO7RNCCElKV4RsCA"29117
+ }29118
+ },29119
+ "user_id": "@alice_616:hs1",29120
+ "unsigned": {}29121
+ }29122
+ },29123
+ "@alice_637:hs1": {29124
+ "ALICEDEVICE637": {29125
+ "algorithms": [29126
+ "m.olm.v1.curve25519-aes-sha2",29127
+ "m.megolm.v1.aes-sha2"29128
+ ],29129
+ "device_id": "ALICEDEVICE637",29130
+ "keys": {29131
+ "curve25519:ALICEDEVICE637": "wyirB03MVyymkHAusvsod0rCfxkrSmq0SbFBCO8Aako",29132
+ "ed25519:ALICEDEVICE637": "JGRkYcYQSEtxUbX2Fq3vxVFFxuIkwSk4vt17FFjrbh0"29133
+ },29134
+ "signatures": {29135
+ "@alice_637:hs1": {29136
+ "ed25519:ALICEDEVICE637": "9TrfdLqb2CsNcuWLe+dExJohWUMEiOHhE1rnFooL2pPaURrDyHD6m9B/yix7N7M6X1EKFBcQG1o/xSbPuNPDDw"29137
+ }29138
+ },29139
+ "user_id": "@alice_637:hs1",29140
+ "unsigned": {}29141
+ }29142
+ },29143
+ "@alice_642:hs1": {29144
+ "ALICEDEVICE642": {29145
+ "algorithms": [29146
+ "m.olm.v1.curve25519-aes-sha2",29147
+ "m.megolm.v1.aes-sha2"29148
+ ],29149
+ "device_id": "ALICEDEVICE642",29150
+ "keys": {29151
+ "curve25519:ALICEDEVICE642": "4o56nXqXdssE7cv0YDbQNku+SjJWPpz3Bp5z4sJ9u04",29152
+ "ed25519:ALICEDEVICE642": "u43ez/6gf02P8dNCKRAyzEM2IBVjAolyFFRyGfFIW/M"29153
+ },29154
+ "signatures": {29155
+ "@alice_642:hs1": {29156
+ "ed25519:ALICEDEVICE642": "3PfJItSkM130fWrIehd2DMxG3dsSPvBq/KrR/i8BAviK6/IfjI8Wn0vFUe9l5YkJSTuspxVk2qPyzcUjY5KODQ"29157
+ }29158
+ },29159
+ "user_id": "@alice_642:hs1",29160
+ "unsigned": {}29161
+ }29162
+ },29163
+ "@alice_647:hs1": {29164
+ "ALICEDEVICE647": {29165
+ "algorithms": [29166
+ "m.olm.v1.curve25519-aes-sha2",29167
+ "m.megolm.v1.aes-sha2"29168
+ ],29169
+ "device_id": "ALICEDEVICE647",29170
+ "keys": {29171
+ "curve25519:ALICEDEVICE647": "pdyMvS6jF9andM+BCtN8BNRuYQ5sYBPyQhMPDLzxWBY",29172
+ "ed25519:ALICEDEVICE647": "n6YQlEyEMX5LAtrz3EBcGoPbT69+ROmR2aQYhY4ZXW8"29173
+ },29174
+ "signatures": {29175
+ "@alice_647:hs1": {29176
+ "ed25519:ALICEDEVICE647": "eEWaBxsDJys1LQuXmOWBC3iMidJPmYDOJINJ02MVBXhL4jgR9X5tp5kvnm5ven/TXoZcmra4bJIVI7FyEHizDA"29177
+ }29178
+ },29179
+ "user_id": "@alice_647:hs1",29180
+ "unsigned": {}29181
+ }29182
+ },29183
+ "@alice_650:hs1": {29184
+ "ALICEDEVICE650": {29185
+ "algorithms": [29186
+ "m.olm.v1.curve25519-aes-sha2",29187
+ "m.megolm.v1.aes-sha2"29188
+ ],29189
+ "device_id": "ALICEDEVICE650",29190
+ "keys": {29191
+ "curve25519:ALICEDEVICE650": "iV0LrczZWoruEgVF6pUQw0Ak1hc83h13rMMHUg5maEw",29192
+ "ed25519:ALICEDEVICE650": "Jfgfn8tKks9mTPK5GUhpWMX2IkMz+eU49vC7UuG3YAo"29193
+ },29194
+ "signatures": {29195
+ "@alice_650:hs1": {29196
+ "ed25519:ALICEDEVICE650": "t2RdfbnzDCQW3dH1+5YhYDO6p8xmuNAaHgNkLavvVVpIAA0QBPp1Xs8LaqA0/LXLE9pgJ8MkV3RCU4XbmunoDA"29197
+ }29198
+ },29199
+ "user_id": "@alice_650:hs1",29200
+ "unsigned": {}29201
+ }29202
+ },29203
+ "@alice_654:hs1": {29204
+ "ALICEDEVICE654": {29205
+ "algorithms": [29206
+ "m.olm.v1.curve25519-aes-sha2",29207
+ "m.megolm.v1.aes-sha2"29208
+ ],29209
+ "device_id": "ALICEDEVICE654",29210
+ "keys": {29211
+ "curve25519:ALICEDEVICE654": "swon3ONFSpjU0zGQ1OIIbuVSDkB0hT3vya8oh3AvAU0",29212
+ "ed25519:ALICEDEVICE654": "GoUQFYCjm2x0HhVxJFw2i8Bwr+OIftNdpi/NPWBpnfI"29213
+ },29214
+ "signatures": {29215
+ "@alice_654:hs1": {29216
+ "ed25519:ALICEDEVICE654": "96hZyMkpXsrNmveWebELfbKVBryAn5bU4/UB2Yw7EtxSyv/HcJ1FDR8hQ/Pepckk1NEorIFEgNtCDHbnxfKzDA"29217
+ }29218
+ },29219
+ "user_id": "@alice_654:hs1",29220
+ "unsigned": {}29221
+ }29222
+ },29223
+ "@alice_655:hs1": {29224
+ "ALICEDEVICE655": {29225
+ "algorithms": [29226
+ "m.olm.v1.curve25519-aes-sha2",29227
+ "m.megolm.v1.aes-sha2"29228
+ ],29229
+ "device_id": "ALICEDEVICE655",29230
+ "keys": {29231
+ "curve25519:ALICEDEVICE655": "o121taT8Jrz0eLQkLSnD19hc2Y6wKmb5tyvx7rzx8QM",29232
+ "ed25519:ALICEDEVICE655": "BHdbeMqpuJvyLVbrV8eLGIlRkic9ToekpoiEym1NEYc"29233
+ },29234
+ "signatures": {29235
+ "@alice_655:hs1": {29236
+ "ed25519:ALICEDEVICE655": "UJJEg/hfaSW1Ibw8eB1sEKxsH4NsadfcI4puTOmAffIGsTV3IWf7KBZn5S9cwk3x7RZjg48+xVKja24tT1+NBQ"29237
+ }29238
+ },29239
+ "user_id": "@alice_655:hs1",29240
+ "unsigned": {}29241
+ }29242
+ },29243
+ "@alice_657:hs1": {29244
+ "ALICEDEVICE657": {29245
+ "algorithms": [29246
+ "m.olm.v1.curve25519-aes-sha2",29247
+ "m.megolm.v1.aes-sha2"29248
+ ],29249
+ "device_id": "ALICEDEVICE657",29250
+ "keys": {29251
+ "curve25519:ALICEDEVICE657": "JXl0cX2Ff5A1lYPHIqmrrr+YNf9Yv3OfmRK98ey6N0c",29252
+ "ed25519:ALICEDEVICE657": "5bkNcK9U54+b8720QQ0FVPxlQPzydTP7hF8zeoeu+7M"29253
+ },29254
+ "signatures": {29255
+ "@alice_657:hs1": {29256
+ "ed25519:ALICEDEVICE657": "cP+P5Pa3J648erWLqP4yz16y+0OF44Z/vEeY/U1j7HuNUtZQ1RFMdRojWQvEIriAXfNTR0OZSrwndGGUdU/aCg"29257
+ }29258
+ },29259
+ "user_id": "@alice_657:hs1",29260
+ "unsigned": {}29261
+ }29262
+ },29263
+ "@alice_664:hs1": {29264
+ "ALICEDEVICE664": {29265
+ "algorithms": [29266
+ "m.olm.v1.curve25519-aes-sha2",29267
+ "m.megolm.v1.aes-sha2"29268
+ ],29269
+ "device_id": "ALICEDEVICE664",29270
+ "keys": {29271
+ "curve25519:ALICEDEVICE664": "CNgMUa03BPpJC53NFP/UxH4T9Rj5qs54mvJWHvJTVhQ",29272
+ "ed25519:ALICEDEVICE664": "qUcVRUsQ0HUHM6H/lBCCrudnQojQ1h7ZJvSuj4xbz3I"29273
+ },29274
+ "signatures": {29275
+ "@alice_664:hs1": {29276
+ "ed25519:ALICEDEVICE664": "DzaTDlQG6gHfytxbPHC5C3jFea7ZanM/yHxl7zIMcq6ywWeHRWJ1Pa7ITWLrC0e5Ys0bNW6J8ZIUKXzysWYGBA"29277
+ }29278
+ },29279
+ "user_id": "@alice_664:hs1",29280
+ "unsigned": {}29281
+ }29282
+ },29283
+ "@alice_667:hs1": {29284
+ "ALICEDEVICE667": {29285
+ "algorithms": [29286
+ "m.olm.v1.curve25519-aes-sha2",29287
+ "m.megolm.v1.aes-sha2"29288
+ ],29289
+ "device_id": "ALICEDEVICE667",29290
+ "keys": {29291
+ "curve25519:ALICEDEVICE667": "wOO68PjH0gcmLHopAtWGRSnnhIUw/KmBcesxPsatiwU",29292
+ "ed25519:ALICEDEVICE667": "nDKlYYk3eBP0EtIgW6++lmznMS6CwapkitEsZzPnHc0"29293
+ },29294
+ "signatures": {29295
+ "@alice_667:hs1": {29296
+ "ed25519:ALICEDEVICE667": "H11khbAlit9R5cGGZWHhtbvlx4s9fGRFhe9uSNW3jFoweazngRaOArTFNtv/519Xn27XRztlzSol8NK3Yv+oBQ"29297
+ }29298
+ },29299
+ "user_id": "@alice_667:hs1",29300
+ "unsigned": {}29301
+ }29302
+ },29303
+ "@alice_682:hs1": {29304
+ "ALICEDEVICE682": {29305
+ "algorithms": [29306
+ "m.olm.v1.curve25519-aes-sha2",29307
+ "m.megolm.v1.aes-sha2"29308
+ ],29309
+ "device_id": "ALICEDEVICE682",29310
+ "keys": {29311
+ "curve25519:ALICEDEVICE682": "txcqKwjn6ZresZufK0febRBzXvp4HrXpypeqVugBmhc",29312
+ "ed25519:ALICEDEVICE682": "xoJAGPhdQLPt/8XyYYKfrGC0Az2z0b3fJum09MUP8r8"29313
+ },29314
+ "signatures": {29315
+ "@alice_682:hs1": {29316
+ "ed25519:ALICEDEVICE682": "7DLo0npc4tTvZIEMsa44dVmPTIQYk+NBuXpQCxzxTlsy1nKUA+VXPikuB/yeGdTPfbB0bFW4Wc26uViyHGgXBg"29317
+ }29318
+ },29319
+ "user_id": "@alice_682:hs1",29320
+ "unsigned": {}29321
+ }29322
+ },29323
+ "@alice_686:hs1": {29324
+ "ALICEDEVICE686": {29325
+ "algorithms": [29326
+ "m.olm.v1.curve25519-aes-sha2",29327
+ "m.megolm.v1.aes-sha2"29328
+ ],29329
+ "device_id": "ALICEDEVICE686",29330
+ "keys": {29331
+ "curve25519:ALICEDEVICE686": "0FsWXIDYCUR5qFhMnzOS4Jp7vl5XAfWTPVxEWZNTSUc",29332
+ "ed25519:ALICEDEVICE686": "80fIOFqlIgWJ14y6WQ2QqFEdV0DtQTFkXYZfceCrtvY"29333
+ },29334
+ "signatures": {29335
+ "@alice_686:hs1": {29336
+ "ed25519:ALICEDEVICE686": "P6TddcgTpM6nJU9j5M+MvVpOmeCTAVJADw9yAqqTgb0R8Ddl41igslFqH5OdazdVj7HCm4W+6RubOZpVN3tlCw"29337
+ }29338
+ },29339
+ "user_id": "@alice_686:hs1",29340
+ "unsigned": {}29341
+ }29342
+ },29343
+ "@alice_687:hs1": {29344
+ "ALICEDEVICE687": {29345
+ "algorithms": [29346
+ "m.olm.v1.curve25519-aes-sha2",29347
+ "m.megolm.v1.aes-sha2"29348
+ ],29349
+ "device_id": "ALICEDEVICE687",29350
+ "keys": {29351
+ "curve25519:ALICEDEVICE687": "mnjWKm9WuUZJLUwMe+Gd+TXwi9NNbQuXwXwkjgLTGnc",29352
+ "ed25519:ALICEDEVICE687": "Jr3OF9ihwin1dETLb3C0BqdmQkpBQxH9s8bMw581Tfg"29353
+ },29354
+ "signatures": {29355
+ "@alice_687:hs1": {29356
+ "ed25519:ALICEDEVICE687": "179jsHm+9hNHB9+6K9OJkLrPslromb43qNJJCVzU2w2h7Roy5mI2Iz0f7F+cV1vkaxGApXwhyuV70eGxDPLHAw"29357
+ }29358
+ },29359
+ "user_id": "@alice_687:hs1",29360
+ "unsigned": {}29361
+ }29362
+ },29363
+ "@alice_701:hs1": {29364
+ "ALICEDEVICE701": {29365
+ "algorithms": [29366
+ "m.olm.v1.curve25519-aes-sha2",29367
+ "m.megolm.v1.aes-sha2"29368
+ ],29369
+ "device_id": "ALICEDEVICE701",29370
+ "keys": {29371
+ "curve25519:ALICEDEVICE701": "H5Wo9zE0G0hMlo/pJ8PeAIiSiJwxLXxGCfeGmAq9zW8",29372
+ "ed25519:ALICEDEVICE701": "hARQfVLCYdOAptASeLElUqsVyYJQgC8P9rPOd0A33CE"29373
+ },29374
+ "signatures": {29375
+ "@alice_701:hs1": {29376
+ "ed25519:ALICEDEVICE701": "bNN7zK1AEpvYdtdO54M+U/43FgRqh1niZNI3KUCXHGlx4kknb3OuofJXs3wLscgfYAjET7eIx3VCbq+Nng3wDA"29377
+ }29378
+ },29379
+ "user_id": "@alice_701:hs1",29380
+ "unsigned": {}29381
+ }29382
+ },29383
+ "@alice_703:hs1": {29384
+ "ALICEDEVICE703": {29385
+ "algorithms": [29386
+ "m.olm.v1.curve25519-aes-sha2",29387
+ "m.megolm.v1.aes-sha2"29388
+ ],29389
+ "device_id": "ALICEDEVICE703",29390
+ "keys": {29391
+ "curve25519:ALICEDEVICE703": "OVVTfNonPUp35M9Xq/jFJ8AK+rTgFO+aW8j52jGR/X4",29392
+ "ed25519:ALICEDEVICE703": "1mYxR35TrnKdHQyCLU+d8yXzTgR3d+HkMWfTEl7vBbQ"29393
+ },29394
+ "signatures": {29395
+ "@alice_703:hs1": {29396
+ "ed25519:ALICEDEVICE703": "gpsitSBDBfcU1cfvVD4YHOboX9GQiBTdJE4euZC4SYhj1SVGqInEpklmB47LyYkpTCAlDRZU/ecFhiDQD2M3Cw"29397
+ }29398
+ },29399
+ "user_id": "@alice_703:hs1",29400
+ "unsigned": {}29401
+ }29402
+ },29403
+ "@alice_704:hs1": {29404
+ "ALICEDEVICE704": {29405
+ "algorithms": [29406
+ "m.olm.v1.curve25519-aes-sha2",29407
+ "m.megolm.v1.aes-sha2"29408
+ ],29409
+ "device_id": "ALICEDEVICE704",29410
+ "keys": {29411
+ "curve25519:ALICEDEVICE704": "dyBbNGRAtMXspVsfMmFoB6vBpUBCCyrAuTo7l8HOqn4",29412
+ "ed25519:ALICEDEVICE704": "Z6fNdnNa04792G3+OYmh5vq8I9TItZG2i6LQE82UE9E"29413
+ },29414
+ "signatures": {29415
+ "@alice_704:hs1": {29416
+ "ed25519:ALICEDEVICE704": "tx0HsjxtKAs63nIsrt///zhaenceE/mgTJ6XVdgSjkb6DheypW5qCFBRfnNcJ4Ep4dOfn283iceEwWmp1SYiDQ"29417
+ }29418
+ },29419
+ "user_id": "@alice_704:hs1",29420
+ "unsigned": {}29421
+ }29422
+ },29423
+ "@alice_706:hs1": {29424
+ "ALICEDEVICE706": {29425
+ "algorithms": [29426
+ "m.olm.v1.curve25519-aes-sha2",29427
+ "m.megolm.v1.aes-sha2"29428
+ ],29429
+ "device_id": "ALICEDEVICE706",29430
+ "keys": {29431
+ "curve25519:ALICEDEVICE706": "8ARRjdKO4eZ6pXz6/50JHoNbwN0wxwwjDd/tc5TI5Bg",29432
+ "ed25519:ALICEDEVICE706": "KgDdbZlz6R+yFnV1bdDiu74liT1wTlKEbbn4hnj/Wrg"29433
+ },29434
+ "signatures": {29435
+ "@alice_706:hs1": {29436
+ "ed25519:ALICEDEVICE706": "GmeIwFpQn6EFcz1s5r3wJn3maiu0eANqUHAqY5BfwPDoNi3DTJcqsbpCD+BNWVNFgEB4WTbsD6AYXyOJrF4EAA"29437
+ }29438
+ },29439
+ "user_id": "@alice_706:hs1",29440
+ "unsigned": {}29441
+ }29442
+ },29443
+ "@alice_73:hs1": {29444
+ "ALICEDEVICE73": {29445
+ "algorithms": [29446
+ "m.olm.v1.curve25519-aes-sha2",29447
+ "m.megolm.v1.aes-sha2"29448
+ ],29449
+ "device_id": "ALICEDEVICE73",29450
+ "keys": {29451
+ "curve25519:ALICEDEVICE73": "KQi0atWpQeJzmIxTGrC0RVFtPa3bBSK3JWCA+9CtJVs",29452
+ "ed25519:ALICEDEVICE73": "0yancbdf3DYBeUAfIxbcaGIG4DM4NEgoAUK4J+2pxnI"29453
+ },29454
+ "signatures": {29455
+ "@alice_73:hs1": {29456
+ "ed25519:ALICEDEVICE73": "Ypd5nGvBgmoWteBqoRfMfpcDqQ74TDTtnLPAcEKv22qAMy0rBypX7BzSKR0hXdBKii6y5AN2CqTGSAouXXr5AA"29457
+ }29458
+ },29459
+ "user_id": "@alice_73:hs1",29460
+ "unsigned": {}29461
+ }29462
+ },29463
+ "@alice_741:hs1": {29464
+ "ALICEDEVICE741": {29465
+ "algorithms": [29466
+ "m.olm.v1.curve25519-aes-sha2",29467
+ "m.megolm.v1.aes-sha2"29468
+ ],29469
+ "device_id": "ALICEDEVICE741",29470
+ "keys": {29471
+ "curve25519:ALICEDEVICE741": "ed77G02/ttxpSoq9oX7jdf8l4IwjGDHOaBNt1ElH2S4",29472
+ "ed25519:ALICEDEVICE741": "8+vj/CIN0lhJWNcqNUzp6pyhzK977aPGd1clE329NLw"29473
+ },29474
+ "signatures": {29475
+ "@alice_741:hs1": {29476
+ "ed25519:ALICEDEVICE741": "yeplXlVP69ZGE8WOh5Xy8vx78LPIMWd/QUgBgv0VBrsDantawiBDzb016QvNYxO2xkl9mYQzC7eVHM349jGRDQ"29477
+ }29478
+ },29479
+ "user_id": "@alice_741:hs1",29480
+ "unsigned": {}29481
+ }29482
+ },29483
+ "@alice_742:hs1": {29484
+ "ALICEDEVICE742": {29485
+ "algorithms": [29486
+ "m.olm.v1.curve25519-aes-sha2",29487
+ "m.megolm.v1.aes-sha2"29488
+ ],29489
+ "device_id": "ALICEDEVICE742",29490
+ "keys": {29491
+ "curve25519:ALICEDEVICE742": "XLGXyAIlPbGfv4rggdxkv6YPz4LaF3UfnPkccJPcfGw",29492
+ "ed25519:ALICEDEVICE742": "U9Gran+pQlR5/HkBXLv/CsXgWn4fK8xSGfNCSs1Z9co"29493
+ },29494
+ "signatures": {29495
+ "@alice_742:hs1": {29496
+ "ed25519:ALICEDEVICE742": "W6OgBcZNjCnVLM5bn482Cz2NxBM2N2mFAb9XU5hbazcNnGjMjm42g0ofqoueNRY/1qvFQx+/571z0CzPr/AbCA"29497
+ }29498
+ },29499
+ "user_id": "@alice_742:hs1",29500
+ "unsigned": {}29501
+ }29502
+ },29503
+ "@alice_759:hs1": {29504
+ "ALICEDEVICE759": {29505
+ "algorithms": [29506
+ "m.olm.v1.curve25519-aes-sha2",29507
+ "m.megolm.v1.aes-sha2"29508
+ ],29509
+ "device_id": "ALICEDEVICE759",29510
+ "keys": {29511
+ "curve25519:ALICEDEVICE759": "iAr1itK4ZgF4AjPjh5aDBrRgu4o2+KGC2qyYTpdpZyo",29512
+ "ed25519:ALICEDEVICE759": "9tdFEu+Gd7BF4l6FouNH+iU+T5OGtYqFsmk7QJKySes"29513
+ },29514
+ "signatures": {29515
+ "@alice_759:hs1": {29516
+ "ed25519:ALICEDEVICE759": "z4+Lx/R3oIuAjyP90Hn5wFbzrfXQB0Gc3sAC2BEuQMq1nzCD9puUSk3E60B+Tbtlpd0zHeJ1OfkkI7UTzrJoAw"29517
+ }29518
+ },29519
+ "user_id": "@alice_759:hs1",29520
+ "unsigned": {}29521
+ }29522
+ },29523
+ "@alice_75:hs1": {29524
+ "ALICEDEVICE75": {29525
+ "algorithms": [29526
+ "m.olm.v1.curve25519-aes-sha2",29527
+ "m.megolm.v1.aes-sha2"29528
+ ],29529
+ "device_id": "ALICEDEVICE75",29530
+ "keys": {29531
+ "curve25519:ALICEDEVICE75": "TB7ahJegy3g8TYM5bPQj7cHI5bTIXU5csk5+P6QRJCI",29532
+ "ed25519:ALICEDEVICE75": "EDnALOvL4mST3ViUaekbehS/qWxqimqPHyi2I59KLRA"29533
+ },29534
+ "signatures": {29535
+ "@alice_75:hs1": {29536
+ "ed25519:ALICEDEVICE75": "cIym5VcO09PXed2BJQPM2pyxdR7yfFNAUPobDnykNH0iI0lG8aoO27KlSUyhsrJfVmJDQPSFnzxxBlsqfe/+Bg"29537
+ }29538
+ },29539
+ "user_id": "@alice_75:hs1",29540
+ "unsigned": {}29541
+ }29542
+ },29543
+ "@alice_762:hs1": {29544
+ "ALICEDEVICE762": {29545
+ "algorithms": [29546
+ "m.olm.v1.curve25519-aes-sha2",29547
+ "m.megolm.v1.aes-sha2"29548
+ ],29549
+ "device_id": "ALICEDEVICE762",29550
+ "keys": {29551
+ "curve25519:ALICEDEVICE762": "3Et0RLJ0FdEpbkKRZwtdbKVubsoka/q+BSDGfze3OAM",29552
+ "ed25519:ALICEDEVICE762": "dBpIe85YbAxMDIdmqyt1kpeo0vs9Xoh5o8yEQ//WkGE"29553
+ },29554
+ "signatures": {29555
+ "@alice_762:hs1": {29556
+ "ed25519:ALICEDEVICE762": "JDpFdReSA2rmpk9lcxJwxn6GRTWC28fm9osbfwIic7QY+cX31Q9OmirFmZ8Ry70zUPBT0iEKGEzsevGB8UInCg"29557
+ }29558
+ },29559
+ "user_id": "@alice_762:hs1",29560
+ "unsigned": {}29561
+ }29562
+ },29563
+ "@alice_769:hs1": {29564
+ "ALICEDEVICE769": {29565
+ "algorithms": [29566
+ "m.olm.v1.curve25519-aes-sha2",29567
+ "m.megolm.v1.aes-sha2"29568
+ ],29569
+ "device_id": "ALICEDEVICE769",29570
+ "keys": {29571
+ "curve25519:ALICEDEVICE769": "BSK6TNUG6fBvZrNn/HLZaiQzOpuyMQowQqJb+GIC0ig",29572
+ "ed25519:ALICEDEVICE769": "oQBAsQEpk4xeYK8i4+Ny4VLVGjN17MkYQedlHFSoc94"29573
+ },29574
+ "signatures": {29575
+ "@alice_769:hs1": {29576
+ "ed25519:ALICEDEVICE769": "T8JUzQ5FuVO/mpI2flHkVViEVxbHOZu++n8p6BWUyr97cR+HJOonKcOwkugu26XpIdz4uLIAvkALX8In/FoQCg"29577
+ }29578
+ },29579
+ "user_id": "@alice_769:hs1",29580
+ "unsigned": {}29581
+ }29582
+ },29583
+ "@alice_771:hs1": {29584
+ "ALICEDEVICE771": {29585
+ "algorithms": [29586
+ "m.olm.v1.curve25519-aes-sha2",29587
+ "m.megolm.v1.aes-sha2"29588
+ ],29589
+ "device_id": "ALICEDEVICE771",29590
+ "keys": {29591
+ "curve25519:ALICEDEVICE771": "BgLxcZPRfB6lN06Ko8qr1m4AvlScYCoVIggQYnEs31I",29592
+ "ed25519:ALICEDEVICE771": "VocLVjI0qCdr46SW0FNj6TpPFcgYcaB8JWEIjAmkX30"29593
+ },29594
+ "signatures": {29595
+ "@alice_771:hs1": {29596
+ "ed25519:ALICEDEVICE771": "/xbVZhDzVOIDL0Taxm2j3Pn78qkg0wCdKjwt9Bi2MQZogct1zBjtlIp9Re/GS89DKnw02hYfunierzKV6JK2BQ"29597
+ }29598
+ },29599
+ "user_id": "@alice_771:hs1",29600
+ "unsigned": {}29601
+ }29602
+ },29603
+ "@alice_775:hs1": {29604
+ "ALICEDEVICE775": {29605
+ "algorithms": [29606
+ "m.olm.v1.curve25519-aes-sha2",29607
+ "m.megolm.v1.aes-sha2"29608
+ ],29609
+ "device_id": "ALICEDEVICE775",29610
+ "keys": {29611
+ "curve25519:ALICEDEVICE775": "+qFyDk2/HBPunvuM3DJggNm9NKpeaNerxYr9Mj6/kzw",29612
+ "ed25519:ALICEDEVICE775": "OK8QR5y00EPGqnthO3FNE2qgCmtUEzJrY8Sj1392FYM"29613
+ },29614
+ "signatures": {29615
+ "@alice_775:hs1": {29616
+ "ed25519:ALICEDEVICE775": "P7pmFZQ3f949OGtB9ImMykZnDKPs3Vm//57odSrULyEuSfVj3PtjoejmFxXA9Du7FQCFJUB/HgnuC+CdHt7iCQ"29617
+ }29618
+ },29619
+ "user_id": "@alice_775:hs1",29620
+ "unsigned": {}29621
+ }29622
+ },29623
+ "@alice_786:hs1": {29624
+ "ALICEDEVICE786": {29625
+ "algorithms": [29626
+ "m.olm.v1.curve25519-aes-sha2",29627
+ "m.megolm.v1.aes-sha2"29628
+ ],29629
+ "device_id": "ALICEDEVICE786",29630
+ "keys": {29631
+ "curve25519:ALICEDEVICE786": "tT4XzMGJ/IB3dIrY58D3A7qB9guFUUh9R0XBlUTTA34",29632
+ "ed25519:ALICEDEVICE786": "38kpBDozgvXsJBXkKqJEIrWsS0ILVzE47jiWt+5aViE"29633
+ },29634
+ "signatures": {29635
+ "@alice_786:hs1": {29636
+ "ed25519:ALICEDEVICE786": "WiKwB9CeK/aDdbU9vMqHNMuUNl4ti8+QQT4vT60Fto2wjCd1e2/PnWO3X1yKOPLp5mCE4hlIaK5PGv85xYVEAQ"29637
+ }29638
+ },29639
+ "user_id": "@alice_786:hs1",29640
+ "unsigned": {}29641
+ }29642
+ },29643
+ "@alice_78:hs1": {29644
+ "ALICEDEVICE78": {29645
+ "algorithms": [29646
+ "m.olm.v1.curve25519-aes-sha2",29647
+ "m.megolm.v1.aes-sha2"29648
+ ],29649
+ "device_id": "ALICEDEVICE78",29650
+ "keys": {29651
+ "curve25519:ALICEDEVICE78": "sY4f6VgkJ8Csk49j9EnKYtA5TkXCAdikRobUC6sgXGQ",29652
+ "ed25519:ALICEDEVICE78": "06+rdqHVhYOgdtFsZtdvSRegBZjOo7q4PDY+RzBP9QQ"29653
+ },29654
+ "signatures": {29655
+ "@alice_78:hs1": {29656
+ "ed25519:ALICEDEVICE78": "cYFGbcb41vejfBBRtLvPhDoDLOnIJZX0DYF7Iw0mSa8mwszsInxvbxi/5C6IwKeMOCTl/KEuNEeidQPZa1vBDw"29657
+ }29658
+ },29659
+ "user_id": "@alice_78:hs1",29660
+ "unsigned": {}29661
+ }29662
+ },29663
+ "@alice_79:hs1": {29664
+ "ALICEDEVICE79": {29665
+ "algorithms": [29666
+ "m.olm.v1.curve25519-aes-sha2",29667
+ "m.megolm.v1.aes-sha2"29668
+ ],29669
+ "device_id": "ALICEDEVICE79",29670
+ "keys": {29671
+ "curve25519:ALICEDEVICE79": "Z0DG7jy9abyp6IoDtXLztDzucLPkORR4NIg1eTtv6AQ",29672
+ "ed25519:ALICEDEVICE79": "OIadEukwLSJlNyhsOlTmHR73V2ilOhcaT4t6crN7mqc"29673
+ },29674
+ "signatures": {29675
+ "@alice_79:hs1": {29676
+ "ed25519:ALICEDEVICE79": "13sL2+098+ijQ3MQOTLf0RfBHpndKj0DybK0SkZBkwL5b4jQ77dgdt9KOH7vON5fczTpuZJdPqJFn1Ulwg47Cw"29677
+ }29678
+ },29679
+ "user_id": "@alice_79:hs1",29680
+ "unsigned": {}29681
+ }29682
+ },29683
+ "@alice_804:hs1": {29684
+ "ALICEDEVICE804": {29685
+ "algorithms": [29686
+ "m.olm.v1.curve25519-aes-sha2",29687
+ "m.megolm.v1.aes-sha2"29688
+ ],29689
+ "device_id": "ALICEDEVICE804",29690
+ "keys": {29691
+ "curve25519:ALICEDEVICE804": "MW6TbqBRgDGXTxDx1Cv/lm4hLW+f2APfW9g79iT9RC8",29692
+ "ed25519:ALICEDEVICE804": "HgCs7WC47+8KxyP+uqG3plC1yNdcWPY4xGpTQocVkxc"29693
+ },29694
+ "signatures": {29695
+ "@alice_804:hs1": {29696
+ "ed25519:ALICEDEVICE804": "PCx58Q6OFtWCBXisuT5vNIURHy46Scx2vd4K9EWnmC9g+5mn+ZK8cbDYjP1NQ5qWgF5pgc7Ht3EEvJgXhwlPBQ"29697
+ }29698
+ },29699
+ "user_id": "@alice_804:hs1",29700
+ "unsigned": {}29701
+ }29702
+ },29703
+ "@alice_806:hs1": {29704
+ "ALICEDEVICE806": {29705
+ "algorithms": [29706
+ "m.olm.v1.curve25519-aes-sha2",29707
+ "m.megolm.v1.aes-sha2"29708
+ ],29709
+ "device_id": "ALICEDEVICE806",29710
+ "keys": {29711
+ "curve25519:ALICEDEVICE806": "PkWvap4rYvCKDJpqsI1UJi17d6uRa2LOXCk3sj6oP1k",29712
+ "ed25519:ALICEDEVICE806": "lUJpJQjma7JKzhE/WDKvzGhgBGbKuzdpjzs0ihuxdmA"29713
+ },29714
+ "signatures": {29715
+ "@alice_806:hs1": {29716
+ "ed25519:ALICEDEVICE806": "aElOw+ECqgfrj1httWv6wI0cxhqScUa+3am4SPP1DeE5FRVnZigOyZ/Q4SSFyruviPEvFzO9Y9wQkN8F/TxXDg"29717
+ }29718
+ },29719
+ "user_id": "@alice_806:hs1",29720
+ "unsigned": {}29721
+ }29722
+ },29723
+ "@alice_808:hs1": {29724
+ "ALICEDEVICE808": {29725
+ "algorithms": [29726
+ "m.olm.v1.curve25519-aes-sha2",29727
+ "m.megolm.v1.aes-sha2"29728
+ ],29729
+ "device_id": "ALICEDEVICE808",29730
+ "keys": {29731
+ "curve25519:ALICEDEVICE808": "80PBoLH5eCWNgrkOn/VWKBsGpWNXWIcb+xynlxs7kk4",29732
+ "ed25519:ALICEDEVICE808": "8735mZqeBMbJV/IlUIDJjVAZ/P4BUlJJpd7sneGDAQ0"29733
+ },29734
+ "signatures": {29735
+ "@alice_808:hs1": {29736
+ "ed25519:ALICEDEVICE808": "7esIh/zkEOEa0T39OeekuejCnlGdiHKaoyOH67gpco5JpVutVucI871kk+agJqnIXgVUw6zc5dKylaPzgJa3CA"29737
+ }29738
+ },29739
+ "user_id": "@alice_808:hs1",29740
+ "unsigned": {}29741
+ }29742
+ },29743
+ "@alice_810:hs1": {29744
+ "ALICEDEVICE810": {29745
+ "algorithms": [29746
+ "m.olm.v1.curve25519-aes-sha2",29747
+ "m.megolm.v1.aes-sha2"29748
+ ],29749
+ "device_id": "ALICEDEVICE810",29750
+ "keys": {29751
+ "curve25519:ALICEDEVICE810": "isBDRpFkhhVDZJ33LJa6+7MuYVWZX9Ty/JplVAWlV0o",29752
+ "ed25519:ALICEDEVICE810": "io7tB9e5ZTsfbTB1jnV9+DiibslG6UfXEUo6E3VhNyY"29753
+ },29754
+ "signatures": {29755
+ "@alice_810:hs1": {29756
+ "ed25519:ALICEDEVICE810": "GJxUDebmS4p4RFLynwkgxYrEgDcD1wh+a1+p72rqUcBJ0VrPYfwHapkNr6W+0nfAgevzDB0PTU3dQt8exlQ8Dg"29757
+ }29758
+ },29759
+ "user_id": "@alice_810:hs1",29760
+ "unsigned": {}29761
+ }29762
+ },29763
+ "@alice_814:hs1": {29764
+ "ALICEDEVICE814": {29765
+ "algorithms": [29766
+ "m.olm.v1.curve25519-aes-sha2",29767
+ "m.megolm.v1.aes-sha2"29768
+ ],29769
+ "device_id": "ALICEDEVICE814",29770
+ "keys": {29771
+ "curve25519:ALICEDEVICE814": "b3mazSXdBKf+8m/P765PS7u25UDZ6IaTlwUrjjhan0w",29772
+ "ed25519:ALICEDEVICE814": "D1kg53No0TLdBkAHcaRirI6mQQtPLDUFq7PTOeSVpmI"29773
+ },29774
+ "signatures": {29775
+ "@alice_814:hs1": {29776
+ "ed25519:ALICEDEVICE814": "Z11fFSLvhiqV612Yar1x7kQFk1tMFQX2jPsJB8Yue1b1YGf+rLxDaGBIzH59a+Oooasy+ddwV8YSVPP42SIbBg"29777
+ }29778
+ },29779
+ "user_id": "@alice_814:hs1",29780
+ "unsigned": {}29781
+ }29782
+ },29783
+ "@alice_819:hs1": {29784
+ "ALICEDEVICE819": {29785
+ "algorithms": [29786
+ "m.olm.v1.curve25519-aes-sha2",29787
+ "m.megolm.v1.aes-sha2"29788
+ ],29789
+ "device_id": "ALICEDEVICE819",29790
+ "keys": {29791
+ "curve25519:ALICEDEVICE819": "6B0StQPhTviai82wonnx+YcMC22nJURnlOsyvcLj72o",29792
+ "ed25519:ALICEDEVICE819": "7w+h1kruyt4SlMQf6xuT4YTjg/aNlYhIMY01xd2JlfA"29793
+ },29794
+ "signatures": {29795
+ "@alice_819:hs1": {29796
+ "ed25519:ALICEDEVICE819": "tlqzmi2ROhSXtUWEvzwGI7ELU+jxvTQ0mXlVbaApWQJGXeSmjVXq7hHjF/EpjYoIJRbq6SonhPz92k1B0AupDA"29797
+ }29798
+ },29799
+ "user_id": "@alice_819:hs1",29800
+ "unsigned": {}29801
+ }29802
+ },29803
+ "@alice_831:hs1": {29804
+ "ALICEDEVICE831": {29805
+ "algorithms": [29806
+ "m.olm.v1.curve25519-aes-sha2",29807
+ "m.megolm.v1.aes-sha2"29808
+ ],29809
+ "device_id": "ALICEDEVICE831",29810
+ "keys": {29811
+ "curve25519:ALICEDEVICE831": "f3dH4sn+UOiiOF/RcR+W5mk66eJh4HPAHW1DYRbt5zM",29812
+ "ed25519:ALICEDEVICE831": "9T6S5oykCZY7L7xR9nQtUOXYd9P2dduaaQxYcvhVwaw"29813
+ },29814
+ "signatures": {29815
+ "@alice_831:hs1": {29816
+ "ed25519:ALICEDEVICE831": "V+P+RwGgNbUTSIdYPi8dLczZ9mCPVu8RT6OI0Oz6NK+XdKn5YcC1ECQWBVnA9sfENgSi/9MiUfz/grIYEXdOBw"29817
+ }29818
+ },29819
+ "user_id": "@alice_831:hs1",29820
+ "unsigned": {}29821
+ }29822
+ },29823
+ "@alice_833:hs1": {29824
+ "ALICEDEVICE833": {29825
+ "algorithms": [29826
+ "m.olm.v1.curve25519-aes-sha2",29827
+ "m.megolm.v1.aes-sha2"29828
+ ],29829
+ "device_id": "ALICEDEVICE833",29830
+ "keys": {29831
+ "curve25519:ALICEDEVICE833": "r0P369zzaiWGTKNManNC52rrL0MdycKAybSO1LxjoGc",29832
+ "ed25519:ALICEDEVICE833": "gY9m7hdN7+QZ2XB+D3SfYT3OMe5mLrJf90z7GxJ102g"29833
+ },29834
+ "signatures": {29835
+ "@alice_833:hs1": {29836
+ "ed25519:ALICEDEVICE833": "xyrmbWACV6u98vgNFkZu6FYr9T9CWKxB/s2p/3bfHZ9ejecIBEIRcLb1c5lwUVnbICoIqvauA3vB66+vWBE9CA"29837
+ }29838
+ },29839
+ "user_id": "@alice_833:hs1",29840
+ "unsigned": {}29841
+ }29842
+ },29843
+ "@alice_838:hs1": {29844
+ "ALICEDEVICE838": {29845
+ "algorithms": [29846
+ "m.olm.v1.curve25519-aes-sha2",29847
+ "m.megolm.v1.aes-sha2"29848
+ ],29849
+ "device_id": "ALICEDEVICE838",29850
+ "keys": {29851
+ "curve25519:ALICEDEVICE838": "6crVKEPEH9wMppcAfpA+Y5YxIkYVXsKU/qh1iuxnQVQ",29852
+ "ed25519:ALICEDEVICE838": "+1MinkBW7fTKFObE+RZJlaa1AidKcRO1FNhLjNCnm6M"29853
+ },29854
+ "signatures": {29855
+ "@alice_838:hs1": {29856
+ "ed25519:ALICEDEVICE838": "Du57W4p7kPJ2Tk0cWWYDNS657u2aJBwOMxXutPtuVMV/m3HoElvJQsxEZqgaVsD04aFjmpvzoCYXSI4mXphlAg"29857
+ }29858
+ },29859
+ "user_id": "@alice_838:hs1",29860
+ "unsigned": {}29861
+ }29862
+ },29863
+ "@alice_839:hs1": {29864
+ "ALICEDEVICE839": {29865
+ "algorithms": [29866
+ "m.olm.v1.curve25519-aes-sha2",29867
+ "m.megolm.v1.aes-sha2"29868
+ ],29869
+ "device_id": "ALICEDEVICE839",29870
+ "keys": {29871
+ "curve25519:ALICEDEVICE839": "5QUf8OI55goc4ZFalPGhKklEmRRrhXbJHWbqjWk4DDE",29872
+ "ed25519:ALICEDEVICE839": "PBEAofEiFJuKtJkOnyTBuVmzEGn4h/7vdr+80qlHoLc"29873
+ },29874
+ "signatures": {29875
+ "@alice_839:hs1": {29876
+ "ed25519:ALICEDEVICE839": "t9NO5l08cOFfBRtsY9eEQW+zUVVHVDhbjdvqCsi1dBTthsp4DhyNHRmFzjLXu1KsuFEQIsv/KFlOC9XJwTsLCw"29877
+ }29878
+ },29879
+ "user_id": "@alice_839:hs1",29880
+ "unsigned": {}29881
+ }29882
+ },29883
+ "@alice_83:hs1": {29884
+ "ALICEDEVICE83": {29885
+ "algorithms": [29886
+ "m.olm.v1.curve25519-aes-sha2",29887
+ "m.megolm.v1.aes-sha2"29888
+ ],29889
+ "device_id": "ALICEDEVICE83",29890
+ "keys": {29891
+ "curve25519:ALICEDEVICE83": "B4JN/0Mu6FzIkoUVy+u9znAyuqHGz8lZOqRBqbo36mE",29892
+ "ed25519:ALICEDEVICE83": "G8y318YI3IyZqoJT4hueh3Ybfk73YeDgcs1ashJVq2Q"29893
+ },29894
+ "signatures": {29895
+ "@alice_83:hs1": {29896
+ "ed25519:ALICEDEVICE83": "fx083oe9jLK5SsZvyhY7grw0uvsriSGR7V3p0PuJ56XWrXhzmmiNwVCWW3UcK3JFhCdEIbVu1L5+clM07R4MAA"29897
+ }29898
+ },29899
+ "user_id": "@alice_83:hs1",29900
+ "unsigned": {}29901
+ }29902
+ },29903
+ "@alice_848:hs1": {29904
+ "ALICEDEVICE848": {29905
+ "algorithms": [29906
+ "m.olm.v1.curve25519-aes-sha2",29907
+ "m.megolm.v1.aes-sha2"29908
+ ],29909
+ "device_id": "ALICEDEVICE848",29910
+ "keys": {29911
+ "curve25519:ALICEDEVICE848": "zrdl7O63xmohO3TyGOcc+FPN8cXOfPFCdNry391muBk",29912
+ "ed25519:ALICEDEVICE848": "7rQEdwo5bIwlD1Nm89vBEL9MyuF2rxJk/izzGonZ5yg"29913
+ },29914
+ "signatures": {29915
+ "@alice_848:hs1": {29916
+ "ed25519:ALICEDEVICE848": "LJpZ0NvJUjKmu0Rk0kbxq5RIKi2+L1CAoRxAMqzUF+tuNWqFLzpnHjP82upsGYkUl2qCv9F6GxdBp5LFciMkAw"29917
+ }29918
+ },29919
+ "user_id": "@alice_848:hs1",29920
+ "unsigned": {}29921
+ }29922
+ },29923
+ "@alice_854:hs1": {29924
+ "ALICEDEVICE854": {29925
+ "algorithms": [29926
+ "m.olm.v1.curve25519-aes-sha2",29927
+ "m.megolm.v1.aes-sha2"29928
+ ],29929
+ "device_id": "ALICEDEVICE854",29930
+ "keys": {29931
+ "curve25519:ALICEDEVICE854": "yBvGMS4rgQE/vL6T9XAbfGdalZMWk/40fxZXrK/5Gjg",29932
+ "ed25519:ALICEDEVICE854": "Y6NrPOn86Gw2K9D+aIJFrMLaEaOWM3TC06rNW21uXUM"29933
+ },29934
+ "signatures": {29935
+ "@alice_854:hs1": {29936
+ "ed25519:ALICEDEVICE854": "TFpU7Prwmv6phuiIkbvUeDzAAUCtB0KW6mcQD9U54xMnz8KP0Oq1ec8cbXpgHgaA0fDPtsfzoM9584FpYVWTBg"29937
+ }29938
+ },29939
+ "user_id": "@alice_854:hs1",29940
+ "unsigned": {}29941
+ }29942
+ },29943
+ "@alice_860:hs1": {29944
+ "ALICEDEVICE860": {29945
+ "algorithms": [29946
+ "m.olm.v1.curve25519-aes-sha2",29947
+ "m.megolm.v1.aes-sha2"29948
+ ],29949
+ "device_id": "ALICEDEVICE860",29950
+ "keys": {29951
+ "curve25519:ALICEDEVICE860": "BzfDU4In6t25z/qUc6bWAUiR3XaJL73bOZxXlrbUM3Q",29952
+ "ed25519:ALICEDEVICE860": "JmjLJgoifkPLlb4hSQ3tXGPoOUhvlJx+ntNrOaP7DsU"29953
+ },29954
+ "signatures": {29955
+ "@alice_860:hs1": {29956
+ "ed25519:ALICEDEVICE860": "RW1FZaPiEy4yJrWPf/PQW99Mw3w0HEqcyFXTuvAP6leQ8rdMILpgbSKSAZI0O/5YmON0Y24Rs1PsZ84OpG1ICA"29957
+ }29958
+ },29959
+ "user_id": "@alice_860:hs1",29960
+ "unsigned": {}29961
+ }29962
+ },29963
+ "@alice_868:hs1": {29964
+ "ALICEDEVICE868": {29965
+ "algorithms": [29966
+ "m.olm.v1.curve25519-aes-sha2",29967
+ "m.megolm.v1.aes-sha2"29968
+ ],29969
+ "device_id": "ALICEDEVICE868",29970
+ "keys": {29971
+ "curve25519:ALICEDEVICE868": "D4QshgsktTJFUSWNZyaL7NrrKqAnCs4e4s5K0KNExgI",29972
+ "ed25519:ALICEDEVICE868": "/t92enMSDpxpVkzgBxOjX00q8sYqgZqVkRiejPdDueA"29973
+ },29974
+ "signatures": {29975
+ "@alice_868:hs1": {29976
+ "ed25519:ALICEDEVICE868": "nUTZNU6Qu7yW1zzedrp/tVdXzP+jlHrV99KDJSUVGlE9OXZ/YU0t1hkb0YJbrWOHJ5/+KpY2iMZ7R64012roDQ"29977
+ }29978
+ },29979
+ "user_id": "@alice_868:hs1",29980
+ "unsigned": {}29981
+ }29982
+ },29983
+ "@alice_879:hs1": {29984
+ "ALICEDEVICE879": {29985
+ "algorithms": [29986
+ "m.olm.v1.curve25519-aes-sha2",29987
+ "m.megolm.v1.aes-sha2"29988
+ ],29989
+ "device_id": "ALICEDEVICE879",29990
+ "keys": {29991
+ "curve25519:ALICEDEVICE879": "cOvLn5g4MiJzQgzFo55w/jiVAKxPL0IUMd4iZSbNGh8",29992
+ "ed25519:ALICEDEVICE879": "f19SraTa88eHk+YD6l4KXfRD2Z4UyeAYVHtR8n9Dbe0"29993
+ },29994
+ "signatures": {29995
+ "@alice_879:hs1": {29996
+ "ed25519:ALICEDEVICE879": "Vi3ZlYYpMJ1zEWtzMFxWUIv6bS1eqbY5CDeT064RAX7eJCYX4AMIziHb715cpVIuk8SlPwJDEQi/aoZPPKOKAg"29997
+ }29998
+ },29999
+ "user_id": "@alice_879:hs1",30000
+ "unsigned": {}30001
+ }30002
+ },30003
+ "@alice_87:hs1": {30004
+ "ALICEDEVICE87": {30005
+ "algorithms": [30006
+ "m.olm.v1.curve25519-aes-sha2",30007
+ "m.megolm.v1.aes-sha2"30008
+ ],30009
+ "device_id": "ALICEDEVICE87",30010
+ "keys": {30011
+ "curve25519:ALICEDEVICE87": "n3dXmM+bphT5Jk3F/gwZhfdqJZRUlGEW7IhaSH59IQ8",30012
+ "ed25519:ALICEDEVICE87": "fcuijADRGPBwG264xJV9m+aH+ZTToqL/oLkpvVHvggQ"30013
+ },30014
+ "signatures": {30015
+ "@alice_87:hs1": {30016
+ "ed25519:ALICEDEVICE87": "7YA6UK1D8j9ES2+lWsAkLbll8Z5ndlSANBBW/fVv0jgTaGXbGnQe+SYHnXQH5V1X6PIcKxymK0bsdLNuk7jtBw"30017
+ }30018
+ },30019
+ "user_id": "@alice_87:hs1",30020
+ "unsigned": {}30021
+ }30022
+ },30023
+ "@alice_881:hs1": {30024
+ "ALICEDEVICE881": {30025
+ "algorithms": [30026
+ "m.olm.v1.curve25519-aes-sha2",30027
+ "m.megolm.v1.aes-sha2"30028
+ ],30029
+ "device_id": "ALICEDEVICE881",30030
+ "keys": {30031
+ "curve25519:ALICEDEVICE881": "rnZ1yn30rJeF6E1ZuBc/KTZRA18rtQ9lRiZww+d6d3c",30032
+ "ed25519:ALICEDEVICE881": "EAuzlv2tDbxsm5I0OvJ2Dez+wNcqYkri255oOxpAb7U"30033
+ },30034
+ "signatures": {30035
+ "@alice_881:hs1": {30036
+ "ed25519:ALICEDEVICE881": "t39FbC/HzWVikA9Qsh7xj7YS4Gosck9K77Nblgwf5RcfFYNYdzE5xnNe39V5Qeg8utcVlcS4zEg7dOprmnFwDQ"30037
+ }30038
+ },30039
+ "user_id": "@alice_881:hs1",30040
+ "unsigned": {}30041
+ }30042
+ },30043
+ "@alice_888:hs1": {30044
+ "ALICEDEVICE888": {30045
+ "algorithms": [30046
+ "m.olm.v1.curve25519-aes-sha2",30047
+ "m.megolm.v1.aes-sha2"30048
+ ],30049
+ "device_id": "ALICEDEVICE888",30050
+ "keys": {30051
+ "curve25519:ALICEDEVICE888": "VTqVMaXTWcZoTvkc4ITQ7ErWlqEo3vxuPVHKiz2Hpj8",30052
+ "ed25519:ALICEDEVICE888": "b+Nmsf6OV4c+HX3uVpcGso09ew7QtvYnsQKWK0Z5Bj4"30053
+ },30054
+ "signatures": {30055
+ "@alice_888:hs1": {30056
+ "ed25519:ALICEDEVICE888": "t7QGn4o5jSZDiF9T18edo+R1vGhapY4NLjX61fg2X31ZNVDCd8NC0Cqr0No6VulS5O8dkprxUw6HNiVMTKOPDg"30057
+ }30058
+ },30059
+ "user_id": "@alice_888:hs1",30060
+ "unsigned": {}30061
+ }30062
+ },30063
+ "@alice_898:hs1": {30064
+ "ALICEDEVICE898": {30065
+ "algorithms": [30066
+ "m.olm.v1.curve25519-aes-sha2",30067
+ "m.megolm.v1.aes-sha2"30068
+ ],30069
+ "device_id": "ALICEDEVICE898",30070
+ "keys": {30071
+ "curve25519:ALICEDEVICE898": "gQrw66mOhsGPciBLHo+4EizdQevYafc9ROiv5WqfvEY",30072
+ "ed25519:ALICEDEVICE898": "kzNVpfhWPHXnEIMtNvO5iL0N1thXQmcebjW6nnfRwmU"30073
+ },30074
+ "signatures": {30075
+ "@alice_898:hs1": {30076
+ "ed25519:ALICEDEVICE898": "DX8qvd8ogmlfenCRRRTyXssY+lYtuR/z45OSkTGlYf/oAtyiijLUXfAAkdeOrv6N0wvoU5Epu0qX+z3BXa/DAA"30077
+ }30078
+ },30079
+ "user_id": "@alice_898:hs1",30080
+ "unsigned": {}30081
+ }30082
+ },30083
+ "@alice_8:hs1": {30084
+ "ALICEDEVICE8": {30085
+ "algorithms": [30086
+ "m.olm.v1.curve25519-aes-sha2",30087
+ "m.megolm.v1.aes-sha2"30088
+ ],30089
+ "device_id": "ALICEDEVICE8",30090
+ "keys": {30091
+ "curve25519:ALICEDEVICE8": "p2m2IItOlwMxxFHa5k+3dHUhOEKRs2BOO1KymliT/zI",30092
+ "ed25519:ALICEDEVICE8": "BdYhfbmJcMkoqNoov5Orut4LcTCyMjwLyFXQW9EJIyM"30093
+ },30094
+ "signatures": {30095
+ "@alice_8:hs1": {30096
+ "ed25519:ALICEDEVICE8": "dIAnK4BaKEKzFT7FFKR44L2fLmg1puPZS45hInXVvXR0LXalkD11/TLvAVoxLn5Q5RyUv/mWmRYdeVYZN2CVAw"30097
+ }30098
+ },30099
+ "user_id": "@alice_8:hs1",30100
+ "unsigned": {}30101
+ }30102
+ },30103
+ "@alice_913:hs1": {30104
+ "ALICEDEVICE913": {30105
+ "algorithms": [30106
+ "m.olm.v1.curve25519-aes-sha2",30107
+ "m.megolm.v1.aes-sha2"30108
+ ],30109
+ "device_id": "ALICEDEVICE913",30110
+ "keys": {30111
+ "curve25519:ALICEDEVICE913": "wD9DVY2h0AIX1Ert5brFTZRmp6uM0B/Px/H1sdfzXQY",30112
+ "ed25519:ALICEDEVICE913": "mpc4poxyG/eMJov2EY9r0SHT/Er2zXZIkH0dVHCpOAM"30113
+ },30114
+ "signatures": {30115
+ "@alice_913:hs1": {30116
+ "ed25519:ALICEDEVICE913": "OXxSh8f17ho2Bl0ZFi86aIWK3zsZ2nspzbtWCHf7ysBxnbQgu5+6G0nNr3lA9Vm9J9UMjY4wR3TzaMcxIfrxDg"30117
+ }30118
+ },30119
+ "user_id": "@alice_913:hs1",30120
+ "unsigned": {}30121
+ }30122
+ },30123
+ "@alice_915:hs1": {30124
+ "ALICEDEVICE915": {30125
+ "algorithms": [30126
+ "m.olm.v1.curve25519-aes-sha2",30127
+ "m.megolm.v1.aes-sha2"30128
+ ],30129
+ "device_id": "ALICEDEVICE915",30130
+ "keys": {30131
+ "curve25519:ALICEDEVICE915": "UAutS2WdhIueEZvEX5su5bPzCeXWlsOmWupGo8dljmA",30132
+ "ed25519:ALICEDEVICE915": "4aPzoTK0/D/YyPI94lAceVUOEEavCbINTvow3aENCXQ"30133
+ },30134
+ "signatures": {30135
+ "@alice_915:hs1": {30136
+ "ed25519:ALICEDEVICE915": "6uYP0tj+2mLx5+dpF8Po194b12LJDYrT8h9dEIrMUeRRaH9JsTuTeNRGh7urZYV7Ipx3ZdZi6WrciqNcqNIiBw"30137
+ }30138
+ },30139
+ "user_id": "@alice_915:hs1",30140
+ "unsigned": {}30141
+ }30142
+ },30143
+ "@alice_918:hs1": {30144
+ "ALICEDEVICE918": {30145
+ "algorithms": [30146
+ "m.olm.v1.curve25519-aes-sha2",30147
+ "m.megolm.v1.aes-sha2"30148
+ ],30149
+ "device_id": "ALICEDEVICE918",30150
+ "keys": {30151
+ "curve25519:ALICEDEVICE918": "5pMKM1hEjsJa8FEhQlVhvIVOdCmsn7mNyyTkp+CnaWc",30152
+ "ed25519:ALICEDEVICE918": "toe8YYxgzIDOuzKTSSQE7akS/mHHr1+1iMDu4V82Dn0"30153
+ },30154
+ "signatures": {30155
+ "@alice_918:hs1": {30156
+ "ed25519:ALICEDEVICE918": "J4LPZwtWTyCDjw2W2BzwiVwV97TN0JfuGIgKC+beo/A9mvazUmMWL9uPDcwiRtKbm1N5VC86lfjag1mE5hUGCQ"30157
+ }30158
+ },30159
+ "user_id": "@alice_918:hs1",30160
+ "unsigned": {}30161
+ }30162
+ },30163
+ "@alice_927:hs1": {30164
+ "ALICEDEVICE927": {30165
+ "algorithms": [30166
+ "m.olm.v1.curve25519-aes-sha2",30167
+ "m.megolm.v1.aes-sha2"30168
+ ],30169
+ "device_id": "ALICEDEVICE927",30170
+ "keys": {30171
+ "curve25519:ALICEDEVICE927": "I4AOTN7TQ/MxUebjws07+SWtzB9J3s0j8ZBk46ztPCM",30172
+ "ed25519:ALICEDEVICE927": "zyMQk5iZ3gg8HCIF4z63wuBytUFbgXfpVFWmws5/G5o"30173
+ },30174
+ "signatures": {30175
+ "@alice_927:hs1": {30176
+ "ed25519:ALICEDEVICE927": "RN5nzWRgk/nWyuIsFkdns/I2fz6bEHHw9dwQbbnBiueEIhEP4gnDjq6zxb0+E+Lttl4jhFSG8MogJELy7d6HAg"30177
+ }30178
+ },30179
+ "user_id": "@alice_927:hs1",30180
+ "unsigned": {}30181
+ }30182
+ },30183
+ "@alice_944:hs1": {30184
+ "ALICEDEVICE944": {30185
+ "algorithms": [30186
+ "m.olm.v1.curve25519-aes-sha2",30187
+ "m.megolm.v1.aes-sha2"30188
+ ],30189
+ "device_id": "ALICEDEVICE944",30190
+ "keys": {30191
+ "curve25519:ALICEDEVICE944": "TvLnR9SKPA/EPs7xOQ/wBvHEdMBVyjiUOBzzzzwUBW4",30192
+ "ed25519:ALICEDEVICE944": "B5sT+o1EcuqtWNuBm6dpCwRmq5Y/lFUJbpFzcyklxn8"30193
+ },30194
+ "signatures": {30195
+ "@alice_944:hs1": {30196
+ "ed25519:ALICEDEVICE944": "fVhaqAmdxr4qRp7xTLjFcNnAOwjkdH1qlwhRwE/qWTOuW/JbxDEqumd9hwdwf8ED7SyyKtQW/K/LQsbcS8MICQ"30197
+ }30198
+ },30199
+ "user_id": "@alice_944:hs1",30200
+ "unsigned": {}30201
+ }30202
+ },30203
+ "@alice_946:hs1": {30204
+ "ALICEDEVICE946": {30205
+ "algorithms": [30206
+ "m.olm.v1.curve25519-aes-sha2",30207
+ "m.megolm.v1.aes-sha2"30208
+ ],30209
+ "device_id": "ALICEDEVICE946",30210
+ "keys": {30211
+ "curve25519:ALICEDEVICE946": "ng3+GQDeWLdvBOiihzdQOlY7XZ0VQu9TPUN1z6j0uQg",30212
+ "ed25519:ALICEDEVICE946": "Nw97NShjTX89A6APE0togE08ZroMD3MUQjwD3wbBc60"30213
+ },30214
+ "signatures": {30215
+ "@alice_946:hs1": {30216
+ "ed25519:ALICEDEVICE946": "v0ur/sTT3Y5PeioCytt6S2n5R4O3ym2wqseP/jdtUFJ7ahn2yFBqleJ2oKGekNASlejt8hfY76D8hw25BmjiAQ"30217
+ }30218
+ },30219
+ "user_id": "@alice_946:hs1",30220
+ "unsigned": {}30221
+ }30222
+ },30223
+ "@alice_960:hs1": {30224
+ "ALICEDEVICE960": {30225
+ "algorithms": [30226
+ "m.olm.v1.curve25519-aes-sha2",30227
+ "m.megolm.v1.aes-sha2"30228
+ ],30229
+ "device_id": "ALICEDEVICE960",30230
+ "keys": {30231
+ "curve25519:ALICEDEVICE960": "vGVvYI6m6VwjIDmRMWR2SmZNuCDoH9AAc+0oRT2t/FY",30232
+ "ed25519:ALICEDEVICE960": "rL1go4BjD73ZuBRLHPDNfT1QM/LsT43XmwnCPmdWlx8"30233
+ },30234
+ "signatures": {30235
+ "@alice_960:hs1": {30236
+ "ed25519:ALICEDEVICE960": "6dNqnJN2jc6CHUaIyqF0I3fhi3rIkbwZLU08nbKJ/Rksu9CzpEJyPyDRGRDmLqzi8H0fyAiJsye8yUOtM6HYDQ"30237
+ }30238
+ },30239
+ "user_id": "@alice_960:hs1",30240
+ "unsigned": {}30241
+ }30242
+ },30243
+ "@alice_962:hs1": {30244
+ "ALICEDEVICE962": {30245
+ "algorithms": [30246
+ "m.olm.v1.curve25519-aes-sha2",30247
+ "m.megolm.v1.aes-sha2"30248
+ ],30249
+ "device_id": "ALICEDEVICE962",30250
+ "keys": {30251
+ "curve25519:ALICEDEVICE962": "dNur/83XOP6Fs/ilH7lkyg+JScfbZkXqsxE+FJjL0HM",30252
+ "ed25519:ALICEDEVICE962": "2EDxyYmX8+1h6cDsE7HoUjwi8hLn7yrziAV98mf9JP8"30253
+ },30254
+ "signatures": {30255
+ "@alice_962:hs1": {30256
+ "ed25519:ALICEDEVICE962": "5VXjUVWk6/arQ5Dkov9IT8nFVxz3TI6EISLa5JNMyINi9p8cBA6cU34B0UGVg2fIm9xTZyheuCEprFHEFBliDg"30257
+ }30258
+ },30259
+ "user_id": "@alice_962:hs1",30260
+ "unsigned": {}30261
+ }30262
+ },30263
+ "@alice_982:hs1": {30264
+ "ALICEDEVICE982": {30265
+ "algorithms": [30266
+ "m.olm.v1.curve25519-aes-sha2",30267
+ "m.megolm.v1.aes-sha2"30268
+ ],30269
+ "device_id": "ALICEDEVICE982",30270
+ "keys": {30271
+ "curve25519:ALICEDEVICE982": "CPDSMh9oAY3QB/jUPmk7NM7YpPi9srtw3SxFMEHLWQc",30272
+ "ed25519:ALICEDEVICE982": "y7M1KP7nyNEtt/g488KoyfQEfDSW10Xqwx1BFNbJLQI"30273
+ },30274
+ "signatures": {30275
+ "@alice_982:hs1": {30276
+ "ed25519:ALICEDEVICE982": "wudriY5V78a8EZcF/YeuQhqTNnhgAiFHnTN7PxYOw+M0ChiTCUwd9z/2DzzXSe5wtN+4O/eXow+A5vAKyRH3AQ"30277
+ }30278
+ },30279
+ "user_id": "@alice_982:hs1",30280
+ "unsigned": {}30281
+ }30282
+ },30283
+ "@alice_995:hs1": {30284
+ "ALICEDEVICE995": {30285
+ "algorithms": [30286
+ "m.olm.v1.curve25519-aes-sha2",30287
+ "m.megolm.v1.aes-sha2"30288
+ ],30289
+ "device_id": "ALICEDEVICE995",30290
+ "keys": {30291
+ "curve25519:ALICEDEVICE995": "+VZtpNhiVcBFZRy54rQoo4y6zT8eaQTGqESrns0CsGI",30292
+ "ed25519:ALICEDEVICE995": "ILINLdWl9DVj42Me9SLf0Kug7k7cR+wBTNsit23KljE"30293
+ },30294
+ "signatures": {30295
+ "@alice_995:hs1": {30296
+ "ed25519:ALICEDEVICE995": "5uKGZ3b0/JwituRGeVimn5O5tm5H/emu2Isd6TiP+Cn2nSiFoUrt6ZZhNjhvuM+2LfP2kNto+//Eky+uJ2FdBg"30297
+ }30298
+ },30299
+ "user_id": "@alice_995:hs1",30300
+ "unsigned": {}30301
+ }30302
+ },30303
+ "@alice_1001:hs1": {30304
+ "ALICEDEVICE1001": {30305
+ "algorithms": [30306
+ "m.olm.v1.curve25519-aes-sha2",30307
+ "m.megolm.v1.aes-sha2"30308
+ ],30309
+ "device_id": "ALICEDEVICE1001",30310
+ "keys": {30311
+ "curve25519:ALICEDEVICE1001": "2s7l0xfxRRYRwy9pUgUeHx0ulxKKpamzp0R98daqqWc",30312
+ "ed25519:ALICEDEVICE1001": "ES2Y8sTRzrjacvquC6C7efNCakhI88J37BLYfWIAtsE"30313
+ },30314
+ "signatures": {30315
+ "@alice_1001:hs1": {30316
+ "ed25519:ALICEDEVICE1001": "XuR5c1RCujZgYnBH8nCv8Y9bhJ4KWbWg3OdIXT+PdfQ8HyTBFjfX2vknVruEwjv5lubvzrWMWfgF1ABTHbifBg"30317
+ }30318
+ },30319
+ "user_id": "@alice_1001:hs1",30320
+ "unsigned": {}30321
+ }30322
+ },30323
+ "@alice_1013:hs1": {30324
+ "ALICEDEVICE1013": {30325
+ "algorithms": [30326
+ "m.olm.v1.curve25519-aes-sha2",30327
+ "m.megolm.v1.aes-sha2"30328
+ ],30329
+ "device_id": "ALICEDEVICE1013",30330
+ "keys": {30331
+ "curve25519:ALICEDEVICE1013": "rbLdO8at9HD3oyJ9eQLjqWJmd5VMJ8vaBT9mEiKM0l4",30332
+ "ed25519:ALICEDEVICE1013": "NbfrMc+ti+IdBDboU5bT2wWGW7I3FyUfLMGAa4BChI8"30333
+ },30334
+ "signatures": {30335
+ "@alice_1013:hs1": {30336
+ "ed25519:ALICEDEVICE1013": "12zIe8tWuJE6OINHg2KFyap3CsIGrpYNJmDhjC6nJ0ngmo3Xs9LzDaciDpvon9B7rwqbsfs0eiEzWC37yhuCBA"30337
+ }30338
+ },30339
+ "user_id": "@alice_1013:hs1",30340
+ "unsigned": {}30341
+ }30342
+ },30343
+ "@alice_1040:hs1": {30344
+ "ALICEDEVICE1040": {30345
+ "algorithms": [30346
+ "m.olm.v1.curve25519-aes-sha2",30347
+ "m.megolm.v1.aes-sha2"30348
+ ],30349
+ "device_id": "ALICEDEVICE1040",30350
+ "keys": {30351
+ "curve25519:ALICEDEVICE1040": "eIPKReE/nfNCdQaSA7icM5ANPdSGuz+f6noc7py8wmM",30352
+ "ed25519:ALICEDEVICE1040": "QxLoyElOTizqow2Gom6A6EjuggJHFvIl4XWWeTH5/vE"30353
+ },30354
+ "signatures": {30355
+ "@alice_1040:hs1": {30356
+ "ed25519:ALICEDEVICE1040": "fJ84DtPK/0o8rdF+shLjCvA79DG5CrTyvQiLQyDPXixpeVVK57pMZlEITrFPHwDR0dlKTen+k2EAvDUNrsNmDg"30357
+ }30358
+ },30359
+ "user_id": "@alice_1040:hs1",30360
+ "unsigned": {}30361
+ }30362
+ },30363
+ "@alice_1047:hs1": {30364
+ "ALICEDEVICE1047": {30365
+ "algorithms": [30366
+ "m.olm.v1.curve25519-aes-sha2",30367
+ "m.megolm.v1.aes-sha2"30368
+ ],30369
+ "device_id": "ALICEDEVICE1047",30370
+ "keys": {30371
+ "curve25519:ALICEDEVICE1047": "tXVKHVEnxQxQ3kzpvP4KpjWMxPJyoin6T/gmLtmqZ3s",30372
+ "ed25519:ALICEDEVICE1047": "ogm6PxRPjfPMETcRJ3B3XsuRiZiSs0mL/Awrb5DS4Tk"30373
+ },30374
+ "signatures": {30375
+ "@alice_1047:hs1": {30376
+ "ed25519:ALICEDEVICE1047": "3R8LFcbdNBk9k6/VZLEKFIOvv2abNUpV5mU/Ij63bRPqBBEwpsFsY5oiN0/Zef0VW8RMtNHxcdMc0xnQ0SYEBw"30377
+ }30378
+ },30379
+ "user_id": "@alice_1047:hs1",30380
+ "unsigned": {}30381
+ }30382
+ },30383
+ "@alice_1053:hs1": {30384
+ "ALICEDEVICE1053": {30385
+ "algorithms": [30386
+ "m.olm.v1.curve25519-aes-sha2",30387
+ "m.megolm.v1.aes-sha2"30388
+ ],30389
+ "device_id": "ALICEDEVICE1053",30390
+ "keys": {30391
+ "curve25519:ALICEDEVICE1053": "Rek/Wn9xvUx1sZl1xsBPUmTXoRP+HoJnOGSjivOiggA",30392
+ "ed25519:ALICEDEVICE1053": "8gNzZfp1bqmlPdl90IS+jNFMlfiPBuliVV3ak2xSudw"30393
+ },30394
+ "signatures": {30395
+ "@alice_1053:hs1": {30396
+ "ed25519:ALICEDEVICE1053": "RXyGwkA171aFA/SvAoQ7p18qi+s4WIDOTyvTXSaFl9o9MMnAkIZDdskZQbNolfdoAFcPKZHp1TUmX5odD1/gAA"30397
+ }30398
+ },30399
+ "user_id": "@alice_1053:hs1",30400
+ "unsigned": {}30401
+ }30402
+ },30403
+ "@alice_1056:hs1": {30404
+ "ALICEDEVICE1056": {30405
+ "algorithms": [30406
+ "m.olm.v1.curve25519-aes-sha2",30407
+ "m.megolm.v1.aes-sha2"30408
+ ],30409
+ "device_id": "ALICEDEVICE1056",30410
+ "keys": {30411
+ "curve25519:ALICEDEVICE1056": "uxuMm++Vr4F+/FAq+WVrkBEGXp2TRBJoSn4186nfMkM",30412
+ "ed25519:ALICEDEVICE1056": "+SVAj9w+MD2jrEvzVGBnstU5XQP919eztTFto5U+4oQ"30413
+ },30414
+ "signatures": {30415
+ "@alice_1056:hs1": {30416
+ "ed25519:ALICEDEVICE1056": "oRa3v3BeFduYc/dMZoHStc70N9vU2MhFT94J/ZpHdxkr6vNrK9cUtLdkWoX58gjiPikoBiZ4W2gbN6ZNEthhBg"30417
+ }30418
+ },30419
+ "user_id": "@alice_1056:hs1",30420
+ "unsigned": {}30421
+ }30422
+ },30423
+ "@alice_1057:hs1": {30424
+ "ALICEDEVICE1057": {30425
+ "algorithms": [30426
+ "m.olm.v1.curve25519-aes-sha2",30427
+ "m.megolm.v1.aes-sha2"30428
+ ],30429
+ "device_id": "ALICEDEVICE1057",30430
+ "keys": {30431
+ "curve25519:ALICEDEVICE1057": "tdQDe4yjMrk7yss3jgxC7sxSR3+SVHPVoLiQwGy/Tg4",30432
+ "ed25519:ALICEDEVICE1057": "Z+lUoyz4QhseSFCguIpkPvQ8qdyuPNanuInPgXHkCTA"30433
+ },30434
+ "signatures": {30435
+ "@alice_1057:hs1": {30436
+ "ed25519:ALICEDEVICE1057": "fTeQKw9yzWCwMob7La8VOxlfDK76UiBBRw3JHpdhqLHqx3n5C28ah4te5mGWYY6J3ujcJG8gYTYrRK3nuKpCDw"30437
+ }30438
+ },30439
+ "user_id": "@alice_1057:hs1",30440
+ "unsigned": {}30441
+ }30442
+ },30443
+ "@alice_1058:hs1": {30444
+ "ALICEDEVICE1058": {30445
+ "algorithms": [30446
+ "m.olm.v1.curve25519-aes-sha2",30447
+ "m.megolm.v1.aes-sha2"30448
+ ],30449
+ "device_id": "ALICEDEVICE1058",30450
+ "keys": {30451
+ "curve25519:ALICEDEVICE1058": "ST8eao1U8qRU9Nrc5WbEjOxlzYMZPZxeFJ8Ig58U7xk",30452
+ "ed25519:ALICEDEVICE1058": "5/b5p8IPZCc96VryWD6PZRce+nLHzeo1NzDkXdUHQEk"30453
+ },30454
+ "signatures": {30455
+ "@alice_1058:hs1": {30456
+ "ed25519:ALICEDEVICE1058": "9cJeeCMOXBj4NDdViXeHOqc5RLNDaOHv2G5np8AjueEVNAr4CpZMe+KaD37yBDtVd6vytMM22RS6O081OEYtCw"30457
+ }30458
+ },30459
+ "user_id": "@alice_1058:hs1",30460
+ "unsigned": {}30461
+ }30462
+ },30463
+ "@alice_105:hs1": {30464
+ "ALICEDEVICE105": {30465
+ "algorithms": [30466
+ "m.olm.v1.curve25519-aes-sha2",30467
+ "m.megolm.v1.aes-sha2"30468
+ ],30469
+ "device_id": "ALICEDEVICE105",30470
+ "keys": {30471
+ "curve25519:ALICEDEVICE105": "Lz4Zq+GqUEAUSRbUlkyK1OL7HChDDkwwQaI885CASFI",30472
+ "ed25519:ALICEDEVICE105": "xm9uuEjVIEYc2wjFBz6X77bnKZLdSgrO5ucoHVsatZ4"30473
+ },30474
+ "signatures": {30475
+ "@alice_105:hs1": {30476
+ "ed25519:ALICEDEVICE105": "gpQP4TtaWrqwxKjT4CzUTYKUZrak5yv7YkD6m+U8Vt3CC4maEXtgUyN5ZGn/31M0I2kWzNTm5WaUC1upGK+jBw"30477
+ }30478
+ },30479
+ "user_id": "@alice_105:hs1",30480
+ "unsigned": {}30481
+ }30482
+ },30483
+ "@alice_1062:hs1": {30484
+ "ALICEDEVICE1062": {30485
+ "algorithms": [30486
+ "m.olm.v1.curve25519-aes-sha2",30487
+ "m.megolm.v1.aes-sha2"30488
+ ],30489
+ "device_id": "ALICEDEVICE1062",30490
+ "keys": {30491
+ "curve25519:ALICEDEVICE1062": "+YzJZ/mVHMW/95Heg+iFF0/XGikj9dapcrBjRPpW0Sw",30492
+ "ed25519:ALICEDEVICE1062": "TWoei6iKtspy/qw/pMmwJE1zjQkDmRB/+3ry2vDvBB4"30493
+ },30494
+ "signatures": {30495
+ "@alice_1062:hs1": {30496
+ "ed25519:ALICEDEVICE1062": "wbPvYvjWmUIWixz+VroTGpFDN49yPzc1qd8CoI2Wf6iks//JMOXhjJcdJIGSD+R8YSAq5hDeEiUFRwLBohJ2AA"30497
+ }30498
+ },30499
+ "user_id": "@alice_1062:hs1",30500
+ "unsigned": {}30501
+ }30502
+ },30503
+ "@alice_1085:hs1": {30504
+ "ALICEDEVICE1085": {30505
+ "algorithms": [30506
+ "m.olm.v1.curve25519-aes-sha2",30507
+ "m.megolm.v1.aes-sha2"30508
+ ],30509
+ "device_id": "ALICEDEVICE1085",30510
+ "keys": {30511
+ "curve25519:ALICEDEVICE1085": "Cn4EyrnuB/Dq7+/a2A6zx3FlGn5qnsZOv9C1cI3/gko",30512
+ "ed25519:ALICEDEVICE1085": "BaXNODB94IME8k2eHzHD8No0cs2EK59mSY/sVxHXmSg"30513
+ },30514
+ "signatures": {30515
+ "@alice_1085:hs1": {30516
+ "ed25519:ALICEDEVICE1085": "Kz/lbcrRD4YLaxOeJvTtbhNFDqeo74DRjY6WclvPgp99lRD0JVSL8Hp8mr1KudxZWKe7K98sOkzBZU3N+wG6Bg"30517
+ }30518
+ },30519
+ "user_id": "@alice_1085:hs1",30520
+ "unsigned": {}30521
+ }30522
+ },30523
+ "@alice_1089:hs1": {30524
+ "ALICEDEVICE1089": {30525
+ "algorithms": [30526
+ "m.olm.v1.curve25519-aes-sha2",30527
+ "m.megolm.v1.aes-sha2"30528
+ ],30529
+ "device_id": "ALICEDEVICE1089",30530
+ "keys": {30531
+ "curve25519:ALICEDEVICE1089": "AXPTNRSwguRTTWAWT/mxszEVGcqO5g+MmDVbL1mQ+ic",30532
+ "ed25519:ALICEDEVICE1089": "NjV5rUSw6iKegN29xRf2hBkP8wDyy0zii2UYVuexbec"30533
+ },30534
+ "signatures": {30535
+ "@alice_1089:hs1": {30536
+ "ed25519:ALICEDEVICE1089": "4+uq1kz0jdqpZPEDnd9VkWJPZR6uFvl33bqObQu0QpwCPPjjlCAHJ9wt07AIESCd3AE/4O92Pj4iskNjq1tEBw"30537
+ }30538
+ },30539
+ "user_id": "@alice_1089:hs1",30540
+ "unsigned": {}30541
+ }30542
+ },30543
+ "@alice_109:hs1": {30544
+ "ALICEDEVICE109": {30545
+ "algorithms": [30546
+ "m.olm.v1.curve25519-aes-sha2",30547
+ "m.megolm.v1.aes-sha2"30548
+ ],30549
+ "device_id": "ALICEDEVICE109",30550
+ "keys": {30551
+ "curve25519:ALICEDEVICE109": "2FYilURFWxhNFljY5WVdBQovkEK47m9bhlZ9xgnfnCo",30552
+ "ed25519:ALICEDEVICE109": "Nj3rQwy8QRVagBi2fLOjSFhvaLg5ZrlwJrjR646BaWk"30553
+ },30554
+ "signatures": {30555
+ "@alice_109:hs1": {30556
+ "ed25519:ALICEDEVICE109": "AFKsrcSOi/qQpD1sXxlDFMt/6rCBTHpqYRylovA2MjbMAKypgq9WrNYyF8awuJey7nZAla0ewy2bToDomdgTAA"30557
+ }30558
+ },30559
+ "user_id": "@alice_109:hs1",30560
+ "unsigned": {}30561
+ }30562
+ },30563
+ "@alice_10:hs1": {30564
+ "ALICEDEVICE10": {30565
+ "algorithms": [30566
+ "m.olm.v1.curve25519-aes-sha2",30567
+ "m.megolm.v1.aes-sha2"30568
+ ],30569
+ "device_id": "ALICEDEVICE10",30570
+ "keys": {30571
+ "curve25519:ALICEDEVICE10": "KKOOmM0lP7lIRy0sl0aMuHdO2w5tfkbPzLxAS4n0rAQ",30572
+ "ed25519:ALICEDEVICE10": "qBydsHM1eyZHe+W9JscisWA8yoRhJPN4lJdx0tQCb7w"30573
+ },30574
+ "signatures": {30575
+ "@alice_10:hs1": {30576
+ "ed25519:ALICEDEVICE10": "Te9E8vFadlTNz4yigGhjo1LcblU8EXiklNhS0v7E/rC7x2YJA68MIKeg9I9BWHlnmjqF9yWzkmwzM4iCbyPMCg"30577
+ }30578
+ },30579
+ "user_id": "@alice_10:hs1",30580
+ "unsigned": {}30581
+ }30582
+ },30583
+ "@alice_1100:hs1": {30584
+ "ALICEDEVICE1100": {30585
+ "algorithms": [30586
+ "m.olm.v1.curve25519-aes-sha2",30587
+ "m.megolm.v1.aes-sha2"30588
+ ],30589
+ "device_id": "ALICEDEVICE1100",30590
+ "keys": {30591
+ "curve25519:ALICEDEVICE1100": "oR6cSefRs3dEdF5KxC2D55KXe1/7JBJOfQmxkAlVGy4",30592
+ "ed25519:ALICEDEVICE1100": "1LV+I97ll7DhJlsNpGWdWobzPoCTyj1vTOItAd9RUUw"30593
+ },30594
+ "signatures": {30595
+ "@alice_1100:hs1": {30596
+ "ed25519:ALICEDEVICE1100": "D0lKTQuUFEEv3CPYosA+7Gr9VxukhYihUIZsNoiGJGxQTcxx3Hltx2oZ14B02CMAAP/PLBhlK9fcs/wTAZpdBA"30597
+ }30598
+ },30599
+ "user_id": "@alice_1100:hs1",30600
+ "unsigned": {}30601
+ }30602
+ },30603
+ "@alice_1108:hs1": {30604
+ "ALICEDEVICE1108": {30605
+ "algorithms": [30606
+ "m.olm.v1.curve25519-aes-sha2",30607
+ "m.megolm.v1.aes-sha2"30608
+ ],30609
+ "device_id": "ALICEDEVICE1108",30610
+ "keys": {30611
+ "curve25519:ALICEDEVICE1108": "rTnu8LlDn6OrgsrFpAAfs/rSQ/WW4gKzOgneCgA2vDQ",30612
+ "ed25519:ALICEDEVICE1108": "OpckWjjwDoCwgF+j4JElirs3rc5gxxu9+VgEfCOhJ/4"30613
+ },30614
+ "signatures": {30615
+ "@alice_1108:hs1": {30616
+ "ed25519:ALICEDEVICE1108": "LlozxLvSDW4tl35NNuvCptJD4dtR7mscuTFZfjA4ROvqwlT3YBmEXn2oUINd2+L9mvk5kRkUh/1H/hlnfVBqAQ"30617
+ }30618
+ },30619
+ "user_id": "@alice_1108:hs1",30620
+ "unsigned": {}30621
+ }30622
+ },30623
+ "@alice_1109:hs1": {30624
+ "ALICEDEVICE1109": {30625
+ "algorithms": [30626
+ "m.olm.v1.curve25519-aes-sha2",30627
+ "m.megolm.v1.aes-sha2"30628
+ ],30629
+ "device_id": "ALICEDEVICE1109",30630
+ "keys": {30631
+ "curve25519:ALICEDEVICE1109": "AVyIWvoALFv6/Ybjs+ICt/VOZDDZeDsTstrh1X9xs2Q",30632
+ "ed25519:ALICEDEVICE1109": "as31Ql9Z7NvifrZbZGPuSFsBtmzb7VWp3noCnwAdz3U"30633
+ },30634
+ "signatures": {30635
+ "@alice_1109:hs1": {30636
+ "ed25519:ALICEDEVICE1109": "R+sY8ISUJAw+0FmuduVfRSe/uyO8VuAa29c1Bph7oZgjxtrqZOYXUxxpJdL5cUuzjThe2m8hl9SXaNHRTsuNDQ"30637
+ }30638
+ },30639
+ "user_id": "@alice_1109:hs1",30640
+ "unsigned": {}30641
+ }30642
+ },30643
+ "@alice_1118:hs1": {30644
+ "ALICEDEVICE1118": {30645
+ "algorithms": [30646
+ "m.olm.v1.curve25519-aes-sha2",30647
+ "m.megolm.v1.aes-sha2"30648
+ ],30649
+ "device_id": "ALICEDEVICE1118",30650
+ "keys": {30651
+ "curve25519:ALICEDEVICE1118": "INJjFQ7jzPa55pIZPxp/xCdkSEGi5/ZUrbv8TSwL0ks",30652
+ "ed25519:ALICEDEVICE1118": "xHUWIoTZj44kMzd6C1z2A0twYYnx0mm21BAoY7/Yn54"30653
+ },30654
+ "signatures": {30655
+ "@alice_1118:hs1": {30656
+ "ed25519:ALICEDEVICE1118": "qOJP70k6iixs9k+wXyAQsSex5EU3OBMDxlhXPaL6LHJP3CxwHVFe0veFhj5NYvADYEgj8y23YF+TK8Yxv1huAQ"30657
+ }30658
+ },30659
+ "user_id": "@alice_1118:hs1",30660
+ "unsigned": {}30661
+ }30662
+ },30663
+ "@alice_1120:hs1": {30664
+ "ALICEDEVICE1120": {30665
+ "algorithms": [30666
+ "m.olm.v1.curve25519-aes-sha2",30667
+ "m.megolm.v1.aes-sha2"30668
+ ],30669
+ "device_id": "ALICEDEVICE1120",30670
+ "keys": {30671
+ "curve25519:ALICEDEVICE1120": "aj69CmiLfWwuNOmSusLr8DzdrsEUOKAin6DP9cFDcD4",30672
+ "ed25519:ALICEDEVICE1120": "Cn7IFM/FHAmzRLy24tt7zjd9iM6xGjYgaIkISem8T6A"30673
+ },30674
+ "signatures": {30675
+ "@alice_1120:hs1": {30676
+ "ed25519:ALICEDEVICE1120": "9f6NiOx13zVsjguBvrmgpMP8UJH5uH3azhzKNudxd58R23tVcU7dLVUt/vnMZOH2kdFOM+cs/Dlvq9Q3kZADBw"30677
+ }30678
+ },30679
+ "user_id": "@alice_1120:hs1",30680
+ "unsigned": {}30681
+ }30682
+ },30683
+ "@alice_1121:hs1": {30684
+ "ALICEDEVICE1121": {30685
+ "algorithms": [30686
+ "m.olm.v1.curve25519-aes-sha2",30687
+ "m.megolm.v1.aes-sha2"30688
+ ],30689
+ "device_id": "ALICEDEVICE1121",30690
+ "keys": {30691
+ "curve25519:ALICEDEVICE1121": "FRs13Q6sxUqr/ESE7Q/F1TNb3yJMHMhbS7hhikiFeU0",30692
+ "ed25519:ALICEDEVICE1121": "jVuwSahdmIJv+p+NVdywRibeLiOFwLsnjv4gppPUoN0"30693
+ },30694
+ "signatures": {30695
+ "@alice_1121:hs1": {30696
+ "ed25519:ALICEDEVICE1121": "oLECbXaF07g4QaYPww9y/XfSIPqXJx6+AOXE8TcOA3TpLf0iUF6vQcyS3hwo69DSAb36AvS/s7T6ki59jtlNCQ"30697
+ }30698
+ },30699
+ "user_id": "@alice_1121:hs1",30700
+ "unsigned": {}30701
+ }30702
+ },30703
+ "@alice_1126:hs1": {30704
+ "ALICEDEVICE1126": {30705
+ "algorithms": [30706
+ "m.olm.v1.curve25519-aes-sha2",30707
+ "m.megolm.v1.aes-sha2"30708
+ ],30709
+ "device_id": "ALICEDEVICE1126",30710
+ "keys": {30711
+ "curve25519:ALICEDEVICE1126": "K4keOL4jBBk+3TF47Eh/bfPQ7l4uKlObUdN+P2HdaCU",30712
+ "ed25519:ALICEDEVICE1126": "vQccdKV+4QAWiRWuOQiod//TSEiQBqz/UKeolC6H3CY"30713
+ },30714
+ "signatures": {30715
+ "@alice_1126:hs1": {30716
+ "ed25519:ALICEDEVICE1126": "WUNGGu0ACa4k0aNHTp+L+abBm7vNdt5Uthc4DAzKQNEUz6kZSYO+Ku4YmlDo+zIbzc4MJfwnhSuyYPS/tTzuCA"30717
+ }30718
+ },30719
+ "user_id": "@alice_1126:hs1",30720
+ "unsigned": {}30721
+ }30722
+ },30723
+ "@alice_1130:hs1": {30724
+ "ALICEDEVICE1130": {30725
+ "algorithms": [30726
+ "m.olm.v1.curve25519-aes-sha2",30727
+ "m.megolm.v1.aes-sha2"30728
+ ],30729
+ "device_id": "ALICEDEVICE1130",30730
+ "keys": {30731
+ "curve25519:ALICEDEVICE1130": "iyopTReRah23RLZFyga0bNhitDC+EUC3n9tepKyK8S0",30732
+ "ed25519:ALICEDEVICE1130": "Yd98p/15dtbiJKrPmLZXJgdkmfP7NisLhC8SdyiTRtI"30733
+ },30734
+ "signatures": {30735
+ "@alice_1130:hs1": {30736
+ "ed25519:ALICEDEVICE1130": "AYTNjt13pMK/2Ub6bRuxAskBkCjioc+1b2iekFJQx6VghfQL/LaQHVCmVvKLjKGFRPX39pAA57YC5tyxY6POCw"30737
+ }30738
+ },30739
+ "user_id": "@alice_1130:hs1",30740
+ "unsigned": {}30741
+ }30742
+ },30743
+ "@alice_1134:hs1": {30744
+ "ALICEDEVICE1134": {30745
+ "algorithms": [30746
+ "m.olm.v1.curve25519-aes-sha2",30747
+ "m.megolm.v1.aes-sha2"30748
+ ],30749
+ "device_id": "ALICEDEVICE1134",30750
+ "keys": {30751
+ "curve25519:ALICEDEVICE1134": "Jb9nzVmizFFBe245oxP2yDXRoeet9SD43wCXvf1WKjs",30752
+ "ed25519:ALICEDEVICE1134": "Mq3oPZrPg2B3i9XzRaJ0Ff4w6r7aYSSom/L+l5tBXrU"30753
+ },30754
+ "signatures": {30755
+ "@alice_1134:hs1": {30756
+ "ed25519:ALICEDEVICE1134": "fvkGtKhMQKnIh5Oy0I5RYWziIns+7ac/CawzicK2Z1FohsAjTAVayiX924AtAkgWLYIE4uvtHMvhJv/gMuNTCQ"30757
+ }30758
+ },30759
+ "user_id": "@alice_1134:hs1",30760
+ "unsigned": {}30761
+ }30762
+ },30763
+ "@alice_1145:hs1": {30764
+ "ALICEDEVICE1145": {30765
+ "algorithms": [30766
+ "m.olm.v1.curve25519-aes-sha2",30767
+ "m.megolm.v1.aes-sha2"30768
+ ],30769
+ "device_id": "ALICEDEVICE1145",30770
+ "keys": {30771
+ "curve25519:ALICEDEVICE1145": "un5BPQr4Ih4WOExD5smzkFnwfw68o8DrFw0Dw9smuHY",30772
+ "ed25519:ALICEDEVICE1145": "EHLEGcVG2oHYp97A3Nfl15zQkpJAhglS6oGV259lX3I"30773
+ },30774
+ "signatures": {30775
+ "@alice_1145:hs1": {30776
+ "ed25519:ALICEDEVICE1145": "83ZM06yoE1rvHY2Mr7RT7MzBlrLUaT5cmMfeRl3+aKOZNC+nxBGTXKr+ypWY/gBUxvnVlMMytoOXJGC1BxUeDQ"30777
+ }30778
+ },30779
+ "user_id": "@alice_1145:hs1",30780
+ "unsigned": {}30781
+ }30782
+ },30783
+ "@alice_1146:hs1": {30784
+ "ALICEDEVICE1146": {30785
+ "algorithms": [30786
+ "m.olm.v1.curve25519-aes-sha2",30787
+ "m.megolm.v1.aes-sha2"30788
+ ],30789
+ "device_id": "ALICEDEVICE1146",30790
+ "keys": {30791
+ "curve25519:ALICEDEVICE1146": "8coQJwP82I+POXJadMEzHpENFouL0sEEMDIizyrAmV4",30792
+ "ed25519:ALICEDEVICE1146": "b1QRtZwrQPrEsmMOEuy8CMbxGW+W8FKPe4uytOXtUgw"30793
+ },30794
+ "signatures": {30795
+ "@alice_1146:hs1": {30796
+ "ed25519:ALICEDEVICE1146": "l2JSQk7F+XpQYsBMCrzLVa4juPRJVM9PYFgAdH/XYiYtkuAFEqkRl31TrTY04RUT8p6ZwORepf8kwqQLPCyrAg"30797
+ }30798
+ },30799
+ "user_id": "@alice_1146:hs1",30800
+ "unsigned": {}30801
+ }30802
+ },30803
+ "@alice_1147:hs1": {30804
+ "ALICEDEVICE1147": {30805
+ "algorithms": [30806
+ "m.olm.v1.curve25519-aes-sha2",30807
+ "m.megolm.v1.aes-sha2"30808
+ ],30809
+ "device_id": "ALICEDEVICE1147",30810
+ "keys": {30811
+ "curve25519:ALICEDEVICE1147": "RoMq6+sitxhajp2lAmXIX0AQhjrdLKyv/ZCOqh5iLwg",30812
+ "ed25519:ALICEDEVICE1147": "IsTUiw/zaMKFWSV3Hr9Xt1V9iDBGS4slKRI0pdNAelg"30813
+ },30814
+ "signatures": {30815
+ "@alice_1147:hs1": {30816
+ "ed25519:ALICEDEVICE1147": "Zx2NurdEv3ZIcML+WOF9LKjIn1ERXFWQQqzrvxvZv9Bvn63P1o3BZMHNkeQCFkggw3wXAZlvaD0b+AMh00N5CA"30817
+ }30818
+ },30819
+ "user_id": "@alice_1147:hs1",30820
+ "unsigned": {}30821
+ }30822
+ },30823
+ "@alice_1151:hs1": {30824
+ "ALICEDEVICE1151": {30825
+ "algorithms": [30826
+ "m.olm.v1.curve25519-aes-sha2",30827
+ "m.megolm.v1.aes-sha2"30828
+ ],30829
+ "device_id": "ALICEDEVICE1151",30830
+ "keys": {30831
+ "curve25519:ALICEDEVICE1151": "FQQgOl9ciV7NKGKNrl9pT9qVqizY86XuqY7fDywbvT0",30832
+ "ed25519:ALICEDEVICE1151": "Ql/Q9yCdHyP6GJooHEZylfSjJ3eEQX+sEM5T0cwQzI4"30833
+ },30834
+ "signatures": {30835
+ "@alice_1151:hs1": {30836
+ "ed25519:ALICEDEVICE1151": "bXH3dHf77SdJKADc5ViWRGrtseparY1hDWu+lRpIqMznNcrqTahSoTDvLl2q2wTt0mZFVQcscecCcZOWg4XSDA"30837
+ }30838
+ },30839
+ "user_id": "@alice_1151:hs1",30840
+ "unsigned": {}30841
+ }30842
+ },30843
+ "@alice_1154:hs1": {30844
+ "ALICEDEVICE1154": {30845
+ "algorithms": [30846
+ "m.olm.v1.curve25519-aes-sha2",30847
+ "m.megolm.v1.aes-sha2"30848
+ ],30849
+ "device_id": "ALICEDEVICE1154",30850
+ "keys": {30851
+ "curve25519:ALICEDEVICE1154": "BIwBWDcFlyPnSLiJH2q2O8Mt70kcpYBkM41SRerWQUE",30852
+ "ed25519:ALICEDEVICE1154": "b8gzdK3swqaS9BQ9rHIsuBZdMmzo+pm1UPyvez+MLT4"30853
+ },30854
+ "signatures": {30855
+ "@alice_1154:hs1": {30856
+ "ed25519:ALICEDEVICE1154": "9o+EHfXAetyHTnnYdqU6KPuuXQ+5Isc2UAqfCoQLhFKdCswB62Hp5jlS3Wq2DaFGPXUTSSiGE9NWWQphArAkBQ"30857
+ }30858
+ },30859
+ "user_id": "@alice_1154:hs1",30860
+ "unsigned": {}30861
+ }30862
+ },30863
+ "@alice_1159:hs1": {30864
+ "ALICEDEVICE1159": {30865
+ "algorithms": [30866
+ "m.olm.v1.curve25519-aes-sha2",30867
+ "m.megolm.v1.aes-sha2"30868
+ ],30869
+ "device_id": "ALICEDEVICE1159",30870
+ "keys": {30871
+ "curve25519:ALICEDEVICE1159": "aV1C/5MFcAOQeCyUifUkh9Oqq/shPZ4o68F01IxecVg",30872
+ "ed25519:ALICEDEVICE1159": "pGokBJtzm1P12yhNqMDWvw+u+s8yzHQnpr9+XBT5fEs"30873
+ },30874
+ "signatures": {30875
+ "@alice_1159:hs1": {30876
+ "ed25519:ALICEDEVICE1159": "cmaedsP7I9yi46mniVk/igOX4P6Mgv3USjEP5z5SnjjuChj7Od30rCSBK2YghqrFHeyvV7qAs5XlZF3QW1OZDg"30877
+ }30878
+ },30879
+ "user_id": "@alice_1159:hs1",30880
+ "unsigned": {}30881
+ }30882
+ },30883
+ "@alice_115:hs1": {30884
+ "ALICEDEVICE115": {30885
+ "algorithms": [30886
+ "m.olm.v1.curve25519-aes-sha2",30887
+ "m.megolm.v1.aes-sha2"30888
+ ],30889
+ "device_id": "ALICEDEVICE115",30890
+ "keys": {30891
+ "curve25519:ALICEDEVICE115": "ViX0+DKr6RQBh5dPSGhDenBAXqX92YK2Wpyu5kjFrgI",30892
+ "ed25519:ALICEDEVICE115": "FnhQyVAdC7qb77IvLyeU6SDa87z2laMQwz861LgUKPc"30893
+ },30894
+ "signatures": {30895
+ "@alice_115:hs1": {30896
+ "ed25519:ALICEDEVICE115": "/yPtVKAxHfJBY25gVLFe54k+Fmp7dkhdTn6qyVUUm1VCvOEnCY/ZEwf1Iqu2c7zIuRwZ62AwEwIhiG+HQsxNCw"30897
+ }30898
+ },30899
+ "user_id": "@alice_115:hs1",30900
+ "unsigned": {}30901
+ }30902
+ },30903
+ "@alice_1173:hs1": {30904
+ "ALICEDEVICE1173": {30905
+ "algorithms": [30906
+ "m.olm.v1.curve25519-aes-sha2",30907
+ "m.megolm.v1.aes-sha2"30908
+ ],30909
+ "device_id": "ALICEDEVICE1173",30910
+ "keys": {30911
+ "curve25519:ALICEDEVICE1173": "OdWzfwG0AGFNgyVcZPzR1ZVkJ+5AXF/g4c48UNVWHzc",30912
+ "ed25519:ALICEDEVICE1173": "2I6GLiaLOmtfHmUAN0qKDINDuKW9GYpbCmNjwKxKkkw"30913
+ },30914
+ "signatures": {30915
+ "@alice_1173:hs1": {30916
+ "ed25519:ALICEDEVICE1173": "ZSPWt+WXZcm0T6J0r0ZKzxsq2ET0rXXFl1DwZZRqwzQaCnG8c7bPmzaEuD6lbh69CgvzOdfyeL2tsVrg9GOFCw"30917
+ }30918
+ },30919
+ "user_id": "@alice_1173:hs1",30920
+ "unsigned": {}30921
+ }30922
+ },30923
+ "@alice_1193:hs1": {30924
+ "ALICEDEVICE1193": {30925
+ "algorithms": [30926
+ "m.olm.v1.curve25519-aes-sha2",30927
+ "m.megolm.v1.aes-sha2"30928
+ ],30929
+ "device_id": "ALICEDEVICE1193",30930
+ "keys": {30931
+ "curve25519:ALICEDEVICE1193": "QsQyC2ZRjKdjVLIJOnk82nQ063pZCL91e9sHv9lDpFo",30932
+ "ed25519:ALICEDEVICE1193": "5n/G0h4+t5RiMmoPvlvrG04gXwSn0Gv1trjX66HnqnU"30933
+ },30934
+ "signatures": {30935
+ "@alice_1193:hs1": {30936
+ "ed25519:ALICEDEVICE1193": "bZQVzd58Uyk0O5YQtdxXlUtouS7QPHcH2J04+LP6icJUwCdtBn063jXxGhDtSskbo2bVN00HRLwQ0lTkC1F7Aw"30937
+ }30938
+ },30939
+ "user_id": "@alice_1193:hs1",30940
+ "unsigned": {}30941
+ }30942
+ },30943
+ "@alice_1201:hs1": {30944
+ "ALICEDEVICE1201": {30945
+ "algorithms": [30946
+ "m.olm.v1.curve25519-aes-sha2",30947
+ "m.megolm.v1.aes-sha2"30948
+ ],30949
+ "device_id": "ALICEDEVICE1201",30950
+ "keys": {30951
+ "curve25519:ALICEDEVICE1201": "h5Csohht/mi4LN2WAkdzn1tFuKkyd9UuIWLdIooqzBM",30952
+ "ed25519:ALICEDEVICE1201": "5VWJ2OU6ye9m84J7Y6oXedEaytmXyMXVvt1Wavf/TxY"30953
+ },30954
+ "signatures": {30955
+ "@alice_1201:hs1": {30956
+ "ed25519:ALICEDEVICE1201": "rH/w1XZLIsIEqJ9js4GEySzjyR3+tF5tRJHRlyECjtY/ephQmwxKZavtc7IFXWwjR6ayOKp+nCagP1YQKdp9AA"30957
+ }30958
+ },30959
+ "user_id": "@alice_1201:hs1",30960
+ "unsigned": {}30961
+ }30962
+ },30963
+ "@alice_1202:hs1": {30964
+ "ALICEDEVICE1202": {30965
+ "algorithms": [30966
+ "m.olm.v1.curve25519-aes-sha2",30967
+ "m.megolm.v1.aes-sha2"30968
+ ],30969
+ "device_id": "ALICEDEVICE1202",30970
+ "keys": {30971
+ "curve25519:ALICEDEVICE1202": "91tcEO+kUnTPxLb0IyAtyu+WnafE9xDkwx+9TWS9Jyo",30972
+ "ed25519:ALICEDEVICE1202": "rPJnxKhujMYlHYuOSYyaTBEp7Qn8PrjdNUbCMXl3qoE"30973
+ },30974
+ "signatures": {30975
+ "@alice_1202:hs1": {30976
+ "ed25519:ALICEDEVICE1202": "5eiA12CXGcHKVx491SjXvkwdykFasdOWljgVZel3UudxgKDm26JLNQIUJWxVhv8Nbc5qQByCZr1vJpTdjjv2BQ"30977
+ }30978
+ },30979
+ "user_id": "@alice_1202:hs1",30980
+ "unsigned": {}30981
+ }30982
+ },30983
+ "@alice_1203:hs1": {30984
+ "ALICEDEVICE1203": {30985
+ "algorithms": [30986
+ "m.olm.v1.curve25519-aes-sha2",30987
+ "m.megolm.v1.aes-sha2"30988
+ ],30989
+ "device_id": "ALICEDEVICE1203",30990
+ "keys": {30991
+ "curve25519:ALICEDEVICE1203": "jqDsEUCgMoZm0oPznmHuNogSs8VOrKnpzi7ntejIjRA",30992
+ "ed25519:ALICEDEVICE1203": "O7bI3DbR03NhZaQIoAtWp2W0bTJA0tnk5dJVTio3KeU"30993
+ },30994
+ "signatures": {30995
+ "@alice_1203:hs1": {30996
+ "ed25519:ALICEDEVICE1203": "iwxB8KFwsNnz0jQ3EATTh08ak5NYHc9k33yrtPEeN1CMEfF4Oas5G9yLgBuOtrUzKdWGYPj9kJz4Azv5e+xbDg"30997
+ }30998
+ },30999
+ "user_id": "@alice_1203:hs1",31000
+ "unsigned": {}31001
+ }31002
+ },31003
+ "@alice_1212:hs1": {31004
+ "ALICEDEVICE1212": {31005
+ "algorithms": [31006
+ "m.olm.v1.curve25519-aes-sha2",31007
+ "m.megolm.v1.aes-sha2"31008
+ ],31009
+ "device_id": "ALICEDEVICE1212",31010
+ "keys": {31011
+ "curve25519:ALICEDEVICE1212": "q5u2PSpFAYC4vsQR+G1EV+Uo+K1ALpOzaHQqIBceslM",31012
+ "ed25519:ALICEDEVICE1212": "/mOkwamjcNNbzl3nAfjuNm8cnPKgWfXWsCcEgA+rFNs"31013
+ },31014
+ "signatures": {31015
+ "@alice_1212:hs1": {31016
+ "ed25519:ALICEDEVICE1212": "IEO37Na/6xdQqm5dUzoGrnLmnAtwZ3FDeNBUWdOkcVW3mVfT43aHFejn9/mjL7O8OhdRHgEuKw6QQp9VG+ceAw"31017
+ }31018
+ },31019
+ "user_id": "@alice_1212:hs1",31020
+ "unsigned": {}31021
+ }31022
+ },31023
+ "@alice_121:hs1": {31024
+ "ALICEDEVICE121": {31025
+ "algorithms": [31026
+ "m.olm.v1.curve25519-aes-sha2",31027
+ "m.megolm.v1.aes-sha2"31028
+ ],31029
+ "device_id": "ALICEDEVICE121",31030
+ "keys": {31031
+ "curve25519:ALICEDEVICE121": "zE/+/cS2J0nKr9jhzOd8gtzxraUBsLQnb17AxR5zajM",31032
+ "ed25519:ALICEDEVICE121": "GVHMxTWxlg+3YbSB85q2BhvlUlcKoaf65lxT64Btu4k"31033
+ },31034
+ "signatures": {31035
+ "@alice_121:hs1": {31036
+ "ed25519:ALICEDEVICE121": "KnKzONk8ZRoKI2HKpiuj+EJrxEEAQHZPFKlEUqjJxmxoRjfWW0o7WbKONuXoJ9K2DTxBGRAsMBuIZASw5EWkDw"31037
+ }31038
+ },31039
+ "user_id": "@alice_121:hs1",31040
+ "unsigned": {}31041
+ }31042
+ },31043
+ "@alice_122:hs1": {31044
+ "ALICEDEVICE122": {31045
+ "algorithms": [31046
+ "m.olm.v1.curve25519-aes-sha2",31047
+ "m.megolm.v1.aes-sha2"31048
+ ],31049
+ "device_id": "ALICEDEVICE122",31050
+ "keys": {31051
+ "curve25519:ALICEDEVICE122": "lb+9/I1ODl8lBWTmm7CvjDLOAAVvEfj2Jhxt4ix8hCQ",31052
+ "ed25519:ALICEDEVICE122": "uwBd5kWPFCXaYTcx9hdGOvC0GdaOY1Zc90e5/3t7Mf0"31053
+ },31054
+ "signatures": {31055
+ "@alice_122:hs1": {31056
+ "ed25519:ALICEDEVICE122": "Jiw7IY2tOKjOlogge3qU5/0LgpdI06AeAfgJJ5hSwocWfkZEIDP9hgD+lCZYbCo5QWzmHn+gfZzPJnMQFgh4Cg"31057
+ }31058
+ },31059
+ "user_id": "@alice_122:hs1",31060
+ "unsigned": {}31061
+ }31062
+ },31063
+ "@alice_1255:hs1": {31064
+ "ALICEDEVICE1255": {31065
+ "algorithms": [31066
+ "m.olm.v1.curve25519-aes-sha2",31067
+ "m.megolm.v1.aes-sha2"31068
+ ],31069
+ "device_id": "ALICEDEVICE1255",31070
+ "keys": {31071
+ "curve25519:ALICEDEVICE1255": "gnppt8fdDJ/seYlF2537UYOrQ/OenZQmZG4WOLhdm1A",31072
+ "ed25519:ALICEDEVICE1255": "Fb/G41PDZvas7INmjAgqxzyBhiRuGGLSEXDaVLTzdkU"31073
+ },31074
+ "signatures": {31075
+ "@alice_1255:hs1": {31076
+ "ed25519:ALICEDEVICE1255": "FhbEhUNZVWa1sfVFHEf2xa0wD0wlbwXYrDU5FopvQEkPRXrN37qoRlQiNGT+fb8tV9plNuj3WfIRlchMpxt1Ag"31077
+ }31078
+ },31079
+ "user_id": "@alice_1255:hs1",31080
+ "unsigned": {}31081
+ }31082
+ },31083
+ "@alice_1258:hs1": {31084
+ "ALICEDEVICE1258": {31085
+ "algorithms": [31086
+ "m.olm.v1.curve25519-aes-sha2",31087
+ "m.megolm.v1.aes-sha2"31088
+ ],31089
+ "device_id": "ALICEDEVICE1258",31090
+ "keys": {31091
+ "curve25519:ALICEDEVICE1258": "QYz5PlyTriursJsp1xdMD17yLWQSQKMIGzSCYbd57ig",31092
+ "ed25519:ALICEDEVICE1258": "+/lR2HR43yXDXGvtFfpjXfcB3haC/N63NpGLZtrETv0"31093
+ },31094
+ "signatures": {31095
+ "@alice_1258:hs1": {31096
+ "ed25519:ALICEDEVICE1258": "lT1rbyUN58R/8Pk3HXFfgTUGQokr/tTTNeSSwaCc498ewinvI7XIR3GuHhrOt0XeyhAdtKuF28A1M3fpsoUYCQ"31097
+ }31098
+ },31099
+ "user_id": "@alice_1258:hs1",31100
+ "unsigned": {}31101
+ }31102
+ },31103
+ "@alice_1259:hs1": {31104
+ "ALICEDEVICE1259": {31105
+ "algorithms": [31106
+ "m.olm.v1.curve25519-aes-sha2",31107
+ "m.megolm.v1.aes-sha2"31108
+ ],31109
+ "device_id": "ALICEDEVICE1259",31110
+ "keys": {31111
+ "curve25519:ALICEDEVICE1259": "cOpD0ex948gl9iQKmAz64meHav6B4Z2O3QwXYIpC9gY",31112
+ "ed25519:ALICEDEVICE1259": "RRDGDvPIpFa0Rc1xU4Y7MxJ7km92zkAsTZawSDHVlGM"31113
+ },31114
+ "signatures": {31115
+ "@alice_1259:hs1": {31116
+ "ed25519:ALICEDEVICE1259": "hqCXnJ5unDoAqrFPuLNM5gqRbB7Ams2P17PbXxtSO9jX2OZKpgjY3gTX4tr8KHH8nW0Q6i+vundXD0ifpGM8DA"31117
+ }31118
+ },31119
+ "user_id": "@alice_1259:hs1",31120
+ "unsigned": {}31121
+ }31122
+ },31123
+ "@alice_1265:hs1": {31124
+ "ALICEDEVICE1265": {31125
+ "algorithms": [31126
+ "m.olm.v1.curve25519-aes-sha2",31127
+ "m.megolm.v1.aes-sha2"31128
+ ],31129
+ "device_id": "ALICEDEVICE1265",31130
+ "keys": {31131
+ "curve25519:ALICEDEVICE1265": "VVPYED2Xx9d4UFHIKADp+xBWyiXsmnc+21gc3hg08Xg",31132
+ "ed25519:ALICEDEVICE1265": "1m+jRg0jAIoYUwk17Wn6t0ByslKkKPrwEa8ZgBLr8No"31133
+ },31134
+ "signatures": {31135
+ "@alice_1265:hs1": {31136
+ "ed25519:ALICEDEVICE1265": "dmegdqnKxX0Yagty0glsDx8iV+CnClzCJFipZ6o9hrwxDwtDxzoh2iCOnpCKtFpJLpSBDs87QkjSLMNTUMbqAw"31137
+ }31138
+ },31139
+ "user_id": "@alice_1265:hs1",31140
+ "unsigned": {}31141
+ }31142
+ },31143
+ "@alice_1274:hs1": {31144
+ "ALICEDEVICE1274": {31145
+ "algorithms": [31146
+ "m.olm.v1.curve25519-aes-sha2",31147
+ "m.megolm.v1.aes-sha2"31148
+ ],31149
+ "device_id": "ALICEDEVICE1274",31150
+ "keys": {31151
+ "curve25519:ALICEDEVICE1274": "Dorj5YqWfho+1NeV3WNqg7BJhWovkNZMf2YWUln5QRg",31152
+ "ed25519:ALICEDEVICE1274": "h7xTvDYQxHo+p5YK49pdIp2KzQIHAcWkSny9ovQCoII"31153
+ },31154
+ "signatures": {31155
+ "@alice_1274:hs1": {31156
+ "ed25519:ALICEDEVICE1274": "Bp00Z96GojbpqtoImNA9WI4HWOGmItVllX2eDL6uuibhIsKe14DNHles+2e1QV7A2EV4E21MUeZdofGgaj+sBw"31157
+ }31158
+ },31159
+ "user_id": "@alice_1274:hs1",31160
+ "unsigned": {}31161
+ }31162
+ },31163
+ "@alice_1279:hs1": {31164
+ "ALICEDEVICE1279": {31165
+ "algorithms": [31166
+ "m.olm.v1.curve25519-aes-sha2",31167
+ "m.megolm.v1.aes-sha2"31168
+ ],31169
+ "device_id": "ALICEDEVICE1279",31170
+ "keys": {31171
+ "curve25519:ALICEDEVICE1279": "BCfNt3KQLhoSA5tPgT4vb+6zm2FHk0ifrHIeMEzt2zE",31172
+ "ed25519:ALICEDEVICE1279": "JHdbEEamuJhGSqL0My88IxjLfNkslfJ+yxLNScekHF0"31173
+ },31174
+ "signatures": {31175
+ "@alice_1279:hs1": {31176
+ "ed25519:ALICEDEVICE1279": "xLnN8KoqUIH9nXFIGrUviqwSanz1eJ1nYTd3sJRabl3e6gLMwel6HZ764IT2cUzLDv9Rdv7h2mLzVJnDlvPvBg"31177
+ }31178
+ },31179
+ "user_id": "@alice_1279:hs1",31180
+ "unsigned": {}31181
+ }31182
+ },31183
+ "@alice_1283:hs1": {31184
+ "ALICEDEVICE1283": {31185
+ "algorithms": [31186
+ "m.olm.v1.curve25519-aes-sha2",31187
+ "m.megolm.v1.aes-sha2"31188
+ ],31189
+ "device_id": "ALICEDEVICE1283",31190
+ "keys": {31191
+ "curve25519:ALICEDEVICE1283": "+alb2X0GeHEwWOvboIns30OznGne4Wo9KPB0OFt0hBc",31192
+ "ed25519:ALICEDEVICE1283": "VIWDpulXhgXNgRqfuFW+9PD54Fda7R5rZCzv2qQeTxE"31193
+ },31194
+ "signatures": {31195
+ "@alice_1283:hs1": {31196
+ "ed25519:ALICEDEVICE1283": "/ghGV8jZ7QU9YrKqcIZu4RC49CLzED87m16gDZHGnIwG7PQ/dIZhcyE9XviW/Z361aH9PJ03HmnY/TmzVBmuDQ"31197
+ }31198
+ },31199
+ "user_id": "@alice_1283:hs1",31200
+ "unsigned": {}31201
+ }31202
+ },31203
+ "@alice_1286:hs1": {31204
+ "ALICEDEVICE1286": {31205
+ "algorithms": [31206
+ "m.olm.v1.curve25519-aes-sha2",31207
+ "m.megolm.v1.aes-sha2"31208
+ ],31209
+ "device_id": "ALICEDEVICE1286",31210
+ "keys": {31211
+ "curve25519:ALICEDEVICE1286": "B1g8FCCN/wlpAWuOz1c7LzFHRTj67PQh9iTItbPZZA0",31212
+ "ed25519:ALICEDEVICE1286": "fUmNZuyy3mgNdRK7KR8CcoFSqtyMRNt4p/SBqamHboM"31213
+ },31214
+ "signatures": {31215
+ "@alice_1286:hs1": {31216
+ "ed25519:ALICEDEVICE1286": "R8G9bhluy4L/Vlhc4qV/wuW1APbfjqm9wTiznkGbvs8+nwMHhl5hW2k/mUmd0Y3YpR8yWZsRpl7R0IepWgaQAg"31217
+ }31218
+ },31219
+ "user_id": "@alice_1286:hs1",31220
+ "unsigned": {}31221
+ }31222
+ },31223
+ "@alice_1300:hs1": {31224
+ "ALICEDEVICE1300": {31225
+ "algorithms": [31226
+ "m.olm.v1.curve25519-aes-sha2",31227
+ "m.megolm.v1.aes-sha2"31228
+ ],31229
+ "device_id": "ALICEDEVICE1300",31230
+ "keys": {31231
+ "curve25519:ALICEDEVICE1300": "g/nvR52Ku60UrJzp+vIY7d55+FXGCBBLPYLdzMOL9lA",31232
+ "ed25519:ALICEDEVICE1300": "uYmcOimdIhdubANYl7ICKVcE4wpNQ0Nb70zp0qZ1o7M"31233
+ },31234
+ "signatures": {31235
+ "@alice_1300:hs1": {31236
+ "ed25519:ALICEDEVICE1300": "aCfiekBrWUcSZZH+D55JNxRdq2Xhm4QzVGuq1ij7ws8iR4M4HsdwwKbpUZepYjHkhcQPOFteRZb4HFFgeaZYBQ"31237
+ }31238
+ },31239
+ "user_id": "@alice_1300:hs1",31240
+ "unsigned": {}31241
+ }31242
+ },31243
+ "@alice_1301:hs1": {31244
+ "ALICEDEVICE1301": {31245
+ "algorithms": [31246
+ "m.olm.v1.curve25519-aes-sha2",31247
+ "m.megolm.v1.aes-sha2"31248
+ ],31249
+ "device_id": "ALICEDEVICE1301",31250
+ "keys": {31251
+ "curve25519:ALICEDEVICE1301": "z2gL5bcEomubN56QE6oTe7GxRjI4TRylV7So9bIhOSc",31252
+ "ed25519:ALICEDEVICE1301": "yF1EL+GR5yh4XxArs3Ix/RQM3X4FJjJ/oZsJoKXlJ4Q"31253
+ },31254
+ "signatures": {31255
+ "@alice_1301:hs1": {31256
+ "ed25519:ALICEDEVICE1301": "pMWamqJvOD2QbgmuVdn34E/0J8KxOBJVbFHDzhd1f5KFGQt3afn12Tec+u8/pVaEGToPIIykHqcRigD5+dtCDA"31257
+ }31258
+ },31259
+ "user_id": "@alice_1301:hs1",31260
+ "unsigned": {}31261
+ }31262
+ },31263
+ "@alice_1302:hs1": {31264
+ "ALICEDEVICE1302": {31265
+ "algorithms": [31266
+ "m.olm.v1.curve25519-aes-sha2",31267
+ "m.megolm.v1.aes-sha2"31268
+ ],31269
+ "device_id": "ALICEDEVICE1302",31270
+ "keys": {31271
+ "curve25519:ALICEDEVICE1302": "zFoy/w2HY0xkGCHckI2KJIkqSy4VM68zOoGSOkuDZVc",31272
+ "ed25519:ALICEDEVICE1302": "IlGrmGam21HEyVZnIYvdjBE2eB/oIbb6MpafnHxYFkc"31273
+ },31274
+ "signatures": {31275
+ "@alice_1302:hs1": {31276
+ "ed25519:ALICEDEVICE1302": "wpMqmyp2e2O1DzONFRXmO43xxa0sREfHyEMdHaB0d+X7/NGE+ubFHb8nu+3PkMZUY0Mlyhf50Zw1kWEPdJ88Dg"31277
+ }31278
+ },31279
+ "user_id": "@alice_1302:hs1",31280
+ "unsigned": {}31281
+ }31282
+ },31283
+ "@alice_1303:hs1": {31284
+ "ALICEDEVICE1303": {31285
+ "algorithms": [31286
+ "m.olm.v1.curve25519-aes-sha2",31287
+ "m.megolm.v1.aes-sha2"31288
+ ],31289
+ "device_id": "ALICEDEVICE1303",31290
+ "keys": {31291
+ "curve25519:ALICEDEVICE1303": "lAxNCexNloY80NG1kGA/85h5spmfKh1SuqXy4ga5nyE",31292
+ "ed25519:ALICEDEVICE1303": "WzqAynYT0qy43hJj8JzBeeKRgYGLQTkC1h9ZAGu6aGQ"31293
+ },31294
+ "signatures": {31295
+ "@alice_1303:hs1": {31296
+ "ed25519:ALICEDEVICE1303": "4Jlj/dRhZ73Kfwb96qB2ECAmmZWFtNnGBWMbf9aTGpBj2ngMBeZ9O8P+5ttupBXR+xbdCuO/EhsI6L6QWUIFAA"31297
+ }31298
+ },31299
+ "user_id": "@alice_1303:hs1",31300
+ "unsigned": {}31301
+ }31302
+ },31303
+ "@alice_1313:hs1": {31304
+ "ALICEDEVICE1313": {31305
+ "algorithms": [31306
+ "m.olm.v1.curve25519-aes-sha2",31307
+ "m.megolm.v1.aes-sha2"31308
+ ],31309
+ "device_id": "ALICEDEVICE1313",31310
+ "keys": {31311
+ "curve25519:ALICEDEVICE1313": "oIRFP5s5UhDgY4Tx7oqKsodmdeu4oNEIbp88PV4dhxg",31312
+ "ed25519:ALICEDEVICE1313": "5vbIZNK+iPYJkPulCgolyxFKZP1JAaAQcGp8P6wXQsM"31313
+ },31314
+ "signatures": {31315
+ "@alice_1313:hs1": {31316
+ "ed25519:ALICEDEVICE1313": "QElQ2eCWxlsy2dWHPSPCoyPLWQ+neMphKW3byDNR2hBvy+3USjkAMHIdzAfQkFujxwB4SOi/ov3LB40s2MH5DQ"31317
+ }31318
+ },31319
+ "user_id": "@alice_1313:hs1",31320
+ "unsigned": {}31321
+ }31322
+ },31323
+ "@alice_1330:hs1": {31324
+ "ALICEDEVICE1330": {31325
+ "algorithms": [31326
+ "m.olm.v1.curve25519-aes-sha2",31327
+ "m.megolm.v1.aes-sha2"31328
+ ],31329
+ "device_id": "ALICEDEVICE1330",31330
+ "keys": {31331
+ "curve25519:ALICEDEVICE1330": "5S4J5Bu4fjlbFNIJb0D56PvKot0GPgMvwdxRRsjBWDo",31332
+ "ed25519:ALICEDEVICE1330": "zrTdZMdaLyIveiGvQF1QboujxqxN3ph4gjjmoW29j4s"31333
+ },31334
+ "signatures": {31335
+ "@alice_1330:hs1": {31336
+ "ed25519:ALICEDEVICE1330": "m6WrhX7Px4iE8V4hcj8dOtw+VVfiEdTduT0T3cdR++ea5q7tC85CjvJvqwCamyhAGkHUzTlcfhkK+bGu47R2Aw"31337
+ }31338
+ },31339
+ "user_id": "@alice_1330:hs1",31340
+ "unsigned": {}31341
+ }31342
+ },31343
+ "@alice_1331:hs1": {31344
+ "ALICEDEVICE1331": {31345
+ "algorithms": [31346
+ "m.olm.v1.curve25519-aes-sha2",31347
+ "m.megolm.v1.aes-sha2"31348
+ ],31349
+ "device_id": "ALICEDEVICE1331",31350
+ "keys": {31351
+ "curve25519:ALICEDEVICE1331": "y17jbucIOTk8ZC2nfa9AlSgna+cHxeSnhFKztt+T+XA",31352
+ "ed25519:ALICEDEVICE1331": "nxEIPUiOn9zPY5LpS1UdL5mnDMpUKJgaQCBQ97FdXE4"31353
+ },31354
+ "signatures": {31355
+ "@alice_1331:hs1": {31356
+ "ed25519:ALICEDEVICE1331": "bGbwEVMuNfB/2nS7tfsvruKDFJMvk53A7BiAIi+f+HTrh6Cj7UPG8QIT+Z0zTPpTdBTHY653rSC0j7YRBln5Aw"31357
+ }31358
+ },31359
+ "user_id": "@alice_1331:hs1",31360
+ "unsigned": {}31361
+ }31362
+ },31363
+ "@alice_1334:hs1": {31364
+ "ALICEDEVICE1334": {31365
+ "algorithms": [31366
+ "m.olm.v1.curve25519-aes-sha2",31367
+ "m.megolm.v1.aes-sha2"31368
+ ],31369
+ "device_id": "ALICEDEVICE1334",31370
+ "keys": {31371
+ "curve25519:ALICEDEVICE1334": "XH11gMk0Utvb8cR8lzsXNvlt9iuPB3AvHScwc0WeQww",31372
+ "ed25519:ALICEDEVICE1334": "Ee/Hv0RWtPswRF5rP8GUSSyFSxK2f7KkHHtjgGKhuJc"31373
+ },31374
+ "signatures": {31375
+ "@alice_1334:hs1": {31376
+ "ed25519:ALICEDEVICE1334": "lRoHOErjeKztMjV03yLDOGx5IjOCcK+uJmHl0mc1WHGqv//v0EQ+jxjDk/g6CP8vGkDPzzXnTsyjebmZryW3CQ"31377
+ }31378
+ },31379
+ "user_id": "@alice_1334:hs1",31380
+ "unsigned": {}31381
+ }31382
+ },31383
+ "@alice_1338:hs1": {31384
+ "ALICEDEVICE1338": {31385
+ "algorithms": [31386
+ "m.olm.v1.curve25519-aes-sha2",31387
+ "m.megolm.v1.aes-sha2"31388
+ ],31389
+ "device_id": "ALICEDEVICE1338",31390
+ "keys": {31391
+ "curve25519:ALICEDEVICE1338": "38pwOKE9Y9O3cMZAUmYBgx2C6AQUM4TFao/bjw2ceSY",31392
+ "ed25519:ALICEDEVICE1338": "lHsKJ+By4s66nkGjoNlcGn6tqb38uMZ6n7UGu2VEcos"31393
+ },31394
+ "signatures": {31395
+ "@alice_1338:hs1": {31396
+ "ed25519:ALICEDEVICE1338": "nma0djnRcxRxbxU5DNzmsDb2T0a8UU1BL+ec3/BPAhN9O37HCXnmSNRjT6/sUsQj/NEQhC4/duNEY63z1dEQBw"31397
+ }31398
+ },31399
+ "user_id": "@alice_1338:hs1",31400
+ "unsigned": {}31401
+ }31402
+ },31403
+ "@alice_1339:hs1": {31404
+ "ALICEDEVICE1339": {31405
+ "algorithms": [31406
+ "m.olm.v1.curve25519-aes-sha2",31407
+ "m.megolm.v1.aes-sha2"31408
+ ],31409
+ "device_id": "ALICEDEVICE1339",31410
+ "keys": {31411
+ "curve25519:ALICEDEVICE1339": "RfBzzWR901WClg3IjRZtS351gU/HhxDNHE/oU2GkIHc",31412
+ "ed25519:ALICEDEVICE1339": "hnlpNIe6xEj8XHg+bAOVRe6Miaa0MUaVYBWiC9L1fj0"31413
+ },31414
+ "signatures": {31415
+ "@alice_1339:hs1": {31416
+ "ed25519:ALICEDEVICE1339": "J1ZXpidkwcQi4JVp18nAh6gwXJqhJ/WWPDr3U6XqEdZDYDELvsaayOZmSGRiuwE18G/kU+Fti7UJoorwvJQuAQ"31417
+ }31418
+ },31419
+ "user_id": "@alice_1339:hs1",31420
+ "unsigned": {}31421
+ }31422
+ },31423
+ "@alice_1352:hs1": {31424
+ "ALICEDEVICE1352": {31425
+ "algorithms": [31426
+ "m.olm.v1.curve25519-aes-sha2",31427
+ "m.megolm.v1.aes-sha2"31428
+ ],31429
+ "device_id": "ALICEDEVICE1352",31430
+ "keys": {31431
+ "curve25519:ALICEDEVICE1352": "j3OHCj08qVlok1DCeYFvFWT5DhFNt9CYg1O+9BWr9lE",31432
+ "ed25519:ALICEDEVICE1352": "ZXuLBcTCXFwC1CaR5t8TU7mT10sOtE0uc2wNxUVI4fs"31433
+ },31434
+ "signatures": {31435
+ "@alice_1352:hs1": {31436
+ "ed25519:ALICEDEVICE1352": "LNYbKhxwfzXhDrNlJKFJxaEqb+PacFu8u4ApWniNtl9Jxi/xa9LNR7Nt83mFJ6oNT/ut2LM5dNTTe207SRb4Bw"31437
+ }31438
+ },31439
+ "user_id": "@alice_1352:hs1",31440
+ "unsigned": {}31441
+ }31442
+ },31443
+ "@alice_1358:hs1": {31444
+ "ALICEDEVICE1358": {31445
+ "algorithms": [31446
+ "m.olm.v1.curve25519-aes-sha2",31447
+ "m.megolm.v1.aes-sha2"31448
+ ],31449
+ "device_id": "ALICEDEVICE1358",31450
+ "keys": {31451
+ "curve25519:ALICEDEVICE1358": "+eS1HL+YwJIUy5MZtMJhiUH979QCT4quT7IPv1Col2I",31452
+ "ed25519:ALICEDEVICE1358": "ZxDZNPtvSm1qkZHvHjUeSFsRN/z3jt7rYDOnwVc4Up0"31453
+ },31454
+ "signatures": {31455
+ "@alice_1358:hs1": {31456
+ "ed25519:ALICEDEVICE1358": "iPEm3V1vd2SMbLC0LKmMNz08zS1yXVQtKn+71rn2wGnGZw3QbktmWXxb6xsqZa8ynmd0j0JQxmUEIFql2XdvBQ"31457
+ }31458
+ },31459
+ "user_id": "@alice_1358:hs1",31460
+ "unsigned": {}31461
+ }31462
+ },31463
+ "@alice_1372:hs1": {31464
+ "ALICEDEVICE1372": {31465
+ "algorithms": [31466
+ "m.olm.v1.curve25519-aes-sha2",31467
+ "m.megolm.v1.aes-sha2"31468
+ ],31469
+ "device_id": "ALICEDEVICE1372",31470
+ "keys": {31471
+ "curve25519:ALICEDEVICE1372": "sn/lO1BFDS8ogA13U3EEcLy9FlClIO0OiI0MThvuHgQ",31472
+ "ed25519:ALICEDEVICE1372": "McIlVSMMY5/6v/3JSBFqDrpgygIrg46G1UCaAEsRhwU"31473
+ },31474
+ "signatures": {31475
+ "@alice_1372:hs1": {31476
+ "ed25519:ALICEDEVICE1372": "LCYGd/t9W7an3EE61FzKUryrZKKSorgEb/IS4BWMxKVEo4Kgs6HaaqNWJ6WHQZ2uEEdqISB1UF5E1mzgeii6CA"31477
+ }31478
+ },31479
+ "user_id": "@alice_1372:hs1",31480
+ "unsigned": {}31481
+ }31482
+ },31483
+ "@alice_138:hs1": {31484
+ "ALICEDEVICE138": {31485
+ "algorithms": [31486
+ "m.olm.v1.curve25519-aes-sha2",31487
+ "m.megolm.v1.aes-sha2"31488
+ ],31489
+ "device_id": "ALICEDEVICE138",31490
+ "keys": {31491
+ "curve25519:ALICEDEVICE138": "2ZipQ8KFyTP7PUn1r5U+8zuziCr5+PopU7NykW/9cBo",31492
+ "ed25519:ALICEDEVICE138": "Gg0DsvZlkb3Kua2COhG0DxcZJq2MS9ZqVsE1o+Iyl7k"31493
+ },31494
+ "signatures": {31495
+ "@alice_138:hs1": {31496
+ "ed25519:ALICEDEVICE138": "l4udKgHMvYur3cvthYSjci1/UfNEgs5Pxz0U+MTsKd48OCoCPcZS1QMNeKi0FF9o7CXGrD0ULP7+OFAV21C6Bw"31497
+ }31498
+ },31499
+ "user_id": "@alice_138:hs1",31500
+ "unsigned": {}31501
+ }31502
+ },31503
+ "@alice_1390:hs1": {31504
+ "ALICEDEVICE1390": {31505
+ "algorithms": [31506
+ "m.olm.v1.curve25519-aes-sha2",31507
+ "m.megolm.v1.aes-sha2"31508
+ ],31509
+ "device_id": "ALICEDEVICE1390",31510
+ "keys": {31511
+ "curve25519:ALICEDEVICE1390": "rTu5DCRIKbqJ0qyUB6uWR2BaoWl9Xtvl/q+iNrEccVc",31512
+ "ed25519:ALICEDEVICE1390": "lprQwpc57r6ICM3jfLnm0Yzs4/P/wr8zkdIA28kc/wk"31513
+ },31514
+ "signatures": {31515
+ "@alice_1390:hs1": {31516
+ "ed25519:ALICEDEVICE1390": "6sQRbnV9e6w2VtKwnW1P6bLRVHB3WAHPwnYEpQzKQMHut34XVvk1vKf+MU909TLKjteMNSky5+GmXQ1rSdqIDA"31517
+ }31518
+ },31519
+ "user_id": "@alice_1390:hs1",31520
+ "unsigned": {}31521
+ }31522
+ },31523
+ "@alice_1391:hs1": {31524
+ "ALICEDEVICE1391": {31525
+ "algorithms": [31526
+ "m.olm.v1.curve25519-aes-sha2",31527
+ "m.megolm.v1.aes-sha2"31528
+ ],31529
+ "device_id": "ALICEDEVICE1391",31530
+ "keys": {31531
+ "curve25519:ALICEDEVICE1391": "ZQDpGw5stwIp6Sz+RJ4oAjqK3wPgeggCKm/MxHmKPRU",31532
+ "ed25519:ALICEDEVICE1391": "y+Q0D3v3datc6EIdLXGxJ5/7Tg5nRpbkrldy8t/ESXU"31533
+ },31534
+ "signatures": {31535
+ "@alice_1391:hs1": {31536
+ "ed25519:ALICEDEVICE1391": "+TKQqTb+A/ojJcgnqmX0A/UEv9lnWGYEjL9b1M52u2IKBf4muoEujl7O3/ATS+nX6ED5HOl4TnUQVnpKAQ82Aw"31537
+ }31538
+ },31539
+ "user_id": "@alice_1391:hs1",31540
+ "unsigned": {}31541
+ }31542
+ },31543
+ "@alice_1393:hs1": {31544
+ "ALICEDEVICE1393": {31545
+ "algorithms": [31546
+ "m.olm.v1.curve25519-aes-sha2",31547
+ "m.megolm.v1.aes-sha2"31548
+ ],31549
+ "device_id": "ALICEDEVICE1393",31550
+ "keys": {31551
+ "curve25519:ALICEDEVICE1393": "QRV+unZPtDpjfEtATO8H4maTmmtt04YTfv/rF2wG9Rs",31552
+ "ed25519:ALICEDEVICE1393": "nnwYzh+lnG+qc3zlBsdCUCXbZZGrHggAvbNCKjRKZd8"31553
+ },31554
+ "signatures": {31555
+ "@alice_1393:hs1": {31556
+ "ed25519:ALICEDEVICE1393": "q7GuaWs6j7W1Xoqmghf25Ritr6J23zqzCNCbMCv8GRdAVpB/0JP5BELpvUEsp+YTsUsvLYhq8YnmZC1LFog1BQ"31557
+ }31558
+ },31559
+ "user_id": "@alice_1393:hs1",31560
+ "unsigned": {}31561
+ }31562
+ },31563
+ "@alice_1394:hs1": {31564
+ "ALICEDEVICE1394": {31565
+ "algorithms": [31566
+ "m.olm.v1.curve25519-aes-sha2",31567
+ "m.megolm.v1.aes-sha2"31568
+ ],31569
+ "device_id": "ALICEDEVICE1394",31570
+ "keys": {31571
+ "curve25519:ALICEDEVICE1394": "oA7TrdcDY4vzQ1gbDv1RUE2ipF/ZT4srCXJjt77YW2E",31572
+ "ed25519:ALICEDEVICE1394": "skSjVZ97rZRJjzr0506aZBj6FayYtIiyxDen0DlnLmE"31573
+ },31574
+ "signatures": {31575
+ "@alice_1394:hs1": {31576
+ "ed25519:ALICEDEVICE1394": "QvHFR0Z/dfNRudlPCAshhDkYRDM6Z5OwTLdpRHClEBXKsRxsScr4ESLc9hyhtTnSXpCMnvOA2ShOYYVHtJvODg"31577
+ }31578
+ },31579
+ "user_id": "@alice_1394:hs1",31580
+ "unsigned": {}31581
+ }31582
+ },31583
+ "@alice_1395:hs1": {31584
+ "ALICEDEVICE1395": {31585
+ "algorithms": [31586
+ "m.olm.v1.curve25519-aes-sha2",31587
+ "m.megolm.v1.aes-sha2"31588
+ ],31589
+ "device_id": "ALICEDEVICE1395",31590
+ "keys": {31591
+ "curve25519:ALICEDEVICE1395": "RVpZ6cbe89pDFc3L/UsHvjUCqD9NDkWwSRlwoCt+i3Y",31592
+ "ed25519:ALICEDEVICE1395": "c0zpfTVo20zftsECmX6UGPSelC0WyW1ZGCnHNMEkC5w"31593
+ },31594
+ "signatures": {31595
+ "@alice_1395:hs1": {31596
+ "ed25519:ALICEDEVICE1395": "Hu1CmQwvf2Jrt2K2GlZwAMbgLAI6HlbY5rJyPM4kD31FJZ9AENo+eXiS298yNiCJyXQpvtCrM3618rEgPYemAw"31597
+ }31598
+ },31599
+ "user_id": "@alice_1395:hs1",31600
+ "unsigned": {}31601
+ }31602
+ },31603
+ "@alice_1406:hs1": {31604
+ "ALICEDEVICE1406": {31605
+ "algorithms": [31606
+ "m.olm.v1.curve25519-aes-sha2",31607
+ "m.megolm.v1.aes-sha2"31608
+ ],31609
+ "device_id": "ALICEDEVICE1406",31610
+ "keys": {31611
+ "curve25519:ALICEDEVICE1406": "XWSBe6FEA827dPVVl665ys6Ay2r/eQkMqEdrcZHKhVo",31612
+ "ed25519:ALICEDEVICE1406": "4EPxvN+/5TSy/6YwLNGJrhJXSbZWLlF4wfeSfZ60D+s"31613
+ },31614
+ "signatures": {31615
+ "@alice_1406:hs1": {31616
+ "ed25519:ALICEDEVICE1406": "TTRBauYnuqOrlSW578PVQBeimZs6HYwAE56/5ua+0SxIw6VtZ4VOwk84KMPZt+8oqGNLIey4o7nkUQwEnP4EDQ"31617
+ }31618
+ },31619
+ "user_id": "@alice_1406:hs1",31620
+ "unsigned": {}31621
+ }31622
+ },31623
+ "@alice_141:hs1": {31624
+ "ALICEDEVICE141": {31625
+ "algorithms": [31626
+ "m.olm.v1.curve25519-aes-sha2",31627
+ "m.megolm.v1.aes-sha2"31628
+ ],31629
+ "device_id": "ALICEDEVICE141",31630
+ "keys": {31631
+ "curve25519:ALICEDEVICE141": "mnF0zoVi/ZDmvvwnbQWRB+tYpyJXHPExpjJz7cM2+BI",31632
+ "ed25519:ALICEDEVICE141": "HjRwpNomsPyEiGZJzo7b0hJHWel9J7fUyJm7VLJ/PK4"31633
+ },31634
+ "signatures": {31635
+ "@alice_141:hs1": {31636
+ "ed25519:ALICEDEVICE141": "lxRyGYeUgG6b1FlLTgwBo/OZk29g4flUOHBgLqN7YMza6M89/gfmFs+t4UcnWltGp01fbZ1CSDcJqO+6PiuBCQ"31637
+ }31638
+ },31639
+ "user_id": "@alice_141:hs1",31640
+ "unsigned": {}31641
+ }31642
+ },31643
+ "@alice_1437:hs1": {31644
+ "ALICEDEVICE1437": {31645
+ "algorithms": [31646
+ "m.olm.v1.curve25519-aes-sha2",31647
+ "m.megolm.v1.aes-sha2"31648
+ ],31649
+ "device_id": "ALICEDEVICE1437",31650
+ "keys": {31651
+ "curve25519:ALICEDEVICE1437": "+cLxF4Ai/M/sgg0TXmqXC/zOMy791vzfq1kRqXbVFAY",31652
+ "ed25519:ALICEDEVICE1437": "KMS/MC3MY1vupvf0Yd+S2w9iFt69i5yC9AJ89n4tyqw"31653
+ },31654
+ "signatures": {31655
+ "@alice_1437:hs1": {31656
+ "ed25519:ALICEDEVICE1437": "K+9ohIC3BGPQ4EturEL7nBC8tgiWMUsTY6NWI3vskC/rrNnCKDsC6bfIdLorqv+we+A8FwUC9p4Cql0dv1hqDg"31657
+ }31658
+ },31659
+ "user_id": "@alice_1437:hs1",31660
+ "unsigned": {}31661
+ }31662
+ },31663
+ "@alice_1448:hs1": {31664
+ "ALICEDEVICE1448": {31665
+ "algorithms": [31666
+ "m.olm.v1.curve25519-aes-sha2",31667
+ "m.megolm.v1.aes-sha2"31668
+ ],31669
+ "device_id": "ALICEDEVICE1448",31670
+ "keys": {31671
+ "curve25519:ALICEDEVICE1448": "bmqt5MmEoQhmO9azVk/JE9qRbrdjta3mcLKHI7r0hXI",31672
+ "ed25519:ALICEDEVICE1448": "ASqy1N3WT53qjelnymTQXI1pOWgIGZdjVZk9ekEQGlk"31673
+ },31674
+ "signatures": {31675
+ "@alice_1448:hs1": {31676
+ "ed25519:ALICEDEVICE1448": "ZwdHTN31ERptPLAE5eLxJeqAQff81HHY21XwIxNEZ/0bmqKX/et97rtDuKdf0y00cGn+2hywRrjVo7saPA6iDQ"31677
+ }31678
+ },31679
+ "user_id": "@alice_1448:hs1",31680
+ "unsigned": {}31681
+ }31682
+ },31683
+ "@alice_1460:hs1": {31684
+ "ALICEDEVICE1460": {31685
+ "algorithms": [31686
+ "m.olm.v1.curve25519-aes-sha2",31687
+ "m.megolm.v1.aes-sha2"31688
+ ],31689
+ "device_id": "ALICEDEVICE1460",31690
+ "keys": {31691
+ "curve25519:ALICEDEVICE1460": "oD42hnDl3psFyw4qI0lgT409wkbEP7wUNAWjMgBCugM",31692
+ "ed25519:ALICEDEVICE1460": "jcQXOYGfWrStfWrPRH6VeJOiVNKyy9GUyb/uQV8evmc"31693
+ },31694
+ "signatures": {31695
+ "@alice_1460:hs1": {31696
+ "ed25519:ALICEDEVICE1460": "+3csGZaN59OGam+9N0OwlJ523I8t4fsv88VTyQEvglXYVGNK6TmdWOU4WGAkEHgT6VDaudbTMO/jye+0uwVDDQ"31697
+ }31698
+ },31699
+ "user_id": "@alice_1460:hs1",31700
+ "unsigned": {}31701
+ }31702
+ },31703
+ "@alice_1469:hs1": {31704
+ "ALICEDEVICE1469": {31705
+ "algorithms": [31706
+ "m.olm.v1.curve25519-aes-sha2",31707
+ "m.megolm.v1.aes-sha2"31708
+ ],31709
+ "device_id": "ALICEDEVICE1469",31710
+ "keys": {31711
+ "curve25519:ALICEDEVICE1469": "MQsGdF2q1s96hQ6iS0l8QMuZohgJSomWjEoSJRf2Q3U",31712
+ "ed25519:ALICEDEVICE1469": "mTk9XenwFPXjZggSfoDsaYlpM4cYKN1hK0EhBAAg9kc"31713
+ },31714
+ "signatures": {31715
+ "@alice_1469:hs1": {31716
+ "ed25519:ALICEDEVICE1469": "Gaa5bT2zeKpx0EO7JiaiusP3L2ljsLUEH42ADWMaRTSLX1kwtiAUoUFl7eVpbYvKGYAj9YATYbdlJV+2UoQgAQ"31717
+ }31718
+ },31719
+ "user_id": "@alice_1469:hs1",31720
+ "unsigned": {}31721
+ }31722
+ },31723
+ "@alice_146:hs1": {31724
+ "ALICEDEVICE146": {31725
+ "algorithms": [31726
+ "m.olm.v1.curve25519-aes-sha2",31727
+ "m.megolm.v1.aes-sha2"31728
+ ],31729
+ "device_id": "ALICEDEVICE146",31730
+ "keys": {31731
+ "curve25519:ALICEDEVICE146": "ukkV54VqL3/cTGX/LQYCCHflYjN43TwUCqrDp5GEgk0",31732
+ "ed25519:ALICEDEVICE146": "DBTJCTRr8CC3isADVGFuxQXSlTu3+TOS2+SDJUcuToc"31733
+ },31734
+ "signatures": {31735
+ "@alice_146:hs1": {31736
+ "ed25519:ALICEDEVICE146": "UwgN4MBh8j5ISM9MBsTvCIdCMaWRgZ1NrP6/kp1PCtHKxTao2nzPzLFCW/rBEU8hEgGko6syRt8D7dMwo6dhBg"31737
+ }31738
+ },31739
+ "user_id": "@alice_146:hs1",31740
+ "unsigned": {}31741
+ }31742
+ },31743
+ "@alice_1486:hs1": {31744
+ "ALICEDEVICE1486": {31745
+ "algorithms": [31746
+ "m.olm.v1.curve25519-aes-sha2",31747
+ "m.megolm.v1.aes-sha2"31748
+ ],31749
+ "device_id": "ALICEDEVICE1486",31750
+ "keys": {31751
+ "curve25519:ALICEDEVICE1486": "CAD0TB2WKDob5RjcIxVYl+b9TGgGF2YOpNuiw8TTZgw",31752
+ "ed25519:ALICEDEVICE1486": "oyQbTnhTVjSa6AYNJtC05p2m/IBtY3qcVdr8ZQrIePA"31753
+ },31754
+ "signatures": {31755
+ "@alice_1486:hs1": {31756
+ "ed25519:ALICEDEVICE1486": "I49akUV+69zMmAHoqRHp6sdxtq2Ez+n8L/EQ8EhUgeg8ls12LNQ/oUo/vhwgZ+dKRlieDHRSvIN8iKYd8aHGDw"31757
+ }31758
+ },31759
+ "user_id": "@alice_1486:hs1",31760
+ "unsigned": {}31761
+ }31762
+ },31763
+ "@alice_1487:hs1": {31764
+ "ALICEDEVICE1487": {31765
+ "algorithms": [31766
+ "m.olm.v1.curve25519-aes-sha2",31767
+ "m.megolm.v1.aes-sha2"31768
+ ],31769
+ "device_id": "ALICEDEVICE1487",31770
+ "keys": {31771
+ "curve25519:ALICEDEVICE1487": "NBQ0cvDOJsFqnvBDxvXvOhKOLLBjGL/merM9zaL7uic",31772
+ "ed25519:ALICEDEVICE1487": "duKUINDxF16z6zMAH2I5GtJuUEsK4OrRuKl5TXSXMEo"31773
+ },31774
+ "signatures": {31775
+ "@alice_1487:hs1": {31776
+ "ed25519:ALICEDEVICE1487": "ySDfdSia4TDpDoiyg3go2rvWIWWAwaqXwd8clibHNxUjKzUc/FEM1C1C49QjmJHbcSV9GLUZD8T8UJ39Bmw1Cw"31777
+ }31778
+ },31779
+ "user_id": "@alice_1487:hs1",31780
+ "unsigned": {}31781
+ }31782
+ },31783
+ "@alice_1489:hs1": {31784
+ "ALICEDEVICE1489": {31785
+ "algorithms": [31786
+ "m.olm.v1.curve25519-aes-sha2",31787
+ "m.megolm.v1.aes-sha2"31788
+ ],31789
+ "device_id": "ALICEDEVICE1489",31790
+ "keys": {31791
+ "curve25519:ALICEDEVICE1489": "LxueAhNztm/iayC769hLV6Ei/fOSBcjt0pjBiDjW2ns",31792
+ "ed25519:ALICEDEVICE1489": "VBNyZPKDr5866PE4D48dj5FBmielKElaqxMgt5XjEMQ"31793
+ },31794
+ "signatures": {31795
+ "@alice_1489:hs1": {31796
+ "ed25519:ALICEDEVICE1489": "woLQWOlokpJxg3lH+GAqkCjyTtOF3R3Bj3kh8V/TmkQVN2ohI7s/brvOdLr7t65h8JYbelhj6QlilvJKwNqWBw"31797
+ }31798
+ },31799
+ "user_id": "@alice_1489:hs1",31800
+ "unsigned": {}31801
+ }31802
+ },31803
+ "@alice_1498:hs1": {31804
+ "ALICEDEVICE1498": {31805
+ "algorithms": [31806
+ "m.olm.v1.curve25519-aes-sha2",31807
+ "m.megolm.v1.aes-sha2"31808
+ ],31809
+ "device_id": "ALICEDEVICE1498",31810
+ "keys": {31811
+ "curve25519:ALICEDEVICE1498": "9mQsit2tJTBBHFbJrDTDzrrAzDro5LPxrP1rH4vMjzc",31812
+ "ed25519:ALICEDEVICE1498": "gEhq/+iVn1agr1kVbPV04q+xh2UN37rU/fM4CKP+exo"31813
+ },31814
+ "signatures": {31815
+ "@alice_1498:hs1": {31816
+ "ed25519:ALICEDEVICE1498": "oKjpQjU4zYvvrZnvXh4G86mZGEPiDeAl1QDDL2eRwAKLUuUIW6v54ecXbI8n1Rlu8PynA2wXp1VX/V8WhDKWDQ"31817
+ }31818
+ },31819
+ "user_id": "@alice_1498:hs1",31820
+ "unsigned": {}31821
+ }31822
+ },31823
+ "@alice_1500:hs1": {31824
+ "ALICEDEVICE1500": {31825
+ "algorithms": [31826
+ "m.olm.v1.curve25519-aes-sha2",31827
+ "m.megolm.v1.aes-sha2"31828
+ ],31829
+ "device_id": "ALICEDEVICE1500",31830
+ "keys": {31831
+ "curve25519:ALICEDEVICE1500": "WGsJ74BBCMF0QhI7UN9TATvx8xWL1qZXkJGoRkzkkW0",31832
+ "ed25519:ALICEDEVICE1500": "KcoNbL1dLIsABsaYECK4ZBcuiFRLV7HEMEZrJvGDhSA"31833
+ },31834
+ "signatures": {31835
+ "@alice_1500:hs1": {31836
+ "ed25519:ALICEDEVICE1500": "zZu1q7BUxaevZTcuSTJ+W/4G3zmz8qxo+/J3em6/htZ7a4pO1B2WxvF+XbZqHkeOTpU5Ko3HnHpJ+ih51KJRDw"31837
+ }31838
+ },31839
+ "user_id": "@alice_1500:hs1",31840
+ "unsigned": {}31841
+ }31842
+ },31843
+ "@alice_1502:hs1": {31844
+ "ALICEDEVICE1502": {31845
+ "algorithms": [31846
+ "m.olm.v1.curve25519-aes-sha2",31847
+ "m.megolm.v1.aes-sha2"31848
+ ],31849
+ "device_id": "ALICEDEVICE1502",31850
+ "keys": {31851
+ "curve25519:ALICEDEVICE1502": "32jgJOGzvx1rMlIE2p3igvnNneAh/JT5RHPDo2Ote2Q",31852
+ "ed25519:ALICEDEVICE1502": "b3F2PnSHeCKwhIR/nNISzlg9txJVXLjHSyTmuSmL/gY"31853
+ },31854
+ "signatures": {31855
+ "@alice_1502:hs1": {31856
+ "ed25519:ALICEDEVICE1502": "juzjpSC1tljmJhgZ15agC4JO/XBVFa8PPrgx4BrSLyh2M2izN1H3Nl1XTh/XkTIXEc/+SojaeTwECn7L/JCpDA"31857
+ }31858
+ },31859
+ "user_id": "@alice_1502:hs1",31860
+ "unsigned": {}31861
+ }31862
+ },31863
+ "@alice_1513:hs1": {31864
+ "ALICEDEVICE1513": {31865
+ "algorithms": [31866
+ "m.olm.v1.curve25519-aes-sha2",31867
+ "m.megolm.v1.aes-sha2"31868
+ ],31869
+ "device_id": "ALICEDEVICE1513",31870
+ "keys": {31871
+ "curve25519:ALICEDEVICE1513": "s7l0/J3whCWwjA5fVfjPp85iY8KXfhUBTMEQ5k7gIxU",31872
+ "ed25519:ALICEDEVICE1513": "aIA0Hz6vZb8QCW8r04XrKev0i5PQKR0mwSnMou4i/z4"31873
+ },31874
+ "signatures": {31875
+ "@alice_1513:hs1": {31876
+ "ed25519:ALICEDEVICE1513": "Xi2ZRBMGsc2vPoUmFPe7qchRBcIX6JvWj9/12z8wWWuLz6mILQoTx8CQyaQh8lXbS7kiTAMTrx1MEeywuXubDw"31877
+ }31878
+ },31879
+ "user_id": "@alice_1513:hs1",31880
+ "unsigned": {}31881
+ }31882
+ },31883
+ "@alice_1514:hs1": {31884
+ "ALICEDEVICE1514": {31885
+ "algorithms": [31886
+ "m.olm.v1.curve25519-aes-sha2",31887
+ "m.megolm.v1.aes-sha2"31888
+ ],31889
+ "device_id": "ALICEDEVICE1514",31890
+ "keys": {31891
+ "curve25519:ALICEDEVICE1514": "SCiFTg3eGPAuscWfMca33KVYo0hiyYXM35Eysqbhr1I",31892
+ "ed25519:ALICEDEVICE1514": "USfHgHHMri2AI6axlFM+8Uj45wzmLyXOvVhGd38j4+Q"31893
+ },31894
+ "signatures": {31895
+ "@alice_1514:hs1": {31896
+ "ed25519:ALICEDEVICE1514": "oPiB2He7gkJMGIaiPhkKRbo1zlkxRE2nLsfaXjroLp4ivkHDnJqB3+6M7uCKJlXpiPTmrV5VWbTKGR5Uz7bnBg"31897
+ }31898
+ },31899
+ "user_id": "@alice_1514:hs1",31900
+ "unsigned": {}31901
+ }31902
+ },31903
+ "@alice_1517:hs1": {31904
+ "ALICEDEVICE1517": {31905
+ "algorithms": [31906
+ "m.olm.v1.curve25519-aes-sha2",31907
+ "m.megolm.v1.aes-sha2"31908
+ ],31909
+ "device_id": "ALICEDEVICE1517",31910
+ "keys": {31911
+ "curve25519:ALICEDEVICE1517": "PWohsMNFbRStQFxMyxgXgO1XzWrbJ2VlOUv5AtGCzUY",31912
+ "ed25519:ALICEDEVICE1517": "qwH7PfgDFwnHNJLOeA/BTwP/7ORjwknf9Wt/o6sTkbk"31913
+ },31914
+ "signatures": {31915
+ "@alice_1517:hs1": {31916
+ "ed25519:ALICEDEVICE1517": "Yc3fKDBSM7fiqbGCLkFNHX3YuWmHUPrcdXfeBrremh0mHYq4uA89FZFD4ZHh3/tfyT4UdKcTcgHvBKMP/9fAAA"31917
+ }31918
+ },31919
+ "user_id": "@alice_1517:hs1",31920
+ "unsigned": {}31921
+ }31922
+ },31923
+ "@alice_1518:hs1": {31924
+ "ALICEDEVICE1518": {31925
+ "algorithms": [31926
+ "m.olm.v1.curve25519-aes-sha2",31927
+ "m.megolm.v1.aes-sha2"31928
+ ],31929
+ "device_id": "ALICEDEVICE1518",31930
+ "keys": {31931
+ "curve25519:ALICEDEVICE1518": "rTNh5p3WbVdmCXDG1iPA9sRz4d8JauxCy/ydHMsZYFY",31932
+ "ed25519:ALICEDEVICE1518": "SbWiOltei3CYmN3/CskGbKOPul8tHzPxYVUJDETRiew"31933
+ },31934
+ "signatures": {31935
+ "@alice_1518:hs1": {31936
+ "ed25519:ALICEDEVICE1518": "2FIQw4e7+myA4+L2oyE4FMVtQi+e8xTVH9JFOelGb87ui5+Xlp6nt/bqkiqPQXe4CilHCYpGFa1NWhXGPDmxCg"31937
+ }31938
+ },31939
+ "user_id": "@alice_1518:hs1",31940
+ "unsigned": {}31941
+ }31942
+ },31943
+ "@alice_1521:hs1": {31944
+ "ALICEDEVICE1521": {31945
+ "algorithms": [31946
+ "m.olm.v1.curve25519-aes-sha2",31947
+ "m.megolm.v1.aes-sha2"31948
+ ],31949
+ "device_id": "ALICEDEVICE1521",31950
+ "keys": {31951
+ "curve25519:ALICEDEVICE1521": "mWbIfBJ3Ne91h+iyrvkRrlsmd6lux/8X+yjfC5EcrQ0",31952
+ "ed25519:ALICEDEVICE1521": "CFDLyH2Jqvf15zOlawRkkoOmRoRtTdcS/jZK0OZMOds"31953
+ },31954
+ "signatures": {31955
+ "@alice_1521:hs1": {31956
+ "ed25519:ALICEDEVICE1521": "LC0eWh2QVNTspvapK/6ROBrblfZ2O/YqLCx2Lw4/45dPOZsx0Q4u3FhlZGhRnXYrcU+Hlmt+VYlViSwvRLrPAQ"31957
+ }31958
+ },31959
+ "user_id": "@alice_1521:hs1",31960
+ "unsigned": {}31961
+ }31962
+ },31963
+ "@alice_1525:hs1": {31964
+ "ALICEDEVICE1525": {31965
+ "algorithms": [31966
+ "m.olm.v1.curve25519-aes-sha2",31967
+ "m.megolm.v1.aes-sha2"31968
+ ],31969
+ "device_id": "ALICEDEVICE1525",31970
+ "keys": {31971
+ "curve25519:ALICEDEVICE1525": "lgyLW11V6l0wF7gYehxFZNFk6JoN0zf/B4K0J/AQnnI",31972
+ "ed25519:ALICEDEVICE1525": "t+VI7kKYBvvoZ/tLiJHbTghOkz49NPdBIrKCRhvKMVM"31973
+ },31974
+ "signatures": {31975
+ "@alice_1525:hs1": {31976
+ "ed25519:ALICEDEVICE1525": "wZJC2DNHOPJgiZ24W7qIuSWO5klBWGv9TbfmIVPP6fR1U+d3vpOZSZuyl8mlgDj47LynkcO9IA6ppbk1UIM+AA"31977
+ }31978
+ },31979
+ "user_id": "@alice_1525:hs1",31980
+ "unsigned": {}31981
+ }31982
+ },31983
+ "@alice_1528:hs1": {31984
+ "ALICEDEVICE1528": {31985
+ "algorithms": [31986
+ "m.olm.v1.curve25519-aes-sha2",31987
+ "m.megolm.v1.aes-sha2"31988
+ ],31989
+ "device_id": "ALICEDEVICE1528",31990
+ "keys": {31991
+ "curve25519:ALICEDEVICE1528": "VLJuFvFHtd1WPEqnSfgL5/iJH2Igb1gpRII4RBDviAM",31992
+ "ed25519:ALICEDEVICE1528": "VZhWldWpiFnwNXlgtedcH6L1wm5lmU7S/9fpNPFFCEU"31993
+ },31994
+ "signatures": {31995
+ "@alice_1528:hs1": {31996
+ "ed25519:ALICEDEVICE1528": "fvSqVqu/26Tff2QyYITj24rfgR0uS+sOYUWd7My7dO5rARoVUuceAcR8H7FiKhMYmxpJ7ctHW7UTqQ3kSDLJCg"31997
+ }31998
+ },31999
+ "user_id": "@alice_1528:hs1",32000
+ "unsigned": {}32001
+ }32002
+ },32003
+ "@alice_1529:hs1": {32004
+ "ALICEDEVICE1529": {32005
+ "algorithms": [32006
+ "m.olm.v1.curve25519-aes-sha2",32007
+ "m.megolm.v1.aes-sha2"32008
+ ],32009
+ "device_id": "ALICEDEVICE1529",32010
+ "keys": {32011
+ "curve25519:ALICEDEVICE1529": "AIJHm2D2pPVSvAWwKdaxbn0PNTB904LlCu8eZFy0vGU",32012
+ "ed25519:ALICEDEVICE1529": "WyMgpAx16PFaeiz2pxhflsGCnbxF+rPNwgSLWRf6bWo"32013
+ },32014
+ "signatures": {32015
+ "@alice_1529:hs1": {32016
+ "ed25519:ALICEDEVICE1529": "OhsbsAMeOPGV2xbr6QJmnNadlILRidmjON1G8/MNAIwW4LnlUKH7SDYItbi3/RWo6VeTXnLuYkkUqU4K8MlZDg"32017
+ }32018
+ },32019
+ "user_id": "@alice_1529:hs1",32020
+ "unsigned": {}32021
+ }32022
+ },32023
+ "@alice_1530:hs1": {32024
+ "ALICEDEVICE1530": {32025
+ "algorithms": [32026
+ "m.olm.v1.curve25519-aes-sha2",32027
+ "m.megolm.v1.aes-sha2"32028
+ ],32029
+ "device_id": "ALICEDEVICE1530",32030
+ "keys": {32031
+ "curve25519:ALICEDEVICE1530": "0yG8PjxoplGdu/ofWvW89yiyX8kwSFUO3rAdA15PaAE",32032
+ "ed25519:ALICEDEVICE1530": "kLzP5EDQrl6V2tjOB4DikJlN+CmWgjPJgI/r9rClWds"32033
+ },32034
+ "signatures": {32035
+ "@alice_1530:hs1": {32036
+ "ed25519:ALICEDEVICE1530": "dhzLkgs0aAn6FqRuvpkxuhXpl4cyAbFqn0z5msSsSejl+7e0PKUmeYFK0KmiYw+DKRNrXiLplnYifCR0dh8bAA"32037
+ }32038
+ },32039
+ "user_id": "@alice_1530:hs1",32040
+ "unsigned": {}32041
+ }32042
+ },32043
+ "@alice_153:hs1": {32044
+ "ALICEDEVICE153": {32045
+ "algorithms": [32046
+ "m.olm.v1.curve25519-aes-sha2",32047
+ "m.megolm.v1.aes-sha2"32048
+ ],32049
+ "device_id": "ALICEDEVICE153",32050
+ "keys": {32051
+ "curve25519:ALICEDEVICE153": "hHEwR1LJY4sqjGVFeJCu6dXM0IC9cVD8KCo027qvNxA",32052
+ "ed25519:ALICEDEVICE153": "QorASAuVGGEQNfpQ1cYUMqFWe+IOQrHSP3R1/bxBUX4"32053
+ },32054
+ "signatures": {32055
+ "@alice_153:hs1": {32056
+ "ed25519:ALICEDEVICE153": "jpJQWlf/o7S05oWuZmqadZu06lWNUlB8T65Dp83id+78YZ5fE732Zs/NwfBIoqiR3ykEkfuuTJbkdHNA036eDg"32057
+ }32058
+ },32059
+ "user_id": "@alice_153:hs1",32060
+ "unsigned": {}32061
+ }32062
+ },32063
+ "@alice_1554:hs1": {32064
+ "ALICEDEVICE1554": {32065
+ "algorithms": [32066
+ "m.olm.v1.curve25519-aes-sha2",32067
+ "m.megolm.v1.aes-sha2"32068
+ ],32069
+ "device_id": "ALICEDEVICE1554",32070
+ "keys": {32071
+ "curve25519:ALICEDEVICE1554": "Hta8Fv+kKB3vJvk66A6e+tnm5G/E4FD/HHdeKJW1R14",32072
+ "ed25519:ALICEDEVICE1554": "sOY18x74rRhU3d4AKxDJuPgtre8ObvzJKzPeE3kag/M"32073
+ },32074
+ "signatures": {32075
+ "@alice_1554:hs1": {32076
+ "ed25519:ALICEDEVICE1554": "WRO+Zgse2GSiIJYS4JLiQG2gNJytIalIxw/mWWEmKpvm54YkQUjeStOKOKFkOisFFALRvu/8v9EZ5FNwG6XQDQ"32077
+ }32078
+ },32079
+ "user_id": "@alice_1554:hs1",32080
+ "unsigned": {}32081
+ }32082
+ },32083
+ "@alice_1558:hs1": {32084
+ "ALICEDEVICE1558": {32085
+ "algorithms": [32086
+ "m.olm.v1.curve25519-aes-sha2",32087
+ "m.megolm.v1.aes-sha2"32088
+ ],32089
+ "device_id": "ALICEDEVICE1558",32090
+ "keys": {32091
+ "curve25519:ALICEDEVICE1558": "h/gZdauQhzwwdC1ukuadynq5hB0lbtDtF4Qcr9ikmhk",32092
+ "ed25519:ALICEDEVICE1558": "3R1rXvCu8jSqkS+mx6pwoL9zHk/mWnQacrYOVO6ygo0"32093
+ },32094
+ "signatures": {32095
+ "@alice_1558:hs1": {32096
+ "ed25519:ALICEDEVICE1558": "Pi08K5afW/VQ2so+JCTugpnSUygqTGTd9twM3Z4b3NZB+9Sn/RA4vyxkqSAcDFWkU2u51c+dstBH6svxlQlnCA"32097
+ }32098
+ },32099
+ "user_id": "@alice_1558:hs1",32100
+ "unsigned": {}32101
+ }32102
+ },32103
+ "@alice_1567:hs1": {32104
+ "ALICEDEVICE1567": {32105
+ "algorithms": [32106
+ "m.olm.v1.curve25519-aes-sha2",32107
+ "m.megolm.v1.aes-sha2"32108
+ ],32109
+ "device_id": "ALICEDEVICE1567",32110
+ "keys": {32111
+ "curve25519:ALICEDEVICE1567": "1FgVEMui5qgga8xBx6fAI5c5IdqsGW+VnMrzF1nqgn4",32112
+ "ed25519:ALICEDEVICE1567": "BR6dHnKDf9DlUHo5VaB8N4EAlxkMetiuKv4wAJh+uBo"32113
+ },32114
+ "signatures": {32115
+ "@alice_1567:hs1": {32116
+ "ed25519:ALICEDEVICE1567": "RKNEYcdowaZoYExaiGbWRlc8g55Jdvg3JV5dPPKRIBF61c2MjHssOzAKOK9JeN1D860zdIMRsTyVOnsPP6CJDA"32117
+ }32118
+ },32119
+ "user_id": "@alice_1567:hs1",32120
+ "unsigned": {}32121
+ }32122
+ },32123
+ "@alice_1591:hs1": {32124
+ "ALICEDEVICE1591": {32125
+ "algorithms": [32126
+ "m.olm.v1.curve25519-aes-sha2",32127
+ "m.megolm.v1.aes-sha2"32128
+ ],32129
+ "device_id": "ALICEDEVICE1591",32130
+ "keys": {32131
+ "curve25519:ALICEDEVICE1591": "bXONiIiVUNpsd8X48fqoUCt1GMDferQqSoahISONIEo",32132
+ "ed25519:ALICEDEVICE1591": "iVfmtN5pnY1xyNEbJbEyWrFEdwwhxjhycP25DMFNmHE"32133
+ },32134
+ "signatures": {32135
+ "@alice_1591:hs1": {32136
+ "ed25519:ALICEDEVICE1591": "JHTv9SuTtHBEo1TG5nmypPpPfNldt6GdVTI2/2SlDtphVR5a/DhDwt6iqtTU2Z5ZNynO4+kRa9Ez5d+97aoiBQ"32137
+ }32138
+ },32139
+ "user_id": "@alice_1591:hs1",32140
+ "unsigned": {}32141
+ }32142
+ },32143
+ "@alice_1592:hs1": {32144
+ "ALICEDEVICE1592": {32145
+ "algorithms": [32146
+ "m.olm.v1.curve25519-aes-sha2",32147
+ "m.megolm.v1.aes-sha2"32148
+ ],32149
+ "device_id": "ALICEDEVICE1592",32150
+ "keys": {32151
+ "curve25519:ALICEDEVICE1592": "sfDFlvumgBTqvIylY+sHIoKE3203zsJJ4jo4GPIOXG4",32152
+ "ed25519:ALICEDEVICE1592": "5+OemcxWZ1rFxPeDZkH2tviW3Q3aHQS7kg8k4mn7jiQ"32153
+ },32154
+ "signatures": {32155
+ "@alice_1592:hs1": {32156
+ "ed25519:ALICEDEVICE1592": "KjKk/auFgVu4yYrRnaZNTuXBxpfLcf5OP2knDlFMx7KBZuWFYDKVEN90R6z2tUNfhVpIiCLzcz5+azPQc05+CA"32157
+ }32158
+ },32159
+ "user_id": "@alice_1592:hs1",32160
+ "unsigned": {}32161
+ }32162
+ },32163
+ "@alice_1594:hs1": {32164
+ "ALICEDEVICE1594": {32165
+ "algorithms": [32166
+ "m.olm.v1.curve25519-aes-sha2",32167
+ "m.megolm.v1.aes-sha2"32168
+ ],32169
+ "device_id": "ALICEDEVICE1594",32170
+ "keys": {32171
+ "curve25519:ALICEDEVICE1594": "cy3SU3uRq1GAHlBPczji3uSwfrM0Y2U8J9LOOpmmfGQ",32172
+ "ed25519:ALICEDEVICE1594": "WhJKVTtmbTnu9RAvh7s4W1dclEqUX5XKumxaKB6zevA"32173
+ },32174
+ "signatures": {32175
+ "@alice_1594:hs1": {32176
+ "ed25519:ALICEDEVICE1594": "6qyEPZtKQ8iCdZ+aAxjEQSdw7U4eVy3BB8yRNvULh5aY2yYzV9GC1gb8w7gg/5mz+7udr8o1cnmuipAg2FDCBw"32177
+ }32178
+ },32179
+ "user_id": "@alice_1594:hs1",32180
+ "unsigned": {}32181
+ }32182
+ },32183
+ "@alice_1595:hs1": {32184
+ "ALICEDEVICE1595": {32185
+ "algorithms": [32186
+ "m.olm.v1.curve25519-aes-sha2",32187
+ "m.megolm.v1.aes-sha2"32188
+ ],32189
+ "device_id": "ALICEDEVICE1595",32190
+ "keys": {32191
+ "curve25519:ALICEDEVICE1595": "bzRrVuI9rdkfjZb9SYGqhvZzy+au1s6a4yW0LSNzgBk",32192
+ "ed25519:ALICEDEVICE1595": "ZcXeNF/plYSsjSE5Go4ttIMquRkPXdy9DGqJaayYLv4"32193
+ },32194
+ "signatures": {32195
+ "@alice_1595:hs1": {32196
+ "ed25519:ALICEDEVICE1595": "ofYmuERtnhT0CnYFa8TmE7mmPHICCQmogxcFgk/qW1nlF/2q5HUjf887/wZZXzW814HiniAIf2AeF+Zcx43jBA"32197
+ }32198
+ },32199
+ "user_id": "@alice_1595:hs1",32200
+ "unsigned": {}32201
+ }32202
+ },32203
+ "@alice_1622:hs1": {32204
+ "ALICEDEVICE1622": {32205
+ "algorithms": [32206
+ "m.olm.v1.curve25519-aes-sha2",32207
+ "m.megolm.v1.aes-sha2"32208
+ ],32209
+ "device_id": "ALICEDEVICE1622",32210
+ "keys": {32211
+ "curve25519:ALICEDEVICE1622": "qB3V2l8wd+xitpRxC84IFt+s/22nyUdu70mVHnj91F8",32212
+ "ed25519:ALICEDEVICE1622": "+faz9KLXeHABHqW7EOKKHVCSaeBZMW8R6LGmaAN04LU"32213
+ },32214
+ "signatures": {32215
+ "@alice_1622:hs1": {32216
+ "ed25519:ALICEDEVICE1622": "dMfadH528+UAagxT9IzSchXDDx4c+8yH+BIm+eL2Ja8avOTJCy9WNHZUpfQTCxcL8MzsQ7ZaHadpe/K09GZrBQ"32217
+ }32218
+ },32219
+ "user_id": "@alice_1622:hs1",32220
+ "unsigned": {}32221
+ }32222
+ },32223
+ "@alice_1629:hs1": {32224
+ "ALICEDEVICE1629": {32225
+ "algorithms": [32226
+ "m.olm.v1.curve25519-aes-sha2",32227
+ "m.megolm.v1.aes-sha2"32228
+ ],32229
+ "device_id": "ALICEDEVICE1629",32230
+ "keys": {32231
+ "curve25519:ALICEDEVICE1629": "BynVwnXfk8iwTl2AqwW511T0lndb9zQvDQ16pjqjv2Q",32232
+ "ed25519:ALICEDEVICE1629": "+wBs46TQ+myyyc3tlYYtR7Txt3ab2lI8/nj4d5F1FW0"32233
+ },32234
+ "signatures": {32235
+ "@alice_1629:hs1": {32236
+ "ed25519:ALICEDEVICE1629": "cPnoc5QgrUiFEF9GenyITFeD7yQOzNZ77DYZb5aOacVVbX1jd7HwdU9nnXPrNdL6crD5tXSlJcVW2OmKu3RsAw"32237
+ }32238
+ },32239
+ "user_id": "@alice_1629:hs1",32240
+ "unsigned": {}32241
+ }32242
+ },32243
+ "@alice_1631:hs1": {32244
+ "ALICEDEVICE1631": {32245
+ "algorithms": [32246
+ "m.olm.v1.curve25519-aes-sha2",32247
+ "m.megolm.v1.aes-sha2"32248
+ ],32249
+ "device_id": "ALICEDEVICE1631",32250
+ "keys": {32251
+ "curve25519:ALICEDEVICE1631": "OpiGKZb7vUUR2Lf6HvljV0KajkRc6RDruRAJ3jjOq1s",32252
+ "ed25519:ALICEDEVICE1631": "k+mx3OEMYYqbYaW07mW50U7wAPnnrF452BK8mjclE4Q"32253
+ },32254
+ "signatures": {32255
+ "@alice_1631:hs1": {32256
+ "ed25519:ALICEDEVICE1631": "e88wgOQ3zrvCfSwyHGEuiSmnM6Sdb7MlX6vGDGHfzg9cxxZo6/Ip+QIJGOr/AzRqPExsGNy7wjrR2OH2IvTOCA"32257
+ }32258
+ },32259
+ "user_id": "@alice_1631:hs1",32260
+ "unsigned": {}32261
+ }32262
+ },32263
+ "@alice_1639:hs1": {32264
+ "ALICEDEVICE1639": {32265
+ "algorithms": [32266
+ "m.olm.v1.curve25519-aes-sha2",32267
+ "m.megolm.v1.aes-sha2"32268
+ ],32269
+ "device_id": "ALICEDEVICE1639",32270
+ "keys": {32271
+ "curve25519:ALICEDEVICE1639": "tjraIQfU+gUD1r4LpoBC2HLBOpaN+D7PXhk1gfU1kDM",32272
+ "ed25519:ALICEDEVICE1639": "Mpl8XHt5BNPvTvyiothNMkahfYrRjip97Ns9n8T65i0"32273
+ },32274
+ "signatures": {32275
+ "@alice_1639:hs1": {32276
+ "ed25519:ALICEDEVICE1639": "PdYoj/kXN39JRZmUsTcrENdHsQmKYJLV+7DPlL0HGw5hLWXsNGGmTXGPN8mItbz0Qdrv8s6DBjMS3Rg9JZT4AA"32277
+ }32278
+ },32279
+ "user_id": "@alice_1639:hs1",32280
+ "unsigned": {}32281
+ }32282
+ },32283
+ "@alice_1641:hs1": {32284
+ "ALICEDEVICE1641": {32285
+ "algorithms": [32286
+ "m.olm.v1.curve25519-aes-sha2",32287
+ "m.megolm.v1.aes-sha2"32288
+ ],32289
+ "device_id": "ALICEDEVICE1641",32290
+ "keys": {32291
+ "curve25519:ALICEDEVICE1641": "b1KMwsCaqDP6dVokNrcetPglVHY8MBV5iQ4sU+BRiU4",32292
+ "ed25519:ALICEDEVICE1641": "xN3LODDR7mUfyp9Ok7j6He30Y/crR1bzD8O2vhACSDo"32293
+ },32294
+ "signatures": {32295
+ "@alice_1641:hs1": {32296
+ "ed25519:ALICEDEVICE1641": "oROGzVqi7py5CL7wpyTdD8zYcflFX+uPDWcovXBBfMY9E8D1vA9glbrgIlVpux0ytx3F1zKlHZEMuExGmJKPCw"32297
+ }32298
+ },32299
+ "user_id": "@alice_1641:hs1",32300
+ "unsigned": {}32301
+ }32302
+ },32303
+ "@alice_1648:hs1": {32304
+ "ALICEDEVICE1648": {32305
+ "algorithms": [32306
+ "m.olm.v1.curve25519-aes-sha2",32307
+ "m.megolm.v1.aes-sha2"32308
+ ],32309
+ "device_id": "ALICEDEVICE1648",32310
+ "keys": {32311
+ "curve25519:ALICEDEVICE1648": "BPyGya5G/8+83gEf1fIPLP4nji8ypmaAP/eBEEfSLWk",32312
+ "ed25519:ALICEDEVICE1648": "HJfNxigtAVCPVAo00cI3bSYweeBmZClKQohII4LhIoQ"32313
+ },32314
+ "signatures": {32315
+ "@alice_1648:hs1": {32316
+ "ed25519:ALICEDEVICE1648": "APjY2iquVLh2u+po+FCruMRW/72YtAjrcVrxh2zbOK8txqlDGqitg8qpbA0vSbRSP6jaX9+9PRhX3/vOLT/WBw"32317
+ }32318
+ },32319
+ "user_id": "@alice_1648:hs1",32320
+ "unsigned": {}32321
+ }32322
+ },32323
+ "@alice_1650:hs1": {32324
+ "ALICEDEVICE1650": {32325
+ "algorithms": [32326
+ "m.olm.v1.curve25519-aes-sha2",32327
+ "m.megolm.v1.aes-sha2"32328
+ ],32329
+ "device_id": "ALICEDEVICE1650",32330
+ "keys": {32331
+ "curve25519:ALICEDEVICE1650": "GVgYxIECQeOIM5bnAGJkpYRANKPiFsMlTq/OYdl4JzA",32332
+ "ed25519:ALICEDEVICE1650": "h/hqp5q4pou0QN+FiJ94Dw63CAUYR2hdxddBmCxJZu8"32333
+ },32334
+ "signatures": {32335
+ "@alice_1650:hs1": {32336
+ "ed25519:ALICEDEVICE1650": "1MSuqN8VeNhfD4OVsNxbyjokhPeBiytrkVV8oCp8P9QBosbKJDPLkmNvENpczHxj5i6mJMORviHgNWcaHEkJDw"32337
+ }32338
+ },32339
+ "user_id": "@alice_1650:hs1",32340
+ "unsigned": {}32341
+ }32342
+ },32343
+ "@alice_1651:hs1": {32344
+ "ALICEDEVICE1651": {32345
+ "algorithms": [32346
+ "m.olm.v1.curve25519-aes-sha2",32347
+ "m.megolm.v1.aes-sha2"32348
+ ],32349
+ "device_id": "ALICEDEVICE1651",32350
+ "keys": {32351
+ "curve25519:ALICEDEVICE1651": "xguEdNP2IW7QYOdxd170Lfx84bphCnwCJHfJaPQPnSE",32352
+ "ed25519:ALICEDEVICE1651": "O2Rc1PyN9nywHtXvbLmfSQb3gXxS4iwBFXHSUT4bClk"32353
+ },32354
+ "signatures": {32355
+ "@alice_1651:hs1": {32356
+ "ed25519:ALICEDEVICE1651": "UFxgAlT4HTpT1m35eAJD9fw4M7Bl0yTxJfeaeKo+8Zu2UstNM3emVV+1L8yAIB0p9E9VZ7hquDx+UIS/ytl/Bw"32357
+ }32358
+ },32359
+ "user_id": "@alice_1651:hs1",32360
+ "unsigned": {}32361
+ }32362
+ },32363
+ "@alice_1654:hs1": {32364
+ "ALICEDEVICE1654": {32365
+ "algorithms": [32366
+ "m.olm.v1.curve25519-aes-sha2",32367
+ "m.megolm.v1.aes-sha2"32368
+ ],32369
+ "device_id": "ALICEDEVICE1654",32370
+ "keys": {32371
+ "curve25519:ALICEDEVICE1654": "GPE168WL1mdYzslfMZ4I9OMRCavlCNrttp2Qy8L1PRk",32372
+ "ed25519:ALICEDEVICE1654": "UvL5wBsX75fswiEL2fOXmwmsg91tYeB2Ff3w3/VArek"32373
+ },32374
+ "signatures": {32375
+ "@alice_1654:hs1": {32376
+ "ed25519:ALICEDEVICE1654": "OhFO3IAlmbT/bDFG9gv8esmqj+n3gkQn+/CZZsfb7nAkmZ1+uEkHkchbbxjuPtFnUzu3T8Pxda/lrlCdGj6/Aw"32377
+ }32378
+ },32379
+ "user_id": "@alice_1654:hs1",32380
+ "unsigned": {}32381
+ }32382
+ },32383
+ "@alice_1666:hs1": {32384
+ "ALICEDEVICE1666": {32385
+ "algorithms": [32386
+ "m.olm.v1.curve25519-aes-sha2",32387
+ "m.megolm.v1.aes-sha2"32388
+ ],32389
+ "device_id": "ALICEDEVICE1666",32390
+ "keys": {32391
+ "curve25519:ALICEDEVICE1666": "HvTKSAAy9aBfdkaEdBcwro8Xznz1MtdAXgAAm1cAeCU",32392
+ "ed25519:ALICEDEVICE1666": "XOHnnbkTz8EZugj5LbPzN+jNeplhGF+yO7FocSySe9I"32393
+ },32394
+ "signatures": {32395
+ "@alice_1666:hs1": {32396
+ "ed25519:ALICEDEVICE1666": "5rOSb5E4YE0uSFCm5S3wXuYaezyTfukWWe/dLEHGw/NWvrjkWofLPMOAj2PojldnsIYc85riJNhb/o8Q8mZ7Aw"32397
+ }32398
+ },32399
+ "user_id": "@alice_1666:hs1",32400
+ "unsigned": {}32401
+ }32402
+ },32403
+ "@alice_1670:hs1": {32404
+ "ALICEDEVICE1670": {32405
+ "algorithms": [32406
+ "m.olm.v1.curve25519-aes-sha2",32407
+ "m.megolm.v1.aes-sha2"32408
+ ],32409
+ "device_id": "ALICEDEVICE1670",32410
+ "keys": {32411
+ "curve25519:ALICEDEVICE1670": "P90P39TKMjKso7I99ZnOzQdnx8iVVOp8QtCYGQiLY2w",32412
+ "ed25519:ALICEDEVICE1670": "Wk1Z4d5cjLsk4a13TxXNTVOhiIEAOEgY2CcYrsLsmeQ"32413
+ },32414
+ "signatures": {32415
+ "@alice_1670:hs1": {32416
+ "ed25519:ALICEDEVICE1670": "xGoGWSehtEV812rUOMEe4590jAO7dXz6Sc5nrSBKPY/C14zZS4eSEI67okGDTIF3PVqnTub7QnIPt0KHNayEAQ"32417
+ }32418
+ },32419
+ "user_id": "@alice_1670:hs1",32420
+ "unsigned": {}32421
+ }32422
+ },32423
+ "@alice_1674:hs1": {32424
+ "ALICEDEVICE1674": {32425
+ "algorithms": [32426
+ "m.olm.v1.curve25519-aes-sha2",32427
+ "m.megolm.v1.aes-sha2"32428
+ ],32429
+ "device_id": "ALICEDEVICE1674",32430
+ "keys": {32431
+ "curve25519:ALICEDEVICE1674": "kxJl5+YNsF3Lg2ltZM4lm7+A98fD/5dJdxaqGhbA9HA",32432
+ "ed25519:ALICEDEVICE1674": "SgHyI2urbuPAMT16jEF3EZvq41Z+oW4eR/NxBusoLMw"32433
+ },32434
+ "signatures": {32435
+ "@alice_1674:hs1": {32436
+ "ed25519:ALICEDEVICE1674": "eff5nV6OiCQdU7C0VJpoPaXfJ3rDFFs8OEpNX2ln0RC2OSKj8K3MdMqo3yTDwGWJn8IKPDulbHzhW7JEMVZ+CQ"32437
+ }32438
+ },32439
+ "user_id": "@alice_1674:hs1",32440
+ "unsigned": {}32441
+ }32442
+ },32443
+ "@alice_1682:hs1": {32444
+ "ALICEDEVICE1682": {32445
+ "algorithms": [32446
+ "m.olm.v1.curve25519-aes-sha2",32447
+ "m.megolm.v1.aes-sha2"32448
+ ],32449
+ "device_id": "ALICEDEVICE1682",32450
+ "keys": {32451
+ "curve25519:ALICEDEVICE1682": "kWDRB829zau8xWtMAxGH1/8jgBK3o1KKhnGsix12oyk",32452
+ "ed25519:ALICEDEVICE1682": "hNz77veRthNMhWB65PsS8x3JMk9PlVltT9aX3qHcsn8"32453
+ },32454
+ "signatures": {32455
+ "@alice_1682:hs1": {32456
+ "ed25519:ALICEDEVICE1682": "UZ5CtDkoWREH1c+NNUsZs0v1ZQ+6ksYhwcKBXTCwcY2k74K9emk9pRadZzS18Bf5P+ink2vpWkPGvFRyWYHmBg"32457
+ }32458
+ },32459
+ "user_id": "@alice_1682:hs1",32460
+ "unsigned": {}32461
+ }32462
+ },32463
+ "@alice_169:hs1": {32464
+ "ALICEDEVICE169": {32465
+ "algorithms": [32466
+ "m.olm.v1.curve25519-aes-sha2",32467
+ "m.megolm.v1.aes-sha2"32468
+ ],32469
+ "device_id": "ALICEDEVICE169",32470
+ "keys": {32471
+ "curve25519:ALICEDEVICE169": "SN0jyLPZqio/VTyNfMdu14mRVc8X+Q3wU6ql4d1jrSA",32472
+ "ed25519:ALICEDEVICE169": "PQW/akcb+36YtuBCQotkWhkMKO97eezS438IL6eKcdE"32473
+ },32474
+ "signatures": {32475
+ "@alice_169:hs1": {32476
+ "ed25519:ALICEDEVICE169": "XGcMvUYk5Iu2oAs8f+vTbN2z+mLu12rrwukHWijffQoy6GmLQl8CzLAsnCveAT08heSuiR4GeKNpUQJEU8+ADA"32477
+ }32478
+ },32479
+ "user_id": "@alice_169:hs1",32480
+ "unsigned": {}32481
+ }32482
+ },32483
+ "@alice_1706:hs1": {32484
+ "ALICEDEVICE1706": {32485
+ "algorithms": [32486
+ "m.olm.v1.curve25519-aes-sha2",32487
+ "m.megolm.v1.aes-sha2"32488
+ ],32489
+ "device_id": "ALICEDEVICE1706",32490
+ "keys": {32491
+ "curve25519:ALICEDEVICE1706": "1eFrNwKkL3dw/1BvhR5Tw91VI3phqiRl0RX885ahgyQ",32492
+ "ed25519:ALICEDEVICE1706": "gXE1eXvHv1eaSPTQbWELlvnbiDNs9S1Hq3kwOaeZN88"32493
+ },32494
+ "signatures": {32495
+ "@alice_1706:hs1": {32496
+ "ed25519:ALICEDEVICE1706": "/cMO2C8FncqiW7ckFbpWLi+DbTqxnOFEBcNAZ7l8bZXEJlEaayLeHp/dmb+nJ2zwMnwSFd2tpj3f9EGWBpOiCw"32497
+ }32498
+ },32499
+ "user_id": "@alice_1706:hs1",32500
+ "unsigned": {}32501
+ }32502
+ },32503
+ "@alice_1707:hs1": {32504
+ "ALICEDEVICE1707": {32505
+ "algorithms": [32506
+ "m.olm.v1.curve25519-aes-sha2",32507
+ "m.megolm.v1.aes-sha2"32508
+ ],32509
+ "device_id": "ALICEDEVICE1707",32510
+ "keys": {32511
+ "curve25519:ALICEDEVICE1707": "FOpaw3I5EO0IovkhSC7nd5UIsMzuAliMGgez7cwJngE",32512
+ "ed25519:ALICEDEVICE1707": "4ydLF7iqPOaZfORASw3gbUC3FKD4Fxbeb/5si7JKtic"32513
+ },32514
+ "signatures": {32515
+ "@alice_1707:hs1": {32516
+ "ed25519:ALICEDEVICE1707": "SEKWVRQdrC2xv9qWIIbWp3GFY0RqKgige02OKNwB0/Z5s2Fxotc6cK0gyyLcboBH6iOCFtAVQatxqhwypZP4BA"32517
+ }32518
+ },32519
+ "user_id": "@alice_1707:hs1",32520
+ "unsigned": {}32521
+ }32522
+ },32523
+ "@alice_1711:hs1": {32524
+ "ALICEDEVICE1711": {32525
+ "algorithms": [32526
+ "m.olm.v1.curve25519-aes-sha2",32527
+ "m.megolm.v1.aes-sha2"32528
+ ],32529
+ "device_id": "ALICEDEVICE1711",32530
+ "keys": {32531
+ "curve25519:ALICEDEVICE1711": "2hbjf8p6pQH2bj+ocIZtzfUQvC9xnnLpNaGKYLWI3BU",32532
+ "ed25519:ALICEDEVICE1711": "ggiogYLCt96HWfUyhpTEAQ4r3gheM3h3gjkoO3197VA"32533
+ },32534
+ "signatures": {32535
+ "@alice_1711:hs1": {32536
+ "ed25519:ALICEDEVICE1711": "VdkEGP3B0xJp1TRtZGIWaRPZ5vXUNYWlsvp2qqBqcHcLVzpDWuX67Ev2epK9abUeJMj6LnC7951GZVTMRP8DBw"32537
+ }32538
+ },32539
+ "user_id": "@alice_1711:hs1",32540
+ "unsigned": {}32541
+ }32542
+ },32543
+ "@alice_1713:hs1": {32544
+ "ALICEDEVICE1713": {32545
+ "algorithms": [32546
+ "m.olm.v1.curve25519-aes-sha2",32547
+ "m.megolm.v1.aes-sha2"32548
+ ],32549
+ "device_id": "ALICEDEVICE1713",32550
+ "keys": {32551
+ "curve25519:ALICEDEVICE1713": "34OnGoMNTYbCN1dcMgZn81ruGY75PUkpz4j1CYBA0hc",32552
+ "ed25519:ALICEDEVICE1713": "sQPNvGgT704L9K9gSCbpZtbvo1lYLSaHUqRrZBBWik4"32553
+ },32554
+ "signatures": {32555
+ "@alice_1713:hs1": {32556
+ "ed25519:ALICEDEVICE1713": "SoqMJbqA0GPfyN0a/zQDRJtVv6L23yPhnZ56DZLqAJSWHEgF4NGUxtbNe73zN6/s0c2Z+DaoloWY06WJl7ORDQ"32557
+ }32558
+ },32559
+ "user_id": "@alice_1713:hs1",32560
+ "unsigned": {}32561
+ }32562
+ },32563
+ "@alice_1714:hs1": {32564
+ "ALICEDEVICE1714": {32565
+ "algorithms": [32566
+ "m.olm.v1.curve25519-aes-sha2",32567
+ "m.megolm.v1.aes-sha2"32568
+ ],32569
+ "device_id": "ALICEDEVICE1714",32570
+ "keys": {32571
+ "curve25519:ALICEDEVICE1714": "cLhANPcj/iowLLBi3ZfNdMFfeHEZrxNu0vg+60P4nyk",32572
+ "ed25519:ALICEDEVICE1714": "V/4k20hqIc8A5GD70DQhp8X3DImaxbbHWX2TYmDZcuk"32573
+ },32574
+ "signatures": {32575
+ "@alice_1714:hs1": {32576
+ "ed25519:ALICEDEVICE1714": "ZS+1OV8s+aN/uBxAtJ0eLPUmGJhTd2CkdBd3DaBQ3bbgOoppVDxprl3K+iVG81pwbd6HKlyObo/eH177G/y5CA"32577
+ }32578
+ },32579
+ "user_id": "@alice_1714:hs1",32580
+ "unsigned": {}32581
+ }32582
+ },32583
+ "@alice_1734:hs1": {32584
+ "ALICEDEVICE1734": {32585
+ "algorithms": [32586
+ "m.olm.v1.curve25519-aes-sha2",32587
+ "m.megolm.v1.aes-sha2"32588
+ ],32589
+ "device_id": "ALICEDEVICE1734",32590
+ "keys": {32591
+ "curve25519:ALICEDEVICE1734": "5/SMxNw/Hz54U7QcTdjxXMu6unq79pP460ARmkLlBVI",32592
+ "ed25519:ALICEDEVICE1734": "KupC0NMaTmoAx/yWcMrQe5i03WvT+CdxdfZNYhWL8pE"32593
+ },32594
+ "signatures": {32595
+ "@alice_1734:hs1": {32596
+ "ed25519:ALICEDEVICE1734": "7G0QS0c6oX7fhD1PsUW7ThF2cpcNokfGAxyMkvqMoC/N9zTbDwOXjex+aeFprTBLwb0mN2yX1Nnw+egwHV3+Bg"32597
+ }32598
+ },32599
+ "user_id": "@alice_1734:hs1",32600
+ "unsigned": {}32601
+ }32602
+ },32603
+ "@alice_1754:hs1": {32604
+ "ALICEDEVICE1754": {32605
+ "algorithms": [32606
+ "m.olm.v1.curve25519-aes-sha2",32607
+ "m.megolm.v1.aes-sha2"32608
+ ],32609
+ "device_id": "ALICEDEVICE1754",32610
+ "keys": {32611
+ "curve25519:ALICEDEVICE1754": "wbqZcoC+AwUvPJQmliHlf6OU655VIRaSCubTOnzwZQM",32612
+ "ed25519:ALICEDEVICE1754": "AD8OVOAJIVTUbqR664D8l7pcZ4kVLjffKrjqVoALfWc"32613
+ },32614
+ "signatures": {32615
+ "@alice_1754:hs1": {32616
+ "ed25519:ALICEDEVICE1754": "LjwnjO0KOwn97PZbkhxIUfCcnVgMkG/u0heinbMF+/du4KPn2M7D54WtIFmQFUQ7flUDaJoA2c8sLzUJ4Do8CA"32617
+ }32618
+ },32619
+ "user_id": "@alice_1754:hs1",32620
+ "unsigned": {}32621
+ }32622
+ },32623
+ "@alice_1765:hs1": {32624
+ "ALICEDEVICE1765": {32625
+ "algorithms": [32626
+ "m.olm.v1.curve25519-aes-sha2",32627
+ "m.megolm.v1.aes-sha2"32628
+ ],32629
+ "device_id": "ALICEDEVICE1765",32630
+ "keys": {32631
+ "curve25519:ALICEDEVICE1765": "DLJ4TJwDk1K8ybLknAazTgXeJNtHKWmgIyER6dDGkBA",32632
+ "ed25519:ALICEDEVICE1765": "XYEBSg4RgvwX3s+bS06ELMJKQ/cndslhcLyms5ke0h0"32633
+ },32634
+ "signatures": {32635
+ "@alice_1765:hs1": {32636
+ "ed25519:ALICEDEVICE1765": "jKMHk4UFpxw3eWiRfyPRPBn8paxuLJ0Kf8DPO6Iiu0TybVRdynydrbnBHt8Cnn1W52bCPeixl5m4EIc3ZMQhDQ"32637
+ }32638
+ },32639
+ "user_id": "@alice_1765:hs1",32640
+ "unsigned": {}32641
+ }32642
+ },32643
+ "@alice_1767:hs1": {32644
+ "ALICEDEVICE1767": {32645
+ "algorithms": [32646
+ "m.olm.v1.curve25519-aes-sha2",32647
+ "m.megolm.v1.aes-sha2"32648
+ ],32649
+ "device_id": "ALICEDEVICE1767",32650
+ "keys": {32651
+ "curve25519:ALICEDEVICE1767": "hl5YHAmqnW+uH0eMHhWPTtOm32xBhbrkdW+KDfW1BX4",32652
+ "ed25519:ALICEDEVICE1767": "h+sRik61WQbcHvODZazRxdjSnJYAs/OasRmvMeVLKlE"32653
+ },32654
+ "signatures": {32655
+ "@alice_1767:hs1": {32656
+ "ed25519:ALICEDEVICE1767": "Zv/JE1YRuV9q0BXOQVtEL3NS5rERnV5w0wr09ybtg/bsX+HnJzmcyp75k9n5u8RH4ycPtSi5CZni9QsfJI68Bw"32657
+ }32658
+ },32659
+ "user_id": "@alice_1767:hs1",32660
+ "unsigned": {}32661
+ }32662
+ },32663
+ "@alice_176:hs1": {32664
+ "ALICEDEVICE176": {32665
+ "algorithms": [32666
+ "m.olm.v1.curve25519-aes-sha2",32667
+ "m.megolm.v1.aes-sha2"32668
+ ],32669
+ "device_id": "ALICEDEVICE176",32670
+ "keys": {32671
+ "curve25519:ALICEDEVICE176": "VSn5skjrQeVCupQTmM2t9/g7AEFcwBSLgC6NSXyoWxw",32672
+ "ed25519:ALICEDEVICE176": "hvYmPCl0G7+OPYfyXQiEzLkzw5P+eVcvrfhR1YD7bGs"32673
+ },32674
+ "signatures": {32675
+ "@alice_176:hs1": {32676
+ "ed25519:ALICEDEVICE176": "8BE5pLcw9otdr720FfqbfdI6WI005SBMnCo1gWju1fW+zW+smBMSR+P5U79s4Mj9SZk0JVCdjLuEYzaMx+S+Cg"32677
+ }32678
+ },32679
+ "user_id": "@alice_176:hs1",32680
+ "unsigned": {}32681
+ }32682
+ },32683
+ "@alice_177:hs1": {32684
+ "ALICEDEVICE177": {32685
+ "algorithms": [32686
+ "m.olm.v1.curve25519-aes-sha2",32687
+ "m.megolm.v1.aes-sha2"32688
+ ],32689
+ "device_id": "ALICEDEVICE177",32690
+ "keys": {32691
+ "curve25519:ALICEDEVICE177": "g95UB9YKc83zsh/izNsfYOJQQJWUwOJH3FvFkqtAHRc",32692
+ "ed25519:ALICEDEVICE177": "5mlubnzu08lG4qM71kXYlMX1h3rBLpRsiy3i41xMl7w"32693
+ },32694
+ "signatures": {32695
+ "@alice_177:hs1": {32696
+ "ed25519:ALICEDEVICE177": "p+NZeabGAWNh8KN7jI/PLZpubdAVuCsr4L0Wb575oKVnp8wrRE88GAxvT+T/GS1xII3SevBnxAueTG4qanZOBA"32697
+ }32698
+ },32699
+ "user_id": "@alice_177:hs1",32700
+ "unsigned": {}32701
+ }32702
+ },32703
+ "@alice_1781:hs1": {32704
+ "ALICEDEVICE1781": {32705
+ "algorithms": [32706
+ "m.olm.v1.curve25519-aes-sha2",32707
+ "m.megolm.v1.aes-sha2"32708
+ ],32709
+ "device_id": "ALICEDEVICE1781",32710
+ "keys": {32711
+ "curve25519:ALICEDEVICE1781": "UqLPIMhfinMbfV+3yY4uMFCgQC2JaV4lX9dk0ayk3kM",32712
+ "ed25519:ALICEDEVICE1781": "SNayllcJfKNCA13yP0io5f2tRDikmerBQow6mORQ7nI"32713
+ },32714
+ "signatures": {32715
+ "@alice_1781:hs1": {32716
+ "ed25519:ALICEDEVICE1781": "o/7slnJZh0eHlAprzifMjXqWJnbaohWJh8b9IILwC3qXBRlUKnSeDwhG78Xq50FEUKREEdL1mtjHsO4llZDTBg"32717
+ }32718
+ },32719
+ "user_id": "@alice_1781:hs1",32720
+ "unsigned": {}32721
+ }32722
+ },32723
+ "@alice_1783:hs1": {32724
+ "ALICEDEVICE1783": {32725
+ "algorithms": [32726
+ "m.olm.v1.curve25519-aes-sha2",32727
+ "m.megolm.v1.aes-sha2"32728
+ ],32729
+ "device_id": "ALICEDEVICE1783",32730
+ "keys": {32731
+ "curve25519:ALICEDEVICE1783": "W5D78MXXqW7lzOkGeeWsuRYPS4sTQDO665Ei1eVprxU",32732
+ "ed25519:ALICEDEVICE1783": "0kMwP7Z2R0IDFtJZ+wL835kk2EOyugBByQex8GUQpHY"32733
+ },32734
+ "signatures": {32735
+ "@alice_1783:hs1": {32736
+ "ed25519:ALICEDEVICE1783": "65ZfF7nwRktb9xooKUaGcIoNi7MZWeCoKL4JdJrdBpLZSklm97bfGFF6pRX/UgE2hzBGJ2zrrAJGy5ne/2HKAQ"32737
+ }32738
+ },32739
+ "user_id": "@alice_1783:hs1",32740
+ "unsigned": {}32741
+ }32742
+ },32743
+ "@alice_1790:hs1": {32744
+ "ALICEDEVICE1790": {32745
+ "algorithms": [32746
+ "m.olm.v1.curve25519-aes-sha2",32747
+ "m.megolm.v1.aes-sha2"32748
+ ],32749
+ "device_id": "ALICEDEVICE1790",32750
+ "keys": {32751
+ "curve25519:ALICEDEVICE1790": "FZBnniS+S9vyY0WXgG9blANF9iizqyxK3bUeBtk2x04",32752
+ "ed25519:ALICEDEVICE1790": "J/aSXs2xIH2cw5ES21ErpjO34FTRMsJvpJpdT8GJCok"32753
+ },32754
+ "signatures": {32755
+ "@alice_1790:hs1": {32756
+ "ed25519:ALICEDEVICE1790": "8RMQ2g3aIPO+waoOyjbkCs8ZmW3KyBFnFQ4MWQGJdNka24OJ7Ep5fk5+llsbYxj3ZlMu+qKWYAqpixesf4ndBw"32757
+ }32758
+ },32759
+ "user_id": "@alice_1790:hs1",32760
+ "unsigned": {}32761
+ }32762
+ },32763
+ "@alice_1792:hs1": {32764
+ "ALICEDEVICE1792": {32765
+ "algorithms": [32766
+ "m.olm.v1.curve25519-aes-sha2",32767
+ "m.megolm.v1.aes-sha2"32768
+ ],32769
+ "device_id": "ALICEDEVICE1792",32770
+ "keys": {32771
+ "curve25519:ALICEDEVICE1792": "vSo5daW3RoXmnXFn3YjBZWCO6o5X4ArLsC6/ANoa9kg",32772
+ "ed25519:ALICEDEVICE1792": "FIFwhmqJX9UGvD7Zz7Bhk6aDslfvBlYyGcrfl6FhvtU"32773
+ },32774
+ "signatures": {32775
+ "@alice_1792:hs1": {32776
+ "ed25519:ALICEDEVICE1792": "SJvVNbK+OaxFxyvT6q1D0+8s5Jm1Rm9eeAfMNtWtx5/S0uC19umLEcAeCXT2MsFeAWt6SgfWb8nQrhjfD/8EBw"32777
+ }32778
+ },32779
+ "user_id": "@alice_1792:hs1",32780
+ "unsigned": {}32781
+ }32782
+ },32783
+ "@alice_1820:hs1": {32784
+ "ALICEDEVICE1820": {32785
+ "algorithms": [32786
+ "m.olm.v1.curve25519-aes-sha2",32787
+ "m.megolm.v1.aes-sha2"32788
+ ],32789
+ "device_id": "ALICEDEVICE1820",32790
+ "keys": {32791
+ "curve25519:ALICEDEVICE1820": "I6STrmGspvK2zMy9ZY+4ToFc3fOILEWn649PNSCQIUE",32792
+ "ed25519:ALICEDEVICE1820": "fxXeSX9iKlrANDBuQnvoLNGOgewRf0/acPmD6lnOMQc"32793
+ },32794
+ "signatures": {32795
+ "@alice_1820:hs1": {32796
+ "ed25519:ALICEDEVICE1820": "e7aHwQ0WVrOvaBrC+AAoNbUimbD7yey0ekl83eqghNFmbZI/5wH9CRt3QVx7VJeDgSJug98QIps/175PeqWoCw"32797
+ }32798
+ },32799
+ "user_id": "@alice_1820:hs1",32800
+ "unsigned": {}32801
+ }32802
+ },32803
+ "@alice_1831:hs1": {32804
+ "ALICEDEVICE1831": {32805
+ "algorithms": [32806
+ "m.olm.v1.curve25519-aes-sha2",32807
+ "m.megolm.v1.aes-sha2"32808
+ ],32809
+ "device_id": "ALICEDEVICE1831",32810
+ "keys": {32811
+ "curve25519:ALICEDEVICE1831": "yhREFKWdeVOODy6de8r26rAFQB/RtPCXuXPDrb6alls",32812
+ "ed25519:ALICEDEVICE1831": "DTyaYQNLKxeKB1G8gkdAflejEJnj4zHdt9g3eHtEvZ4"32813
+ },32814
+ "signatures": {32815
+ "@alice_1831:hs1": {32816
+ "ed25519:ALICEDEVICE1831": "D4xLx286G+nSLZjLQYUdrstc+G9J0UbNz6I+KW4Ah0aXEqbLWxvSUSD/uKYgWbeSiL7S5+suCPJjxWnThtLgAg"32817
+ }32818
+ },32819
+ "user_id": "@alice_1831:hs1",32820
+ "unsigned": {}32821
+ }32822
+ },32823
+ "@alice_1834:hs1": {32824
+ "ALICEDEVICE1834": {32825
+ "algorithms": [32826
+ "m.olm.v1.curve25519-aes-sha2",32827
+ "m.megolm.v1.aes-sha2"32828
+ ],32829
+ "device_id": "ALICEDEVICE1834",32830
+ "keys": {32831
+ "curve25519:ALICEDEVICE1834": "mXBFfgnSDVw2F7oLIDwaQVqAIIf+30KfajMNcLpkwSU",32832
+ "ed25519:ALICEDEVICE1834": "p0kfafKqk2he96LW/8+lIneicY+4Yl1BZVCYWCfEKDg"32833
+ },32834
+ "signatures": {32835
+ "@alice_1834:hs1": {32836
+ "ed25519:ALICEDEVICE1834": "8SvdIBa2Gr/kvjt7E3MfVdipZY+XGEZmBrEIML0t7pGBrrKBaefKyFcbetqOCnjnpP6Qs7Pu3Rgq/1qjbxsPDA"32837
+ }32838
+ },32839
+ "user_id": "@alice_1834:hs1",32840
+ "unsigned": {}32841
+ }32842
+ },32843
+ "@alice_1841:hs1": {32844
+ "ALICEDEVICE1841": {32845
+ "algorithms": [32846
+ "m.olm.v1.curve25519-aes-sha2",32847
+ "m.megolm.v1.aes-sha2"32848
+ ],32849
+ "device_id": "ALICEDEVICE1841",32850
+ "keys": {32851
+ "curve25519:ALICEDEVICE1841": "7PGD4uiFdof2/FcljndqbGRYKmybvG24FKiMmRnjyTA",32852
+ "ed25519:ALICEDEVICE1841": "exutD/Gk8KxzVmVYhU59VGac0LOFMYv4uhos4+sW4AA"32853
+ },32854
+ "signatures": {32855
+ "@alice_1841:hs1": {32856
+ "ed25519:ALICEDEVICE1841": "GPmBaeDXks7sGHrhXEgET+wStdb2CFZG9nc27VFUHc/Fpn7qxBueFhQcfm+G6MGT3KQ/zshjDmbwUgi+LQMoBA"32857
+ }32858
+ },32859
+ "user_id": "@alice_1841:hs1",32860
+ "unsigned": {}32861
+ }32862
+ },32863
+ "@alice_1849:hs1": {32864
+ "ALICEDEVICE1849": {32865
+ "algorithms": [32866
+ "m.olm.v1.curve25519-aes-sha2",32867
+ "m.megolm.v1.aes-sha2"32868
+ ],32869
+ "device_id": "ALICEDEVICE1849",32870
+ "keys": {32871
+ "curve25519:ALICEDEVICE1849": "ULCIY68bAseVBkH/u/ICltyg0VFkOEgxusVXyeZ9R1E",32872
+ "ed25519:ALICEDEVICE1849": "PRfQMMA19DrfPzG6wLR8aDGViSVGW1njB0gipKwpGHc"32873
+ },32874
+ "signatures": {32875
+ "@alice_1849:hs1": {32876
+ "ed25519:ALICEDEVICE1849": "TuUL81ZOzbIc4O1vQjyrRNQm2LJWvPmq6NCAGRYfIAqKH/au1zHcsKhiQL6OHRLOBy0B7drO96jzTWq+1dhTDA"32877
+ }32878
+ },32879
+ "user_id": "@alice_1849:hs1",32880
+ "unsigned": {}32881
+ }32882
+ },32883
+ "@alice_1850:hs1": {32884
+ "ALICEDEVICE1850": {32885
+ "algorithms": [32886
+ "m.olm.v1.curve25519-aes-sha2",32887
+ "m.megolm.v1.aes-sha2"32888
+ ],32889
+ "device_id": "ALICEDEVICE1850",32890
+ "keys": {32891
+ "curve25519:ALICEDEVICE1850": "Ep7/pNtpRVxpJzEcxg5z4prF23gH/E5QYWbeY74pLGc",32892
+ "ed25519:ALICEDEVICE1850": "kd2DZlfH9CnMioP94g2W+dHj0wvi7uKmL7yMI9UwQjY"32893
+ },32894
+ "signatures": {32895
+ "@alice_1850:hs1": {32896
+ "ed25519:ALICEDEVICE1850": "IyaG07H0pWo/7+t3hQSWNhGSaVG12jKa7at1QENqFupVfisoAJJzYu580STWnV7IBM5q5xe9yHJbdVlB1GN+CQ"32897
+ }32898
+ },32899
+ "user_id": "@alice_1850:hs1",32900
+ "unsigned": {}32901
+ }32902
+ },32903
+ "@alice_1874:hs1": {32904
+ "ALICEDEVICE1874": {32905
+ "algorithms": [32906
+ "m.olm.v1.curve25519-aes-sha2",32907
+ "m.megolm.v1.aes-sha2"32908
+ ],32909
+ "device_id": "ALICEDEVICE1874",32910
+ "keys": {32911
+ "curve25519:ALICEDEVICE1874": "oCLAqqtfGzIqY9J2b2ERUtMI74rQ5PDCZPC0rxkfvDE",32912
+ "ed25519:ALICEDEVICE1874": "2pG7jjHLDKZpAlw1MCMJAvYPOs9sYW9oRoQIUKUqoaM"32913
+ },32914
+ "signatures": {32915
+ "@alice_1874:hs1": {32916
+ "ed25519:ALICEDEVICE1874": "zoZ56TIcdc+9FiUQKgkNxclhozqIQDDdIEMVgJowbQeHqyCcnHegRls1KgBaaaFxZnm/WRcyX8Phm29zCdQABA"32917
+ }32918
+ },32919
+ "user_id": "@alice_1874:hs1",32920
+ "unsigned": {}32921
+ }32922
+ },32923
+ "@alice_1876:hs1": {32924
+ "ALICEDEVICE1876": {32925
+ "algorithms": [32926
+ "m.olm.v1.curve25519-aes-sha2",32927
+ "m.megolm.v1.aes-sha2"32928
+ ],32929
+ "device_id": "ALICEDEVICE1876",32930
+ "keys": {32931
+ "curve25519:ALICEDEVICE1876": "I8idivOdt7v/8i5hnWCjBFMF0b9lZbIV6FLRo+hIsHo",32932
+ "ed25519:ALICEDEVICE1876": "cPr/fuG9ddjzvIchQBYDzMOQStacAnWvf2kbeGNNq1U"32933
+ },32934
+ "signatures": {32935
+ "@alice_1876:hs1": {32936
+ "ed25519:ALICEDEVICE1876": "Fgd4wRRAchaRvOLSV7b/JfyHa1jAZChn3slYoYEpEwWB2iqkiu57Deh4DMunCs6OWJiESQw3lnM19hKYh2jKBw"32937
+ }32938
+ },32939
+ "user_id": "@alice_1876:hs1",32940
+ "unsigned": {}32941
+ }32942
+ },32943
+ "@alice_1879:hs1": {32944
+ "ALICEDEVICE1879": {32945
+ "algorithms": [32946
+ "m.olm.v1.curve25519-aes-sha2",32947
+ "m.megolm.v1.aes-sha2"32948
+ ],32949
+ "device_id": "ALICEDEVICE1879",32950
+ "keys": {32951
+ "curve25519:ALICEDEVICE1879": "qGtKV1d6UkqGG+cXvYpBXtQd9Ku5jp1dmPEw37JxEhg",32952
+ "ed25519:ALICEDEVICE1879": "08/sQbA1imT2WTZcOpEZF/yRjqaFNOhkwVckAOhVyqE"32953
+ },32954
+ "signatures": {32955
+ "@alice_1879:hs1": {32956
+ "ed25519:ALICEDEVICE1879": "/XaZVw83jvl8TxR8zTK3+l/KInWTB17uipVO7hzZNEt2Hpm7a2z1z+9HkOjYwvWb235FhggEc6DPDoFeOUE5Dg"32957
+ }32958
+ },32959
+ "user_id": "@alice_1879:hs1",32960
+ "unsigned": {}32961
+ }32962
+ },32963
+ "@alice_1887:hs1": {32964
+ "ALICEDEVICE1887": {32965
+ "algorithms": [32966
+ "m.olm.v1.curve25519-aes-sha2",32967
+ "m.megolm.v1.aes-sha2"32968
+ ],32969
+ "device_id": "ALICEDEVICE1887",32970
+ "keys": {32971
+ "curve25519:ALICEDEVICE1887": "OuU/mGDqdoObM8dU69+TDwzDSHWNDlUWolemlJwhV2w",32972
+ "ed25519:ALICEDEVICE1887": "cMeEcWgy3sJKoGzF3biKmRQCuCcuVnGCGEco3/Wvd4o"32973
+ },32974
+ "signatures": {32975
+ "@alice_1887:hs1": {32976
+ "ed25519:ALICEDEVICE1887": "RzGFOAP8GZo+O1vaaUtEm3ZfIen4bsarpAWgfUVH7StRa6yI8PVsPBCrFMiszCuVv1oqL3SXEVfvo28YLIfYCw"32977
+ }32978
+ },32979
+ "user_id": "@alice_1887:hs1",32980
+ "unsigned": {}32981
+ }32982
+ },32983
+ "@alice_1904:hs1": {32984
+ "ALICEDEVICE1904": {32985
+ "algorithms": [32986
+ "m.olm.v1.curve25519-aes-sha2",32987
+ "m.megolm.v1.aes-sha2"32988
+ ],32989
+ "device_id": "ALICEDEVICE1904",32990
+ "keys": {32991
+ "curve25519:ALICEDEVICE1904": "+MU8PjtdvJL0/bkXQ0KxzcJwLw5NM98si1BGZYUT2QQ",32992
+ "ed25519:ALICEDEVICE1904": "YPpwusiyT1UhBSw1YPcDmHL4i3qQnBfVek4f3ZPY7RA"32993
+ },32994
+ "signatures": {32995
+ "@alice_1904:hs1": {32996
+ "ed25519:ALICEDEVICE1904": "5q5KEWup12oHOGQjDmeSnd3RuyZ6b8gs8v07XhTVlKlujrCldMTLA8vApOZgXcoZkWOzulF3JIhCX60Eh1l1Aw"32997
+ }32998
+ },32999
+ "user_id": "@alice_1904:hs1",33000
+ "unsigned": {}33001
+ }33002
+ },33003
+ "@alice_1917:hs1": {33004
+ "ALICEDEVICE1917": {33005
+ "algorithms": [33006
+ "m.olm.v1.curve25519-aes-sha2",33007
+ "m.megolm.v1.aes-sha2"33008
+ ],33009
+ "device_id": "ALICEDEVICE1917",33010
+ "keys": {33011
+ "curve25519:ALICEDEVICE1917": "q6jEHdjNW3NQITPZcSSViVgbgo5ZLanAjbE6NKRbYTs",33012
+ "ed25519:ALICEDEVICE1917": "Nwqem/94W+nZna+FZrZI5Wfjdtsntb4dnVXekQ7dTvw"33013
+ },33014
+ "signatures": {33015
+ "@alice_1917:hs1": {33016
+ "ed25519:ALICEDEVICE1917": "3Aju31E2R9jCx/UwzwvWNcWJ7Xt2W+cjfWMsDUH0m9vwVSnSJVZbMp7j06ma9k5AOovkqIHc4TJCNENTa/OjAA"33017
+ }33018
+ },33019
+ "user_id": "@alice_1917:hs1",33020
+ "unsigned": {}33021
+ }33022
+ },33023
+ "@alice_1919:hs1": {33024
+ "ALICEDEVICE1919": {33025
+ "algorithms": [33026
+ "m.olm.v1.curve25519-aes-sha2",33027
+ "m.megolm.v1.aes-sha2"33028
+ ],33029
+ "device_id": "ALICEDEVICE1919",33030
+ "keys": {33031
+ "curve25519:ALICEDEVICE1919": "aHB3MI2kFUfynmEiIEi1Dx41i2Jc8jbkWCBYNbSz428",33032
+ "ed25519:ALICEDEVICE1919": "E9denRG3k8FVqYmsbNXs8hnTtD3P6HrMclMD/lnZNpE"33033
+ },33034
+ "signatures": {33035
+ "@alice_1919:hs1": {33036
+ "ed25519:ALICEDEVICE1919": "gmy1cHnRAfd0jc4l9P8Et4eHguZ08YZpxMZ1pxfVgcf9vjbTOp1Ih37YjP6WT40OlKynAN+MJYHrs7HH3slKBw"33037
+ }33038
+ },33039
+ "user_id": "@alice_1919:hs1",33040
+ "unsigned": {}33041
+ }33042
+ },33043
+ "@alice_192:hs1": {33044
+ "ALICEDEVICE192": {33045
+ "algorithms": [33046
+ "m.olm.v1.curve25519-aes-sha2",33047
+ "m.megolm.v1.aes-sha2"33048
+ ],33049
+ "device_id": "ALICEDEVICE192",33050
+ "keys": {33051
+ "curve25519:ALICEDEVICE192": "Xdf/fFR+7A/LQAH5AyTTk++0Ymx048DZjDPPF5jnTEA",33052
+ "ed25519:ALICEDEVICE192": "9szLQDwTSWc9e/vj86wMPHJ/oglitCqiyabfxgJ4cms"33053
+ },33054
+ "signatures": {33055
+ "@alice_192:hs1": {33056
+ "ed25519:ALICEDEVICE192": "gfgYHuXeGcpznmOdPX7FShX6NbR1aQQgE+j6AgXmU0C796aKBKYNRVJ3Y1poeRmR4QvimvOc5XRasj88GCeCCw"33057
+ }33058
+ },33059
+ "user_id": "@alice_192:hs1",33060
+ "unsigned": {}33061
+ }33062
+ },33063
+ "@alice_1931:hs1": {33064
+ "ALICEDEVICE1931": {33065
+ "algorithms": [33066
+ "m.olm.v1.curve25519-aes-sha2",33067
+ "m.megolm.v1.aes-sha2"33068
+ ],33069
+ "device_id": "ALICEDEVICE1931",33070
+ "keys": {33071
+ "curve25519:ALICEDEVICE1931": "CuPEm+gSb5xhErkPANKvDmX+ZTbFAnhPF7yflElC6D4",33072
+ "ed25519:ALICEDEVICE1931": "rywrK8Gulooxxim8GABY/hfeMkTye3G5Hr+HdKBsEzk"33073
+ },33074
+ "signatures": {33075
+ "@alice_1931:hs1": {33076
+ "ed25519:ALICEDEVICE1931": "AvDUsVpjCT/aEuo40ist1LKqW9U9bhzEtvLhbEpFK2o20U8QaWS3YQYHuxmWpFO/KpKWCXk/aQXsM7JUYnD1AA"33077
+ }33078
+ },33079
+ "user_id": "@alice_1931:hs1",33080
+ "unsigned": {}33081
+ }33082
+ },33083
+ "@alice_1944:hs1": {33084
+ "ALICEDEVICE1944": {33085
+ "algorithms": [33086
+ "m.olm.v1.curve25519-aes-sha2",33087
+ "m.megolm.v1.aes-sha2"33088
+ ],33089
+ "device_id": "ALICEDEVICE1944",33090
+ "keys": {33091
+ "curve25519:ALICEDEVICE1944": "kpPz1GsJVr3HJ6ZAMCmXDmPdQDYC3swZRltIcs7bjwk",33092
+ "ed25519:ALICEDEVICE1944": "7egy51WXChlB7/Ahd3Bd8I3fle4L+lPL+CzqIfBwFsM"33093
+ },33094
+ "signatures": {33095
+ "@alice_1944:hs1": {33096
+ "ed25519:ALICEDEVICE1944": "qXNGU8MLCngEbBGIjYx69fkmHkKA4YMpoiadpNSgeU64Y5p5RVESKaQwZTXBEppSSM/K5Z2ldPujOmy4QT4CCQ"33097
+ }33098
+ },33099
+ "user_id": "@alice_1944:hs1",33100
+ "unsigned": {}33101
+ }33102
+ },33103
+ "@alice_1955:hs1": {33104
+ "ALICEDEVICE1955": {33105
+ "algorithms": [33106
+ "m.olm.v1.curve25519-aes-sha2",33107
+ "m.megolm.v1.aes-sha2"33108
+ ],33109
+ "device_id": "ALICEDEVICE1955",33110
+ "keys": {33111
+ "curve25519:ALICEDEVICE1955": "PuIE9xbUcvC+80u7gbUgXFRUaNMF1Zx5OY/1ZJitlTc",33112
+ "ed25519:ALICEDEVICE1955": "S+GQSqKUAw2f1+qnlu39HPUmRcYc/eUurBzKlJJbgd4"33113
+ },33114
+ "signatures": {33115
+ "@alice_1955:hs1": {33116
+ "ed25519:ALICEDEVICE1955": "Zin6/+t/1fc3OOoTtzA9libLvwNRtFmSo23hjgOAjP0IEDg3jsssL3X2RvrINa9xcrqcsQVZukZCTSRHtIMlCg"33117
+ }33118
+ },33119
+ "user_id": "@alice_1955:hs1",33120
+ "unsigned": {}33121
+ }33122
+ },33123
+ "@alice_1959:hs1": {33124
+ "ALICEDEVICE1959": {33125
+ "algorithms": [33126
+ "m.olm.v1.curve25519-aes-sha2",33127
+ "m.megolm.v1.aes-sha2"33128
+ ],33129
+ "device_id": "ALICEDEVICE1959",33130
+ "keys": {33131
+ "curve25519:ALICEDEVICE1959": "ClNwO7vW+4GOf21EcsjkkDBuY+gX10mc0wLXVwY89FY",33132
+ "ed25519:ALICEDEVICE1959": "9ABhMi11yOYmg1hrnuhu0DPeDL/rkevEJu90+ZH6RHA"33133
+ },33134
+ "signatures": {33135
+ "@alice_1959:hs1": {33136
+ "ed25519:ALICEDEVICE1959": "ZsZBUvd/ofMwolJ+xPunorzmlQbXpyq1zwKsgpp7ppDdPIkbAvUg/JiLarkJdQZnVs4SpsUfbNLyyHWDHmjSAg"33137
+ }33138
+ },33139
+ "user_id": "@alice_1959:hs1",33140
+ "unsigned": {}33141
+ }33142
+ },33143
+ "@alice_1977:hs1": {33144
+ "ALICEDEVICE1977": {33145
+ "algorithms": [33146
+ "m.olm.v1.curve25519-aes-sha2",33147
+ "m.megolm.v1.aes-sha2"33148
+ ],33149
+ "device_id": "ALICEDEVICE1977",33150
+ "keys": {33151
+ "curve25519:ALICEDEVICE1977": "4LTM+kzuSBqfeI14HZJ1RNQD7Jbt6NScQA+Lj56qJHw",33152
+ "ed25519:ALICEDEVICE1977": "+jolEYpBmEbWlNMMev8KMp+ir8L5x3Pk7qFQn4KlWpQ"33153
+ },33154
+ "signatures": {33155
+ "@alice_1977:hs1": {33156
+ "ed25519:ALICEDEVICE1977": "dylzCyoW0VSJtIyDofJUrNRUcjHx1TlOgjmS2+z4qZlA5wEDZc5KD+36XT2ToDM4uSpYGe8wO6kqa5RtsH92Cg"33157
+ }33158
+ },33159
+ "user_id": "@alice_1977:hs1",33160
+ "unsigned": {}33161
+ }33162
+ },33163
+ "@alice_197:hs1": {33164
+ "ALICEDEVICE197": {33165
+ "algorithms": [33166
+ "m.olm.v1.curve25519-aes-sha2",33167
+ "m.megolm.v1.aes-sha2"33168
+ ],33169
+ "device_id": "ALICEDEVICE197",33170
+ "keys": {33171
+ "curve25519:ALICEDEVICE197": "1hZuEiKaDHgp5fOq7pgWP7MlthcO9Ks5aPcm+CaicXo",33172
+ "ed25519:ALICEDEVICE197": "2V+15LqPTRmI/uVVE+rlF1XbYLKbAWiqhqCBiCEXb7A"33173
+ },33174
+ "signatures": {33175
+ "@alice_197:hs1": {33176
+ "ed25519:ALICEDEVICE197": "ip2Z5Dou9sWLG6loK0LSx1kjm5j/hcpQiV3EwjZuKmRFZdl57H601PLGwzttjxAAA+JtlMR/7sVDZ/GWLGmaBg"33177
+ }33178
+ },33179
+ "user_id": "@alice_197:hs1",33180
+ "unsigned": {}33181
+ }33182
+ },33183
+ "@alice_1981:hs1": {33184
+ "ALICEDEVICE1981": {33185
+ "algorithms": [33186
+ "m.olm.v1.curve25519-aes-sha2",33187
+ "m.megolm.v1.aes-sha2"33188
+ ],33189
+ "device_id": "ALICEDEVICE1981",33190
+ "keys": {33191
+ "curve25519:ALICEDEVICE1981": "LwslEohRx/qdaROV7h6UCzmhL80dxQq4NtuYt3hHwDQ",33192
+ "ed25519:ALICEDEVICE1981": "dBIodoPuDhlEyirz9VKC/kWmTmT8A3MQNThGTZilfBo"33193
+ },33194
+ "signatures": {33195
+ "@alice_1981:hs1": {33196
+ "ed25519:ALICEDEVICE1981": "7IvnskJbrWHPeSTwOGLSzk9HqFniLHj2cWjT8NfLLJbRfyAsAub3OuGzCAgGbDHyew1pVWvK099Z7jOWNfXIDA"33197
+ }33198
+ },33199
+ "user_id": "@alice_1981:hs1",33200
+ "unsigned": {}33201
+ }33202
+ },33203
+ "@alice_1989:hs1": {33204
+ "ALICEDEVICE1989": {33205
+ "algorithms": [33206
+ "m.olm.v1.curve25519-aes-sha2",33207
+ "m.megolm.v1.aes-sha2"33208
+ ],33209
+ "device_id": "ALICEDEVICE1989",33210
+ "keys": {33211
+ "curve25519:ALICEDEVICE1989": "DM1ed/3GQk52OkV0TTqtBmD7DNLD5oVU1/qUYW7ZpxE",33212
+ "ed25519:ALICEDEVICE1989": "pdGHqtuK+C2FAe2E3c+tp4E6Zo88zASA8/CvSQAQyfM"33213
+ },33214
+ "signatures": {33215
+ "@alice_1989:hs1": {33216
+ "ed25519:ALICEDEVICE1989": "uD8bzhnrnCQce/u3L/EMmsolt1dNicQ6f40KWAtpiF/epQd5Cj44ptfOJQOJkCa9pd0GwQQVvZwqv1puJga0AA"33217
+ }33218
+ },33219
+ "user_id": "@alice_1989:hs1",33220
+ "unsigned": {}33221
+ }33222
+ },33223
+ "@alice_19:hs1": {33224
+ "ALICEDEVICE19": {33225
+ "algorithms": [33226
+ "m.olm.v1.curve25519-aes-sha2",33227
+ "m.megolm.v1.aes-sha2"33228
+ ],33229
+ "device_id": "ALICEDEVICE19",33230
+ "keys": {33231
+ "curve25519:ALICEDEVICE19": "6VEf/9KW8NZAJS4/HQcLwASbsMX99aCRqltrORDn/Ro",33232
+ "ed25519:ALICEDEVICE19": "K5DIScVeuEiUBKniVAFSmY6V/ERKnqpd5hlxQLXrrok"33233
+ },33234
+ "signatures": {33235
+ "@alice_19:hs1": {33236
+ "ed25519:ALICEDEVICE19": "ZEieRjVLS43kQI+gTTFcw14x7s/bs6OX513mjXkBUqcaX58MU1X8IxYWN5kABtmtGpvfn94GIQz716fhuF/sCA"33237
+ }33238
+ },33239
+ "user_id": "@alice_19:hs1",33240
+ "unsigned": {}33241
+ }33242
+ },33243
+ "@alice_202:hs1": {33244
+ "ALICEDEVICE202": {33245
+ "algorithms": [33246
+ "m.olm.v1.curve25519-aes-sha2",33247
+ "m.megolm.v1.aes-sha2"33248
+ ],33249
+ "device_id": "ALICEDEVICE202",33250
+ "keys": {33251
+ "curve25519:ALICEDEVICE202": "qxWK/6urViyJvsXuiga1J3lKqIfYyogt4oWgusQ7tnA",33252
+ "ed25519:ALICEDEVICE202": "w58J9rtX8FHG2jrVGdrcUQXTAjN5s7f+urXwrEnc7A0"33253
+ },33254
+ "signatures": {33255
+ "@alice_202:hs1": {33256
+ "ed25519:ALICEDEVICE202": "13TFR2xBzG5YABWLQsTeBoEsDFDaNy93YF4jgPo+47dmqAXcvHhRC2I7bt930OHgonaDBWBkIG/+GO5lCmOSBw"33257
+ }33258
+ },33259
+ "user_id": "@alice_202:hs1",33260
+ "unsigned": {}33261
+ }33262
+ },33263
+ "@alice_203:hs1": {33264
+ "ALICEDEVICE203": {33265
+ "algorithms": [33266
+ "m.olm.v1.curve25519-aes-sha2",33267
+ "m.megolm.v1.aes-sha2"33268
+ ],33269
+ "device_id": "ALICEDEVICE203",33270
+ "keys": {33271
+ "curve25519:ALICEDEVICE203": "d/4GEpkIZSn3MSac8F1TX7WwmXwuNTPQIXwtyfJjgws",33272
+ "ed25519:ALICEDEVICE203": "NTXsxEsNP7LdeeNKSFymGPxTfdQBCZ64XKc8Xcu33D4"33273
+ },33274
+ "signatures": {33275
+ "@alice_203:hs1": {33276
+ "ed25519:ALICEDEVICE203": "S52oYKNyhBxoarRNm865IUkbmqZwD9f56Oz3TSK0fGajDL/O+g+2ninOUaQGroyRxzmcIafWfA/BtDv1Hpx0Aw"33277
+ }33278
+ },33279
+ "user_id": "@alice_203:hs1",33280
+ "unsigned": {}33281
+ }33282
+ },33283
+ "@alice_205:hs1": {33284
+ "ALICEDEVICE205": {33285
+ "algorithms": [33286
+ "m.olm.v1.curve25519-aes-sha2",33287
+ "m.megolm.v1.aes-sha2"33288
+ ],33289
+ "device_id": "ALICEDEVICE205",33290
+ "keys": {33291
+ "curve25519:ALICEDEVICE205": "6iihOgni24OeoYWboLUfrdt39fx8p+dEiT6BzWoIcXI",33292
+ "ed25519:ALICEDEVICE205": "znJzo0oOBlEI4F+G58M61+5Zsm29yXfhRVc85+08Ltw"33293
+ },33294
+ "signatures": {33295
+ "@alice_205:hs1": {33296
+ "ed25519:ALICEDEVICE205": "AYoKXBKr9KN4BGOgUVg5RAot3YJsFx0zoll+EXGrzte3UdW1YL7RCDWFjVJTBPLDbdu31HzEKGyomyqflgzeBQ"33297
+ }33298
+ },33299
+ "user_id": "@alice_205:hs1",33300
+ "unsigned": {}33301
+ }33302
+ },33303
+ "@alice_212:hs1": {33304
+ "ALICEDEVICE212": {33305
+ "algorithms": [33306
+ "m.olm.v1.curve25519-aes-sha2",33307
+ "m.megolm.v1.aes-sha2"33308
+ ],33309
+ "device_id": "ALICEDEVICE212",33310
+ "keys": {33311
+ "curve25519:ALICEDEVICE212": "8gFQ2rPnhP3qBa1EW5FRj84dVg51f+cgyMBkCOmDSC8",33312
+ "ed25519:ALICEDEVICE212": "81lDEOGXACYzVHcI3i6/kvG0HLyiNiU6GAi1bbZOHnI"33313
+ },33314
+ "signatures": {33315
+ "@alice_212:hs1": {33316
+ "ed25519:ALICEDEVICE212": "2Nq5AWwGD19UyIRKjyxguKM4sWL01CO7s7crSz/5qXRLu8aVaxEaSIs66yE8ufg2LsaJ6mIkX9zEx3943gQ3DQ"33317
+ }33318
+ },33319
+ "user_id": "@alice_212:hs1",33320
+ "unsigned": {}33321
+ }33322
+ },33323
+ "@alice_218:hs1": {33324
+ "ALICEDEVICE218": {33325
+ "algorithms": [33326
+ "m.olm.v1.curve25519-aes-sha2",33327
+ "m.megolm.v1.aes-sha2"33328
+ ],33329
+ "device_id": "ALICEDEVICE218",33330
+ "keys": {33331
+ "curve25519:ALICEDEVICE218": "ACzmxoRH8r7wFVQz4T5azhqtz2EknOnHlsR59KKXfys",33332
+ "ed25519:ALICEDEVICE218": "I4FcXTo93pdTFZdKBhZu8buXnnAM8xM9yYupHWwgnxU"33333
+ },33334
+ "signatures": {33335
+ "@alice_218:hs1": {33336
+ "ed25519:ALICEDEVICE218": "LnhxMJkXGkg+Wp1WJYRfn952CKJaTIqZ+bZvMx9uX39bLatgab3+B6tE5QaLwc2dcMVfNUncNJ74f+z+lkB7AQ"33337
+ }33338
+ },33339
+ "user_id": "@alice_218:hs1",33340
+ "unsigned": {}33341
+ }33342
+ },33343
+ "@alice_23:hs1": {33344
+ "ALICEDEVICE23": {33345
+ "algorithms": [33346
+ "m.olm.v1.curve25519-aes-sha2",33347
+ "m.megolm.v1.aes-sha2"33348
+ ],33349
+ "device_id": "ALICEDEVICE23",33350
+ "keys": {33351
+ "curve25519:ALICEDEVICE23": "61tUsKmD404ZLuDHm64vaz7nsY8UPaqfHOheGT9toB0",33352
+ "ed25519:ALICEDEVICE23": "rLHsooDZ8qlTzNTyUXX3wXXyWyX2b3C8dHgY7HnfazA"33353
+ },33354
+ "signatures": {33355
+ "@alice_23:hs1": {33356
+ "ed25519:ALICEDEVICE23": "BubpQ69blX9TQu5PIR5Eqmn/Zpq7XHaWF/Pp6XhIEMo+zWZ71ZRsVEBahT4LFVbrzOize6rlrGeGMfTw1WY1Cw"33357
+ }33358
+ },33359
+ "user_id": "@alice_23:hs1",33360
+ "unsigned": {}33361
+ }33362
+ },33363
+ "@alice_247:hs1": {33364
+ "ALICEDEVICE247": {33365
+ "algorithms": [33366
+ "m.olm.v1.curve25519-aes-sha2",33367
+ "m.megolm.v1.aes-sha2"33368
+ ],33369
+ "device_id": "ALICEDEVICE247",33370
+ "keys": {33371
+ "curve25519:ALICEDEVICE247": "NYpF5PPnTNWKxRJnjiteXr7bwqLacQtlw/cYxZGrbko",33372
+ "ed25519:ALICEDEVICE247": "qoqstYtJTzkUgITbYHvM+DVLjFQrKXfgPq1+RQ0JUn8"33373
+ },33374
+ "signatures": {33375
+ "@alice_247:hs1": {33376
+ "ed25519:ALICEDEVICE247": "hVqZ43xktdvgac/p5gpZ/yU8QDNBeAGS8Ams+NcSnH/u6eD1qwQ8+wZm7VH1Q5nXjVkf0Nh3cELQxlXtm8cnBg"33377
+ }33378
+ },33379
+ "user_id": "@alice_247:hs1",33380
+ "unsigned": {}33381
+ }33382
+ },33383
+ "@alice_24:hs1": {33384
+ "ALICEDEVICE24": {33385
+ "algorithms": [33386
+ "m.olm.v1.curve25519-aes-sha2",33387
+ "m.megolm.v1.aes-sha2"33388
+ ],33389
+ "device_id": "ALICEDEVICE24",33390
+ "keys": {33391
+ "curve25519:ALICEDEVICE24": "di3G1BR5VLJF4JKbOq2wkVNvEvz0NxtBa7CgoN1d1Fw",33392
+ "ed25519:ALICEDEVICE24": "goU1a6X00w4cJcHKf36m9HLJyXWiqkxFYHyUteyio0Y"33393
+ },33394
+ "signatures": {33395
+ "@alice_24:hs1": {33396
+ "ed25519:ALICEDEVICE24": "kIA8pjiOOQKw+HJ8egaMkkgjkDstbnhReMNce5W4jUDLRXYdJaJ5Kq6dCnF0eU6M2Np91Mv94GA/8BvQZmjMDw"33397
+ }33398
+ },33399
+ "user_id": "@alice_24:hs1",33400
+ "unsigned": {}33401
+ }33402
+ },33403
+ "@alice_252:hs1": {33404
+ "ALICEDEVICE252": {33405
+ "algorithms": [33406
+ "m.olm.v1.curve25519-aes-sha2",33407
+ "m.megolm.v1.aes-sha2"33408
+ ],33409
+ "device_id": "ALICEDEVICE252",33410
+ "keys": {33411
+ "curve25519:ALICEDEVICE252": "DXw7hLFaVFhOFcL6MZJT7Wf+X47tLUaUaXk4ZIHeWyk",33412
+ "ed25519:ALICEDEVICE252": "D8TbYfforK9cwa0EfmTS77hgoJ2M8VlkW/vpZ82DI9c"33413
+ },33414
+ "signatures": {33415
+ "@alice_252:hs1": {33416
+ "ed25519:ALICEDEVICE252": "Tf9otk648/1nRE8nsgESrQYAZo5HxfOvnEl/HHnkwMz894Bx735rzbYzV8zO7TBtPjiIdj95fXOqedw+YDGFCA"33417
+ }33418
+ },33419
+ "user_id": "@alice_252:hs1",33420
+ "unsigned": {}33421
+ }33422
+ },33423
+ "@alice_259:hs1": {33424
+ "ALICEDEVICE259": {33425
+ "algorithms": [33426
+ "m.olm.v1.curve25519-aes-sha2",33427
+ "m.megolm.v1.aes-sha2"33428
+ ],33429
+ "device_id": "ALICEDEVICE259",33430
+ "keys": {33431
+ "curve25519:ALICEDEVICE259": "VYyEX5W5mvKJY954Csh8YDtE97RiR78AisU6U7lXDAs",33432
+ "ed25519:ALICEDEVICE259": "mmZFsr1y7K7vcoshdiiBUvMhpxrliMw/E/KyLZKLvPU"33433
+ },33434
+ "signatures": {33435
+ "@alice_259:hs1": {33436
+ "ed25519:ALICEDEVICE259": "lrw7IDaw1aAQNlNQO3WB3Npkuy3rD77+6s4gN8r6bR/man0tmz3Qdt9n1cwlpZb1zQvrw0D7+PhTpNm2dSjjCA"33437
+ }33438
+ },33439
+ "user_id": "@alice_259:hs1",33440
+ "unsigned": {}33441
+ }33442
+ },33443
+ "@alice_268:hs1": {33444
+ "ALICEDEVICE268": {33445
+ "algorithms": [33446
+ "m.olm.v1.curve25519-aes-sha2",33447
+ "m.megolm.v1.aes-sha2"33448
+ ],33449
+ "device_id": "ALICEDEVICE268",33450
+ "keys": {33451
+ "curve25519:ALICEDEVICE268": "uNMVwJHHZE1tDUBzqY+SYx6tLVoFaIPJTdXnFSJo4kw",33452
+ "ed25519:ALICEDEVICE268": "7K2MjQJF8OKn2zfHJxQMWm8qou5Z4Ixl1rXuo1/liLY"33453
+ },33454
+ "signatures": {33455
+ "@alice_268:hs1": {33456
+ "ed25519:ALICEDEVICE268": "/CcAMXM8v8Inlof1wYINEW8Q3dy/mNMV/6mmHuNOzFJOwfBGn3XFeibocFZc+tbKx9BasCOjd11HOxxN8L1nAQ"33457
+ }33458
+ },33459
+ "user_id": "@alice_268:hs1",33460
+ "unsigned": {}33461
+ }33462
+ },33463
+ "@alice_293:hs1": {33464
+ "ALICEDEVICE293": {33465
+ "algorithms": [33466
+ "m.olm.v1.curve25519-aes-sha2",33467
+ "m.megolm.v1.aes-sha2"33468
+ ],33469
+ "device_id": "ALICEDEVICE293",33470
+ "keys": {33471
+ "curve25519:ALICEDEVICE293": "JLiHL44pEJJRBVJS4R6OdBSLr/omd0LGpqlRyH4ysWI",33472
+ "ed25519:ALICEDEVICE293": "Bs1Ccd8AcXfhlEfI9JjfdXJLVesiS/5J0KVnOvQ8rik"33473
+ },33474
+ "signatures": {33475
+ "@alice_293:hs1": {33476
+ "ed25519:ALICEDEVICE293": "JR7kxg9nY45dfIlQg190UBzUwFM13K9bTKSh9k21pISPGzjVnRSA6xXreJK23dKwfFqcxs8+buiEPov4fBuZBg"33477
+ }33478
+ },33479
+ "user_id": "@alice_293:hs1",33480
+ "unsigned": {}33481
+ }33482
+ },33483
+ "@alice_294:hs1": {33484
+ "ALICEDEVICE294": {33485
+ "algorithms": [33486
+ "m.olm.v1.curve25519-aes-sha2",33487
+ "m.megolm.v1.aes-sha2"33488
+ ],33489
+ "device_id": "ALICEDEVICE294",33490
+ "keys": {33491
+ "curve25519:ALICEDEVICE294": "RvAfW9xWwUkbzBJLpPoorMnqGh8/FKzkRVkVLnEg6DQ",33492
+ "ed25519:ALICEDEVICE294": "UfL4Mh3wiNjfNsOTi4hkJhHHApdBGleiQfL8pLXlnL0"33493
+ },33494
+ "signatures": {33495
+ "@alice_294:hs1": {33496
+ "ed25519:ALICEDEVICE294": "zyZmJOp2hcU0Z/LH5SFzq4TbKVnddFYlOrSZ+0ORN8HNF2yMw1B6k5ubQWIu3kk8PCxw8XvNhhYTzXqak98ACA"33497
+ }33498
+ },33499
+ "user_id": "@alice_294:hs1",33500
+ "unsigned": {}33501
+ }33502
+ },33503
+ "@alice_2:hs1": {33504
+ "ALICEDEVICE2": {33505
+ "algorithms": [33506
+ "m.olm.v1.curve25519-aes-sha2",33507
+ "m.megolm.v1.aes-sha2"33508
+ ],33509
+ "device_id": "ALICEDEVICE2",33510
+ "keys": {33511
+ "curve25519:ALICEDEVICE2": "YTYhvfkjtwMa20hOZKp42kUEa20yOa34pthDehJsZE8",33512
+ "ed25519:ALICEDEVICE2": "MzjddPqZPXCzDafNJksN2uEKcwrrDZahKLt2ynWUHQM"33513
+ },33514
+ "signatures": {33515
+ "@alice_2:hs1": {33516
+ "ed25519:ALICEDEVICE2": "Os4NDuYtIQ0f8+Pam0ZA7ZSb38NLfECP8Wc9hZN2sAnhPz7MGoyaAaWyTrGO2YiLXtxQauITZaaPW2Ggi3uPBw"33517
+ }33518
+ },33519
+ "user_id": "@alice_2:hs1",33520
+ "unsigned": {}33521
+ }33522
+ },33523
+ "@alice_310:hs1": {33524
+ "ALICEDEVICE310": {33525
+ "algorithms": [33526
+ "m.olm.v1.curve25519-aes-sha2",33527
+ "m.megolm.v1.aes-sha2"33528
+ ],33529
+ "device_id": "ALICEDEVICE310",33530
+ "keys": {33531
+ "curve25519:ALICEDEVICE310": "rQq4BnJM/zcxAGJxYmAh0CG9K7Tgd9D7YPcOchlPdF0",33532
+ "ed25519:ALICEDEVICE310": "Lh39+JvG0u2MC5bYeJJJ/ebiHn1YxBaes76rghcMC8o"33533
+ },33534
+ "signatures": {33535
+ "@alice_310:hs1": {33536
+ "ed25519:ALICEDEVICE310": "iYtiyn81EAGrcpgcWJqifyz+D3vtFOfscajRTOI6j0PUpZP0JorQKb2rjdiWVuZIBg3CEh9SGraOKeQi1/xMAg"33537
+ }33538
+ },33539
+ "user_id": "@alice_310:hs1",33540
+ "unsigned": {}33541
+ }33542
+ },33543
+ "@alice_320:hs1": {33544
+ "ALICEDEVICE320": {33545
+ "algorithms": [33546
+ "m.olm.v1.curve25519-aes-sha2",33547
+ "m.megolm.v1.aes-sha2"33548
+ ],33549
+ "device_id": "ALICEDEVICE320",33550
+ "keys": {33551
+ "curve25519:ALICEDEVICE320": "iSb2OC0NXNPr59cdc4RG0brzErAqFE80cCDUSwzy6Wk",33552
+ "ed25519:ALICEDEVICE320": "NY9mxRu0wz12PiIWz/ky8NgzPKlK4W9yeupKjE/kKwo"33553
+ },33554
+ "signatures": {33555
+ "@alice_320:hs1": {33556
+ "ed25519:ALICEDEVICE320": "LdmrccfTNKBOXXIxBo2si6hkeCNeZGEkOXdo5uuzHYgn22KlXsSCaz7JpDxyc3kDrRhG9xVEnrU+zxnTfGltCQ"33557
+ }33558
+ },33559
+ "user_id": "@alice_320:hs1",33560
+ "unsigned": {}33561
+ }33562
+ },33563
+ "@alice_323:hs1": {33564
+ "ALICEDEVICE323": {33565
+ "algorithms": [33566
+ "m.olm.v1.curve25519-aes-sha2",33567
+ "m.megolm.v1.aes-sha2"33568
+ ],33569
+ "device_id": "ALICEDEVICE323",33570
+ "keys": {33571
+ "curve25519:ALICEDEVICE323": "iAUBfwb+eVmm64+niZ6D73X72QD2eGO1RR1dsoMipHY",33572
+ "ed25519:ALICEDEVICE323": "zpbHhXyCSvmAv88gIESLujNn5BHQiNHC6kxWkCLY5kQ"33573
+ },33574
+ "signatures": {33575
+ "@alice_323:hs1": {33576
+ "ed25519:ALICEDEVICE323": "kI8O7gP7czjB+OYmOWDwGk22awicYMBvqwRPv0eMi5rafqOxAjfU6QmFIPhmn5KO++aLARff1gI5nKoDvL7jDw"33577
+ }33578
+ },33579
+ "user_id": "@alice_323:hs1",33580
+ "unsigned": {}33581
+ }33582
+ },33583
+ "@alice_330:hs1": {33584
+ "ALICEDEVICE330": {33585
+ "algorithms": [33586
+ "m.olm.v1.curve25519-aes-sha2",33587
+ "m.megolm.v1.aes-sha2"33588
+ ],33589
+ "device_id": "ALICEDEVICE330",33590
+ "keys": {33591
+ "curve25519:ALICEDEVICE330": "xSfpP4gurCjH8PaVS8Vxz1FJGkKuUoSASyr5H20wVWg",33592
+ "ed25519:ALICEDEVICE330": "kfD45wrNKeUi8Yq0A5d4kcknNRV0T6KZt8gfVjNrpfk"33593
+ },33594
+ "signatures": {33595
+ "@alice_330:hs1": {33596
+ "ed25519:ALICEDEVICE330": "gAaIeeb9ecFojti+ULkSdBOSsTZej9ElcJhuD33NpZ7jtB2hXBwOrE9bN8Tu/ElpjokI48qrDTqYu8Y4wbRqDA"33597
+ }33598
+ },33599
+ "user_id": "@alice_330:hs1",33600
+ "unsigned": {}33601
+ }33602
+ },33603
+ "@alice_360:hs1": {33604
+ "ALICEDEVICE360": {33605
+ "algorithms": [33606
+ "m.olm.v1.curve25519-aes-sha2",33607
+ "m.megolm.v1.aes-sha2"33608
+ ],33609
+ "device_id": "ALICEDEVICE360",33610
+ "keys": {33611
+ "curve25519:ALICEDEVICE360": "6fRIXqi/HQ88LLtk/Z+CIi3YtvQdK2WGCXl3sd/J9Es",33612
+ "ed25519:ALICEDEVICE360": "xRU1lXk+FosGamRr+RJlQjWm41+/atKHZDdk3YrV4x0"33613
+ },33614
+ "signatures": {33615
+ "@alice_360:hs1": {33616
+ "ed25519:ALICEDEVICE360": "fsAQEqU+H0qszsmobHLDo8f9prgbF32Xuc+zonv3puxFgn7KNICtkU4fenS9Li+Y2iSrdGf10ZKSCYxsaCSQCw"33617
+ }33618
+ },33619
+ "user_id": "@alice_360:hs1",33620
+ "unsigned": {}33621
+ }33622
+ },33623
+ "@alice_364:hs1": {33624
+ "ALICEDEVICE364": {33625
+ "algorithms": [33626
+ "m.olm.v1.curve25519-aes-sha2",33627
+ "m.megolm.v1.aes-sha2"33628
+ ],33629
+ "device_id": "ALICEDEVICE364",33630
+ "keys": {33631
+ "curve25519:ALICEDEVICE364": "7GD6Ll0w52RK/3NgORk4kl2I/TNW3GWHYI2qhi7j9UI",33632
+ "ed25519:ALICEDEVICE364": "CDFOBAalo1J5wc1GJTkAJzZX9JEMsl+WNS6II86d35s"33633
+ },33634
+ "signatures": {33635
+ "@alice_364:hs1": {33636
+ "ed25519:ALICEDEVICE364": "wuLSkj0QCsWbT7+7VXsuXUuvht6DrsIsYkIQACbBMH10FdOXjQRE6Sb9dO6A9AX77umElCJyio+wCavcn+pJCQ"33637
+ }33638
+ },33639
+ "user_id": "@alice_364:hs1",33640
+ "unsigned": {}33641
+ }33642
+ },33643
+ "@alice_369:hs1": {33644
+ "ALICEDEVICE369": {33645
+ "algorithms": [33646
+ "m.olm.v1.curve25519-aes-sha2",33647
+ "m.megolm.v1.aes-sha2"33648
+ ],33649
+ "device_id": "ALICEDEVICE369",33650
+ "keys": {33651
+ "curve25519:ALICEDEVICE369": "cSMXarY0j55E5HpFWYBE19f+J9Y1hZxrr8d/NHuVuFM",33652
+ "ed25519:ALICEDEVICE369": "ICTKhb7g+Lkkt145jsBe9RZVEBouUGLl+NmJ70iKYnI"33653
+ },33654
+ "signatures": {33655
+ "@alice_369:hs1": {33656
+ "ed25519:ALICEDEVICE369": "VC6hw23nnySplgpOxinA/RAS06ovhhzyZNXFlZRAncKazcrcGIgWDcgrZrTfDuAuKSZUfE9WKAPkmGpJHosNAw"33657
+ }33658
+ },33659
+ "user_id": "@alice_369:hs1",33660
+ "unsigned": {}33661
+ }33662
+ },33663
+ "@alice_38:hs1": {33664
+ "ALICEDEVICE38": {33665
+ "algorithms": [33666
+ "m.olm.v1.curve25519-aes-sha2",33667
+ "m.megolm.v1.aes-sha2"33668
+ ],33669
+ "device_id": "ALICEDEVICE38",33670
+ "keys": {33671
+ "curve25519:ALICEDEVICE38": "ms3DrowgTpdV+GMWBrqtswdpA9bHBPwVZk2S7D9zXUU",33672
+ "ed25519:ALICEDEVICE38": "K0tEtWknhh3iSuauM1qjBHOHZpDqijeIcCcvmDWTTw0"33673
+ },33674
+ "signatures": {33675
+ "@alice_38:hs1": {33676
+ "ed25519:ALICEDEVICE38": "Hralemc6Rw3FpWoDn5PgK1oOVUKRrghzuNPD2NI8t/Vx/UL7OOz9SyVCq8BqM+Nf1mC6Dc81jWAHLSO4lgddCQ"33677
+ }33678
+ },33679
+ "user_id": "@alice_38:hs1",33680
+ "unsigned": {}33681
+ }33682
+ },33683
+ "@alice_399:hs1": {33684
+ "ALICEDEVICE399": {33685
+ "algorithms": [33686
+ "m.olm.v1.curve25519-aes-sha2",33687
+ "m.megolm.v1.aes-sha2"33688
+ ],33689
+ "device_id": "ALICEDEVICE399",33690
+ "keys": {33691
+ "curve25519:ALICEDEVICE399": "Ll3n3d1C+S6brbsBmaQBVyvKcd6eY00BIOZymlqKaA0",33692
+ "ed25519:ALICEDEVICE399": "7jYo5c3OUyxeHB9eZTV+q79UDACDIpFAmnQ7gTA0Jps"33693
+ },33694
+ "signatures": {33695
+ "@alice_399:hs1": {33696
+ "ed25519:ALICEDEVICE399": "YJ/HyNsbzL/wH+vCBBIcwzGQ0LgfHlybXayH1gdiMCKpxhK7mETFQPUeYIjrdUsHfL3DzZpkwwZ/UKjXIUESDQ"33697
+ }33698
+ },33699
+ "user_id": "@alice_399:hs1",33700
+ "unsigned": {}33701
+ }33702
+ },33703
+ "@alice_409:hs1": {33704
+ "ALICEDEVICE409": {33705
+ "algorithms": [33706
+ "m.olm.v1.curve25519-aes-sha2",33707
+ "m.megolm.v1.aes-sha2"33708
+ ],33709
+ "device_id": "ALICEDEVICE409",33710
+ "keys": {33711
+ "curve25519:ALICEDEVICE409": "b9DSD0MyssEJn3zm1BTF56mNNcoQjQvGlDQG0tZc3HY",33712
+ "ed25519:ALICEDEVICE409": "6r+Id7ah2HdSgnvCSxgRbrCHUDxQC/adgcFJy8ul/Ic"33713
+ },33714
+ "signatures": {33715
+ "@alice_409:hs1": {33716
+ "ed25519:ALICEDEVICE409": "ZZu6MO5XxGMdPIxshruP3dTPG9EsGYcGsihQSbaFJM5YsNrpJ/LiEJPZZYVj3JZrREL/V5+0bUCFqXZFZ4vmCw"33717
+ }33718
+ },33719
+ "user_id": "@alice_409:hs1",33720
+ "unsigned": {}33721
+ }33722
+ },33723
+ "@alice_416:hs1": {33724
+ "ALICEDEVICE416": {33725
+ "algorithms": [33726
+ "m.olm.v1.curve25519-aes-sha2",33727
+ "m.megolm.v1.aes-sha2"33728
+ ],33729
+ "device_id": "ALICEDEVICE416",33730
+ "keys": {33731
+ "curve25519:ALICEDEVICE416": "hukJNboBO3hG33ImGbZ8aRU9wo+ojq/Cl0yU/YzuRQM",33732
+ "ed25519:ALICEDEVICE416": "fSFGYjA56TD3cWRFMRMpg9tR/+0xx3C0yGoGkrJZlB0"33733
+ },33734
+ "signatures": {33735
+ "@alice_416:hs1": {33736
+ "ed25519:ALICEDEVICE416": "uQfFJS2Wmzw4LSoIXHovcOHJSsDa99bfkov62c0qkDkp+OHHndw+YvFBrZQZHvqvT6O+XAeo/sLQGgbQN/1ABg"33737
+ }33738
+ },33739
+ "user_id": "@alice_416:hs1",33740
+ "unsigned": {}33741
+ }33742
+ },33743
+ "@alice_419:hs1": {33744
+ "ALICEDEVICE419": {33745
+ "algorithms": [33746
+ "m.olm.v1.curve25519-aes-sha2",33747
+ "m.megolm.v1.aes-sha2"33748
+ ],33749
+ "device_id": "ALICEDEVICE419",33750
+ "keys": {33751
+ "curve25519:ALICEDEVICE419": "oeTUtX0/FqAmUnZbu9jCNpx0Oxe61Hiabtc4UKHyWGg",33752
+ "ed25519:ALICEDEVICE419": "ulYKb+8eQ+04HH2ONjCIPlnAtGMXE/d9ALbZoXL2K9Y"33753
+ },33754
+ "signatures": {33755
+ "@alice_419:hs1": {33756
+ "ed25519:ALICEDEVICE419": "qeQdi9fGipYg9YkdnUFsXswdfG2swiZjRZxA++yjLfPXkmrylbSdiAPeZ0cQHj1b1T33aNV9albj4fAYkWnvBg"33757
+ }33758
+ },33759
+ "user_id": "@alice_419:hs1",33760
+ "unsigned": {}33761
+ }33762
+ },33763
+ "@alice_425:hs1": {33764
+ "ALICEDEVICE425": {33765
+ "algorithms": [33766
+ "m.olm.v1.curve25519-aes-sha2",33767
+ "m.megolm.v1.aes-sha2"33768
+ ],33769
+ "device_id": "ALICEDEVICE425",33770
+ "keys": {33771
+ "curve25519:ALICEDEVICE425": "ispD6ujd0/Wdr+/jcoBv18wdgGYRniR6x9sdDh/7LFI",33772
+ "ed25519:ALICEDEVICE425": "CaxWURXWZOt5SfllHTPbN27uoyshx0fH/VLUp7PSo3Y"33773
+ },33774
+ "signatures": {33775
+ "@alice_425:hs1": {33776
+ "ed25519:ALICEDEVICE425": "u3O2nUeu7kRyj4UdP5Yh2q+WR87aD8c4d2tE3E9L9nSlns47t2vbJTn52izlE6FoW3tfhYNHJxTNO4gMsgmODw"33777
+ }33778
+ },33779
+ "user_id": "@alice_425:hs1",33780
+ "unsigned": {}33781
+ }33782
+ },33783
+ "@alice_428:hs1": {33784
+ "ALICEDEVICE428": {33785
+ "algorithms": [33786
+ "m.olm.v1.curve25519-aes-sha2",33787
+ "m.megolm.v1.aes-sha2"33788
+ ],33789
+ "device_id": "ALICEDEVICE428",33790
+ "keys": {33791
+ "curve25519:ALICEDEVICE428": "+9b56EDHB2MY6L4rkgAVhoCQi1NhiPfyWEEXjG+xAXU",33792
+ "ed25519:ALICEDEVICE428": "r7BE2NnowglgbIXZyqptPELNyOEboa4hFmvn1d4s4KA"33793
+ },33794
+ "signatures": {33795
+ "@alice_428:hs1": {33796
+ "ed25519:ALICEDEVICE428": "xW3LZy3CDXZ+gg26IW6Lcs+W7TgdcuhJtTMwTnkhA5K3QQxBvknYchQ/BD9dhC/o+c9gH49gv1wok+3AbtZsCw"33797
+ }33798
+ },33799
+ "user_id": "@alice_428:hs1",33800
+ "unsigned": {}33801
+ }33802
+ },33803
+ "@alice_429:hs1": {33804
+ "ALICEDEVICE429": {33805
+ "algorithms": [33806
+ "m.olm.v1.curve25519-aes-sha2",33807
+ "m.megolm.v1.aes-sha2"33808
+ ],33809
+ "device_id": "ALICEDEVICE429",33810
+ "keys": {33811
+ "curve25519:ALICEDEVICE429": "rnOgHDcvRTOKVVEfhKpPd1d446p1co0fYjS5J8hyCjc",33812
+ "ed25519:ALICEDEVICE429": "U8TsWmgx0ePyYXtv0g/a2tw/fzjcMNWmKf1tJZ4JyN4"33813
+ },33814
+ "signatures": {33815
+ "@alice_429:hs1": {33816
+ "ed25519:ALICEDEVICE429": "pnjNSIwh/D2dLB0g2BXOBbo4JF4J7PjwHZ+BX9yk+hYBjclx/4HBSYqeg8ktEB4CqjJp/P9HLUkm+gcTERqpAw"33817
+ }33818
+ },33819
+ "user_id": "@alice_429:hs1",33820
+ "unsigned": {}33821
+ }33822
+ },33823
+ "@alice_431:hs1": {33824
+ "ALICEDEVICE431": {33825
+ "algorithms": [33826
+ "m.olm.v1.curve25519-aes-sha2",33827
+ "m.megolm.v1.aes-sha2"33828
+ ],33829
+ "device_id": "ALICEDEVICE431",33830
+ "keys": {33831
+ "curve25519:ALICEDEVICE431": "7xJCZGccnoBmukjrTj3GfcpgDLcQ6M7LfHagSG3ToCc",33832
+ "ed25519:ALICEDEVICE431": "c41QK4Vge5ZsB6lTT4af2FKt4B2VQhGhJoBVUukDHRA"33833
+ },33834
+ "signatures": {33835
+ "@alice_431:hs1": {33836
+ "ed25519:ALICEDEVICE431": "nJGth/vwIO3hJXGp7+UgdPLy/3TX38PHD8TmRciJBjmFbaQWexx3sUdD8DLJkJ3uBSjb5FtSvMGV0VuSli5KAw"33837
+ }33838
+ },33839
+ "user_id": "@alice_431:hs1",33840
+ "unsigned": {}33841
+ }33842
+ },33843
+ "@alice_432:hs1": {33844
+ "ALICEDEVICE432": {33845
+ "algorithms": [33846
+ "m.olm.v1.curve25519-aes-sha2",33847
+ "m.megolm.v1.aes-sha2"33848
+ ],33849
+ "device_id": "ALICEDEVICE432",33850
+ "keys": {33851
+ "curve25519:ALICEDEVICE432": "ebxbsJyNO5TImQkUfIbpQcvL1w4KElQaPbUH4IeJgTs",33852
+ "ed25519:ALICEDEVICE432": "2LshOp1WMmfJLNKJ9YxKLRTsPtw8xatL5Ct9/Y9DmZM"33853
+ },33854
+ "signatures": {33855
+ "@alice_432:hs1": {33856
+ "ed25519:ALICEDEVICE432": "5lRoSDlx09dOrXlJLa05+UvjO+GN9CEa8jz8+NjYZr3yaH7o6KlydkgkzfewiV1i6Bqhg8iQTi8YmZq54M2zDw"33857
+ }33858
+ },33859
+ "user_id": "@alice_432:hs1",33860
+ "unsigned": {}33861
+ }33862
+ },33863
+ "@alice_457:hs1": {33864
+ "ALICEDEVICE457": {33865
+ "algorithms": [33866
+ "m.olm.v1.curve25519-aes-sha2",33867
+ "m.megolm.v1.aes-sha2"33868
+ ],33869
+ "device_id": "ALICEDEVICE457",33870
+ "keys": {33871
+ "curve25519:ALICEDEVICE457": "rhdhPXxuxu2H4DlQawd2fMujXoQlNd28HTc16UwpHVc",33872
+ "ed25519:ALICEDEVICE457": "SxQf9Mu0QI+jeBQeBhNgbxLgTS4gwMPJLZnuftgbgEY"33873
+ },33874
+ "signatures": {33875
+ "@alice_457:hs1": {33876
+ "ed25519:ALICEDEVICE457": "bzjoNnDvGkzWim8FB3k3GKpS6yRbseAmrW6lqEToH/UfZTOJivUfyErwfnsde5HltCK4eQh5olSp3G10Xa7FBg"33877
+ }33878
+ },33879
+ "user_id": "@alice_457:hs1",33880
+ "unsigned": {}33881
+ }33882
+ },33883
+ "@alice_469:hs1": {33884
+ "ALICEDEVICE469": {33885
+ "algorithms": [33886
+ "m.olm.v1.curve25519-aes-sha2",33887
+ "m.megolm.v1.aes-sha2"33888
+ ],33889
+ "device_id": "ALICEDEVICE469",33890
+ "keys": {33891
+ "curve25519:ALICEDEVICE469": "zUjDDUwV8ECKzk8QS4WwZeD82qtj1/afIo2HTGvYzwU",33892
+ "ed25519:ALICEDEVICE469": "49uYmGH1TQYtVMjRA7x9f/mFZzLc4d6ujLzQtwGyxsY"33893
+ },33894
+ "signatures": {33895
+ "@alice_469:hs1": {33896
+ "ed25519:ALICEDEVICE469": "I0u6XTKIKcmLOBwvTxzCfJbVUtLyC1aepQnep8LufNKY37Br93BCmO2D4TVFCdDCW5o44RgVt7kkky2SRgqnDA"33897
+ }33898
+ },33899
+ "user_id": "@alice_469:hs1",33900
+ "unsigned": {}33901
+ }33902
+ },33903
+ "@alice_475:hs1": {33904
+ "ALICEDEVICE475": {33905
+ "algorithms": [33906
+ "m.olm.v1.curve25519-aes-sha2",33907
+ "m.megolm.v1.aes-sha2"33908
+ ],33909
+ "device_id": "ALICEDEVICE475",33910
+ "keys": {33911
+ "curve25519:ALICEDEVICE475": "bgB2u1YJ74/YZrrxByFxHkHUdWH4hFS2QZnrgQzSbFk",33912
+ "ed25519:ALICEDEVICE475": "FMJttvr4LHoY79ndwruvKUPCcN2A/AU4BY2G37I7oas"33913
+ },33914
+ "signatures": {33915
+ "@alice_475:hs1": {33916
+ "ed25519:ALICEDEVICE475": "HDNa7KF609WRRK9zG/vgWXN0JbxdaYQMadSo7V+RHnjrSoC9e2A00k0dk6249OmhwstIUBSDCts//Fy/WP/KDw"33917
+ }33918
+ },33919
+ "user_id": "@alice_475:hs1",33920
+ "unsigned": {}33921
+ }33922
+ },33923
+ "@alice_47:hs1": {33924
+ "ALICEDEVICE47": {33925
+ "algorithms": [33926
+ "m.olm.v1.curve25519-aes-sha2",33927
+ "m.megolm.v1.aes-sha2"33928
+ ],33929
+ "device_id": "ALICEDEVICE47",33930
+ "keys": {33931
+ "curve25519:ALICEDEVICE47": "hsiDW3IM9/fw/5K2RuS1UqJlZtPsORb09LFEyCShYUc",33932
+ "ed25519:ALICEDEVICE47": "uQEl0Hp+xBUJNUCVtmo8qWNzHzLtBUxbllfPev8OLZY"33933
+ },33934
+ "signatures": {33935
+ "@alice_47:hs1": {33936
+ "ed25519:ALICEDEVICE47": "YkLxgmAlWYNUrZI7mf2bPXm8PSKE9m4C7HhaGAuSOADjoAj54UrUaBWn0xEOwHqe3G3cTQAPdwiHSfjf6daEDQ"33937
+ }33938
+ },33939
+ "user_id": "@alice_47:hs1",33940
+ "unsigned": {}33941
+ }33942
+ },33943
+ "@alice_481:hs1": {33944
+ "ALICEDEVICE481": {33945
+ "algorithms": [33946
+ "m.olm.v1.curve25519-aes-sha2",33947
+ "m.megolm.v1.aes-sha2"33948
+ ],33949
+ "device_id": "ALICEDEVICE481",33950
+ "keys": {33951
+ "curve25519:ALICEDEVICE481": "UKHQONX6LLWIbCBWlAsTtOuqT+zTyFeaF3wRsqWe/TM",33952
+ "ed25519:ALICEDEVICE481": "j04BeEZCYFZHa0TPXgod1OoSuajYl582/9YhVJwtA88"33953
+ },33954
+ "signatures": {33955
+ "@alice_481:hs1": {33956
+ "ed25519:ALICEDEVICE481": "myp6eIuGBydcf8HbsCw5hSLfFVqEWFsoL/sxja9sMtzUBFIiy/5ufFn50e4pDc1UBz9Zm1lvCd0MYBSLboqnDw"33957
+ }33958
+ },33959
+ "user_id": "@alice_481:hs1",33960
+ "unsigned": {}33961
+ }33962
+ },33963
+ "@alice_499:hs1": {33964
+ "ALICEDEVICE499": {33965
+ "algorithms": [33966
+ "m.olm.v1.curve25519-aes-sha2",33967
+ "m.megolm.v1.aes-sha2"33968
+ ],33969
+ "device_id": "ALICEDEVICE499",33970
+ "keys": {33971
+ "curve25519:ALICEDEVICE499": "MxmNFnhw2ex1xcJNyQMXgKeEFzWG4+dhn/xsg1fsUig",33972
+ "ed25519:ALICEDEVICE499": "zOsEDTRLy921rJ8OuxeJztFZaFBmCvpQaEa6XoRBKMk"33973
+ },33974
+ "signatures": {33975
+ "@alice_499:hs1": {33976
+ "ed25519:ALICEDEVICE499": "7UOK450opFJXnOwk4vCfSZpl+/KBMSjefYDZgpPf5kRfEsimkYkE7gHYwe6aBunRHeNdp0hXFRyA4fQzRePHDg"33977
+ }33978
+ },33979
+ "user_id": "@alice_499:hs1",33980
+ "unsigned": {}33981
+ }33982
+ },33983
+ "@alice_528:hs1": {33984
+ "ALICEDEVICE528": {33985
+ "algorithms": [33986
+ "m.olm.v1.curve25519-aes-sha2",33987
+ "m.megolm.v1.aes-sha2"33988
+ ],33989
+ "device_id": "ALICEDEVICE528",33990
+ "keys": {33991
+ "curve25519:ALICEDEVICE528": "6rFDv2IXQ62kAffBAlVZMGumvsuqKbbGQ8zMfAvX6mQ",33992
+ "ed25519:ALICEDEVICE528": "6EQvY4dBvx8/V3RAqIbg7QteLkrWYO+Vdvf8fq/4LVo"33993
+ },33994
+ "signatures": {33995
+ "@alice_528:hs1": {33996
+ "ed25519:ALICEDEVICE528": "VGft1DHyCTrTwisfdRQdrRG6jC09mvlL8TMH2z7znE/Ys1DTWNJRw2hTzPBczpi24w9cvD1i9oZSD5u0o3rABA"33997
+ }33998
+ },33999
+ "user_id": "@alice_528:hs1",34000
+ "unsigned": {}34001
+ }34002
+ },34003
+ "@alice_531:hs1": {34004
+ "ALICEDEVICE531": {34005
+ "algorithms": [34006
+ "m.olm.v1.curve25519-aes-sha2",34007
+ "m.megolm.v1.aes-sha2"34008
+ ],34009
+ "device_id": "ALICEDEVICE531",34010
+ "keys": {34011
+ "curve25519:ALICEDEVICE531": "iyRxHbLL84zu0tEhTfjA6qzgyCXIsxsEnylgy9SJZmA",34012
+ "ed25519:ALICEDEVICE531": "ZOmi9hY4YGOpeE8otvWgB/OS5wjynBotAc5twy31cZo"34013
+ },34014
+ "signatures": {34015
+ "@alice_531:hs1": {34016
+ "ed25519:ALICEDEVICE531": "blmVX9f25HYg6Us5Suw6Qq/JMwwmSDPBGCqrw5glMdFIl2NII9ktOpyDWyVwQGuhPzbQS9KoXuBx49afOcDEAw"34017
+ }34018
+ },34019
+ "user_id": "@alice_531:hs1",34020
+ "unsigned": {}34021
+ }34022
+ },34023
+ "@alice_542:hs1": {34024
+ "ALICEDEVICE542": {34025
+ "algorithms": [34026
+ "m.olm.v1.curve25519-aes-sha2",34027
+ "m.megolm.v1.aes-sha2"34028
+ ],34029
+ "device_id": "ALICEDEVICE542",34030
+ "keys": {34031
+ "curve25519:ALICEDEVICE542": "1VrVAp0uvPL1Kd1zEG38WPCMzKtzTwn9czYYZh76AgI",34032
+ "ed25519:ALICEDEVICE542": "9JBVV6z7kUmSg6ENNVNSVDXWHJpFeFaAgJtaLH8dG38"34033
+ },34034
+ "signatures": {34035
+ "@alice_542:hs1": {34036
+ "ed25519:ALICEDEVICE542": "et5nxm8EIg4KE9CgBqs7XHxxQldp3rDegdkxN+riU3v5ZC0cgTpDjrZ0f9dGQKWSsWxAoZ1bFp4jrOyt3uXUBw"34037
+ }34038
+ },34039
+ "user_id": "@alice_542:hs1",34040
+ "unsigned": {}34041
+ }34042
+ },34043
+ "@alice_570:hs1": {34044
+ "ALICEDEVICE570": {34045
+ "algorithms": [34046
+ "m.olm.v1.curve25519-aes-sha2",34047
+ "m.megolm.v1.aes-sha2"34048
+ ],34049
+ "device_id": "ALICEDEVICE570",34050
+ "keys": {34051
+ "curve25519:ALICEDEVICE570": "nDcL8FBOMuHKYKdw7psMIMIrS2sQij8cFFZ1VOYXLyg",34052
+ "ed25519:ALICEDEVICE570": "hu0VmRP0e+PnrY4WSHI3nxrHe4EIMyjO55SDoClbglU"34053
+ },34054
+ "signatures": {34055
+ "@alice_570:hs1": {34056
+ "ed25519:ALICEDEVICE570": "FrQThT6w6GdToWIif5fLrUwDsaAI/19rhUmVtGsF860Lc1+NQFwnedA6Vt6DagLiEwzFh4lUrwT/UcS5jHdICA"34057
+ }34058
+ },34059
+ "user_id": "@alice_570:hs1",34060
+ "unsigned": {}34061
+ }34062
+ },34063
+ "@alice_57:hs1": {34064
+ "ALICEDEVICE57": {34065
+ "algorithms": [34066
+ "m.olm.v1.curve25519-aes-sha2",34067
+ "m.megolm.v1.aes-sha2"34068
+ ],34069
+ "device_id": "ALICEDEVICE57",34070
+ "keys": {34071
+ "curve25519:ALICEDEVICE57": "5hgF1o/9IAND+9JnaUWD5apTwbPuOC/nIbiNDTLZz1U",34072
+ "ed25519:ALICEDEVICE57": "NUe0MBOaj601yeSHDavyksm31npM712OTHUlIEI25Jw"34073
+ },34074
+ "signatures": {34075
+ "@alice_57:hs1": {34076
+ "ed25519:ALICEDEVICE57": "bR7aAp3uAnj1BDt8zaqgSbnb6tvB9q3kEGZTIYnNJOgqwLsv+pf0kXXX4VtmoQONdKPLWcB5r8eHmpQOx5SFBA"34077
+ }34078
+ },34079
+ "user_id": "@alice_57:hs1",34080
+ "unsigned": {}34081
+ }34082
+ },34083
+ "@alice_587:hs1": {34084
+ "ALICEDEVICE587": {34085
+ "algorithms": [34086
+ "m.olm.v1.curve25519-aes-sha2",34087
+ "m.megolm.v1.aes-sha2"34088
+ ],34089
+ "device_id": "ALICEDEVICE587",34090
+ "keys": {34091
+ "curve25519:ALICEDEVICE587": "NcZr8/TRYYEMA8Eb5erxe4lhTyV/dYzu214/Mj0K2Q4",34092
+ "ed25519:ALICEDEVICE587": "pRms2GvoywUCV0fyexYa6RY1hsBdX96sCdmRiGRcQpc"34093
+ },34094
+ "signatures": {34095
+ "@alice_587:hs1": {34096
+ "ed25519:ALICEDEVICE587": "TVMFMNXF57Bn/xaI7JdDYykfuacMYYokYXu821b3sEFooWGIhH3NeA1DKpM0d0P1elkptzhWj2QGJkS+M4aPCA"34097
+ }34098
+ },34099
+ "user_id": "@alice_587:hs1",34100
+ "unsigned": {}34101
+ }34102
+ },34103
+ "@alice_594:hs1": {34104
+ "ALICEDEVICE594": {34105
+ "algorithms": [34106
+ "m.olm.v1.curve25519-aes-sha2",34107
+ "m.megolm.v1.aes-sha2"34108
+ ],34109
+ "device_id": "ALICEDEVICE594",34110
+ "keys": {34111
+ "curve25519:ALICEDEVICE594": "zlIJLBO9Ar8fmK74GSSD/zM0ruPYDJpUSJ/mASZ6nGU",34112
+ "ed25519:ALICEDEVICE594": "SGdjP3QYgJFl+Xejqw48o1vJb/IJOmtTnRanD8V0wtw"34113
+ },34114
+ "signatures": {34115
+ "@alice_594:hs1": {34116
+ "ed25519:ALICEDEVICE594": "kyjiTk1NOuTgidm4bRKitGlCRcaD+5D/6uAWM7nL6WhQuCthASiPwUe7z2SHxmBVSNnAhoT7ZfmzPv3OFJajCA"34117
+ }34118
+ },34119
+ "user_id": "@alice_594:hs1",34120
+ "unsigned": {}34121
+ }34122
+ },34123
+ "@alice_59:hs1": {34124
+ "ALICEDEVICE59": {34125
+ "algorithms": [34126
+ "m.olm.v1.curve25519-aes-sha2",34127
+ "m.megolm.v1.aes-sha2"34128
+ ],34129
+ "device_id": "ALICEDEVICE59",34130
+ "keys": {34131
+ "curve25519:ALICEDEVICE59": "uXaQIYRMCwDSL8C23scP9LApzlKQsqWGbl2Y2gxdF3Q",34132
+ "ed25519:ALICEDEVICE59": "QneEinibHDVFijS+/ktctZoT6j1LFNYL3rvMPhQsByY"34133
+ },34134
+ "signatures": {34135
+ "@alice_59:hs1": {34136
+ "ed25519:ALICEDEVICE59": "BWj32Dw0Yl6giKbBceoxw1FTjHIwBRIHAOMsz3dQZYwRA4vDmttRSDShX56oAtmFwNy3gZFYG8bmjSBLeAPgAA"34137
+ }34138
+ },34139
+ "user_id": "@alice_59:hs1",34140
+ "unsigned": {}34141
+ }34142
+ },34143
+ "@alice_600:hs1": {34144
+ "ALICEDEVICE600": {34145
+ "algorithms": [34146
+ "m.olm.v1.curve25519-aes-sha2",34147
+ "m.megolm.v1.aes-sha2"34148
+ ],34149
+ "device_id": "ALICEDEVICE600",34150
+ "keys": {34151
+ "curve25519:ALICEDEVICE600": "MwBUBzBCTPziMTznv4j0BT0TLNWKdSQqc8jmfLll7Qw",34152
+ "ed25519:ALICEDEVICE600": "C/oJFqTYQJhfMz+A2OZoeWprTm5npp0yC62jYGdJODY"34153
+ },34154
+ "signatures": {34155
+ "@alice_600:hs1": {34156
+ "ed25519:ALICEDEVICE600": "24rSaRzSgv8i1c/AO0UugKweGWBi+GtrRhQP78GyIQ6/GeuCzrtVcGheet3H2ZEifUjgSTc56WepqnoNRodpCQ"34157
+ }34158
+ },34159
+ "user_id": "@alice_600:hs1",34160
+ "unsigned": {}34161
+ }34162
+ },34163
+ "@alice_603:hs1": {34164
+ "ALICEDEVICE603": {34165
+ "algorithms": [34166
+ "m.olm.v1.curve25519-aes-sha2",34167
+ "m.megolm.v1.aes-sha2"34168
+ ],34169
+ "device_id": "ALICEDEVICE603",34170
+ "keys": {34171
+ "curve25519:ALICEDEVICE603": "OtbmMThl4yX2nTH2PPObvuaOxysmLhee9RH5CTR2xl4",34172
+ "ed25519:ALICEDEVICE603": "61GfINB8mE5hhKbwus/VnV2W4pAxtzlNcgZF1QpSEC0"34173
+ },34174
+ "signatures": {34175
+ "@alice_603:hs1": {34176
+ "ed25519:ALICEDEVICE603": "Lo7zLE3RIizYh5DNJVQ0+iQeIlFMdVZQI2WCOq5E76Un2hQ/Hpg2k3BNgyBf4iLp7+Upbc1GfxovCU/Mn5PzCg"34177
+ }34178
+ },34179
+ "user_id": "@alice_603:hs1",34180
+ "unsigned": {}34181
+ }34182
+ },34183
+ "@alice_610:hs1": {34184
+ "ALICEDEVICE610": {34185
+ "algorithms": [34186
+ "m.olm.v1.curve25519-aes-sha2",34187
+ "m.megolm.v1.aes-sha2"34188
+ ],34189
+ "device_id": "ALICEDEVICE610",34190
+ "keys": {34191
+ "curve25519:ALICEDEVICE610": "JKPzYyA1zrNYl6gVTg3kZ4RwzYGpCjSu5PQLVYSpyBk",34192
+ "ed25519:ALICEDEVICE610": "ODXURjRPkKtlD59p85MSu7kavosusKsAQOVgh/3qvc8"34193
+ },34194
+ "signatures": {34195
+ "@alice_610:hs1": {34196
+ "ed25519:ALICEDEVICE610": "XqaKm8XH6vq8LWPcno3yPfOr+zpK9MVaDQF9dw5qWvL2ZTaETXse4yNxg3ToCxivpEuHv5x1cy3ZT1PQoj5TAw"34197
+ }34198
+ },34199
+ "user_id": "@alice_610:hs1",34200
+ "unsigned": {}34201
+ }34202
+ },34203
+ "@alice_61:hs1": {34204
+ "ALICEDEVICE61": {34205
+ "algorithms": [34206
+ "m.olm.v1.curve25519-aes-sha2",34207
+ "m.megolm.v1.aes-sha2"34208
+ ],34209
+ "device_id": "ALICEDEVICE61",34210
+ "keys": {34211
+ "curve25519:ALICEDEVICE61": "7AEJC+SvwlYHyQpwJbl3ZTRt4NcdJpSexAZR8DC/bXI",34212
+ "ed25519:ALICEDEVICE61": "MdMht+H8CjmryfCopLsqnvyX0rXqJgYyR3Qg4k2sVGQ"34213
+ },34214
+ "signatures": {34215
+ "@alice_61:hs1": {34216
+ "ed25519:ALICEDEVICE61": "CsDqGkUYpYYjy0yGTueVjVFbDKfhcNGXoX5LKUz0N7NPD4v+osWrVoIovD+Gyw9doJvoHvEoawrAmdA+2GHkAQ"34217
+ }34218
+ },34219
+ "user_id": "@alice_61:hs1",34220
+ "unsigned": {}34221
+ }34222
+ },34223
+ "@alice_629:hs1": {34224
+ "ALICEDEVICE629": {34225
+ "algorithms": [34226
+ "m.olm.v1.curve25519-aes-sha2",34227
+ "m.megolm.v1.aes-sha2"34228
+ ],34229
+ "device_id": "ALICEDEVICE629",34230
+ "keys": {34231
+ "curve25519:ALICEDEVICE629": "VaVwZfXT2freaQQOO/+8jw/nC/aln7MykMeKJCNZflM",34232
+ "ed25519:ALICEDEVICE629": "wlg7RZXHUl4MAK9kCMSmBN2pngpKEyT5T2quLQjCdzU"34233
+ },34234
+ "signatures": {34235
+ "@alice_629:hs1": {34236
+ "ed25519:ALICEDEVICE629": "dAsmulMB4XGcHTpvNM6J9N0puWxlGw5fERB3WLYpaiBq9e5bwEB149xd5Isk36V59hqOSp2IWn5ti9PJ8lFeDg"34237
+ }34238
+ },34239
+ "user_id": "@alice_629:hs1",34240
+ "unsigned": {}34241
+ }34242
+ },34243
+ "@alice_62:hs1": {34244
+ "ALICEDEVICE62": {34245
+ "algorithms": [34246
+ "m.olm.v1.curve25519-aes-sha2",34247
+ "m.megolm.v1.aes-sha2"34248
+ ],34249
+ "device_id": "ALICEDEVICE62",34250
+ "keys": {34251
+ "curve25519:ALICEDEVICE62": "iEzrQCh7ffL6dUfUGrfH1vNaWE/6Tn7zOTqq0HBJIA0",34252
+ "ed25519:ALICEDEVICE62": "48pClSaCqmlMax7SPpEICvTfehQeSWID4SkvXuY9Ggo"34253
+ },34254
+ "signatures": {34255
+ "@alice_62:hs1": {34256
+ "ed25519:ALICEDEVICE62": "lsVX8MzfOU7g27L+a81nw8e4zlimJ7iCqTN2U1mRhQUiIyvGmLbpaXsc5UKkWQSkSn5FioCz270Lti34dsQXBw"34257
+ }34258
+ },34259
+ "user_id": "@alice_62:hs1",34260
+ "unsigned": {}34261
+ }34262
+ },34263
+ "@alice_635:hs1": {34264
+ "ALICEDEVICE635": {34265
+ "algorithms": [34266
+ "m.olm.v1.curve25519-aes-sha2",34267
+ "m.megolm.v1.aes-sha2"34268
+ ],34269
+ "device_id": "ALICEDEVICE635",34270
+ "keys": {34271
+ "curve25519:ALICEDEVICE635": "vTBR7urL3JV+V9RiO56abhJJTCSYcuUyaj9jYdiyJ3Q",34272
+ "ed25519:ALICEDEVICE635": "5gu0Chlb4JQxRuk7DjnAxCRUsRYf0eLy/qnSdc3pwgw"34273
+ },34274
+ "signatures": {34275
+ "@alice_635:hs1": {34276
+ "ed25519:ALICEDEVICE635": "ie1AOTCCdxe0SzHY2XgsbnhuFtfVxSvbSz5EDzYIzRZbHYsY2h27B+s9Vkouo+DV08ZKguqjBWNDF88OCcDIBg"34277
+ }34278
+ },34279
+ "user_id": "@alice_635:hs1",34280
+ "unsigned": {}34281
+ }34282
+ },34283
+ "@alice_640:hs1": {34284
+ "ALICEDEVICE640": {34285
+ "algorithms": [34286
+ "m.olm.v1.curve25519-aes-sha2",34287
+ "m.megolm.v1.aes-sha2"34288
+ ],34289
+ "device_id": "ALICEDEVICE640",34290
+ "keys": {34291
+ "curve25519:ALICEDEVICE640": "ZWOciWkG1ICRWvbR2cnEAB4meX7IafJnKQq0VjV5Mmc",34292
+ "ed25519:ALICEDEVICE640": "F1m29Bv9L14QIbzsc50yrhwY6E7i53nfbAcHawR140M"34293
+ },34294
+ "signatures": {34295
+ "@alice_640:hs1": {34296
+ "ed25519:ALICEDEVICE640": "TfwVpHiA1uV6zcjAT6K7hgtc7Ors1cH/f3O7kNJNfsUrl8A1iZmILw9wE0jnEsg5yIkPTRcayRfOGt+eOTNkDw"34297
+ }34298
+ },34299
+ "user_id": "@alice_640:hs1",34300
+ "unsigned": {}34301
+ }34302
+ },34303
+ "@alice_670:hs1": {34304
+ "ALICEDEVICE670": {34305
+ "algorithms": [34306
+ "m.olm.v1.curve25519-aes-sha2",34307
+ "m.megolm.v1.aes-sha2"34308
+ ],34309
+ "device_id": "ALICEDEVICE670",34310
+ "keys": {34311
+ "curve25519:ALICEDEVICE670": "6TEeAdyEzVLhdgxtzABVBFtpiYdU8is9xh9vMJneshE",34312
+ "ed25519:ALICEDEVICE670": "VoG2GelKClllRbCspU2Uw0OMI3WJupRJeohcBZRp7Zw"34313
+ },34314
+ "signatures": {34315
+ "@alice_670:hs1": {34316
+ "ed25519:ALICEDEVICE670": "H47rI9Wm3awpgB9arQzrLb3nIAg5OxNIQVAn0oxn0LKzzowWSLh/EDMsCsWYk2kh9Fw4X5TZH6OFurqbeGYgAg"34317
+ }34318
+ },34319
+ "user_id": "@alice_670:hs1",34320
+ "unsigned": {}34321
+ }34322
+ },34323
+ "@alice_683:hs1": {34324
+ "ALICEDEVICE683": {34325
+ "algorithms": [34326
+ "m.olm.v1.curve25519-aes-sha2",34327
+ "m.megolm.v1.aes-sha2"34328
+ ],34329
+ "device_id": "ALICEDEVICE683",34330
+ "keys": {34331
+ "curve25519:ALICEDEVICE683": "v9TyOu2oCTth9PgzIbCR/6z9GtrWcYD1Ctr2e+nic3E",34332
+ "ed25519:ALICEDEVICE683": "F+Ld3YUWGewMDUjYrU5Dygke3YLeq3MX5Z+nvRuulQ0"34333
+ },34334
+ "signatures": {34335
+ "@alice_683:hs1": {34336
+ "ed25519:ALICEDEVICE683": "tQjrzmCK6kNmkulwfg4HKO1h49oLp5zoen5kdkZItB46d93w9jHxrBDqbnmXaY0RGT4C/xZQQHnLa5RZZmh5DA"34337
+ }34338
+ },34339
+ "user_id": "@alice_683:hs1",34340
+ "unsigned": {}34341
+ }34342
+ },34343
+ "@alice_684:hs1": {34344
+ "ALICEDEVICE684": {34345
+ "algorithms": [34346
+ "m.olm.v1.curve25519-aes-sha2",34347
+ "m.megolm.v1.aes-sha2"34348
+ ],34349
+ "device_id": "ALICEDEVICE684",34350
+ "keys": {34351
+ "curve25519:ALICEDEVICE684": "s34bHhiatk7mNIeBxt22rmKlsr8HbXKPIscXeDSrG0Y",34352
+ "ed25519:ALICEDEVICE684": "8fO+xUGpwQXWM5lNMfZ8YmoMViIBPDyCX0SFexeloDU"34353
+ },34354
+ "signatures": {34355
+ "@alice_684:hs1": {34356
+ "ed25519:ALICEDEVICE684": "3L0XKaNkKSmLx1hlbFgYIREdKl3vtCPiMVvJppDyEhWvQh8eamt4eFb/MSPiPvDVbry64hhb2xRzEmQm6juCCA"34357
+ }34358
+ },34359
+ "user_id": "@alice_684:hs1",34360
+ "unsigned": {}34361
+ }34362
+ },34363
+ "@alice_693:hs1": {34364
+ "ALICEDEVICE693": {34365
+ "algorithms": [34366
+ "m.olm.v1.curve25519-aes-sha2",34367
+ "m.megolm.v1.aes-sha2"34368
+ ],34369
+ "device_id": "ALICEDEVICE693",34370
+ "keys": {34371
+ "curve25519:ALICEDEVICE693": "sMoFVDllrwHEEiJy4GBEuWXYP8NKKrrj9jMmDn6++mE",34372
+ "ed25519:ALICEDEVICE693": "T4gjcfj6lvBIhTy2QndiMP1W/L4wwN5mJcgnge3LKdg"34373
+ },34374
+ "signatures": {34375
+ "@alice_693:hs1": {34376
+ "ed25519:ALICEDEVICE693": "74ITLeXSjRjk2AM6Dz8MRaOZnGAhtKYtJ6Pd6IJbbntdHKXiTCjgwJRiAKpnpaSQWeAiCUQx08TzPdQJJpbWDw"34377
+ }34378
+ },34379
+ "user_id": "@alice_693:hs1",34380
+ "unsigned": {}34381
+ }34382
+ },34383
+ "@alice_695:hs1": {34384
+ "ALICEDEVICE695": {34385
+ "algorithms": [34386
+ "m.olm.v1.curve25519-aes-sha2",34387
+ "m.megolm.v1.aes-sha2"34388
+ ],34389
+ "device_id": "ALICEDEVICE695",34390
+ "keys": {34391
+ "curve25519:ALICEDEVICE695": "K6YKZTvOnvDZKh/pSjXgnUOyC9xsWU9b+V6QrV2pEXQ",34392
+ "ed25519:ALICEDEVICE695": "ngHiVuLLOFrOdi8Cwn5Lvda6rOGc/rqY1vAXDjHTEW8"34393
+ },34394
+ "signatures": {34395
+ "@alice_695:hs1": {34396
+ "ed25519:ALICEDEVICE695": "qmbBNMvkjvr9SIJqCa+eDC871G/Z6Bl2Vg7ye1k5pIl/3T6dWCnrK2fwYu/sGeMb152o/pFe9nJ809mVDAR4BQ"34397
+ }34398
+ },34399
+ "user_id": "@alice_695:hs1",34400
+ "unsigned": {}34401
+ }34402
+ },34403
+ "@alice_69:hs1": {34404
+ "ALICEDEVICE69": {34405
+ "algorithms": [34406
+ "m.olm.v1.curve25519-aes-sha2",34407
+ "m.megolm.v1.aes-sha2"34408
+ ],34409
+ "device_id": "ALICEDEVICE69",34410
+ "keys": {34411
+ "curve25519:ALICEDEVICE69": "yBoV7yHld4PSKXIN+Jp3Nh3oqO9YcrRMrtRe53O8ZHw",34412
+ "ed25519:ALICEDEVICE69": "4VmD20C3tgtVJUCfgG8bOERXaqge0U1ISg6v5ETu7Ec"34413
+ },34414
+ "signatures": {34415
+ "@alice_69:hs1": {34416
+ "ed25519:ALICEDEVICE69": "dVfch5mwk6v+shlDJ2alHwkoFKBwW52sk7er+Crol29+1KxbxlYEFPRuWzvNGl/uJHtalGcepKj4BRI+jlyWCA"34417
+ }34418
+ },34419
+ "user_id": "@alice_69:hs1",34420
+ "unsigned": {}34421
+ }34422
+ },34423
+ "@alice_707:hs1": {34424
+ "ALICEDEVICE707": {34425
+ "algorithms": [34426
+ "m.olm.v1.curve25519-aes-sha2",34427
+ "m.megolm.v1.aes-sha2"34428
+ ],34429
+ "device_id": "ALICEDEVICE707",34430
+ "keys": {34431
+ "curve25519:ALICEDEVICE707": "dfAoGRRfEuQCUaCC2H+Bl+HhCGM22R32V+mhX1ro3gc",34432
+ "ed25519:ALICEDEVICE707": "YFoacKvTXwwzhJZRflN72bxA3diI66JTG9p2vAqVkvk"34433
+ },34434
+ "signatures": {34435
+ "@alice_707:hs1": {34436
+ "ed25519:ALICEDEVICE707": "9N3x4202lFRZNiW6uOpAs/Ao6Df8O2DTZk7Pg7ycAmQIAj0WQ2b37jQsG8DfizlbExGk2V49OPUWyHoH4v7ODg"34437
+ }34438
+ },34439
+ "user_id": "@alice_707:hs1",34440
+ "unsigned": {}34441
+ }34442
+ },34443
+ "@alice_714:hs1": {34444
+ "ALICEDEVICE714": {34445
+ "algorithms": [34446
+ "m.olm.v1.curve25519-aes-sha2",34447
+ "m.megolm.v1.aes-sha2"34448
+ ],34449
+ "device_id": "ALICEDEVICE714",34450
+ "keys": {34451
+ "curve25519:ALICEDEVICE714": "YDIzOQcBFSlz8d4ltwddDGyPnuiUGnBL5Wwh56t4oCk",34452
+ "ed25519:ALICEDEVICE714": "EG1Sw6YYbtnyhjni/awhZiXNGn6N2QlHLG1fWcZQxYQ"34453
+ },34454
+ "signatures": {34455
+ "@alice_714:hs1": {34456
+ "ed25519:ALICEDEVICE714": "FUvAMK4S1zplKk3ofGD3W4pf0yJ9iN2J9cLvE4T0p1baYUnSAkKyt86I9yfF1s675ml2gwRvsnTLiN7H+3AHDg"34457
+ }34458
+ },34459
+ "user_id": "@alice_714:hs1",34460
+ "unsigned": {}34461
+ }34462
+ },34463
+ "@alice_715:hs1": {34464
+ "ALICEDEVICE715": {34465
+ "algorithms": [34466
+ "m.olm.v1.curve25519-aes-sha2",34467
+ "m.megolm.v1.aes-sha2"34468
+ ],34469
+ "device_id": "ALICEDEVICE715",34470
+ "keys": {34471
+ "curve25519:ALICEDEVICE715": "gliTZzuaqtvPIO8mf9s5h9FVOEnQt+lUY3UuoiL8Ezc",34472
+ "ed25519:ALICEDEVICE715": "Wk42RKhYRrfbXPHvXfLUQHK27BR0paPuBxRGL/9nYTI"34473
+ },34474
+ "signatures": {34475
+ "@alice_715:hs1": {34476
+ "ed25519:ALICEDEVICE715": "f73ctPPHQJOddmosO4GrsDMYTfbxuArUMr3wT+6PithpqYvMc1EXBk07BrVr3dHdsJC18dI45LUp+9zavww+Bw"34477
+ }34478
+ },34479
+ "user_id": "@alice_715:hs1",34480
+ "unsigned": {}34481
+ }34482
+ },34483
+ "@alice_722:hs1": {34484
+ "ALICEDEVICE722": {34485
+ "algorithms": [34486
+ "m.olm.v1.curve25519-aes-sha2",34487
+ "m.megolm.v1.aes-sha2"34488
+ ],34489
+ "device_id": "ALICEDEVICE722",34490
+ "keys": {34491
+ "curve25519:ALICEDEVICE722": "hP4MZekvTdsNuqXS0anfYqG9BrBUhDYSIm0Qjof66UU",34492
+ "ed25519:ALICEDEVICE722": "rF+Y6UbqoxZ1SWqu+o9u0Dwxkq3VHanOEG/cscEFWtE"34493
+ },34494
+ "signatures": {34495
+ "@alice_722:hs1": {34496
+ "ed25519:ALICEDEVICE722": "Reuy5wrSnv4ssnQYsvTtl7qDpj1SUUPqRgnDr6sauJ2XWK0NpbkTUTjpiz0z6ALPwqIlCNYBtaNVW0u/xbABDQ"34497
+ }34498
+ },34499
+ "user_id": "@alice_722:hs1",34500
+ "unsigned": {}34501
+ }34502
+ },34503
+ "@alice_729:hs1": {34504
+ "ALICEDEVICE729": {34505
+ "algorithms": [34506
+ "m.olm.v1.curve25519-aes-sha2",34507
+ "m.megolm.v1.aes-sha2"34508
+ ],34509
+ "device_id": "ALICEDEVICE729",34510
+ "keys": {34511
+ "curve25519:ALICEDEVICE729": "2zBfIVEC9AqByLP7vwbYNpWlNjGtU1y/ZHoA8k59+gM",34512
+ "ed25519:ALICEDEVICE729": "93wromnvInKVx7YexZRd5yaetlBnDRN71CPxFf6zw4M"34513
+ },34514
+ "signatures": {34515
+ "@alice_729:hs1": {34516
+ "ed25519:ALICEDEVICE729": "3sBQ545Fxc/UyXPFcsDACf3G+7y0K63yF8o4BTmZbTekHn5kP7SXZNa5gxEkMhtP/y2TsCjSesmsSj1CJ0ehDw"34517
+ }34518
+ },34519
+ "user_id": "@alice_729:hs1",34520
+ "unsigned": {}34521
+ }34522
+ },34523
+ "@alice_732:hs1": {34524
+ "ALICEDEVICE732": {34525
+ "algorithms": [34526
+ "m.olm.v1.curve25519-aes-sha2",34527
+ "m.megolm.v1.aes-sha2"34528
+ ],34529
+ "device_id": "ALICEDEVICE732",34530
+ "keys": {34531
+ "curve25519:ALICEDEVICE732": "MJ5KvQJsHgF+k2suktaXrYsB9kggf1vWM3LPwxDQ5Xs",34532
+ "ed25519:ALICEDEVICE732": "dfGfNsQWeezS79XPwgqXuz/Osl0XT/9p68zYVEGJRPc"34533
+ },34534
+ "signatures": {34535
+ "@alice_732:hs1": {34536
+ "ed25519:ALICEDEVICE732": "EVJWp7gde5isLi3ismpYIhbZw2nsCS4WWyJUsoHbIJf6oO2gl730Lbu1Hh8TMLFAp3DJOiSfvOrMZaU09VEgAQ"34537
+ }34538
+ },34539
+ "user_id": "@alice_732:hs1",34540
+ "unsigned": {}34541
+ }34542
+ },34543
+ "@alice_733:hs1": {34544
+ "ALICEDEVICE733": {34545
+ "algorithms": [34546
+ "m.olm.v1.curve25519-aes-sha2",34547
+ "m.megolm.v1.aes-sha2"34548
+ ],34549
+ "device_id": "ALICEDEVICE733",34550
+ "keys": {34551
+ "curve25519:ALICEDEVICE733": "HVHj95lr3jJeRhBKRiwETapZgDlaMhICDZBxxlW29hc",34552
+ "ed25519:ALICEDEVICE733": "tOV6GRXZO0sOY5/x+Phr/q5SK2FzHq+WdpIT1APUGkY"34553
+ },34554
+ "signatures": {34555
+ "@alice_733:hs1": {34556
+ "ed25519:ALICEDEVICE733": "8Ia/eYjvcVgxMZ5n3rGbFitSncDygItU/MFBit0Rqc22yfZmT7RR/61s+g9dub71FS/QiY+8K+ybQpt5XHm5Cw"34557
+ }34558
+ },34559
+ "user_id": "@alice_733:hs1",34560
+ "unsigned": {}34561
+ }34562
+ },34563
+ "@alice_738:hs1": {34564
+ "ALICEDEVICE738": {34565
+ "algorithms": [34566
+ "m.olm.v1.curve25519-aes-sha2",34567
+ "m.megolm.v1.aes-sha2"34568
+ ],34569
+ "device_id": "ALICEDEVICE738",34570
+ "keys": {34571
+ "curve25519:ALICEDEVICE738": "96oCuYJj60gwMwLNy7J7f5W9fV9tC2eUSr6NnIHGCys",34572
+ "ed25519:ALICEDEVICE738": "PGIWhPOcP0xvOPaLGbyJtLEwSYBzBc01QW8waClj2bY"34573
+ },34574
+ "signatures": {34575
+ "@alice_738:hs1": {34576
+ "ed25519:ALICEDEVICE738": "izABWEJ/G2OyVtIMI6MR0u49c2szdkCMH+3yHYWmWo+wb2r5SKYfS0/laAqCj//cfaw9KKcrod8YB4uJx1HeCg"34577
+ }34578
+ },34579
+ "user_id": "@alice_738:hs1",34580
+ "unsigned": {}34581
+ }34582
+ },34583
+ "@alice_740:hs1": {34584
+ "ALICEDEVICE740": {34585
+ "algorithms": [34586
+ "m.olm.v1.curve25519-aes-sha2",34587
+ "m.megolm.v1.aes-sha2"34588
+ ],34589
+ "device_id": "ALICEDEVICE740",34590
+ "keys": {34591
+ "curve25519:ALICEDEVICE740": "LC8Nrey1xmcCJRe3hfPCEK9ACbfOmqcb+3VOqmLe9QM",34592
+ "ed25519:ALICEDEVICE740": "tsxMpaGi1NSiImHPVrMNfFi45UlMbkYkrKPbTtz7vrU"34593
+ },34594
+ "signatures": {34595
+ "@alice_740:hs1": {34596
+ "ed25519:ALICEDEVICE740": "ax+oCgEwxvmVJ5Shp19vWw94JGWc9Q2mDIM1oTHOWvXKRsExcC4Wp63HRFlP7d6oOtDvNbjfhnLNVhtZgRnvBA"34597
+ }34598
+ },34599
+ "user_id": "@alice_740:hs1",34600
+ "unsigned": {}34601
+ }34602
+ },34603
+ "@alice_744:hs1": {34604
+ "ALICEDEVICE744": {34605
+ "algorithms": [34606
+ "m.olm.v1.curve25519-aes-sha2",34607
+ "m.megolm.v1.aes-sha2"34608
+ ],34609
+ "device_id": "ALICEDEVICE744",34610
+ "keys": {34611
+ "curve25519:ALICEDEVICE744": "wuMBR3ng5Bm2lRHHGxoUnj1rwwDtCxkfrjUnaxkfa0Y",34612
+ "ed25519:ALICEDEVICE744": "x+4muqlDg2WernY3/vLAC6FcHSQPqShzw2PdygyKfcs"34613
+ },34614
+ "signatures": {34615
+ "@alice_744:hs1": {34616
+ "ed25519:ALICEDEVICE744": "e+MJyDF6O8KXsnKKrks2N3lmJ9QhyTwdYJ/L4jo8D1mvIsXcn89HHWTbOb64PHdznlJCRFs4/Tz0qtNdNdX+Dw"34617
+ }34618
+ },34619
+ "user_id": "@alice_744:hs1",34620
+ "unsigned": {}34621
+ }34622
+ },34623
+ "@alice_745:hs1": {34624
+ "ALICEDEVICE745": {34625
+ "algorithms": [34626
+ "m.olm.v1.curve25519-aes-sha2",34627
+ "m.megolm.v1.aes-sha2"34628
+ ],34629
+ "device_id": "ALICEDEVICE745",34630
+ "keys": {34631
+ "curve25519:ALICEDEVICE745": "wLu2NkustC9wlavuJC5xJjndsFXBA+OVAEzoEmKpV3U",34632
+ "ed25519:ALICEDEVICE745": "+tzPFtEFyqUjoadK3kk6q+bADxTQAVq6nY+d+swHRN4"34633
+ },34634
+ "signatures": {34635
+ "@alice_745:hs1": {34636
+ "ed25519:ALICEDEVICE745": "PvHfiG3BFh5uCznR9Vep/7k429SLoyzA4DIwJ4UauoDiadRNxI3CKAi96nw4Pa+Fh+MvFPZxeeBVHew9iQXaCg"34637
+ }34638
+ },34639
+ "user_id": "@alice_745:hs1",34640
+ "unsigned": {}34641
+ }34642
+ },34643
+ "@alice_753:hs1": {34644
+ "ALICEDEVICE753": {34645
+ "algorithms": [34646
+ "m.olm.v1.curve25519-aes-sha2",34647
+ "m.megolm.v1.aes-sha2"34648
+ ],34649
+ "device_id": "ALICEDEVICE753",34650
+ "keys": {34651
+ "curve25519:ALICEDEVICE753": "+hMCA0EEgpCX+J7QzRlCGLLPpZ8zf+NGEurNLj1+ojg",34652
+ "ed25519:ALICEDEVICE753": "xgexba0NDO2+6BDzknNFKhKdfgiDB4dJWbsldlzsDe0"34653
+ },34654
+ "signatures": {34655
+ "@alice_753:hs1": {34656
+ "ed25519:ALICEDEVICE753": "YWMiSpkMLXSKFeQbTsN0cWC7nKLMjQdEU0KfsoUTy+2YoPXeSvk8CetS0E+xDMUQvJwoIcDfMd466Pu1w5QSAA"34657
+ }34658
+ },34659
+ "user_id": "@alice_753:hs1",34660
+ "unsigned": {}34661
+ }34662
+ },34663
+ "@alice_754:hs1": {34664
+ "ALICEDEVICE754": {34665
+ "algorithms": [34666
+ "m.olm.v1.curve25519-aes-sha2",34667
+ "m.megolm.v1.aes-sha2"34668
+ ],34669
+ "device_id": "ALICEDEVICE754",34670
+ "keys": {34671
+ "curve25519:ALICEDEVICE754": "hESi4U2hKxWgDcmcbQz3ihDYvNsKjwirihxQaMewSGE",34672
+ "ed25519:ALICEDEVICE754": "gVU5CRz8kI4mj7mZWzoK4Kg9m7PY/HXqOZjT7r+LSVQ"34673
+ },34674
+ "signatures": {34675
+ "@alice_754:hs1": {34676
+ "ed25519:ALICEDEVICE754": "ylhmIl0PKkZX+aod05ED9fna/BvVbNveS5OYxIw4LCrs1nfnrbHySzOg1UIDxptse9Q3A8LgtsVSwvz3G2tdCw"34677
+ }34678
+ },34679
+ "user_id": "@alice_754:hs1",34680
+ "unsigned": {}34681
+ }34682
+ },34683
+ "@alice_758:hs1": {34684
+ "ALICEDEVICE758": {34685
+ "algorithms": [34686
+ "m.olm.v1.curve25519-aes-sha2",34687
+ "m.megolm.v1.aes-sha2"34688
+ ],34689
+ "device_id": "ALICEDEVICE758",34690
+ "keys": {34691
+ "curve25519:ALICEDEVICE758": "zKI04XDEYLsx08wKnK+e8eECdbIWLut7bu1xtcE+U3c",34692
+ "ed25519:ALICEDEVICE758": "4loxb/NuSEw6makuInlUsnvUdAv403u6Rn3gLknSr1U"34693
+ },34694
+ "signatures": {34695
+ "@alice_758:hs1": {34696
+ "ed25519:ALICEDEVICE758": "invBpK4MA3J7wJlE8ZfdJ5FKZALyDhUmYHyJII6Et5yi0YE4uFIDMgXDdPGd0bTogybFg1zVg408SXPQdXnxCA"34697
+ }34698
+ },34699
+ "user_id": "@alice_758:hs1",34700
+ "unsigned": {}34701
+ }34702
+ },34703
+ "@alice_773:hs1": {34704
+ "ALICEDEVICE773": {34705
+ "algorithms": [34706
+ "m.olm.v1.curve25519-aes-sha2",34707
+ "m.megolm.v1.aes-sha2"34708
+ ],34709
+ "device_id": "ALICEDEVICE773",34710
+ "keys": {34711
+ "curve25519:ALICEDEVICE773": "Mxcpp63v6UJfcPlaTWjvSnHNfi+O5+eSCKbz5aix2WA",34712
+ "ed25519:ALICEDEVICE773": "FSjLn2qR5jJi7kBiMeitDOgdoSYmxncgzLee7UuyTec"34713
+ },34714
+ "signatures": {34715
+ "@alice_773:hs1": {34716
+ "ed25519:ALICEDEVICE773": "QJ8U9ZtFQDhL018nk1UmW32MqIpV/pKSvp/eWnwq8GLDc6pGRUwsfyS3kkE01rUvYFE3+AE8Hh9JfDaqtlH3BA"34717
+ }34718
+ },34719
+ "user_id": "@alice_773:hs1",34720
+ "unsigned": {}34721
+ }34722
+ },34723
+ "@alice_777:hs1": {34724
+ "ALICEDEVICE777": {34725
+ "algorithms": [34726
+ "m.olm.v1.curve25519-aes-sha2",34727
+ "m.megolm.v1.aes-sha2"34728
+ ],34729
+ "device_id": "ALICEDEVICE777",34730
+ "keys": {34731
+ "curve25519:ALICEDEVICE777": "+g8VDSpLRj4PYJPYYKdFt7wJlNvVQJBYjQ3sTyBFe0s",34732
+ "ed25519:ALICEDEVICE777": "HXACP5u3QFabzHCWOQbWyrlhsJI5BheSnOntmKYU9Aw"34733
+ },34734
+ "signatures": {34735
+ "@alice_777:hs1": {34736
+ "ed25519:ALICEDEVICE777": "2B64bFyY3YffEDtA/oiqFt6uHy4vGGQQHYWUowSiIX2BBqT66l1ayBei69ExU54eNNApnfF4TtCGT6HellIxBQ"34737
+ }34738
+ },34739
+ "user_id": "@alice_777:hs1",34740
+ "unsigned": {}34741
+ }34742
+ },34743
+ "@alice_799:hs1": {34744
+ "ALICEDEVICE799": {34745
+ "algorithms": [34746
+ "m.olm.v1.curve25519-aes-sha2",34747
+ "m.megolm.v1.aes-sha2"34748
+ ],34749
+ "device_id": "ALICEDEVICE799",34750
+ "keys": {34751
+ "curve25519:ALICEDEVICE799": "D2kZCqQwb9wokbehGksMEEjKqmGu9bSRZy/5ZXLoDC0",34752
+ "ed25519:ALICEDEVICE799": "QBeb2r3kb//ReiorN1zhYOL7ZttRNvETsuaSH4uG6aA"34753
+ },34754
+ "signatures": {34755
+ "@alice_799:hs1": {34756
+ "ed25519:ALICEDEVICE799": "hieE4Amav3cMjjylhWRLpo/moFlAa6x6EaAPTQKZreDeKEh5i7iZ4+LW4pr+jJdKYZMe3kRxI/r2HEIsYVNOBA"34757
+ }34758
+ },34759
+ "user_id": "@alice_799:hs1",34760
+ "unsigned": {}34761
+ }34762
+ },34763
+ "@alice_801:hs1": {34764
+ "ALICEDEVICE801": {34765
+ "algorithms": [34766
+ "m.olm.v1.curve25519-aes-sha2",34767
+ "m.megolm.v1.aes-sha2"34768
+ ],34769
+ "device_id": "ALICEDEVICE801",34770
+ "keys": {34771
+ "curve25519:ALICEDEVICE801": "3nX0OOW2bBXLtkTTZSiNTmpEHUZJJB3hbCrYS79p1mM",34772
+ "ed25519:ALICEDEVICE801": "y3h3HqLsSBPJvBaSuAl0kcH/xTlHhsg3I1biBfvfvvg"34773
+ },34774
+ "signatures": {34775
+ "@alice_801:hs1": {34776
+ "ed25519:ALICEDEVICE801": "GALu6Wy2yQfulcnSfeFtKHPrjilJ5vK+iAXKA/S8xVdtaQnEOHm/flxY6+L7hzfOG63sAihPOFQpVpFNW9KDBg"34777
+ }34778
+ },34779
+ "user_id": "@alice_801:hs1",34780
+ "unsigned": {}34781
+ }34782
+ },34783
+ "@alice_80:hs1": {34784
+ "ALICEDEVICE80": {34785
+ "algorithms": [34786
+ "m.olm.v1.curve25519-aes-sha2",34787
+ "m.megolm.v1.aes-sha2"34788
+ ],34789
+ "device_id": "ALICEDEVICE80",34790
+ "keys": {34791
+ "curve25519:ALICEDEVICE80": "lsDO9HenRRcbdyKkNDtNSRXwwz/h3RggE0No+S4uq0A",34792
+ "ed25519:ALICEDEVICE80": "doQYzYFo9L+yFd3PmVeh6Vuuh9fwGy8iDIJERYxu+tA"34793
+ },34794
+ "signatures": {34795
+ "@alice_80:hs1": {34796
+ "ed25519:ALICEDEVICE80": "ERgPNVf0HnBerN1L/btbHqWzHL6AluoaTrRwkFv1S4fN+IWOen0TxKH0gfVQFoCcla74TeQ4Lj/nH2mYhQhtDg"34797
+ }34798
+ },34799
+ "user_id": "@alice_80:hs1",34800
+ "unsigned": {}34801
+ }34802
+ },34803
+ "@alice_812:hs1": {34804
+ "ALICEDEVICE812": {34805
+ "algorithms": [34806
+ "m.olm.v1.curve25519-aes-sha2",34807
+ "m.megolm.v1.aes-sha2"34808
+ ],34809
+ "device_id": "ALICEDEVICE812",34810
+ "keys": {34811
+ "curve25519:ALICEDEVICE812": "xwX4q1YPFGAJlPL7+yK6yHKNBOnXFF3GDgJafi59WCg",34812
+ "ed25519:ALICEDEVICE812": "sKPix8OXuWqKEx5GvGzBvqtX1TbO6onYliKtXzrxzmY"34813
+ },34814
+ "signatures": {34815
+ "@alice_812:hs1": {34816
+ "ed25519:ALICEDEVICE812": "+LGcTq3eE+VQcaJmILvDEwL05HqZwUsMB1zvCjrf5EwHqlbYIyq5irFOHJqlfMuCrypHoWMOwZpptmU/HV17Cw"34817
+ }34818
+ },34819
+ "user_id": "@alice_812:hs1",34820
+ "unsigned": {}34821
+ }34822
+ },34823
+ "@alice_81:hs1": {34824
+ "ALICEDEVICE81": {34825
+ "algorithms": [34826
+ "m.olm.v1.curve25519-aes-sha2",34827
+ "m.megolm.v1.aes-sha2"34828
+ ],34829
+ "device_id": "ALICEDEVICE81",34830
+ "keys": {34831
+ "curve25519:ALICEDEVICE81": "HlE7+8i9eapS+pvaW0xmdMSjWt/ZjsEUMESXNf8UdHM",34832
+ "ed25519:ALICEDEVICE81": "V2lvtfBq9ImhewJNz6NAaPbLK5Pi9qLA4AX8CVoo0Wk"34833
+ },34834
+ "signatures": {34835
+ "@alice_81:hs1": {34836
+ "ed25519:ALICEDEVICE81": "iGns+eQviKMEROWHfkh3uEHSfROaoIJ4ds8eojh0NooWojvlCbcU1a/8zvqmG7RkDBWOx/8yuXQP2jH51D2uCw"34837
+ }34838
+ },34839
+ "user_id": "@alice_81:hs1",34840
+ "unsigned": {}34841
+ }34842
+ },34843
+ "@alice_822:hs1": {34844
+ "ALICEDEVICE822": {34845
+ "algorithms": [34846
+ "m.olm.v1.curve25519-aes-sha2",34847
+ "m.megolm.v1.aes-sha2"34848
+ ],34849
+ "device_id": "ALICEDEVICE822",34850
+ "keys": {34851
+ "curve25519:ALICEDEVICE822": "WdsLaOYysXqIU1UG2KUvG/O+QE1k6UPcYu8sjre2bGc",34852
+ "ed25519:ALICEDEVICE822": "ABTAufGnhiQrT2sckEyxjib/+lfmrdJEFOKPtSqCWL0"34853
+ },34854
+ "signatures": {34855
+ "@alice_822:hs1": {34856
+ "ed25519:ALICEDEVICE822": "gFGru0gFFkHsQR7M34v6Ax/XO9+dCJXv9hSkHZSlbYPxPQHnIChU9Pjzo2nNCusYS6jBqsJ9Eo4yAcmUwYNgDg"34857
+ }34858
+ },34859
+ "user_id": "@alice_822:hs1",34860
+ "unsigned": {}34861
+ }34862
+ },34863
+ "@alice_825:hs1": {34864
+ "ALICEDEVICE825": {34865
+ "algorithms": [34866
+ "m.olm.v1.curve25519-aes-sha2",34867
+ "m.megolm.v1.aes-sha2"34868
+ ],34869
+ "device_id": "ALICEDEVICE825",34870
+ "keys": {34871
+ "curve25519:ALICEDEVICE825": "GGDKKMuG7/bj4Uk5UbCETmVc34YTHlgFif5KFWeniT8",34872
+ "ed25519:ALICEDEVICE825": "TLd6zOeu+QKnaUIBaZWne9mhwvJAm2aFSi8vDFaxmFE"34873
+ },34874
+ "signatures": {34875
+ "@alice_825:hs1": {34876
+ "ed25519:ALICEDEVICE825": "8W0i3RJhvHsL+yU0fwZd8hac5C5JWkm7V25zEbeyEp1RJ7bWCWoxzsZBcXcPNT91+PCcX+L3i4qgt9HY9fkJBA"34877
+ }34878
+ },34879
+ "user_id": "@alice_825:hs1",34880
+ "unsigned": {}34881
+ }34882
+ },34883
+ "@alice_830:hs1": {34884
+ "ALICEDEVICE830": {34885
+ "algorithms": [34886
+ "m.olm.v1.curve25519-aes-sha2",34887
+ "m.megolm.v1.aes-sha2"34888
+ ],34889
+ "device_id": "ALICEDEVICE830",34890
+ "keys": {34891
+ "curve25519:ALICEDEVICE830": "BbM3V0RBl+K28r0vIabq4A3wQDYB/VejNbwXoOv8vGk",34892
+ "ed25519:ALICEDEVICE830": "Yg5mFjlKp03oChANmh5KU7QQsdNtTERT79aH4nCVc0o"34893
+ },34894
+ "signatures": {34895
+ "@alice_830:hs1": {34896
+ "ed25519:ALICEDEVICE830": "BXKIcNTpZI+zCtRDUzPjxJUBhvrgIMIX9YQVHOAFGw6KS6eIRnS7RyRw6rcqyO4r13TpPfZBC/Xr8o5lWM1FBQ"34897
+ }34898
+ },34899
+ "user_id": "@alice_830:hs1",34900
+ "unsigned": {}34901
+ }34902
+ },34903
+ "@alice_835:hs1": {34904
+ "ALICEDEVICE835": {34905
+ "algorithms": [34906
+ "m.olm.v1.curve25519-aes-sha2",34907
+ "m.megolm.v1.aes-sha2"34908
+ ],34909
+ "device_id": "ALICEDEVICE835",34910
+ "keys": {34911
+ "curve25519:ALICEDEVICE835": "ua08uIUNvcMT2A8uOQXuXuEbrUasw0Bk5K8TbpNjTgw",34912
+ "ed25519:ALICEDEVICE835": "fOu0I98+qDkKs9mlWhFD3aCUbuJYiynGdmOvBDzrZoY"34913
+ },34914
+ "signatures": {34915
+ "@alice_835:hs1": {34916
+ "ed25519:ALICEDEVICE835": "ifIaEjG4ZTYXOyaszNO6bOten300bZpJ5TSEP/0e0Tq3cRC39/T2LxKy0kfsksPNveJH5zexORrpnLVH7PLPBg"34917
+ }34918
+ },34919
+ "user_id": "@alice_835:hs1",34920
+ "unsigned": {}34921
+ }34922
+ },34923
+ "@alice_855:hs1": {34924
+ "ALICEDEVICE855": {34925
+ "algorithms": [34926
+ "m.olm.v1.curve25519-aes-sha2",34927
+ "m.megolm.v1.aes-sha2"34928
+ ],34929
+ "device_id": "ALICEDEVICE855",34930
+ "keys": {34931
+ "curve25519:ALICEDEVICE855": "SJVOF6zB+rIq+w5dSYzbs6pNopkgMAuJBrvnFnYPzGc",34932
+ "ed25519:ALICEDEVICE855": "cEuHm70jbJPdTDZE/9KkF9iez2Ydf77F2Luj2GBOaLA"34933
+ },34934
+ "signatures": {34935
+ "@alice_855:hs1": {34936
+ "ed25519:ALICEDEVICE855": "pCrGsFaXp2zkibrURFqmcfPawHP09IeTr8miGKVihpHWKfAyGHwOjDnTM5gVMoSgf/boUujYxWAB4iM/VUDUDQ"34937
+ }34938
+ },34939
+ "user_id": "@alice_855:hs1",34940
+ "unsigned": {}34941
+ }34942
+ },34943
+ "@alice_887:hs1": {34944
+ "ALICEDEVICE887": {34945
+ "algorithms": [34946
+ "m.olm.v1.curve25519-aes-sha2",34947
+ "m.megolm.v1.aes-sha2"34948
+ ],34949
+ "device_id": "ALICEDEVICE887",34950
+ "keys": {34951
+ "curve25519:ALICEDEVICE887": "Gg3jhlGJet6Mj2nnd4WwWidiBY/5mcJk9qbZ5PmyvjI",34952
+ "ed25519:ALICEDEVICE887": "uwvQPeBMNEsXCEKU++SYMyFgftFb+AVqXvoXGvR56OU"34953
+ },34954
+ "signatures": {34955
+ "@alice_887:hs1": {34956
+ "ed25519:ALICEDEVICE887": "B34LeaKTwM29BKE5F0SWnsjs/8J1k7aN8wVjmMENd6yC+wRSV18CEvrGHdhYxOn2I/YPv92sMmW7BjfhTyiZCw"34957
+ }34958
+ },34959
+ "user_id": "@alice_887:hs1",34960
+ "unsigned": {}34961
+ }34962
+ },34963
+ "@alice_897:hs1": {34964
+ "ALICEDEVICE897": {34965
+ "algorithms": [34966
+ "m.olm.v1.curve25519-aes-sha2",34967
+ "m.megolm.v1.aes-sha2"34968
+ ],34969
+ "device_id": "ALICEDEVICE897",34970
+ "keys": {34971
+ "curve25519:ALICEDEVICE897": "auvTyb61IEZk/AmvuDr7BY4hVQ4Z9cdCOQ0TlhqBwx8",34972
+ "ed25519:ALICEDEVICE897": "gVaH/z+hie537iMxOgOcNmYZ6nY2j+tWvKRrW0h9Ofw"34973
+ },34974
+ "signatures": {34975
+ "@alice_897:hs1": {34976
+ "ed25519:ALICEDEVICE897": "cMuUhhX2sd0FlCdXra398dkKkw4IN95SzTfxmfkCInymcYZNfsWLJ7BtS84VMTX5rp7vRH1C1fRanBFNosV6BA"34977
+ }34978
+ },34979
+ "user_id": "@alice_897:hs1",34980
+ "unsigned": {}34981
+ }34982
+ },34983
+ "@alice_903:hs1": {34984
+ "ALICEDEVICE903": {34985
+ "algorithms": [34986
+ "m.olm.v1.curve25519-aes-sha2",34987
+ "m.megolm.v1.aes-sha2"34988
+ ],34989
+ "device_id": "ALICEDEVICE903",34990
+ "keys": {34991
+ "curve25519:ALICEDEVICE903": "pkP8T9tcoo8tI590+LDKIysIQ2sbEABroNvUlzbES2U",34992
+ "ed25519:ALICEDEVICE903": "OTpwk4vrc2vRVUPM6Jw3R4Qfd9JhWGYlvVgroKkZsoM"34993
+ },34994
+ "signatures": {34995
+ "@alice_903:hs1": {34996
+ "ed25519:ALICEDEVICE903": "gdHFbQ9zHc/PupS7bhgcuLCzT6xoiSxo4jw80ya1DPT/5HYVqD+pwL2hRdn1xkLwnaav7zampESM6uR28JtEDQ"34997
+ }34998
+ },34999
+ "user_id": "@alice_903:hs1",35000
+ "unsigned": {}35001
+ }35002
+ },35003
+ "@alice_907:hs1": {35004
+ "ALICEDEVICE907": {35005
+ "algorithms": [35006
+ "m.olm.v1.curve25519-aes-sha2",35007
+ "m.megolm.v1.aes-sha2"35008
+ ],35009
+ "device_id": "ALICEDEVICE907",35010
+ "keys": {35011
+ "curve25519:ALICEDEVICE907": "bEsl2aiSdMdV7/JRsWVJ8d78yqz7ctG0yEJyLSyYyQE",35012
+ "ed25519:ALICEDEVICE907": "v1qyL4FcOpVnuvLAbP2sDUpGkDLEUZ5mUJ+O798s9Lo"35013
+ },35014
+ "signatures": {35015
+ "@alice_907:hs1": {35016
+ "ed25519:ALICEDEVICE907": "rJnMfw+5AAYXFyFPmniWpf7DXX0O9PGvqPAcPTrv8jEL5j4emG1vhY76YwiQY36qougCCeYjwKQ6JpX4UHeFBA"35017
+ }35018
+ },35019
+ "user_id": "@alice_907:hs1",35020
+ "unsigned": {}35021
+ }35022
+ },35023
+ "@alice_910:hs1": {35024
+ "ALICEDEVICE910": {35025
+ "algorithms": [35026
+ "m.olm.v1.curve25519-aes-sha2",35027
+ "m.megolm.v1.aes-sha2"35028
+ ],35029
+ "device_id": "ALICEDEVICE910",35030
+ "keys": {35031
+ "curve25519:ALICEDEVICE910": "1/rNBmaaDBIGSwzQKuS/Zsfm8XTPR08dRX51t3gv+Xs",35032
+ "ed25519:ALICEDEVICE910": "zOMxglhwlHnQ5QdDPIdufGZmfMJv5dsvPpuU2UkB61E"35033
+ },35034
+ "signatures": {35035
+ "@alice_910:hs1": {35036
+ "ed25519:ALICEDEVICE910": "x5uqB/ISgdQ2X3jXnOHoPSvT+klqbtHTWS1OCfMzToGvnyeq2FSU4S80dq7HbMpDuuXDdCtoi1Z2pQeVr++hBg"35037
+ }35038
+ },35039
+ "user_id": "@alice_910:hs1",35040
+ "unsigned": {}35041
+ }35042
+ },35043
+ "@alice_917:hs1": {35044
+ "ALICEDEVICE917": {35045
+ "algorithms": [35046
+ "m.olm.v1.curve25519-aes-sha2",35047
+ "m.megolm.v1.aes-sha2"35048
+ ],35049
+ "device_id": "ALICEDEVICE917",35050
+ "keys": {35051
+ "curve25519:ALICEDEVICE917": "/9QjiTB+BbDrvrozm62N3EyDPk5beqMMj+6Q4HF5YRw",35052
+ "ed25519:ALICEDEVICE917": "feZrH6DECSxUh9OCexesJO9d2oZQa+7hSAfT7I2Nlpk"35053
+ },35054
+ "signatures": {35055
+ "@alice_917:hs1": {35056
+ "ed25519:ALICEDEVICE917": "rQHOM5ub+bqZASm2t+I6tHHkjmbgwRDz6r53Qi4VtYAIi+nJPR2+SOIBo3eq/fm7ebVXfl4/uY0aRurFxLxxDQ"35057
+ }35058
+ },35059
+ "user_id": "@alice_917:hs1",35060
+ "unsigned": {}35061
+ }35062
+ },35063
+ "@alice_924:hs1": {35064
+ "ALICEDEVICE924": {35065
+ "algorithms": [35066
+ "m.olm.v1.curve25519-aes-sha2",35067
+ "m.megolm.v1.aes-sha2"35068
+ ],35069
+ "device_id": "ALICEDEVICE924",35070
+ "keys": {35071
+ "curve25519:ALICEDEVICE924": "QT7yB5rB+LTsp8maFrIIjJjxeCqecK7+E4+rw9Qc+wI",35072
+ "ed25519:ALICEDEVICE924": "gwAVnO1HKp5f0Pyd5yTuWYJab2q25w1mo49zJ473waI"35073
+ },35074
+ "signatures": {35075
+ "@alice_924:hs1": {35076
+ "ed25519:ALICEDEVICE924": "OIHilnXnv92vWPMMyKvOBsylTkPL0/zWD9Y1i6F7jgiCoXwyYuiZK6XMMK+XpfjFKfyrxwrr8jFbyPWiTofVAA"35077
+ }35078
+ },35079
+ "user_id": "@alice_924:hs1",35080
+ "unsigned": {}35081
+ }35082
+ },35083
+ "@alice_929:hs1": {35084
+ "ALICEDEVICE929": {35085
+ "algorithms": [35086
+ "m.olm.v1.curve25519-aes-sha2",35087
+ "m.megolm.v1.aes-sha2"35088
+ ],35089
+ "device_id": "ALICEDEVICE929",35090
+ "keys": {35091
+ "curve25519:ALICEDEVICE929": "T49jvQdHMYI09WldG2j4eW7bGVWjtLIlzXay5ISdMj4",35092
+ "ed25519:ALICEDEVICE929": "OwFXEFo6Vsfk37eSWeqtkoIQSxgXbjvjvD/Cy0+5MNA"35093
+ },35094
+ "signatures": {35095
+ "@alice_929:hs1": {35096
+ "ed25519:ALICEDEVICE929": "zTf2AMhH+RP8iiFmpdELopH0LHFjO83+TxAPIzFr8uhh51s+JpYRpdoaW9vm3hWM0DCPx1qLAY/jr+S5836gDw"35097
+ }35098
+ },35099
+ "user_id": "@alice_929:hs1",35100
+ "unsigned": {}35101
+ }35102
+ },35103
+ "@alice_931:hs1": {35104
+ "ALICEDEVICE931": {35105
+ "algorithms": [35106
+ "m.olm.v1.curve25519-aes-sha2",35107
+ "m.megolm.v1.aes-sha2"35108
+ ],35109
+ "device_id": "ALICEDEVICE931",35110
+ "keys": {35111
+ "curve25519:ALICEDEVICE931": "9RKEN9oKNjttp2ShXV73FdCdRMKXo7i4hLeaVUtr7WM",35112
+ "ed25519:ALICEDEVICE931": "YJPyiab6UjCJQ1tKkgBf0QEKSWJicds1dRm4vLYyDH0"35113
+ },35114
+ "signatures": {35115
+ "@alice_931:hs1": {35116
+ "ed25519:ALICEDEVICE931": "Clg7e5ePJx81HM/ejVN1z4drWETI6atjo55kJjSNAzIKzkgu0cWSHkj9qbWROSstYxJg0JIONyzTM9EsnOsLAw"35117
+ }35118
+ },35119
+ "user_id": "@alice_931:hs1",35120
+ "unsigned": {}35121
+ }35122
+ },35123
+ "@alice_947:hs1": {35124
+ "ALICEDEVICE947": {35125
+ "algorithms": [35126
+ "m.olm.v1.curve25519-aes-sha2",35127
+ "m.megolm.v1.aes-sha2"35128
+ ],35129
+ "device_id": "ALICEDEVICE947",35130
+ "keys": {35131
+ "curve25519:ALICEDEVICE947": "Wxsz9T9vtU6u2oiVrfvdQwxFWTxRIX//FrNuLp0mdyo",35132
+ "ed25519:ALICEDEVICE947": "pSmPLKdihIUcJ2q6j0ioibZzwONWgOHAHCj+8ywuuEw"35133
+ },35134
+ "signatures": {35135
+ "@alice_947:hs1": {35136
+ "ed25519:ALICEDEVICE947": "XCj/pjrl/nSMOpmvJnjnikSGj/IOWetI8Jtp7hxLKHgqiiDSbd1mqSn+a+AEcPjqOU6veQyhLqSeM8vt9xHRAA"35137
+ }35138
+ },35139
+ "user_id": "@alice_947:hs1",35140
+ "unsigned": {}35141
+ }35142
+ },35143
+ "@alice_94:hs1": {35144
+ "ALICEDEVICE94": {35145
+ "algorithms": [35146
+ "m.olm.v1.curve25519-aes-sha2",35147
+ "m.megolm.v1.aes-sha2"35148
+ ],35149
+ "device_id": "ALICEDEVICE94",35150
+ "keys": {35151
+ "curve25519:ALICEDEVICE94": "MI+wOtpOuMjxoJAe3NpPgAIU3JuAho3TOAyp6kWh1hM",35152
+ "ed25519:ALICEDEVICE94": "2hYM0n1tm/IdBB9HK43HyB+QHSPAe3UkMG5+bakpf4E"35153
+ },35154
+ "signatures": {35155
+ "@alice_94:hs1": {35156
+ "ed25519:ALICEDEVICE94": "isxxU7tIxu1n40uwmCB88+DIfUqbo73SyURjrSLsuQLeo4rs04PRZgajfdKCiBqEiLOKsjO255n8qfCyuywMAA"35157
+ }35158
+ },35159
+ "user_id": "@alice_94:hs1",35160
+ "unsigned": {}35161
+ }35162
+ },35163
+ "@alice_950:hs1": {35164
+ "ALICEDEVICE950": {35165
+ "algorithms": [35166
+ "m.olm.v1.curve25519-aes-sha2",35167
+ "m.megolm.v1.aes-sha2"35168
+ ],35169
+ "device_id": "ALICEDEVICE950",35170
+ "keys": {35171
+ "curve25519:ALICEDEVICE950": "KIVRHvLOFY+kB+yEpEQQ72GrGXI2iMW/W4PFXrxPVkc",35172
+ "ed25519:ALICEDEVICE950": "79O6C8xyoS42iGoLL65BaYg1nKV+4VHQVdaapyl1TK0"35173
+ },35174
+ "signatures": {35175
+ "@alice_950:hs1": {35176
+ "ed25519:ALICEDEVICE950": "1ExVMQs1ViEHLlEzL38IIm1Tcfzk0xsiHjaBGPL4YUyqx0u7Ncm6WdFX96R3i0KR/Lqmd+J0dOYFqBiNAUVzCA"35177
+ }35178
+ },35179
+ "user_id": "@alice_950:hs1",35180
+ "unsigned": {}35181
+ }35182
+ },35183
+ "@alice_957:hs1": {35184
+ "ALICEDEVICE957": {35185
+ "algorithms": [35186
+ "m.olm.v1.curve25519-aes-sha2",35187
+ "m.megolm.v1.aes-sha2"35188
+ ],35189
+ "device_id": "ALICEDEVICE957",35190
+ "keys": {35191
+ "curve25519:ALICEDEVICE957": "+rQ9ftk2BVRh771cw5Syjydwn0dnsQ/YqJNvzE+zfHw",35192
+ "ed25519:ALICEDEVICE957": "wiZqvWZwXYX0LwCc2lUhboTURxDSYdE+l0n1VO2A6Ng"35193
+ },35194
+ "signatures": {35195
+ "@alice_957:hs1": {35196
+ "ed25519:ALICEDEVICE957": "8z9fGbP+4q2qwmctJvqqoHNVDmhr2GauL5rPgiJEq41nxIvAFkbQBmV5MbHlgPQm1Aey5qxz2s+UzBejGxKkBw"35197
+ }35198
+ },35199
+ "user_id": "@alice_957:hs1",35200
+ "unsigned": {}35201
+ }35202
+ },35203
+ "@alice_958:hs1": {35204
+ "ALICEDEVICE958": {35205
+ "algorithms": [35206
+ "m.olm.v1.curve25519-aes-sha2",35207
+ "m.megolm.v1.aes-sha2"35208
+ ],35209
+ "device_id": "ALICEDEVICE958",35210
+ "keys": {35211
+ "curve25519:ALICEDEVICE958": "9oyPsqsWPDmb6sClVJoOzDI1lxobB8JskM5Yu/HV8Bw",35212
+ "ed25519:ALICEDEVICE958": "L7czfoNW6uaRISU+Jj/WVExivw/NyMhWo/4vKBI5hV4"35213
+ },35214
+ "signatures": {35215
+ "@alice_958:hs1": {35216
+ "ed25519:ALICEDEVICE958": "rgqebiJkSFVirChcJGrzBBBMtRC2EVQTCn4pb2pzou76ReJ5eYUbPeiugcHKxAy7a1f/qtEywQQbSeGClck3CQ"35217
+ }35218
+ },35219
+ "user_id": "@alice_958:hs1",35220
+ "unsigned": {}35221
+ }35222
+ },35223
+ "@alice_967:hs1": {35224
+ "ALICEDEVICE967": {35225
+ "algorithms": [35226
+ "m.olm.v1.curve25519-aes-sha2",35227
+ "m.megolm.v1.aes-sha2"35228
+ ],35229
+ "device_id": "ALICEDEVICE967",35230
+ "keys": {35231
+ "curve25519:ALICEDEVICE967": "osFo+l9HZr4aY3aQQ+Cww17Zq1GwKCchpTPgzQaojSA",35232
+ "ed25519:ALICEDEVICE967": "NGTmvbb1NeucOX2Nbq4qPWVwt7I+j2yVsFYGv+VFhHk"35233
+ },35234
+ "signatures": {35235
+ "@alice_967:hs1": {35236
+ "ed25519:ALICEDEVICE967": "WJd0sSz2eIbmglWCuGh8hRcGaZFxY6m7v4xpLP9aeg+Jx9oxN0Pe4fBnkl7wgSeGs4BJMWFXK9ZtcwgclT6lCA"35237
+ }35238
+ },35239
+ "user_id": "@alice_967:hs1",35240
+ "unsigned": {}35241
+ }35242
+ },35243
+ "@alice_96:hs1": {35244
+ "ALICEDEVICE96": {35245
+ "algorithms": [35246
+ "m.olm.v1.curve25519-aes-sha2",35247
+ "m.megolm.v1.aes-sha2"35248
+ ],35249
+ "device_id": "ALICEDEVICE96",35250
+ "keys": {35251
+ "curve25519:ALICEDEVICE96": "W4RtmMMmV+OePccuNximjEtU7C/i9JQ6gLVjL4iNZxY",35252
+ "ed25519:ALICEDEVICE96": "393PBJD1g5H44jpNqg1Z5JrsC7ZhSs/ShHaGnj2dREY"35253
+ },35254
+ "signatures": {35255
+ "@alice_96:hs1": {35256
+ "ed25519:ALICEDEVICE96": "UJwNdJTmZXjVLhjS+bdYZsiQ3nJPrAVyIwrek9qGKkIUdoDBt8xTkFuJ8g7FJx3ktgY09OurA/DOD+GdwhgMAw"35257
+ }35258
+ },35259
+ "user_id": "@alice_96:hs1",35260
+ "unsigned": {}35261
+ }35262
+ },35263
+ "@alice_980:hs1": {35264
+ "ALICEDEVICE980": {35265
+ "algorithms": [35266
+ "m.olm.v1.curve25519-aes-sha2",35267
+ "m.megolm.v1.aes-sha2"35268
+ ],35269
+ "device_id": "ALICEDEVICE980",35270
+ "keys": {35271
+ "curve25519:ALICEDEVICE980": "d5VTO7XnLb2xXhgq4gmkhJYmmZ1BQfHI+WifxLX9mSo",35272
+ "ed25519:ALICEDEVICE980": "dqol911Ta3DJb0NK/W2c6PBOCiqN2QhpsJ69JDaA6vQ"35273
+ },35274
+ "signatures": {35275
+ "@alice_980:hs1": {35276
+ "ed25519:ALICEDEVICE980": "Xf6VUTst3AarGvsvdqNuHgzJzKbdtxl9Ye/mdFIeDKX6igJYlfEBXcU92JasS1RKLr2pW45SkKPB2wOWfR+KAQ"35277
+ }35278
+ },35279
+ "user_id": "@alice_980:hs1",35280
+ "unsigned": {}35281
+ }35282
+ },35283
+ "@alice_9:hs1": {35284
+ "ALICEDEVICE9": {35285
+ "algorithms": [35286
+ "m.olm.v1.curve25519-aes-sha2",35287
+ "m.megolm.v1.aes-sha2"35288
+ ],35289
+ "device_id": "ALICEDEVICE9",35290
+ "keys": {35291
+ "curve25519:ALICEDEVICE9": "uXmTDp21RLZUF5Xh39MelDW5wjE7jiMmjPU87zjnJhg",35292
+ "ed25519:ALICEDEVICE9": "YHZ8Z5uUv3aqglvM97zzGVkWI8apkG8xsVBTgUcxWn8"35293
+ },35294
+ "signatures": {35295
+ "@alice_9:hs1": {35296
+ "ed25519:ALICEDEVICE9": "SNVYch0+6fPHKDX17wjNKFDPnYfaUnRWoqGSuCk/RXCl/0DF/bjwNuoVrDuowenpyd6AZPYcE4HeAxbZPQm1Dw"35297
+ }35298
+ },35299
+ "user_id": "@alice_9:hs1",35300
+ "unsigned": {}35301
+ }35302
+ },35303
+ "@alice_1002:hs1": {35304
+ "ALICEDEVICE1002": {35305
+ "algorithms": [35306
+ "m.olm.v1.curve25519-aes-sha2",35307
+ "m.megolm.v1.aes-sha2"35308
+ ],35309
+ "device_id": "ALICEDEVICE1002",35310
+ "keys": {35311
+ "curve25519:ALICEDEVICE1002": "uK1vAjL+BfAgxkBmiCLIGkl/sehfS/notI/oBKtKnjA",35312
+ "ed25519:ALICEDEVICE1002": "eVwVDzo2GOhI1rk3iwEISvhkaip/G42cQAc93UGiybE"35313
+ },35314
+ "signatures": {35315
+ "@alice_1002:hs1": {35316
+ "ed25519:ALICEDEVICE1002": "jSrN+DvyWqMaKH6GNhjkv2REb66e0EeUAyMHHKR78XqOQla3eNt65SFpWjNcOaW4gh3UHisAszThIflWlIelCA"35317
+ }35318
+ },35319
+ "user_id": "@alice_1002:hs1",35320
+ "unsigned": {}35321
+ }35322
+ },35323
+ "@alice_1007:hs1": {35324
+ "ALICEDEVICE1007": {35325
+ "algorithms": [35326
+ "m.olm.v1.curve25519-aes-sha2",35327
+ "m.megolm.v1.aes-sha2"35328
+ ],35329
+ "device_id": "ALICEDEVICE1007",35330
+ "keys": {35331
+ "curve25519:ALICEDEVICE1007": "GHdK/SFQenvDg2AOjtEzZrFoFPbS9tC3HL5SUkRerXs",35332
+ "ed25519:ALICEDEVICE1007": "HY7jvuXibeBRovcdfIR9upWumCCxYq3kOxJ9EQIUpjg"35333
+ },35334
+ "signatures": {35335
+ "@alice_1007:hs1": {35336
+ "ed25519:ALICEDEVICE1007": "8lBFORf3LQTrl2LWKuW72yijux8IRzNq08KjNc6um/UxViKVie6Gvq5lBUqdTosA2yVAZA41Vd3TCFdQMfBJCQ"35337
+ }35338
+ },35339
+ "user_id": "@alice_1007:hs1",35340
+ "unsigned": {}35341
+ }35342
+ },35343
+ "@alice_1012:hs1": {35344
+ "ALICEDEVICE1012": {35345
+ "algorithms": [35346
+ "m.olm.v1.curve25519-aes-sha2",35347
+ "m.megolm.v1.aes-sha2"35348
+ ],35349
+ "device_id": "ALICEDEVICE1012",35350
+ "keys": {35351
+ "curve25519:ALICEDEVICE1012": "uhDt2wChsN542cObiHvNu/KbfdiewzYagLu63P4r+D4",35352
+ "ed25519:ALICEDEVICE1012": "YPUnMF7co/OL+vlkO54uMYwbfGGLJGZx5FmOA9jhgdM"35353
+ },35354
+ "signatures": {35355
+ "@alice_1012:hs1": {35356
+ "ed25519:ALICEDEVICE1012": "FkxUhu5aq8TYcHB18NDkMERzTTaph8DP/KyCdCQnAptxY5XBGfFq1zNxIKg5uhLbU0jYqZWktsUQI0s5I09sBA"35357
+ }35358
+ },35359
+ "user_id": "@alice_1012:hs1",35360
+ "unsigned": {}35361
+ }35362
+ },35363
+ "@alice_1017:hs1": {35364
+ "ALICEDEVICE1017": {35365
+ "algorithms": [35366
+ "m.olm.v1.curve25519-aes-sha2",35367
+ "m.megolm.v1.aes-sha2"35368
+ ],35369
+ "device_id": "ALICEDEVICE1017",35370
+ "keys": {35371
+ "curve25519:ALICEDEVICE1017": "nK2EiwUGEwiTU99qxhvirS2AJ56hwbvhB9jl4BK0ojc",35372
+ "ed25519:ALICEDEVICE1017": "NHwXo4bj/Y07QzKF0UUVBxqA1xpSmjHhBPBnbdzT5iE"35373
+ },35374
+ "signatures": {35375
+ "@alice_1017:hs1": {35376
+ "ed25519:ALICEDEVICE1017": "VKPc7bEpqi5U1ISb8MgjXS4pBEsGNPtVLHODUAln/2LP5uvYLgv6Yykr/8RHmPIuZUkJz9koV29qQFqwfBUxAA"35377
+ }35378
+ },35379
+ "user_id": "@alice_1017:hs1",35380
+ "unsigned": {}35381
+ }35382
+ },35383
+ "@alice_1019:hs1": {35384
+ "ALICEDEVICE1019": {35385
+ "algorithms": [35386
+ "m.olm.v1.curve25519-aes-sha2",35387
+ "m.megolm.v1.aes-sha2"35388
+ ],35389
+ "device_id": "ALICEDEVICE1019",35390
+ "keys": {35391
+ "curve25519:ALICEDEVICE1019": "TGNsgqOk/ndRSA2gQ3j2eT1TCUxA51luWdEYfdNWDBs",35392
+ "ed25519:ALICEDEVICE1019": "a/FB0IkIGkY4/f5AfQK3mNfp5LmsXkx0YDVG+UlspVI"35393
+ },35394
+ "signatures": {35395
+ "@alice_1019:hs1": {35396
+ "ed25519:ALICEDEVICE1019": "qdZHTVs/xc0U9nN7G9Jkwj8cIuVcadOXcFnZ75N4xeiF5vLv6jfEKpYRCTugqhwKUCzbhC/8/vWMuMKAKLiUDQ"35397
+ }35398
+ },35399
+ "user_id": "@alice_1019:hs1",35400
+ "unsigned": {}35401
+ }35402
+ },35403
+ "@alice_1028:hs1": {35404
+ "ALICEDEVICE1028": {35405
+ "algorithms": [35406
+ "m.olm.v1.curve25519-aes-sha2",35407
+ "m.megolm.v1.aes-sha2"35408
+ ],35409
+ "device_id": "ALICEDEVICE1028",35410
+ "keys": {35411
+ "curve25519:ALICEDEVICE1028": "Krir62oxa8Eo93QZKm84UUG5y5tjHTAkPdDZnLrIgGk",35412
+ "ed25519:ALICEDEVICE1028": "0NjUWODAhn3fNLI1qj6yrvpBqAEsakZMWq+6BfbqkQY"35413
+ },35414
+ "signatures": {35415
+ "@alice_1028:hs1": {35416
+ "ed25519:ALICEDEVICE1028": "o/LzAW0Q55cZ0c15Yr685nFO7ZKrfyOHWSXpLpjY1YmSKOdvv9A6mvyr65iZRsgDPWRlynWGMdOTyTqZAwotCg"35417
+ }35418
+ },35419
+ "user_id": "@alice_1028:hs1",35420
+ "unsigned": {}35421
+ }35422
+ },35423
+ "@alice_1032:hs1": {35424
+ "ALICEDEVICE1032": {35425
+ "algorithms": [35426
+ "m.olm.v1.curve25519-aes-sha2",35427
+ "m.megolm.v1.aes-sha2"35428
+ ],35429
+ "device_id": "ALICEDEVICE1032",35430
+ "keys": {35431
+ "curve25519:ALICEDEVICE1032": "lvvyhCjbnChi17OoeR+laROnR74Xi1EHluoRzZg4/zY",35432
+ "ed25519:ALICEDEVICE1032": "X+6f145oqtXWY+9KeuqIdukxH538E6In/TMWcCP1vu8"35433
+ },35434
+ "signatures": {35435
+ "@alice_1032:hs1": {35436
+ "ed25519:ALICEDEVICE1032": "ZSc/pMI3Gmbhp2a7xDo3kVuZWEuk/28GdbqN3MYxp5x+lazP/rdsQoT4QKZOELoHlZwRbv2lm4okTWrAlPC8Dg"35437
+ }35438
+ },35439
+ "user_id": "@alice_1032:hs1",35440
+ "unsigned": {}35441
+ }35442
+ },35443
+ "@alice_1043:hs1": {35444
+ "ALICEDEVICE1043": {35445
+ "algorithms": [35446
+ "m.olm.v1.curve25519-aes-sha2",35447
+ "m.megolm.v1.aes-sha2"35448
+ ],35449
+ "device_id": "ALICEDEVICE1043",35450
+ "keys": {35451
+ "curve25519:ALICEDEVICE1043": "ZHgZuuf8pbDwLIwECKxteuPGZ3H+n7+eTeevTcq5jGI",35452
+ "ed25519:ALICEDEVICE1043": "TobFZNp6pyzSdLu2tfVpOrsULjrPZmIshE8nsPXEhvQ"35453
+ },35454
+ "signatures": {35455
+ "@alice_1043:hs1": {35456
+ "ed25519:ALICEDEVICE1043": "3dDQRIAa8W6B+yj+EWMhc/Hs8SW7yTlPPTCLCBpswh2q6k8hPaeg+q3e/IU+dJLQsHnEtSOK0aFoxpqtcGziCg"35457
+ }35458
+ },35459
+ "user_id": "@alice_1043:hs1",35460
+ "unsigned": {}35461
+ }35462
+ },35463
+ "@alice_104:hs1": {35464
+ "ALICEDEVICE104": {35465
+ "algorithms": [35466
+ "m.olm.v1.curve25519-aes-sha2",35467
+ "m.megolm.v1.aes-sha2"35468
+ ],35469
+ "device_id": "ALICEDEVICE104",35470
+ "keys": {35471
+ "curve25519:ALICEDEVICE104": "4PsOxPRjG3OeYih+cpRJUrW1u7rPSpwZnkzbr52icCg",35472
+ "ed25519:ALICEDEVICE104": "nYwj7ItvzhKA4QA89xT3g1+xHzDUh5a29a0E7ACh5ko"35473
+ },35474
+ "signatures": {35475
+ "@alice_104:hs1": {35476
+ "ed25519:ALICEDEVICE104": "C9p7f5GMo+DXMxqCrv63ONeZmDRJCFErT4qrcUSP9znDwoWkqK4Fixhs66OkhhDPoTeIorfMxYxCciSeGMgwDA"35477
+ }35478
+ },35479
+ "user_id": "@alice_104:hs1",35480
+ "unsigned": {}35481
+ }35482
+ },35483
+ "@alice_1050:hs1": {35484
+ "ALICEDEVICE1050": {35485
+ "algorithms": [35486
+ "m.olm.v1.curve25519-aes-sha2",35487
+ "m.megolm.v1.aes-sha2"35488
+ ],35489
+ "device_id": "ALICEDEVICE1050",35490
+ "keys": {35491
+ "curve25519:ALICEDEVICE1050": "TnRlJ6ZSby1cG47Y2xkF7KXpmtBwSkPIwsNN+OZYDxI",35492
+ "ed25519:ALICEDEVICE1050": "K1cyOZwD/zq1tTYM9E5tUhswDIVOtU+YftaSCNb2Hg0"35493
+ },35494
+ "signatures": {35495
+ "@alice_1050:hs1": {35496
+ "ed25519:ALICEDEVICE1050": "i67ydtej/HB6MdzGFHwDWQ7dV7fPLMTsUnT6k730S1QCIZFinFlHz1bGWXQ9PPUUAx1KbgX7KfIpo43bY+6iAw"35497
+ }35498
+ },35499
+ "user_id": "@alice_1050:hs1",35500
+ "unsigned": {}35501
+ }35502
+ },35503
+ "@alice_1051:hs1": {35504
+ "ALICEDEVICE1051": {35505
+ "algorithms": [35506
+ "m.olm.v1.curve25519-aes-sha2",35507
+ "m.megolm.v1.aes-sha2"35508
+ ],35509
+ "device_id": "ALICEDEVICE1051",35510
+ "keys": {35511
+ "curve25519:ALICEDEVICE1051": "gWjjicEdTsjqFQMvr+WlruIzqLi7UsAtrRXgtE6ikF0",35512
+ "ed25519:ALICEDEVICE1051": "f8f95N6gGKeK6yqUuoNPwZEj+4Ep2DsOZgVDiuGVlM0"35513
+ },35514
+ "signatures": {35515
+ "@alice_1051:hs1": {35516
+ "ed25519:ALICEDEVICE1051": "h0JCHe3AntZkuY9v+7nmTOwsUtoH5wu5/jMLuF0dBsKjJ/+TR43FbX63S1zyjd0k2OsVFne3nmGBfMOZh39UDQ"35517
+ }35518
+ },35519
+ "user_id": "@alice_1051:hs1",35520
+ "unsigned": {}35521
+ }35522
+ },35523
+ "@alice_1061:hs1": {35524
+ "ALICEDEVICE1061": {35525
+ "algorithms": [35526
+ "m.olm.v1.curve25519-aes-sha2",35527
+ "m.megolm.v1.aes-sha2"35528
+ ],35529
+ "device_id": "ALICEDEVICE1061",35530
+ "keys": {35531
+ "curve25519:ALICEDEVICE1061": "ALRXGuBSxpOkq2p+HxTYRa9bWPd4b5/Sm1Z4CTTCjQE",35532
+ "ed25519:ALICEDEVICE1061": "PFVcs9JtPzQzKLO8HU/lK8ztKWRK3w9sTKABOGD56iw"35533
+ },35534
+ "signatures": {35535
+ "@alice_1061:hs1": {35536
+ "ed25519:ALICEDEVICE1061": "HzamEeek5kl/XMI7smxfqBy8Ou2XEuddQUTs684Kw2aF/n0MojdqgIC68fK1b4rEfi+Q48Ls+Ab2j1Sm2NDTDA"35537
+ }35538
+ },35539
+ "user_id": "@alice_1061:hs1",35540
+ "unsigned": {}35541
+ }35542
+ },35543
+ "@alice_108:hs1": {35544
+ "ALICEDEVICE108": {35545
+ "algorithms": [35546
+ "m.olm.v1.curve25519-aes-sha2",35547
+ "m.megolm.v1.aes-sha2"35548
+ ],35549
+ "device_id": "ALICEDEVICE108",35550
+ "keys": {35551
+ "curve25519:ALICEDEVICE108": "61w7YinSfr4IAyHzYJabEXKZOZV3MHTt3ygzpgRQ0kQ",35552
+ "ed25519:ALICEDEVICE108": "QrvDVCjkGaD4lhML6l3T1iOOSwhXAfXG+aF4UH/TXVk"35553
+ },35554
+ "signatures": {35555
+ "@alice_108:hs1": {35556
+ "ed25519:ALICEDEVICE108": "UwPRvDQpzDxXdzqhj6S9bffJYlxsKuS1yKtnFO1EPKJq/zXE2nwsA4nKCiWP1pR/6ZnK/ZqBmEjoSe+sQeLqDQ"35557
+ }35558
+ },35559
+ "user_id": "@alice_108:hs1",35560
+ "unsigned": {}35561
+ }35562
+ },35563
+ "@alice_1091:hs1": {35564
+ "ALICEDEVICE1091": {35565
+ "algorithms": [35566
+ "m.olm.v1.curve25519-aes-sha2",35567
+ "m.megolm.v1.aes-sha2"35568
+ ],35569
+ "device_id": "ALICEDEVICE1091",35570
+ "keys": {35571
+ "curve25519:ALICEDEVICE1091": "NyG/wQDeCnVIksdr8RhYlSfUR3omPSJJykWYJzoYlj8",35572
+ "ed25519:ALICEDEVICE1091": "cWxFu624ucVdfOvx6VFunHcXOPOG3ATxiLiOeudIRec"35573
+ },35574
+ "signatures": {35575
+ "@alice_1091:hs1": {35576
+ "ed25519:ALICEDEVICE1091": "xMSguxBnXItrmjGKyqSf0frY9+OuP0w+jhI1uleznIv/SC0LoVRX3s2+7OTuIGCtLKKaf93M8I7HU2lBujHeBw"35577
+ }35578
+ },35579
+ "user_id": "@alice_1091:hs1",35580
+ "unsigned": {}35581
+ }35582
+ },35583
+ "@alice_1093:hs1": {35584
+ "ALICEDEVICE1093": {35585
+ "algorithms": [35586
+ "m.olm.v1.curve25519-aes-sha2",35587
+ "m.megolm.v1.aes-sha2"35588
+ ],35589
+ "device_id": "ALICEDEVICE1093",35590
+ "keys": {35591
+ "curve25519:ALICEDEVICE1093": "3MwOjdvcdBvl2PW9NB39H2xbD8GEz+xHMyL1elrSaHQ",35592
+ "ed25519:ALICEDEVICE1093": "jChBhWgEEJUbBjNgnOxluT27aYCrXd+T46LZu4QtHoU"35593
+ },35594
+ "signatures": {35595
+ "@alice_1093:hs1": {35596
+ "ed25519:ALICEDEVICE1093": "REGjkeVDmash1ysLe6Xul8aaJj+VN04ET837BDhVbh4ro4n8nyfvzabca4a0y4K878QLiMfXWzs4IzYvF4E2DQ"35597
+ }35598
+ },35599
+ "user_id": "@alice_1093:hs1",35600
+ "unsigned": {}35601
+ }35602
+ },35603
+ "@alice_1099:hs1": {35604
+ "ALICEDEVICE1099": {35605
+ "algorithms": [35606
+ "m.olm.v1.curve25519-aes-sha2",35607
+ "m.megolm.v1.aes-sha2"35608
+ ],35609
+ "device_id": "ALICEDEVICE1099",35610
+ "keys": {35611
+ "curve25519:ALICEDEVICE1099": "pqYLPlxqHcppJtthhioQGjR7Y0Mz4bmyM3rUNvGnKFY",35612
+ "ed25519:ALICEDEVICE1099": "1XXYr+S2Hf6lBwQbdZS2/QNi8zbmqFYES3U3GbKhtzA"35613
+ },35614
+ "signatures": {35615
+ "@alice_1099:hs1": {35616
+ "ed25519:ALICEDEVICE1099": "xi93xepiJTxVl4b3YUzjQbleIuPOyqNWjeFDZNq2ywjZM7We5rBhjbuveDu4Y+ysNb2ll+vYc4/yS/6/bGb0CQ"35617
+ }35618
+ },35619
+ "user_id": "@alice_1099:hs1",35620
+ "unsigned": {}35621
+ }35622
+ },35623
+ "@alice_1104:hs1": {35624
+ "ALICEDEVICE1104": {35625
+ "algorithms": [35626
+ "m.olm.v1.curve25519-aes-sha2",35627
+ "m.megolm.v1.aes-sha2"35628
+ ],35629
+ "device_id": "ALICEDEVICE1104",35630
+ "keys": {35631
+ "curve25519:ALICEDEVICE1104": "KJ0nMKik3QcxfDrii1KjZT8yca7MQEOxdt8FHjdRYRA",35632
+ "ed25519:ALICEDEVICE1104": "jZufpa/S/bDty6N/M4WpP2X6pnJF1n7GJMUVKXTIE1o"35633
+ },35634
+ "signatures": {35635
+ "@alice_1104:hs1": {35636
+ "ed25519:ALICEDEVICE1104": "G4ScXD39OXgsz6vEXMQTWnNJgCo+hqf0N3abjivF3BNHAzMLDDJdiAGgUbmfBeIKTHgkBuiBL7N3tpGTYnUWAQ"35637
+ }35638
+ },35639
+ "user_id": "@alice_1104:hs1",35640
+ "unsigned": {}35641
+ }35642
+ },35643
+ "@alice_1110:hs1": {35644
+ "ALICEDEVICE1110": {35645
+ "algorithms": [35646
+ "m.olm.v1.curve25519-aes-sha2",35647
+ "m.megolm.v1.aes-sha2"35648
+ ],35649
+ "device_id": "ALICEDEVICE1110",35650
+ "keys": {35651
+ "curve25519:ALICEDEVICE1110": "h9q9wsJf+d+HN5Nl5gnkw6zXX8bRavX8tXqbIhYIMhw",35652
+ "ed25519:ALICEDEVICE1110": "r5q+OM293ljFp4DZv5ooMFblMqpRwYtP3VBGx1uZhHY"35653
+ },35654
+ "signatures": {35655
+ "@alice_1110:hs1": {35656
+ "ed25519:ALICEDEVICE1110": "8lUY+ia3sV7eHlLoD9xtccfNDsu8l8NTvB11r/0xu710rRj2hE4WeUChtQjAlRsdvLh0Z4/H72Otz2+vtPBbAQ"35657
+ }35658
+ },35659
+ "user_id": "@alice_1110:hs1",35660
+ "unsigned": {}35661
+ }35662
+ },35663
+ "@alice_1113:hs1": {35664
+ "ALICEDEVICE1113": {35665
+ "algorithms": [35666
+ "m.olm.v1.curve25519-aes-sha2",35667
+ "m.megolm.v1.aes-sha2"35668
+ ],35669
+ "device_id": "ALICEDEVICE1113",35670
+ "keys": {35671
+ "curve25519:ALICEDEVICE1113": "AbZaq/M4NTgcH+V/ZLvRX2Y/GCnuAPRqx7AjMjP2024",35672
+ "ed25519:ALICEDEVICE1113": "VJF91WZKEPBWxXbu73ZMhbdHkaKi3ihrZ0r0UCG6fRk"35673
+ },35674
+ "signatures": {35675
+ "@alice_1113:hs1": {35676
+ "ed25519:ALICEDEVICE1113": "sJiH+DfBD5nyCdbyMgaqK01uABzT4rcmdN4j90GR8eKHOM7qmS03qb6XMIzuPBdZHo70IXDFWWCQaCM349c8BQ"35677
+ }35678
+ },35679
+ "user_id": "@alice_1113:hs1",35680
+ "unsigned": {}35681
+ }35682
+ },35683
+ "@alice_1116:hs1": {35684
+ "ALICEDEVICE1116": {35685
+ "algorithms": [35686
+ "m.olm.v1.curve25519-aes-sha2",35687
+ "m.megolm.v1.aes-sha2"35688
+ ],35689
+ "device_id": "ALICEDEVICE1116",35690
+ "keys": {35691
+ "curve25519:ALICEDEVICE1116": "tky/mificBFNlRlIc8D+SzB31AzS30DqHjCXYDpHxQI",35692
+ "ed25519:ALICEDEVICE1116": "WVdQxlKmzXRpa7syP6RrT2AEfEF5KZiTVEljxR+dUvg"35693
+ },35694
+ "signatures": {35695
+ "@alice_1116:hs1": {35696
+ "ed25519:ALICEDEVICE1116": "Sfv8IG9XDuiydrTYEIUjnaIW+jpPRUUMQ+LQqqoEa39rqserAMDp5BkkAyatliaRcPqEXVyUTNJHixxnblufBg"35697
+ }35698
+ },35699
+ "user_id": "@alice_1116:hs1",35700
+ "unsigned": {}35701
+ }35702
+ },35703
+ "@alice_1119:hs1": {35704
+ "ALICEDEVICE1119": {35705
+ "algorithms": [35706
+ "m.olm.v1.curve25519-aes-sha2",35707
+ "m.megolm.v1.aes-sha2"35708
+ ],35709
+ "device_id": "ALICEDEVICE1119",35710
+ "keys": {35711
+ "curve25519:ALICEDEVICE1119": "a4XHW0WmDQFIOhf/FmpVDcRT1RoidpPOIIlPsWkC/mE",35712
+ "ed25519:ALICEDEVICE1119": "wTrZW5tyUUOUnPiQLQF2Y0Aq2YqYMvKFcg6sCevvBbA"35713
+ },35714
+ "signatures": {35715
+ "@alice_1119:hs1": {35716
+ "ed25519:ALICEDEVICE1119": "n09KGF8SuYyqtfKHZ7MQc996LMMwDgQUbz4/E4047s9ChSU6d1KnF6g3I1K72JFRNtO5D2uP1LolhlLpFkm+Cg"35717
+ }35718
+ },35719
+ "user_id": "@alice_1119:hs1",35720
+ "unsigned": {}35721
+ }35722
+ },35723
+ "@alice_111:hs1": {35724
+ "ALICEDEVICE111": {35725
+ "algorithms": [35726
+ "m.olm.v1.curve25519-aes-sha2",35727
+ "m.megolm.v1.aes-sha2"35728
+ ],35729
+ "device_id": "ALICEDEVICE111",35730
+ "keys": {35731
+ "curve25519:ALICEDEVICE111": "Ig4KFgrD1AIPKQNbIX9ScbviESv1oMfhMCPp7p6oT1o",35732
+ "ed25519:ALICEDEVICE111": "w/xECPpn2qHz3qwmtpRWsPaiadj7Fet+wWxNOvn0A/E"35733
+ },35734
+ "signatures": {35735
+ "@alice_111:hs1": {35736
+ "ed25519:ALICEDEVICE111": "VxA7+dhewtzN6uYNrmaiOSc8x43wL98Nv1odnFozDobqrwEfEmx0rsOoifUq1u84XmaUOyHf+N8EKgYfAOH+Cw"35737
+ }35738
+ },35739
+ "user_id": "@alice_111:hs1",35740
+ "unsigned": {}35741
+ }35742
+ },35743
+ "@alice_1124:hs1": {35744
+ "ALICEDEVICE1124": {35745
+ "algorithms": [35746
+ "m.olm.v1.curve25519-aes-sha2",35747
+ "m.megolm.v1.aes-sha2"35748
+ ],35749
+ "device_id": "ALICEDEVICE1124",35750
+ "keys": {35751
+ "curve25519:ALICEDEVICE1124": "HiJb2Se1FuqPwq2nszIzzbahQ7nAB633KA6pRdV44Aw",35752
+ "ed25519:ALICEDEVICE1124": "JxGWBdN0XaK/nYpjOzGDUXI2LRQnZ4drsMRzdxs5nq8"35753
+ },35754
+ "signatures": {35755
+ "@alice_1124:hs1": {35756
+ "ed25519:ALICEDEVICE1124": "WK0FQ0CYF/P1VOppUmm7G996teUOhb4Q02E3yGH9/Gm4SQ5UvEKEU4kuWuh7h4/p7tUBz/t3xl1WFnDj8sHxCg"35757
+ }35758
+ },35759
+ "user_id": "@alice_1124:hs1",35760
+ "unsigned": {}35761
+ }35762
+ },35763
+ "@alice_1137:hs1": {35764
+ "ALICEDEVICE1137": {35765
+ "algorithms": [35766
+ "m.olm.v1.curve25519-aes-sha2",35767
+ "m.megolm.v1.aes-sha2"35768
+ ],35769
+ "device_id": "ALICEDEVICE1137",35770
+ "keys": {35771
+ "curve25519:ALICEDEVICE1137": "v9W8Dv4g4ugdk1M+nhroXfrxeU6JhdPjoX2RBQWuQzU",35772
+ "ed25519:ALICEDEVICE1137": "c2AH/ybbF6sL6ugE9FrGkH3GddWzvpG3At8IGCPj8mU"35773
+ },35774
+ "signatures": {35775
+ "@alice_1137:hs1": {35776
+ "ed25519:ALICEDEVICE1137": "9yvBXRJsSDyv6SX9I8c/+jIPbl4Ji4yQtM9N2E3ID4ISa1ewxnckTl4XB2X1mpc8XCMMkahlUiK2kv24WC/ZCA"35777
+ }35778
+ },35779
+ "user_id": "@alice_1137:hs1",35780
+ "unsigned": {}35781
+ }35782
+ },35783
+ "@alice_1140:hs1": {35784
+ "ALICEDEVICE1140": {35785
+ "algorithms": [35786
+ "m.olm.v1.curve25519-aes-sha2",35787
+ "m.megolm.v1.aes-sha2"35788
+ ],35789
+ "device_id": "ALICEDEVICE1140",35790
+ "keys": {35791
+ "curve25519:ALICEDEVICE1140": "CGNpDu0XQfw+MLWdnuke5sgCQe7WNnUKOTFL4IZ6uwY",35792
+ "ed25519:ALICEDEVICE1140": "8kZWra+jSoJF3mzFCGIRsEmsHzzFsszIuVXDgpw5EUc"35793
+ },35794
+ "signatures": {35795
+ "@alice_1140:hs1": {35796
+ "ed25519:ALICEDEVICE1140": "FlzGkMWewlRlh69YXKc7SzjbquCYbIjGLT/nsnRm4tXnyd9enrG6/FtIGdzJy6gCI2qVsWK5T6YXKF0CA4TQDw"35797
+ }35798
+ },35799
+ "user_id": "@alice_1140:hs1",35800
+ "unsigned": {}35801
+ }35802
+ },35803
+ "@alice_1141:hs1": {35804
+ "ALICEDEVICE1141": {35805
+ "algorithms": [35806
+ "m.olm.v1.curve25519-aes-sha2",35807
+ "m.megolm.v1.aes-sha2"35808
+ ],35809
+ "device_id": "ALICEDEVICE1141",35810
+ "keys": {35811
+ "curve25519:ALICEDEVICE1141": "tGKVz9S4JuQd4s5NDcyrVS+kC4ORjSn3IkyTSVRQuUM",35812
+ "ed25519:ALICEDEVICE1141": "hjOvygbyIPODzFySXxZCodFYL/1/X+TdnnBUcLaSdlg"35813
+ },35814
+ "signatures": {35815
+ "@alice_1141:hs1": {35816
+ "ed25519:ALICEDEVICE1141": "dWa4NGFbpLEbziPlCqaEIn9kPOsrKnYil+1w49xnA3i+H7ng+2wSV+luu0jwU+8HZi44rTHNg89Y16alAWZcCA"35817
+ }35818
+ },35819
+ "user_id": "@alice_1141:hs1",35820
+ "unsigned": {}35821
+ }35822
+ },35823
+ "@alice_1152:hs1": {35824
+ "ALICEDEVICE1152": {35825
+ "algorithms": [35826
+ "m.olm.v1.curve25519-aes-sha2",35827
+ "m.megolm.v1.aes-sha2"35828
+ ],35829
+ "device_id": "ALICEDEVICE1152",35830
+ "keys": {35831
+ "curve25519:ALICEDEVICE1152": "23b7wnugfGwbMEP33DqbcZccViYgDBTLybNwlmwoRFY",35832
+ "ed25519:ALICEDEVICE1152": "gVVGVVFcsWDSvIvVx1xzf5IRs9EKoi1KSch2LcM0mZc"35833
+ },35834
+ "signatures": {35835
+ "@alice_1152:hs1": {35836
+ "ed25519:ALICEDEVICE1152": "y62izFHYVFoc6g3/9crN+Fi2FnkEL2oQVgic7YXTXuKKGu1LyABiq8PlClpz+OI9cQrOkDahyFAudwxN+TkVBQ"35837
+ }35838
+ },35839
+ "user_id": "@alice_1152:hs1",35840
+ "unsigned": {}35841
+ }35842
+ },35843
+ "@alice_1153:hs1": {35844
+ "ALICEDEVICE1153": {35845
+ "algorithms": [35846
+ "m.olm.v1.curve25519-aes-sha2",35847
+ "m.megolm.v1.aes-sha2"35848
+ ],35849
+ "device_id": "ALICEDEVICE1153",35850
+ "keys": {35851
+ "curve25519:ALICEDEVICE1153": "tEpisxj+kM4iSeF1fNnThju2wPsOYIzyK2lz3mb0Ri0",35852
+ "ed25519:ALICEDEVICE1153": "hvxbc2ZXohpsvH5H6mzU9MNrCNXcOlJwsmrMc2CKPTo"35853
+ },35854
+ "signatures": {35855
+ "@alice_1153:hs1": {35856
+ "ed25519:ALICEDEVICE1153": "dHjTYvQi3DnspjAMnCL4aD/sS5+veyYFtwschzySufb8JSuchaL0WvNdAr5Q/f3O8D2IC4fi9S7Z7fj9Q773Dw"35857
+ }35858
+ },35859
+ "user_id": "@alice_1153:hs1",35860
+ "unsigned": {}35861
+ }35862
+ },35863
+ "@alice_1164:hs1": {35864
+ "ALICEDEVICE1164": {35865
+ "algorithms": [35866
+ "m.olm.v1.curve25519-aes-sha2",35867
+ "m.megolm.v1.aes-sha2"35868
+ ],35869
+ "device_id": "ALICEDEVICE1164",35870
+ "keys": {35871
+ "curve25519:ALICEDEVICE1164": "7tHdMXmHN+1pYB16+G+TN4Cadx2OtiTIr9pNewohDmY",35872
+ "ed25519:ALICEDEVICE1164": "QrrHuLKrTnZa9sXwR4IwpKW+f7EU8Pzv2qbgJ8A+Q/k"35873
+ },35874
+ "signatures": {35875
+ "@alice_1164:hs1": {35876
+ "ed25519:ALICEDEVICE1164": "a6rgulVu/pBunWQW4ROLzHArivWPkIDl4UlZ0EVC7KMnVvoSm0HfYbERfERcFTb+sQIl6++My1ABZ5L06V7vAA"35877
+ }35878
+ },35879
+ "user_id": "@alice_1164:hs1",35880
+ "unsigned": {}35881
+ }35882
+ },35883
+ "@alice_1167:hs1": {35884
+ "ALICEDEVICE1167": {35885
+ "algorithms": [35886
+ "m.olm.v1.curve25519-aes-sha2",35887
+ "m.megolm.v1.aes-sha2"35888
+ ],35889
+ "device_id": "ALICEDEVICE1167",35890
+ "keys": {35891
+ "curve25519:ALICEDEVICE1167": "DKxYTqTSgpWvRp/iLF/DQBMUdGS6wLrlh7waPHyQBRU",35892
+ "ed25519:ALICEDEVICE1167": "Al3Urhr7BzJ4xiFGo4fhsohKpxKAWWj1gy6j7E74bT4"35893
+ },35894
+ "signatures": {35895
+ "@alice_1167:hs1": {35896
+ "ed25519:ALICEDEVICE1167": "HSeGt+MRS+uHcKcrhAXfVKfba4IzLHYpRz0qDBltrww9GEucVirAvHp0XJo3qcK7QvulcfU3P0UDuMCoSLVQCA"35897
+ }35898
+ },35899
+ "user_id": "@alice_1167:hs1",35900
+ "unsigned": {}35901
+ }35902
+ },35903
+ "@alice_1175:hs1": {35904
+ "ALICEDEVICE1175": {35905
+ "algorithms": [35906
+ "m.olm.v1.curve25519-aes-sha2",35907
+ "m.megolm.v1.aes-sha2"35908
+ ],35909
+ "device_id": "ALICEDEVICE1175",35910
+ "keys": {35911
+ "curve25519:ALICEDEVICE1175": "DiK3szluegEzgJ50w665Qoay9a8+GafTj6r3QxxwhzI",35912
+ "ed25519:ALICEDEVICE1175": "bLzL8LHcIuYJ4fj4w2H9M3N9rSEw41CknqyPc8KmOvo"35913
+ },35914
+ "signatures": {35915
+ "@alice_1175:hs1": {35916
+ "ed25519:ALICEDEVICE1175": "vJYobaB4Ns69mcRgzV9clK4qEVBkZMKTy9JrNyXLnflkqGXpNDuwil7oUdWD4dEKkGp12ZOn/heDAd44cxFrBg"35917
+ }35918
+ },35919
+ "user_id": "@alice_1175:hs1",35920
+ "unsigned": {}35921
+ }35922
+ },35923
+ "@alice_1176:hs1": {35924
+ "ALICEDEVICE1176": {35925
+ "algorithms": [35926
+ "m.olm.v1.curve25519-aes-sha2",35927
+ "m.megolm.v1.aes-sha2"35928
+ ],35929
+ "device_id": "ALICEDEVICE1176",35930
+ "keys": {35931
+ "curve25519:ALICEDEVICE1176": "CE0NpWJByALkuH1P8YQILb4zrfTTY8rbqSXJ9ZhJ2mU",35932
+ "ed25519:ALICEDEVICE1176": "Mc9V5Srkqvo7liWARrpC2SfyjiadTwiaQHdipoHSRCM"35933
+ },35934
+ "signatures": {35935
+ "@alice_1176:hs1": {35936
+ "ed25519:ALICEDEVICE1176": "2J6tzM7E4V6CUStscQzNZO7zzBPKRkArV9wIxiZOhcLoqbD7XF9+BB06U8A4y+IW3BE05bz0TMJAT3HpieTjAQ"35937
+ }35938
+ },35939
+ "user_id": "@alice_1176:hs1",35940
+ "unsigned": {}35941
+ }35942
+ },35943
+ "@alice_1195:hs1": {35944
+ "ALICEDEVICE1195": {35945
+ "algorithms": [35946
+ "m.olm.v1.curve25519-aes-sha2",35947
+ "m.megolm.v1.aes-sha2"35948
+ ],35949
+ "device_id": "ALICEDEVICE1195",35950
+ "keys": {35951
+ "curve25519:ALICEDEVICE1195": "cEikMN7aNGDr/bUnEclgSwZX7HboscHLRNEub14ERlU",35952
+ "ed25519:ALICEDEVICE1195": "3aDIxWKs716ZOnHR1wLvIb6AHZWj7OJfn2X2FajxLek"35953
+ },35954
+ "signatures": {35955
+ "@alice_1195:hs1": {35956
+ "ed25519:ALICEDEVICE1195": "eOkY3uRvo+eJKR4CeMa4YWRLqtVA864E08leI8CQi8YZPPUaQo/YkRt59xcWx1QWOC9nTw0csX1cKTa1XW9rDg"35957
+ }35958
+ },35959
+ "user_id": "@alice_1195:hs1",35960
+ "unsigned": {}35961
+ }35962
+ },35963
+ "@alice_1199:hs1": {35964
+ "ALICEDEVICE1199": {35965
+ "algorithms": [35966
+ "m.olm.v1.curve25519-aes-sha2",35967
+ "m.megolm.v1.aes-sha2"35968
+ ],35969
+ "device_id": "ALICEDEVICE1199",35970
+ "keys": {35971
+ "curve25519:ALICEDEVICE1199": "ofci4LW6uv6Y2I9cojmYPYclSD1k2+mlyvR7p4a+1BE",35972
+ "ed25519:ALICEDEVICE1199": "0S7ivKwJ/7WLJ30YweXEiX6pIJLXxp717GANJaLoRaM"35973
+ },35974
+ "signatures": {35975
+ "@alice_1199:hs1": {35976
+ "ed25519:ALICEDEVICE1199": "4cWW+XaFI7taOTygr6rM7y4s+QUuzVpWUxFzh6Iru9q7/DPIpkY5ZxExZ6mWWUHIXICeaFrEk4KXK71Pa9uhCQ"35977
+ }35978
+ },35979
+ "user_id": "@alice_1199:hs1",35980
+ "unsigned": {}35981
+ }35982
+ },35983
+ "@alice_1210:hs1": {35984
+ "ALICEDEVICE1210": {35985
+ "algorithms": [35986
+ "m.olm.v1.curve25519-aes-sha2",35987
+ "m.megolm.v1.aes-sha2"35988
+ ],35989
+ "device_id": "ALICEDEVICE1210",35990
+ "keys": {35991
+ "curve25519:ALICEDEVICE1210": "T70vloE4dUV+WG9/hI9bJ5ogWLTJMIIRqVLMRSCjXBs",35992
+ "ed25519:ALICEDEVICE1210": "aWfcGehw30xm9zB8vqzs++UsJyOV/Iz/W2WOLzTNfXI"35993
+ },35994
+ "signatures": {35995
+ "@alice_1210:hs1": {35996
+ "ed25519:ALICEDEVICE1210": "bja94nQMiL5PELg5IFYMkHO4EUelz5e6u+Ck/fW1qFNhkjogwAO0z8S2OwWJo0qgXsEuS4Xlp8jJk/IMqVO5AQ"35997
+ }35998
+ },35999
+ "user_id": "@alice_1210:hs1",36000
+ "unsigned": {}36001
+ }36002
+ },36003
+ "@alice_1216:hs1": {36004
+ "ALICEDEVICE1216": {36005
+ "algorithms": [36006
+ "m.olm.v1.curve25519-aes-sha2",36007
+ "m.megolm.v1.aes-sha2"36008
+ ],36009
+ "device_id": "ALICEDEVICE1216",36010
+ "keys": {36011
+ "curve25519:ALICEDEVICE1216": "awmfydg8C1/NBLFBq2fjTTngP9+zFlOXo/cZV0j+JF4",36012
+ "ed25519:ALICEDEVICE1216": "s0uRmriFirX7TspN4hgmK/3j8W3iZWaIkEvswksCUxw"36013
+ },36014
+ "signatures": {36015
+ "@alice_1216:hs1": {36016
+ "ed25519:ALICEDEVICE1216": "HZMoUhPkWRQlMyDDC7j9dAqkvCVvHdG2le7ViNNFlDA72/IUlYbHhXOeB2M66h51xsK4ZEx2JbXkTHjQU69eAQ"36017
+ }36018
+ },36019
+ "user_id": "@alice_1216:hs1",36020
+ "unsigned": {}36021
+ }36022
+ },36023
+ "@alice_1218:hs1": {36024
+ "ALICEDEVICE1218": {36025
+ "algorithms": [36026
+ "m.olm.v1.curve25519-aes-sha2",36027
+ "m.megolm.v1.aes-sha2"36028
+ ],36029
+ "device_id": "ALICEDEVICE1218",36030
+ "keys": {36031
+ "curve25519:ALICEDEVICE1218": "Y7dv69Py7QncmhcQ31ZTNsXd6Dk6cLtnahuHPJ6vxGQ",36032
+ "ed25519:ALICEDEVICE1218": "vfAK1SZgrjA0KScpKxmP46u6KgAbos6kskZV5NCO0kM"36033
+ },36034
+ "signatures": {36035
+ "@alice_1218:hs1": {36036
+ "ed25519:ALICEDEVICE1218": "8QQTOEMNqf/hx3qhy6571M4kIDlLAW0GNzcIGMfrUvc60jJ9/SgyHlmXO2+pMEdjLC3WVGw+jA6oSNeGfqZIAA"36037
+ }36038
+ },36039
+ "user_id": "@alice_1218:hs1",36040
+ "unsigned": {}36041
+ }36042
+ },36043
+ "@alice_1223:hs1": {36044
+ "ALICEDEVICE1223": {36045
+ "algorithms": [36046
+ "m.olm.v1.curve25519-aes-sha2",36047
+ "m.megolm.v1.aes-sha2"36048
+ ],36049
+ "device_id": "ALICEDEVICE1223",36050
+ "keys": {36051
+ "curve25519:ALICEDEVICE1223": "0buBVA221M1Kku+D2z8WfOD/H8Pmy/avSq8Ryq9Cfjo",36052
+ "ed25519:ALICEDEVICE1223": "V3zF6aJH2waeZ+dbn9F/LpheWZHgXYHI+nzKkVXQ2fk"36053
+ },36054
+ "signatures": {36055
+ "@alice_1223:hs1": {36056
+ "ed25519:ALICEDEVICE1223": "wXWHCFe9T+GD2WZ9UtKOS6LyRgK4Pb+AhmZO1NyqAeaNXufPX2Z4jHvszYr5z4xUPGs4J2zVPMp+JHb+pkchAg"36057
+ }36058
+ },36059
+ "user_id": "@alice_1223:hs1",36060
+ "unsigned": {}36061
+ }36062
+ },36063
+ "@alice_1224:hs1": {36064
+ "ALICEDEVICE1224": {36065
+ "algorithms": [36066
+ "m.olm.v1.curve25519-aes-sha2",36067
+ "m.megolm.v1.aes-sha2"36068
+ ],36069
+ "device_id": "ALICEDEVICE1224",36070
+ "keys": {36071
+ "curve25519:ALICEDEVICE1224": "zgbRXkAlxoGpUj8ZjzMrG6jnqnFECHCS65323r2N9js",36072
+ "ed25519:ALICEDEVICE1224": "uiUaEV5UII0OUDtQ2kaWellwybRHYrWHcHNBxt4/0mo"36073
+ },36074
+ "signatures": {36075
+ "@alice_1224:hs1": {36076
+ "ed25519:ALICEDEVICE1224": "Tzo56Kj7ps40qyWSuucYA980W22TRcY8dc5fQrbgZbWoaTMJTVaLRqDi9yZIRV+yS2q61oQSlLTRUPkdSrF7Dw"36077
+ }36078
+ },36079
+ "user_id": "@alice_1224:hs1",36080
+ "unsigned": {}36081
+ }36082
+ },36083
+ "@alice_1225:hs1": {36084
+ "ALICEDEVICE1225": {36085
+ "algorithms": [36086
+ "m.olm.v1.curve25519-aes-sha2",36087
+ "m.megolm.v1.aes-sha2"36088
+ ],36089
+ "device_id": "ALICEDEVICE1225",36090
+ "keys": {36091
+ "curve25519:ALICEDEVICE1225": "IFVUCgqr1Aq+gKxNgtxUfHsQDgfUgeKAj1D2Db+YvSY",36092
+ "ed25519:ALICEDEVICE1225": "JhVGWn87R8u3zO1p3zSTrs3UhyPLXhhSnX11it592Z4"36093
+ },36094
+ "signatures": {36095
+ "@alice_1225:hs1": {36096
+ "ed25519:ALICEDEVICE1225": "/w8chsuKah525D07M6ZljDcBkg7BSbt9j83ATtpWvEiJmhDQSeGwYl4rj++dBaQjbWJ+u5b8lwVtEAL1DnxcCA"36097
+ }36098
+ },36099
+ "user_id": "@alice_1225:hs1",36100
+ "unsigned": {}36101
+ }36102
+ },36103
+ "@alice_1238:hs1": {36104
+ "ALICEDEVICE1238": {36105
+ "algorithms": [36106
+ "m.olm.v1.curve25519-aes-sha2",36107
+ "m.megolm.v1.aes-sha2"36108
+ ],36109
+ "device_id": "ALICEDEVICE1238",36110
+ "keys": {36111
+ "curve25519:ALICEDEVICE1238": "GUF/wxHnwuEQNQJKzxywS39bCrrKxAdTfxpg6PR1mQc",36112
+ "ed25519:ALICEDEVICE1238": "fAF9pEfRpRbZCCmss3ocH960a0FtISpnYjOhGbqWXfQ"36113
+ },36114
+ "signatures": {36115
+ "@alice_1238:hs1": {36116
+ "ed25519:ALICEDEVICE1238": "XUiFS3uvC9gau8BCgobr61EKZAl1gO3iyYntYsQyX5C7Z2BMyqiRs+fRGlGsBfbGvu6TcjFNADsh1mEpvkI0Ag"36117
+ }36118
+ },36119
+ "user_id": "@alice_1238:hs1",36120
+ "unsigned": {}36121
+ }36122
+ },36123
+ "@alice_1251:hs1": {36124
+ "ALICEDEVICE1251": {36125
+ "algorithms": [36126
+ "m.olm.v1.curve25519-aes-sha2",36127
+ "m.megolm.v1.aes-sha2"36128
+ ],36129
+ "device_id": "ALICEDEVICE1251",36130
+ "keys": {36131
+ "curve25519:ALICEDEVICE1251": "HgA9mwPwmXNz8GM4BYxXK9G8FfL31yVSVzGeCEKxj0M",36132
+ "ed25519:ALICEDEVICE1251": "KqdGHy81dmGOsNqGeQ/ftNBdV6OzSarYkfJnJFyQEv0"36133
+ },36134
+ "signatures": {36135
+ "@alice_1251:hs1": {36136
+ "ed25519:ALICEDEVICE1251": "Zu/8zyP3vlCuxjImWj6QMMK0hI15q7IW9p09bTQIdBEJgFy3jRhLwqdZMDx0xR4/9SqnLv75weSxcvLRUcyIDA"36137
+ }36138
+ },36139
+ "user_id": "@alice_1251:hs1",36140
+ "unsigned": {}36141
+ }36142
+ },36143
+ "@alice_1254:hs1": {36144
+ "ALICEDEVICE1254": {36145
+ "algorithms": [36146
+ "m.olm.v1.curve25519-aes-sha2",36147
+ "m.megolm.v1.aes-sha2"36148
+ ],36149
+ "device_id": "ALICEDEVICE1254",36150
+ "keys": {36151
+ "curve25519:ALICEDEVICE1254": "f3m8D1l8lwF71f/TFP66mo7qTlDcGIAlp97RquXd92Y",36152
+ "ed25519:ALICEDEVICE1254": "W1hiw36GXsurOBeZA8mWT2t8vZyER+9E4bAC1SAsxlQ"36153
+ },36154
+ "signatures": {36155
+ "@alice_1254:hs1": {36156
+ "ed25519:ALICEDEVICE1254": "E7TDIFenIGQyW9ikDTD1YBaS+st63AU+8WIqzsC5rlX4FOQm7xZDV56Ovt8Z0pWhhNZDobQOHXoBUi2ALL38Dg"36157
+ }36158
+ },36159
+ "user_id": "@alice_1254:hs1",36160
+ "unsigned": {}36161
+ }36162
+ },36163
+ "@alice_1262:hs1": {36164
+ "ALICEDEVICE1262": {36165
+ "algorithms": [36166
+ "m.olm.v1.curve25519-aes-sha2",36167
+ "m.megolm.v1.aes-sha2"36168
+ ],36169
+ "device_id": "ALICEDEVICE1262",36170
+ "keys": {36171
+ "curve25519:ALICEDEVICE1262": "S5g+y4jlqo+Q3mxV+p6VJ1hvndIdOb+59N9K6sRDD1M",36172
+ "ed25519:ALICEDEVICE1262": "jEHpwm55I1ajK7+/MXb0U1AF060Lips11EzOa40K4A0"36173
+ },36174
+ "signatures": {36175
+ "@alice_1262:hs1": {36176
+ "ed25519:ALICEDEVICE1262": "uCNdRtueN/JvSoUk3Z2e0ahWObSZU5Ym1pYW3NcBRl9xw1vZiJs52Lmi7eX2J27spVMhQwGR5QhwskW6Z2VLBA"36177
+ }36178
+ },36179
+ "user_id": "@alice_1262:hs1",36180
+ "unsigned": {}36181
+ }36182
+ },36183
+ "@alice_1275:hs1": {36184
+ "ALICEDEVICE1275": {36185
+ "algorithms": [36186
+ "m.olm.v1.curve25519-aes-sha2",36187
+ "m.megolm.v1.aes-sha2"36188
+ ],36189
+ "device_id": "ALICEDEVICE1275",36190
+ "keys": {36191
+ "curve25519:ALICEDEVICE1275": "6VgkfdMTiDKjd3qGeFXLKg4qjNWXBlx1Wfb9IsJhgjw",36192
+ "ed25519:ALICEDEVICE1275": "XlRbatfRx8zCkdBlnlr1VQO6aSu63EXa3cAin5apUG4"36193
+ },36194
+ "signatures": {36195
+ "@alice_1275:hs1": {36196
+ "ed25519:ALICEDEVICE1275": "IIscr+/JjpS8uHNQ8WI2zvW7P2ExR9RbZ3zQ5mN9j7O0eddNYAA6XGtvD3n1dQxdpFhpyByn+N/9MCqDnEVUCQ"36197
+ }36198
+ },36199
+ "user_id": "@alice_1275:hs1",36200
+ "unsigned": {}36201
+ }36202
+ },36203
+ "@alice_1280:hs1": {36204
+ "ALICEDEVICE1280": {36205
+ "algorithms": [36206
+ "m.olm.v1.curve25519-aes-sha2",36207
+ "m.megolm.v1.aes-sha2"36208
+ ],36209
+ "device_id": "ALICEDEVICE1280",36210
+ "keys": {36211
+ "curve25519:ALICEDEVICE1280": "Avo/EP1mW+NyZydYqRrX6IQau/OtBeoRhgz7j2Jx3k0",36212
+ "ed25519:ALICEDEVICE1280": "X0lFIqrJA6B/BAJKBtxtXJjnVJQ5/VEMNnEYUGo5700"36213
+ },36214
+ "signatures": {36215
+ "@alice_1280:hs1": {36216
+ "ed25519:ALICEDEVICE1280": "YOfDiMPq/T8K1QCfTDKXq4dLT25zofpAZzptwiE8OHSdiBTl4fLoWc5K3FbJgUqXwbbBAC/xU32/1kCSDikWBQ"36217
+ }36218
+ },36219
+ "user_id": "@alice_1280:hs1",36220
+ "unsigned": {}36221
+ }36222
+ },36223
+ "@alice_1316:hs1": {36224
+ "ALICEDEVICE1316": {36225
+ "algorithms": [36226
+ "m.olm.v1.curve25519-aes-sha2",36227
+ "m.megolm.v1.aes-sha2"36228
+ ],36229
+ "device_id": "ALICEDEVICE1316",36230
+ "keys": {36231
+ "curve25519:ALICEDEVICE1316": "fSeFjQa9LAebF9oKQtXArw2rFBMMSqLWE9HmR938WSQ",36232
+ "ed25519:ALICEDEVICE1316": "vdJFXDvW3pu29GpxwLg66JCOffZnOBrxN9VVwpsmDsM"36233
+ },36234
+ "signatures": {36235
+ "@alice_1316:hs1": {36236
+ "ed25519:ALICEDEVICE1316": "s3TOj8J6QyqtIwmOi2zeydmyYLlDidG3CepKZRD0Ftiz9o5X45BVQ+l2VNuM9Hy8vnNZUrib5FMevYOGQY6dDg"36237
+ }36238
+ },36239
+ "user_id": "@alice_1316:hs1",36240
+ "unsigned": {}36241
+ }36242
+ },36243
+ "@alice_131:hs1": {36244
+ "ALICEDEVICE131": {36245
+ "algorithms": [36246
+ "m.olm.v1.curve25519-aes-sha2",36247
+ "m.megolm.v1.aes-sha2"36248
+ ],36249
+ "device_id": "ALICEDEVICE131",36250
+ "keys": {36251
+ "curve25519:ALICEDEVICE131": "hFmnK6bxNlth11IqtepEl26PR2t9j+qutYjUbXQTdEc",36252
+ "ed25519:ALICEDEVICE131": "EUpyxyyTc19tqrtLfxAIPOcUxJItCnQ01udRxIIGg5s"36253
+ },36254
+ "signatures": {36255
+ "@alice_131:hs1": {36256
+ "ed25519:ALICEDEVICE131": "OsOIs617TlUNuC/SaI8D0x+K7oJl56sQDkTvhrpa57r3Q84I2naqH+q+8Q6+d6Fwg0dWtLqGyW9OxzVHWS03Cw"36257
+ }36258
+ },36259
+ "user_id": "@alice_131:hs1",36260
+ "unsigned": {}36261
+ }36262
+ },36263
+ "@alice_1320:hs1": {36264
+ "ALICEDEVICE1320": {36265
+ "algorithms": [36266
+ "m.olm.v1.curve25519-aes-sha2",36267
+ "m.megolm.v1.aes-sha2"36268
+ ],36269
+ "device_id": "ALICEDEVICE1320",36270
+ "keys": {36271
+ "curve25519:ALICEDEVICE1320": "Kt9RJhGHPQDfBtDzSHhMyL3sEct//JUePOIW5Js9aGE",36272
+ "ed25519:ALICEDEVICE1320": "KhKgFZWO9gKonTULW1tPeX120klrhiLnGc6SDVrHnZQ"36273
+ },36274
+ "signatures": {36275
+ "@alice_1320:hs1": {36276
+ "ed25519:ALICEDEVICE1320": "xbw5c6RyYMM3dIF68nQWixP1+q1izz0bbD8sIzP+ejXk1ea4SIeWgSlrteHKON5UnPOLMR9QCpdSWc1nJyyjCg"36277
+ }36278
+ },36279
+ "user_id": "@alice_1320:hs1",36280
+ "unsigned": {}36281
+ }36282
+ },36283
+ "@alice_1321:hs1": {36284
+ "ALICEDEVICE1321": {36285
+ "algorithms": [36286
+ "m.olm.v1.curve25519-aes-sha2",36287
+ "m.megolm.v1.aes-sha2"36288
+ ],36289
+ "device_id": "ALICEDEVICE1321",36290
+ "keys": {36291
+ "curve25519:ALICEDEVICE1321": "AhIuQLf5aFIu96A8eymQ4/4BRi5uIlNwC55r1bn15QE",36292
+ "ed25519:ALICEDEVICE1321": "ozPo2Ii9yL0luB8CZzXSkIkLI739DZtp2kWcMUm6dc0"36293
+ },36294
+ "signatures": {36295
+ "@alice_1321:hs1": {36296
+ "ed25519:ALICEDEVICE1321": "nPNo1P/e1LrVDWrc6RmV9mz4NXlRCF615ahrPLiMsQZpeyp4zz6AJHjw8gT271V4ILozNdAQL7FugQO+AS1gDw"36297
+ }36298
+ },36299
+ "user_id": "@alice_1321:hs1",36300
+ "unsigned": {}36301
+ }36302
+ },36303
+ "@alice_133:hs1": {36304
+ "ALICEDEVICE133": {36305
+ "algorithms": [36306
+ "m.olm.v1.curve25519-aes-sha2",36307
+ "m.megolm.v1.aes-sha2"36308
+ ],36309
+ "device_id": "ALICEDEVICE133",36310
+ "keys": {36311
+ "curve25519:ALICEDEVICE133": "wdFAFN1g9Q+fe66x/H2deVbzLE6kCoE+QElXEVh0gAk",36312
+ "ed25519:ALICEDEVICE133": "holToEiJ6j2BEomnff9K/woO0ubGNGU3ULhY/uKUG2Q"36313
+ },36314
+ "signatures": {36315
+ "@alice_133:hs1": {36316
+ "ed25519:ALICEDEVICE133": "2bshsP5JWzyJQWYumU32by5U37CXK+WBbTOfzmYjMrtDH6JzEVJssPCo+eA6/UBCNQ4Hlz+lWzFNA1oJqgDDAA"36317
+ }36318
+ },36319
+ "user_id": "@alice_133:hs1",36320
+ "unsigned": {}36321
+ }36322
+ },36323
+ "@alice_1349:hs1": {36324
+ "ALICEDEVICE1349": {36325
+ "algorithms": [36326
+ "m.olm.v1.curve25519-aes-sha2",36327
+ "m.megolm.v1.aes-sha2"36328
+ ],36329
+ "device_id": "ALICEDEVICE1349",36330
+ "keys": {36331
+ "curve25519:ALICEDEVICE1349": "wqrHNnIu8b/NyqXtCuIDwc++U1LeWXIVyEYHB+pW2EU",36332
+ "ed25519:ALICEDEVICE1349": "wqQFP4Ca9sYV+OSmjMUKdtv9nPlQwrqX6IZBmsxipOg"36333
+ },36334
+ "signatures": {36335
+ "@alice_1349:hs1": {36336
+ "ed25519:ALICEDEVICE1349": "mDMhpcgoC8q22JBhwecMNA9aUtS8GUB2xFSgvYA2IdKvNu6cDobzuC0hh+fQPdoPZaVkflXFhJGXSyouRAFbBw"36337
+ }36338
+ },36339
+ "user_id": "@alice_1349:hs1",36340
+ "unsigned": {}36341
+ }36342
+ },36343
+ "@alice_1355:hs1": {36344
+ "ALICEDEVICE1355": {36345
+ "algorithms": [36346
+ "m.olm.v1.curve25519-aes-sha2",36347
+ "m.megolm.v1.aes-sha2"36348
+ ],36349
+ "device_id": "ALICEDEVICE1355",36350
+ "keys": {36351
+ "curve25519:ALICEDEVICE1355": "NASSkHWP/7lJbmVXq/Ryo0EsL09cCzHybS1EctCRymM",36352
+ "ed25519:ALICEDEVICE1355": "l4aujBLOEbuX9D8LvJpqpSjANoqQjSZylNDAgsBFSPg"36353
+ },36354
+ "signatures": {36355
+ "@alice_1355:hs1": {36356
+ "ed25519:ALICEDEVICE1355": "8sFf5bsQrIgrSpnkExE9qEH36KrsgZsbS+Kfyu5KyIXEI9E5pdmkbQCVa4jp61D4aRwDuyqrPm9u2aO4T3wMBA"36357
+ }36358
+ },36359
+ "user_id": "@alice_1355:hs1",36360
+ "unsigned": {}36361
+ }36362
+ },36363
+ "@alice_1359:hs1": {36364
+ "ALICEDEVICE1359": {36365
+ "algorithms": [36366
+ "m.olm.v1.curve25519-aes-sha2",36367
+ "m.megolm.v1.aes-sha2"36368
+ ],36369
+ "device_id": "ALICEDEVICE1359",36370
+ "keys": {36371
+ "curve25519:ALICEDEVICE1359": "4X2iffvuWZjsE5OI6qrA2vpCcDYgXq44TNqmagSjmnQ",36372
+ "ed25519:ALICEDEVICE1359": "BG2aX3tu3m4PGPhx8+xyAMXnMcDt0Z+HDQ0cfZZ8CRI"36373
+ },36374
+ "signatures": {36375
+ "@alice_1359:hs1": {36376
+ "ed25519:ALICEDEVICE1359": "nXqoPn1ch5xGdof7iJok0fqqrfX5UqVL/SMeFSREFH7dEJv6U1h13TDxJaDmE0GQvH88LfB7GQKLvJ2kyN8GBA"36377
+ }36378
+ },36379
+ "user_id": "@alice_1359:hs1",36380
+ "unsigned": {}36381
+ }36382
+ },36383
+ "@alice_1365:hs1": {36384
+ "ALICEDEVICE1365": {36385
+ "algorithms": [36386
+ "m.olm.v1.curve25519-aes-sha2",36387
+ "m.megolm.v1.aes-sha2"36388
+ ],36389
+ "device_id": "ALICEDEVICE1365",36390
+ "keys": {36391
+ "curve25519:ALICEDEVICE1365": "NIp+BJT0yezPdx2WiY23TRqb0Zru1ipCqvPLAwl2wSY",36392
+ "ed25519:ALICEDEVICE1365": "bualknBljMjWYtwGn+qWCtD5jTTasu1p2stADkcC7t0"36393
+ },36394
+ "signatures": {36395
+ "@alice_1365:hs1": {36396
+ "ed25519:ALICEDEVICE1365": "fQ7B61nLW1jZrtlnpIi8oe0PmHfPuX++jGP5JxC5wF+yJksuzp0FJDem/i7sV0Cm6yE4Ti3152RrGN/7iMyLBg"36397
+ }36398
+ },36399
+ "user_id": "@alice_1365:hs1",36400
+ "unsigned": {}36401
+ }36402
+ },36403
+ "@alice_1366:hs1": {36404
+ "ALICEDEVICE1366": {36405
+ "algorithms": [36406
+ "m.olm.v1.curve25519-aes-sha2",36407
+ "m.megolm.v1.aes-sha2"36408
+ ],36409
+ "device_id": "ALICEDEVICE1366",36410
+ "keys": {36411
+ "curve25519:ALICEDEVICE1366": "nZ/sxPdGCwxv+7hvVdjOufAnGrX7VrzPEcG759aZSF8",36412
+ "ed25519:ALICEDEVICE1366": "dvDNvzllgAz1ySDU+2iBdD6Z/PCS/9eOKTfEUf+5p/o"36413
+ },36414
+ "signatures": {36415
+ "@alice_1366:hs1": {36416
+ "ed25519:ALICEDEVICE1366": "UNYLKI1v0PYBlKNdAMxV6w2zTxzH2c61QfN8n8lb+zVHE3nRi01NwLvmD1NWewWgW7xN7SwU+igG9HPCNEsICA"36417
+ }36418
+ },36419
+ "user_id": "@alice_1366:hs1",36420
+ "unsigned": {}36421
+ }36422
+ },36423
+ "@alice_1382:hs1": {36424
+ "ALICEDEVICE1382": {36425
+ "algorithms": [36426
+ "m.olm.v1.curve25519-aes-sha2",36427
+ "m.megolm.v1.aes-sha2"36428
+ ],36429
+ "device_id": "ALICEDEVICE1382",36430
+ "keys": {36431
+ "curve25519:ALICEDEVICE1382": "aIHk5wgBp18CTlVrtmT+5Ux9fiHeUt0tgbVF+Z1K31I",36432
+ "ed25519:ALICEDEVICE1382": "HO+NR1/I4EDAN7mTfCv+r519H05C4ZpqV9GEYQsfPLc"36433
+ },36434
+ "signatures": {36435
+ "@alice_1382:hs1": {36436
+ "ed25519:ALICEDEVICE1382": "M492W44qrz906SqvFm5kZag72+CIr6sj+sRNk+KkjZtVRhCiuzDK5CqzJLXuqxbK9gXF8R2RxiWaZFvzanqlDg"36437
+ }36438
+ },36439
+ "user_id": "@alice_1382:hs1",36440
+ "unsigned": {}36441
+ }36442
+ },36443
+ "@alice_1386:hs1": {36444
+ "ALICEDEVICE1386": {36445
+ "algorithms": [36446
+ "m.olm.v1.curve25519-aes-sha2",36447
+ "m.megolm.v1.aes-sha2"36448
+ ],36449
+ "device_id": "ALICEDEVICE1386",36450
+ "keys": {36451
+ "curve25519:ALICEDEVICE1386": "Cvp3pG8apPP4VzR/Lx0rTuelZCNBz3J7GjdHdIyuBw8",36452
+ "ed25519:ALICEDEVICE1386": "EupHP4FRBynNJywAd//FExr9blyhjt1ny1BXdiDo3a4"36453
+ },36454
+ "signatures": {36455
+ "@alice_1386:hs1": {36456
+ "ed25519:ALICEDEVICE1386": "VV1WLugdxxFXs3kmcVwfVeVs401BO7O1JEOrET+3qP/nlj537s8qp1rUV3PnSXH9Wgg0PhwO1AoAk42rcTikBw"36457
+ }36458
+ },36459
+ "user_id": "@alice_1386:hs1",36460
+ "unsigned": {}36461
+ }36462
+ },36463
+ "@alice_1409:hs1": {36464
+ "ALICEDEVICE1409": {36465
+ "algorithms": [36466
+ "m.olm.v1.curve25519-aes-sha2",36467
+ "m.megolm.v1.aes-sha2"36468
+ ],36469
+ "device_id": "ALICEDEVICE1409",36470
+ "keys": {36471
+ "curve25519:ALICEDEVICE1409": "YL7onIoQz4Rq0n26ZJmg6Q0QRqdT8TkaG/NszYwb1Xk",36472
+ "ed25519:ALICEDEVICE1409": "isuLVihjP2twPz+P8wHhG4UW0Bqt53b8XSnuSr8DBVU"36473
+ },36474
+ "signatures": {36475
+ "@alice_1409:hs1": {36476
+ "ed25519:ALICEDEVICE1409": "xiyL/AXEDRNRrB4PJKPktfcnGEjLebpUwZ+Cx3li/R+xT+VQtmEztfs05ZnZSUVIkgzcIwq4HS/HQGBPYz0sAg"36477
+ }36478
+ },36479
+ "user_id": "@alice_1409:hs1",36480
+ "unsigned": {}36481
+ }36482
+ },36483
+ "@alice_1411:hs1": {36484
+ "ALICEDEVICE1411": {36485
+ "algorithms": [36486
+ "m.olm.v1.curve25519-aes-sha2",36487
+ "m.megolm.v1.aes-sha2"36488
+ ],36489
+ "device_id": "ALICEDEVICE1411",36490
+ "keys": {36491
+ "curve25519:ALICEDEVICE1411": "9ZzDBP6SHB7/4o69OWrqRdk8SP9VOGGv5YEcGFYoyE8",36492
+ "ed25519:ALICEDEVICE1411": "4v3gjt8ejjcP6PkfSQg8wi6l7TWToam7IaTpcimBuNM"36493
+ },36494
+ "signatures": {36495
+ "@alice_1411:hs1": {36496
+ "ed25519:ALICEDEVICE1411": "3tehxpN3oxW1PELQ1drn9I7UBFn3B/jW1rr3w+JbEAMVnIDRtIUS/GpJkzBHCx36V1Eos0eLcS23b8OxdJA2AQ"36497
+ }36498
+ },36499
+ "user_id": "@alice_1411:hs1",36500
+ "unsigned": {}36501
+ }36502
+ },36503
+ "@alice_1429:hs1": {36504
+ "ALICEDEVICE1429": {36505
+ "algorithms": [36506
+ "m.olm.v1.curve25519-aes-sha2",36507
+ "m.megolm.v1.aes-sha2"36508
+ ],36509
+ "device_id": "ALICEDEVICE1429",36510
+ "keys": {36511
+ "curve25519:ALICEDEVICE1429": "xw7iJE96CR3bkqEd7eiDKVUcCm7h74k2JbkBDLpVWW0",36512
+ "ed25519:ALICEDEVICE1429": "8MSgaCapMLLQl639F7nudn9H1I80qXmv0NM2/xg54WU"36513
+ },36514
+ "signatures": {36515
+ "@alice_1429:hs1": {36516
+ "ed25519:ALICEDEVICE1429": "fCyUiZMUeef8vXNfjYhO+ucNnnb+jl7rD74B9Q5vAcpwLwEb/ixYKh9BvdjWovT+v0dcH5nAs8FPUWhcFgUkBQ"36517
+ }36518
+ },36519
+ "user_id": "@alice_1429:hs1",36520
+ "unsigned": {}36521
+ }36522
+ },36523
+ "@alice_1442:hs1": {36524
+ "ALICEDEVICE1442": {36525
+ "algorithms": [36526
+ "m.olm.v1.curve25519-aes-sha2",36527
+ "m.megolm.v1.aes-sha2"36528
+ ],36529
+ "device_id": "ALICEDEVICE1442",36530
+ "keys": {36531
+ "curve25519:ALICEDEVICE1442": "/nmksvjWeTNTEpFTW5kfM3nYi5qEYA4FYUP0aC5gd3U",36532
+ "ed25519:ALICEDEVICE1442": "QpMdHmkirDetXIcFvdoytzGaHyFLjvwgSx7e4YVAVe0"36533
+ },36534
+ "signatures": {36535
+ "@alice_1442:hs1": {36536
+ "ed25519:ALICEDEVICE1442": "z1VG60bhntN74nPgUBopVvHGZV1+VmJHjcsLpPFNm3aWLEC2SbS/pgD5fha6AqjR4euGFmGsGEuQsmQ/NRLqBQ"36537
+ }36538
+ },36539
+ "user_id": "@alice_1442:hs1",36540
+ "unsigned": {}36541
+ }36542
+ },36543
+ "@alice_1456:hs1": {36544
+ "ALICEDEVICE1456": {36545
+ "algorithms": [36546
+ "m.olm.v1.curve25519-aes-sha2",36547
+ "m.megolm.v1.aes-sha2"36548
+ ],36549
+ "device_id": "ALICEDEVICE1456",36550
+ "keys": {36551
+ "curve25519:ALICEDEVICE1456": "+aU/iVgLKvxNzQ02uHy2MtFrDIhFm7e9sqT9H/oXsHM",36552
+ "ed25519:ALICEDEVICE1456": "gXPtZbSjvTSVv2D85O0+4vzQ2Uj/LAslgWRKhq8YsRo"36553
+ },36554
+ "signatures": {36555
+ "@alice_1456:hs1": {36556
+ "ed25519:ALICEDEVICE1456": "tlhxreHGEeUBXRSyN43hkQ/CtFPBg/vnzGVf7YqVXeWtjmUlwE0ozXlAhUUtWfgxtAeecomf1bRm4d0yEU6/AQ"36557
+ }36558
+ },36559
+ "user_id": "@alice_1456:hs1",36560
+ "unsigned": {}36561
+ }36562
+ },36563
+ "@alice_1465:hs1": {36564
+ "ALICEDEVICE1465": {36565
+ "algorithms": [36566
+ "m.olm.v1.curve25519-aes-sha2",36567
+ "m.megolm.v1.aes-sha2"36568
+ ],36569
+ "device_id": "ALICEDEVICE1465",36570
+ "keys": {36571
+ "curve25519:ALICEDEVICE1465": "fkvN1EVXXlbAr3ZM+bDuDYkSHZRxZ/lq1XZlrlwnbCU",36572
+ "ed25519:ALICEDEVICE1465": "qrwNcY11/FPPAvvG7Evb1F6a5f3AS1hNRsBzY9xrGPk"36573
+ },36574
+ "signatures": {36575
+ "@alice_1465:hs1": {36576
+ "ed25519:ALICEDEVICE1465": "issdoi/apMde0RdQwu7qva2fIUIJURqkuRnjtn/U6APcAUj/HzrnpavMZZcDpN2xVCg0pjsJjKiiEgNnJCKHCg"36577
+ }36578
+ },36579
+ "user_id": "@alice_1465:hs1",36580
+ "unsigned": {}36581
+ }36582
+ },36583
+ "@alice_1468:hs1": {36584
+ "ALICEDEVICE1468": {36585
+ "algorithms": [36586
+ "m.olm.v1.curve25519-aes-sha2",36587
+ "m.megolm.v1.aes-sha2"36588
+ ],36589
+ "device_id": "ALICEDEVICE1468",36590
+ "keys": {36591
+ "curve25519:ALICEDEVICE1468": "hwbhLNpHu59rwuFfuWQ6lt+kNFWkgaDU1sRKz6+vwCc",36592
+ "ed25519:ALICEDEVICE1468": "8Ggb9P9m/pVJFTRM81ur0Z1T39rmiuz3QhqpMIWPUPo"36593
+ },36594
+ "signatures": {36595
+ "@alice_1468:hs1": {36596
+ "ed25519:ALICEDEVICE1468": "+K6XPraLEh+CboTQIIeEifWIRShHxYeNJPvvTSU7gQfBvZG6com3jkABQMHyixFp5tdEw+UNcqqQyE7LB/B4Bg"36597
+ }36598
+ },36599
+ "user_id": "@alice_1468:hs1",36600
+ "unsigned": {}36601
+ }36602
+ },36603
+ "@alice_1474:hs1": {36604
+ "ALICEDEVICE1474": {36605
+ "algorithms": [36606
+ "m.olm.v1.curve25519-aes-sha2",36607
+ "m.megolm.v1.aes-sha2"36608
+ ],36609
+ "device_id": "ALICEDEVICE1474",36610
+ "keys": {36611
+ "curve25519:ALICEDEVICE1474": "jWMCPfqjQS2ZcCWNq4h7p+KkEm2JmUuprFu3tdfG9yY",36612
+ "ed25519:ALICEDEVICE1474": "OENor2vs9iHAlSO70p1Zp+3Y/XuKubZdX5oLKB9q5BE"36613
+ },36614
+ "signatures": {36615
+ "@alice_1474:hs1": {36616
+ "ed25519:ALICEDEVICE1474": "Beao3j8CytIHXOb7q4TEnTeLxPo2O4yRjRseJW9obQR7Kjg3fAGWH4hTq9nMKxy7vfq6YrBQMe7D9zCmRd9EAA"36617
+ }36618
+ },36619
+ "user_id": "@alice_1474:hs1",36620
+ "unsigned": {}36621
+ }36622
+ },36623
+ "@alice_1478:hs1": {36624
+ "ALICEDEVICE1478": {36625
+ "algorithms": [36626
+ "m.olm.v1.curve25519-aes-sha2",36627
+ "m.megolm.v1.aes-sha2"36628
+ ],36629
+ "device_id": "ALICEDEVICE1478",36630
+ "keys": {36631
+ "curve25519:ALICEDEVICE1478": "HHo+tBOx3/K7U59FkkUx42Z/lCIb1u5rjWiqM+RmOC4",36632
+ "ed25519:ALICEDEVICE1478": "j8iBxWRzv1ANWjIXxwmUqrEPqnhSjBChVaSEkY+L5f8"36633
+ },36634
+ "signatures": {36635
+ "@alice_1478:hs1": {36636
+ "ed25519:ALICEDEVICE1478": "KRONBVzrvfPKK7NBmiQvi+WCkzIx48mtCoW+e2Dz7YvAH+yzfkUC/qBK9gvvOUO+F3ozNxBac60wg7k3zhcxBw"36637
+ }36638
+ },36639
+ "user_id": "@alice_1478:hs1",36640
+ "unsigned": {}36641
+ }36642
+ },36643
+ "@alice_1482:hs1": {36644
+ "ALICEDEVICE1482": {36645
+ "algorithms": [36646
+ "m.olm.v1.curve25519-aes-sha2",36647
+ "m.megolm.v1.aes-sha2"36648
+ ],36649
+ "device_id": "ALICEDEVICE1482",36650
+ "keys": {36651
+ "curve25519:ALICEDEVICE1482": "jW61RCoe0q+xnkeX5VGX+b5VXer0CR3MMA2YSx93fDY",36652
+ "ed25519:ALICEDEVICE1482": "aC4GvufqQ0brzEfEzvvc95YIbWMnYn6VvWkzOCvP74Y"36653
+ },36654
+ "signatures": {36655
+ "@alice_1482:hs1": {36656
+ "ed25519:ALICEDEVICE1482": "Qe6bni/EaMlKSabd16M3sTbasnPOEsHWN7ubyt1sBDSmMl0tZdLczGj+Q7cVm740v/tqquUzfGM/m+ArLAH4Dw"36657
+ }36658
+ },36659
+ "user_id": "@alice_1482:hs1",36660
+ "unsigned": {}36661
+ }36662
+ },36663
+ "@alice_1490:hs1": {36664
+ "ALICEDEVICE1490": {36665
+ "algorithms": [36666
+ "m.olm.v1.curve25519-aes-sha2",36667
+ "m.megolm.v1.aes-sha2"36668
+ ],36669
+ "device_id": "ALICEDEVICE1490",36670
+ "keys": {36671
+ "curve25519:ALICEDEVICE1490": "dYUr2mohaC/yPm575waCvnm6CZUCMdyDqx0PATAzzRw",36672
+ "ed25519:ALICEDEVICE1490": "Fh9suoialwc/EvdGeU7EzaBNoIoLaAb5TUxgFBQCoRE"36673
+ },36674
+ "signatures": {36675
+ "@alice_1490:hs1": {36676
+ "ed25519:ALICEDEVICE1490": "9muFcQcM4Klg79W5R6wcJ1gbEvyTSrwZEHac8UNPkOpFBcIQmESieBES4e28osB3tI23sIFVPTy3D8bHt6D/Bw"36677
+ }36678
+ },36679
+ "user_id": "@alice_1490:hs1",36680
+ "unsigned": {}36681
+ }36682
+ },36683
+ "@alice_1495:hs1": {36684
+ "ALICEDEVICE1495": {36685
+ "algorithms": [36686
+ "m.olm.v1.curve25519-aes-sha2",36687
+ "m.megolm.v1.aes-sha2"36688
+ ],36689
+ "device_id": "ALICEDEVICE1495",36690
+ "keys": {36691
+ "curve25519:ALICEDEVICE1495": "9PGqq6G5a2NMLkDa7SZ7pjcTotWCqaQBESEkgh5HEXA",36692
+ "ed25519:ALICEDEVICE1495": "AOvXmFobNq8x8FWZ5Ca4//svHsQ6dhNH4JHaymONU3g"36693
+ },36694
+ "signatures": {36695
+ "@alice_1495:hs1": {36696
+ "ed25519:ALICEDEVICE1495": "aDDCehw5k9J2N8yKmtMpmjTQh4eX2m9i/Kr+pahC9kq0WTm3epzbYEiG5xjzSxQ7PtEOuBIIIdvBZmgQno35DA"36697
+ }36698
+ },36699
+ "user_id": "@alice_1495:hs1",36700
+ "unsigned": {}36701
+ }36702
+ },36703
+ "@alice_150:hs1": {36704
+ "ALICEDEVICE150": {36705
+ "algorithms": [36706
+ "m.olm.v1.curve25519-aes-sha2",36707
+ "m.megolm.v1.aes-sha2"36708
+ ],36709
+ "device_id": "ALICEDEVICE150",36710
+ "keys": {36711
+ "curve25519:ALICEDEVICE150": "al6xAfxDmdLQ3DUSAKMdLgdZorbrslshNskEyVMtKS4",36712
+ "ed25519:ALICEDEVICE150": "wJ5H4qPqjIHhcZznOHtqhcZeinbTFQufVv/N822q3j4"36713
+ },36714
+ "signatures": {36715
+ "@alice_150:hs1": {36716
+ "ed25519:ALICEDEVICE150": "GyabrynX19DPQc3VZ4ozCgEpk13VyMbaznprjkdtAa50vU91gkcLx8lB8Y/+81LktzmcNizkz6zkFffLMs5uAw"36717
+ }36718
+ },36719
+ "user_id": "@alice_150:hs1",36720
+ "unsigned": {}36721
+ }36722
+ },36723
+ "@alice_1527:hs1": {36724
+ "ALICEDEVICE1527": {36725
+ "algorithms": [36726
+ "m.olm.v1.curve25519-aes-sha2",36727
+ "m.megolm.v1.aes-sha2"36728
+ ],36729
+ "device_id": "ALICEDEVICE1527",36730
+ "keys": {36731
+ "curve25519:ALICEDEVICE1527": "hFUtzynEE0YzwdSQkGzvqZ9uy2J202+TAEzGZvi5D3c",36732
+ "ed25519:ALICEDEVICE1527": "sdcV+/4oGhqMhiV7iXOZcZHDo5PBdjVuIYJxS9FaL8U"36733
+ },36734
+ "signatures": {36735
+ "@alice_1527:hs1": {36736
+ "ed25519:ALICEDEVICE1527": "rheGSW73qiQqPv/ub+scvOQUM5mlKl4cy9KvW2anhr9QB7pFKYDRc5CdL1bocRLFXtyqkKhZypOw68GggV/WDA"36737
+ }36738
+ },36739
+ "user_id": "@alice_1527:hs1",36740
+ "unsigned": {}36741
+ }36742
+ },36743
+ "@alice_1544:hs1": {36744
+ "ALICEDEVICE1544": {36745
+ "algorithms": [36746
+ "m.olm.v1.curve25519-aes-sha2",36747
+ "m.megolm.v1.aes-sha2"36748
+ ],36749
+ "device_id": "ALICEDEVICE1544",36750
+ "keys": {36751
+ "curve25519:ALICEDEVICE1544": "OZu7SGcZxkoDWPdGVelwGgPpRJ6HcHi6effp/8wHWhk",36752
+ "ed25519:ALICEDEVICE1544": "q4GhHcdo6Wr08IW9htZrlAwNi8UzHJjcQmMNdtH/iAc"36753
+ },36754
+ "signatures": {36755
+ "@alice_1544:hs1": {36756
+ "ed25519:ALICEDEVICE1544": "YbA9YeG7hMRR+vFWXuQV/Ul2FcnlAcVGpFt/6Biil3VOkUIERSYpbP4Wzt5lvj/rHP5tIy3+DE1vFvjDLDCrDQ"36757
+ }36758
+ },36759
+ "user_id": "@alice_1544:hs1",36760
+ "unsigned": {}36761
+ }36762
+ },36763
+ "@alice_1545:hs1": {36764
+ "ALICEDEVICE1545": {36765
+ "algorithms": [36766
+ "m.olm.v1.curve25519-aes-sha2",36767
+ "m.megolm.v1.aes-sha2"36768
+ ],36769
+ "device_id": "ALICEDEVICE1545",36770
+ "keys": {36771
+ "curve25519:ALICEDEVICE1545": "RFw5K6Jqi6AhRBp8NcpaXUOCasCInMdEqH5WZGL8Bg0",36772
+ "ed25519:ALICEDEVICE1545": "Ju6RIreePDxqS/WSCUyNzP61VpXXVwW9YtjWSU7IpWQ"36773
+ },36774
+ "signatures": {36775
+ "@alice_1545:hs1": {36776
+ "ed25519:ALICEDEVICE1545": "LBiL4/yllDtFXqf4MD+jG54n0i1Mc++yQjytArsAyUqnVVHrzwNEUwE8Kks7HqdnoT/4CaOUh05Vq3AALXL8DA"36777
+ }36778
+ },36779
+ "user_id": "@alice_1545:hs1",36780
+ "unsigned": {}36781
+ }36782
+ },36783
+ "@alice_1561:hs1": {36784
+ "ALICEDEVICE1561": {36785
+ "algorithms": [36786
+ "m.olm.v1.curve25519-aes-sha2",36787
+ "m.megolm.v1.aes-sha2"36788
+ ],36789
+ "device_id": "ALICEDEVICE1561",36790
+ "keys": {36791
+ "curve25519:ALICEDEVICE1561": "V0JE9xqvUyWZOgL2BxvUGJF46sDbzFi81VoDtVu93EE",36792
+ "ed25519:ALICEDEVICE1561": "njJuehCJgJEbnpGe98M0cDxl7l2N6v7VL91l9k67oLw"36793
+ },36794
+ "signatures": {36795
+ "@alice_1561:hs1": {36796
+ "ed25519:ALICEDEVICE1561": "WujF7rAhT48X9dX8ZJmWXLYl8yRpC2ex2Wzt80whoN+KhTB3XE7xg0OHOs/kPc5quEGJ/PXpGN6inP95fsKvAw"36797
+ }36798
+ },36799
+ "user_id": "@alice_1561:hs1",36800
+ "unsigned": {}36801
+ }36802
+ },36803
+ "@alice_1562:hs1": {36804
+ "ALICEDEVICE1562": {36805
+ "algorithms": [36806
+ "m.olm.v1.curve25519-aes-sha2",36807
+ "m.megolm.v1.aes-sha2"36808
+ ],36809
+ "device_id": "ALICEDEVICE1562",36810
+ "keys": {36811
+ "curve25519:ALICEDEVICE1562": "bgP2KYw4wMxPMLacSOTcZ4wkcTGyrhRNpLTlKopisw0",36812
+ "ed25519:ALICEDEVICE1562": "KfkpGcd/KIQ6mqy5TCdtymzCFVvVvYXObggHix0oR24"36813
+ },36814
+ "signatures": {36815
+ "@alice_1562:hs1": {36816
+ "ed25519:ALICEDEVICE1562": "bffICRzwX005RRlQbvGS49MxUjPmOwvVFjirEzptuWANf2zOuhlw7XAkHSDzy17hQRF9tDUXdanc6LoY0PkRBA"36817
+ }36818
+ },36819
+ "user_id": "@alice_1562:hs1",36820
+ "unsigned": {}36821
+ }36822
+ },36823
+ "@alice_1563:hs1": {36824
+ "ALICEDEVICE1563": {36825
+ "algorithms": [36826
+ "m.olm.v1.curve25519-aes-sha2",36827
+ "m.megolm.v1.aes-sha2"36828
+ ],36829
+ "device_id": "ALICEDEVICE1563",36830
+ "keys": {36831
+ "curve25519:ALICEDEVICE1563": "V4aEoJfSFp/8Uj9YAcUpM2NKu3dLGFukQEzX8ePcbRE",36832
+ "ed25519:ALICEDEVICE1563": "7Kl+wFBSge2lpW/ff3fxBTJ4devN/wuXsulLj17PmZM"36833
+ },36834
+ "signatures": {36835
+ "@alice_1563:hs1": {36836
+ "ed25519:ALICEDEVICE1563": "vjaIlmuUmA41GvvblackK4QnRHm4bc1OuhiqDf0zzrYAOUc0q50sXITt8NhI26k4ZENP1+jXpjSgP2Izdq3RDA"36837
+ }36838
+ },36839
+ "user_id": "@alice_1563:hs1",36840
+ "unsigned": {}36841
+ }36842
+ },36843
+ "@alice_1566:hs1": {36844
+ "ALICEDEVICE1566": {36845
+ "algorithms": [36846
+ "m.olm.v1.curve25519-aes-sha2",36847
+ "m.megolm.v1.aes-sha2"36848
+ ],36849
+ "device_id": "ALICEDEVICE1566",36850
+ "keys": {36851
+ "curve25519:ALICEDEVICE1566": "iRyhVnDwwfiHmwBFcCTeUMS2eO5kfnxpRQyO0iJiRAQ",36852
+ "ed25519:ALICEDEVICE1566": "W19mj4uW5/HJ548VTBPohDEyaaUFaHqc4unys3dRZZY"36853
+ },36854
+ "signatures": {36855
+ "@alice_1566:hs1": {36856
+ "ed25519:ALICEDEVICE1566": "UgJ6+zv8IgA3ZgzpkcpgSj30lxhtg414pDNgIUuDEggEjp7FIsKlHpEGJVTrCPMVwuqe4mH71fRvY/KdsZNHDg"36857
+ }36858
+ },36859
+ "user_id": "@alice_1566:hs1",36860
+ "unsigned": {}36861
+ }36862
+ },36863
+ "@alice_1572:hs1": {36864
+ "ALICEDEVICE1572": {36865
+ "algorithms": [36866
+ "m.olm.v1.curve25519-aes-sha2",36867
+ "m.megolm.v1.aes-sha2"36868
+ ],36869
+ "device_id": "ALICEDEVICE1572",36870
+ "keys": {36871
+ "curve25519:ALICEDEVICE1572": "XbGx8GgDcgar5tP0GTGtDePBu906QCGaQemn5+QeWGM",36872
+ "ed25519:ALICEDEVICE1572": "CK+WeledsP1xMVFFysmk2Vtnovc3o9u4bqxLMcQVLxk"36873
+ },36874
+ "signatures": {36875
+ "@alice_1572:hs1": {36876
+ "ed25519:ALICEDEVICE1572": "jQzwAOH119fpBwnGg4iKBlo94PrjR8gdsAG7Sry5J9nHNyHAzuKIiTJbXTTm2uUdFgDokOBBe1EOe4TqSk62Bw"36877
+ }36878
+ },36879
+ "user_id": "@alice_1572:hs1",36880
+ "unsigned": {}36881
+ }36882
+ },36883
+ "@alice_1576:hs1": {36884
+ "ALICEDEVICE1576": {36885
+ "algorithms": [36886
+ "m.olm.v1.curve25519-aes-sha2",36887
+ "m.megolm.v1.aes-sha2"36888
+ ],36889
+ "device_id": "ALICEDEVICE1576",36890
+ "keys": {36891
+ "curve25519:ALICEDEVICE1576": "Jw7S61rbKEZLXo//u6pIo1fqEYjs0AJyISMuVknhNCg",36892
+ "ed25519:ALICEDEVICE1576": "Bn4llbwv5XJJ6ItnpLuhEVBQ5fi2yPDX1ZpSN/lymcU"36893
+ },36894
+ "signatures": {36895
+ "@alice_1576:hs1": {36896
+ "ed25519:ALICEDEVICE1576": "hs9y4ZNZhTOlacNxbu7YcWrY2RjYHK7ut3ZZmed4O0etW87z3KOWV6OsoAIhvC7KFjKsiQO6y4AO0qlFCLy8Dw"36897
+ }36898
+ },36899
+ "user_id": "@alice_1576:hs1",36900
+ "unsigned": {}36901
+ }36902
+ },36903
+ "@alice_1578:hs1": {36904
+ "ALICEDEVICE1578": {36905
+ "algorithms": [36906
+ "m.olm.v1.curve25519-aes-sha2",36907
+ "m.megolm.v1.aes-sha2"36908
+ ],36909
+ "device_id": "ALICEDEVICE1578",36910
+ "keys": {36911
+ "curve25519:ALICEDEVICE1578": "kVmjSDH7woAwYStPi/Pr9s3tudxw3D7ijpvajJI1KVI",36912
+ "ed25519:ALICEDEVICE1578": "pizUpbrKkwMh01c7dUeTfYBi4+THLMY3WYGZ49/3ejA"36913
+ },36914
+ "signatures": {36915
+ "@alice_1578:hs1": {36916
+ "ed25519:ALICEDEVICE1578": "XPk5rnUof3NQIY0fdl6Ztx3OEzzv1tmm/JU4IThe1A0lbLW1c4Zyx+PI52uMr4irtyHndKc8oMMLIdTcRqkgBg"36917
+ }36918
+ },36919
+ "user_id": "@alice_1578:hs1",36920
+ "unsigned": {}36921
+ }36922
+ },36923
+ "@alice_1583:hs1": {36924
+ "ALICEDEVICE1583": {36925
+ "algorithms": [36926
+ "m.olm.v1.curve25519-aes-sha2",36927
+ "m.megolm.v1.aes-sha2"36928
+ ],36929
+ "device_id": "ALICEDEVICE1583",36930
+ "keys": {36931
+ "curve25519:ALICEDEVICE1583": "1egnQvzQLS2y1XDDjdygm0iJkZfRvriHy3QNaIl9P0Q",36932
+ "ed25519:ALICEDEVICE1583": "Uc14AlAGmEUOT93XVD03JedBJu9zZ6GDDVnO53cFy48"36933
+ },36934
+ "signatures": {36935
+ "@alice_1583:hs1": {36936
+ "ed25519:ALICEDEVICE1583": "W+hi1+DjjwNQIx/hlPDANful/fF2OyJbC73GHzg1ujtx0eZqgobUcfAq5w4/VPWe4AedYUqYCT/VGrNjoqX8Bg"36937
+ }36938
+ },36939
+ "user_id": "@alice_1583:hs1",36940
+ "unsigned": {}36941
+ }36942
+ },36943
+ "@alice_1590:hs1": {36944
+ "ALICEDEVICE1590": {36945
+ "algorithms": [36946
+ "m.olm.v1.curve25519-aes-sha2",36947
+ "m.megolm.v1.aes-sha2"36948
+ ],36949
+ "device_id": "ALICEDEVICE1590",36950
+ "keys": {36951
+ "curve25519:ALICEDEVICE1590": "+2t3jRh+Nre5aT0YpPMbMT4XupBr9lgYi7rGatv2GB8",36952
+ "ed25519:ALICEDEVICE1590": "DDaAtb0TDHocYHRmXXsMOk5SYWIHRfSOoyiVh9unK/c"36953
+ },36954
+ "signatures": {36955
+ "@alice_1590:hs1": {36956
+ "ed25519:ALICEDEVICE1590": "+mzFNDpEXoASK61BK5i1yzjrxbffl6Hk2bU83ITEfVQTJWDNzja1X+JB/WqosVbcdAOi/lWGRTAnzmwahKfSCA"36957
+ }36958
+ },36959
+ "user_id": "@alice_1590:hs1",36960
+ "unsigned": {}36961
+ }36962
+ },36963
+ "@alice_1599:hs1": {36964
+ "ALICEDEVICE1599": {36965
+ "algorithms": [36966
+ "m.olm.v1.curve25519-aes-sha2",36967
+ "m.megolm.v1.aes-sha2"36968
+ ],36969
+ "device_id": "ALICEDEVICE1599",36970
+ "keys": {36971
+ "curve25519:ALICEDEVICE1599": "5/6Xpf39JSFQljPf9eltcxWAZP/Ec5d2lrWkDr2+Hhw",36972
+ "ed25519:ALICEDEVICE1599": "26DXmjWX08ww6zXI3D68JyJsuewyBbaeFTivwlyTuAQ"36973
+ },36974
+ "signatures": {36975
+ "@alice_1599:hs1": {36976
+ "ed25519:ALICEDEVICE1599": "A0C3MfHgjhP3m0vHYy2t5uSJKsw3R8mhcJmDU4MqhBuDF1oeUmg4ifPPbI0YYMHXkKZwnWR1I0mNejC5oZPECw"36977
+ }36978
+ },36979
+ "user_id": "@alice_1599:hs1",36980
+ "unsigned": {}36981
+ }36982
+ },36983
+ "@alice_1608:hs1": {36984
+ "ALICEDEVICE1608": {36985
+ "algorithms": [36986
+ "m.olm.v1.curve25519-aes-sha2",36987
+ "m.megolm.v1.aes-sha2"36988
+ ],36989
+ "device_id": "ALICEDEVICE1608",36990
+ "keys": {36991
+ "curve25519:ALICEDEVICE1608": "+5Bf8e3nrDtpuLXUkwCHba2h4FjEh84KbUcFoh0v01Q",36992
+ "ed25519:ALICEDEVICE1608": "0tMQup5WdXpZ8TaEf24Tq271c9gOn014cE0/bRPylps"36993
+ },36994
+ "signatures": {36995
+ "@alice_1608:hs1": {36996
+ "ed25519:ALICEDEVICE1608": "YH6r4ywoBPw4KAEA8HGpzZLqV7sxgdWRihASc+YuKCbaP2IaiUjViUbLCbgJEWQkyrhVSAQ5jsGbA3PrQJQ9AQ"36997
+ }36998
+ },36999
+ "user_id": "@alice_1608:hs1",37000
+ "unsigned": {}37001
+ }37002
+ },37003
+ "@alice_1616:hs1": {37004
+ "ALICEDEVICE1616": {37005
+ "algorithms": [37006
+ "m.olm.v1.curve25519-aes-sha2",37007
+ "m.megolm.v1.aes-sha2"37008
+ ],37009
+ "device_id": "ALICEDEVICE1616",37010
+ "keys": {37011
+ "curve25519:ALICEDEVICE1616": "jXKXktuPSSRxOOcSOhtAharDRsZZ47POMC53nkN8VGc",37012
+ "ed25519:ALICEDEVICE1616": "QAWewk7RBigsuZ2mVJwM95ZVgmb6H3vyDiDv25iVcjU"37013
+ },37014
+ "signatures": {37015
+ "@alice_1616:hs1": {37016
+ "ed25519:ALICEDEVICE1616": "f+oY28w/3E+xZw3xN/x8lBSqb3JyxgGCXkZLSfkqs/oFx9UapKhyzPB17k6s16I+qgJ4cLRMypzd0XE1c+hlAA"37017
+ }37018
+ },37019
+ "user_id": "@alice_1616:hs1",37020
+ "unsigned": {}37021
+ }37022
+ },37023
+ "@alice_1619:hs1": {37024
+ "ALICEDEVICE1619": {37025
+ "algorithms": [37026
+ "m.olm.v1.curve25519-aes-sha2",37027
+ "m.megolm.v1.aes-sha2"37028
+ ],37029
+ "device_id": "ALICEDEVICE1619",37030
+ "keys": {37031
+ "curve25519:ALICEDEVICE1619": "2N9B4hfa6jsaGkm4nZCu0EE7gZx+P6m/PCRe574HZwo",37032
+ "ed25519:ALICEDEVICE1619": "SDT8T9hsYiNTwQAuyMznOA3dAppmxDVEOUrYx9swRMo"37033
+ },37034
+ "signatures": {37035
+ "@alice_1619:hs1": {37036
+ "ed25519:ALICEDEVICE1619": "gbac4FfWVYca/eT48pb4Ut/5i/JWOuP0E97bH03iffl+4AmvVQMBDQPbwnsT2xIRLBBVZ/5gsV98EQ1BD7IFAA"37037
+ }37038
+ },37039
+ "user_id": "@alice_1619:hs1",37040
+ "unsigned": {}37041
+ }37042
+ },37043
+ "@alice_1635:hs1": {37044
+ "ALICEDEVICE1635": {37045
+ "algorithms": [37046
+ "m.olm.v1.curve25519-aes-sha2",37047
+ "m.megolm.v1.aes-sha2"37048
+ ],37049
+ "device_id": "ALICEDEVICE1635",37050
+ "keys": {37051
+ "curve25519:ALICEDEVICE1635": "+AkWo4VIkkqkqrwqjhxiY/zZt/QYuG+40AE80dl+TAU",37052
+ "ed25519:ALICEDEVICE1635": "6p+hBlQ03T3N05SwN1FHT/Ax7rIEJrsKNaMRyT5/ddY"37053
+ },37054
+ "signatures": {37055
+ "@alice_1635:hs1": {37056
+ "ed25519:ALICEDEVICE1635": "Y1ShzdaXMXYxprd7aAsEcdE33UfPrAXvJsGa15WSOwiwbNZ3ywRs/togyl7ByGSanZ81H4IaL5vvcIh4l6t3Cw"37057
+ }37058
+ },37059
+ "user_id": "@alice_1635:hs1",37060
+ "unsigned": {}37061
+ }37062
+ },37063
+ "@alice_1640:hs1": {37064
+ "ALICEDEVICE1640": {37065
+ "algorithms": [37066
+ "m.olm.v1.curve25519-aes-sha2",37067
+ "m.megolm.v1.aes-sha2"37068
+ ],37069
+ "device_id": "ALICEDEVICE1640",37070
+ "keys": {37071
+ "curve25519:ALICEDEVICE1640": "HPkWqgldVYyMMeMzFj9sZBKbjLIeXjuRrxkOjg4DA2U",37072
+ "ed25519:ALICEDEVICE1640": "rmMABGNh+jHf4J+9She0nWvuPdVW4A0FAyMnF1tXT64"37073
+ },37074
+ "signatures": {37075
+ "@alice_1640:hs1": {37076
+ "ed25519:ALICEDEVICE1640": "uzdfs3lVYzth0XcHe8shrfl4RspDdmL3fngTc7lrCGG/AjUbnHPdT8Rn/ud7s84uiigMcY5hLcTRh6IHBpNUAg"37077
+ }37078
+ },37079
+ "user_id": "@alice_1640:hs1",37080
+ "unsigned": {}37081
+ }37082
+ },37083
+ "@alice_1645:hs1": {37084
+ "ALICEDEVICE1645": {37085
+ "algorithms": [37086
+ "m.olm.v1.curve25519-aes-sha2",37087
+ "m.megolm.v1.aes-sha2"37088
+ ],37089
+ "device_id": "ALICEDEVICE1645",37090
+ "keys": {37091
+ "curve25519:ALICEDEVICE1645": "FZDR7z7hJ69SvFVArWtvCUP+bcEqKn5cKRFKDGWaLQU",37092
+ "ed25519:ALICEDEVICE1645": "0TjmgLXBR83R6+Yy47BhZmK/YEnSTLOxTj1cTjv2Rg4"37093
+ },37094
+ "signatures": {37095
+ "@alice_1645:hs1": {37096
+ "ed25519:ALICEDEVICE1645": "geXGFW1bFQT79TMzytfJLLgov3mhXHYTUPg4WTrGl3c7w4LVEt6B6mhX0F5kEJvJ+WulBX9KFD7PB+sXD7xjDw"37097
+ }37098
+ },37099
+ "user_id": "@alice_1645:hs1",37100
+ "unsigned": {}37101
+ }37102
+ },37103
+ "@alice_1647:hs1": {37104
+ "ALICEDEVICE1647": {37105
+ "algorithms": [37106
+ "m.olm.v1.curve25519-aes-sha2",37107
+ "m.megolm.v1.aes-sha2"37108
+ ],37109
+ "device_id": "ALICEDEVICE1647",37110
+ "keys": {37111
+ "curve25519:ALICEDEVICE1647": "n+L6v4QiardW6jheFjN6sjlowH4wErTZGPj09AyeMlg",37112
+ "ed25519:ALICEDEVICE1647": "zdFKZeOhYKZ6fWkrYVsnVWbezh+YkzXhjye12ZIUOxk"37113
+ },37114
+ "signatures": {37115
+ "@alice_1647:hs1": {37116
+ "ed25519:ALICEDEVICE1647": "dLm9nPiRxYHNlkKVDSIh15DP2NqZKMaw6cG71OlfjCDl5HnhwF1abT3z0rFoNeIe9HwMe2tnTZIJ+k+MfIxMCg"37117
+ }37118
+ },37119
+ "user_id": "@alice_1647:hs1",37120
+ "unsigned": {}37121
+ }37122
+ },37123
+ "@alice_1649:hs1": {37124
+ "ALICEDEVICE1649": {37125
+ "algorithms": [37126
+ "m.olm.v1.curve25519-aes-sha2",37127
+ "m.megolm.v1.aes-sha2"37128
+ ],37129
+ "device_id": "ALICEDEVICE1649",37130
+ "keys": {37131
+ "curve25519:ALICEDEVICE1649": "Cp7omzN3yudRDjM6MdTQUWWPxRkAVtfDcj4afdvt1FM",37132
+ "ed25519:ALICEDEVICE1649": "OMpmJshDX/FamKXREQwQtDqyiKj1juVyu9frjBwTZmI"37133
+ },37134
+ "signatures": {37135
+ "@alice_1649:hs1": {37136
+ "ed25519:ALICEDEVICE1649": "96Tx15EQL6LJynY9FEadjQ1tbFUIjXjedXqsRYiIVecnuTT75wUUwdCsAaG4tmj56AQrcXH7qS5/EMNJL7dRAQ"37137
+ }37138
+ },37139
+ "user_id": "@alice_1649:hs1",37140
+ "unsigned": {}37141
+ }37142
+ },37143
+ "@alice_1659:hs1": {37144
+ "ALICEDEVICE1659": {37145
+ "algorithms": [37146
+ "m.olm.v1.curve25519-aes-sha2",37147
+ "m.megolm.v1.aes-sha2"37148
+ ],37149
+ "device_id": "ALICEDEVICE1659",37150
+ "keys": {37151
+ "curve25519:ALICEDEVICE1659": "r4Kh+XQEsjj3k7RFJQqMhF/pNcIL4N1pKmHtFbLT+Rk",37152
+ "ed25519:ALICEDEVICE1659": "LQ4ekHC1MqHWqHwBMpBQ/1P/rB/cQz4rtdypWiS+FCI"37153
+ },37154
+ "signatures": {37155
+ "@alice_1659:hs1": {37156
+ "ed25519:ALICEDEVICE1659": "YaA132Dba1u0zbcB8B9b/iWjvmIjMuc+QaNUlvjlJvd1mm833fjHM1GE6lptIiejuqFyuIq+vZXns3Gmt824Aw"37157
+ }37158
+ },37159
+ "user_id": "@alice_1659:hs1",37160
+ "unsigned": {}37161
+ }37162
+ },37163
+ "@alice_1661:hs1": {37164
+ "ALICEDEVICE1661": {37165
+ "algorithms": [37166
+ "m.olm.v1.curve25519-aes-sha2",37167
+ "m.megolm.v1.aes-sha2"37168
+ ],37169
+ "device_id": "ALICEDEVICE1661",37170
+ "keys": {37171
+ "curve25519:ALICEDEVICE1661": "g5S70m0eQM8SqKDfc8dCEzxyjmr/dZQYkBi+9VJ+dVo",37172
+ "ed25519:ALICEDEVICE1661": "fZltuW5WeZxddoDzUJsDZeQeBUM60uGF7TiUI4iffCw"37173
+ },37174
+ "signatures": {37175
+ "@alice_1661:hs1": {37176
+ "ed25519:ALICEDEVICE1661": "EWF1ytQDXU2FpVs1wSe1zXMUzd55ANB/Zgddr1n8KjyNeocx539orgh+7gNchCAm9sCIijxf2b78o+gIR33jCw"37177
+ }37178
+ },37179
+ "user_id": "@alice_1661:hs1",37180
+ "unsigned": {}37181
+ }37182
+ },37183
+ "@alice_1663:hs1": {37184
+ "ALICEDEVICE1663": {37185
+ "algorithms": [37186
+ "m.olm.v1.curve25519-aes-sha2",37187
+ "m.megolm.v1.aes-sha2"37188
+ ],37189
+ "device_id": "ALICEDEVICE1663",37190
+ "keys": {37191
+ "curve25519:ALICEDEVICE1663": "t97TGpQ9aPoOF8BhiZu6o9BO8Iljcr5Sqlfk/0Rx/2U",37192
+ "ed25519:ALICEDEVICE1663": "9e5LrQgVsCQOuc11ViljblwoMcZwalGe4WVx5hCMuCw"37193
+ },37194
+ "signatures": {37195
+ "@alice_1663:hs1": {37196
+ "ed25519:ALICEDEVICE1663": "kwxk0vk61lf8ASxn0NSx2Xjg7WPxOg4e93DYJkqvgyZo0RIeqQ/Hn6lsEhlB9OEFCs1S9I0O6HZv7LFBWIiCCw"37197
+ }37198
+ },37199
+ "user_id": "@alice_1663:hs1",37200
+ "unsigned": {}37201
+ }37202
+ },37203
+ "@alice_1671:hs1": {37204
+ "ALICEDEVICE1671": {37205
+ "algorithms": [37206
+ "m.olm.v1.curve25519-aes-sha2",37207
+ "m.megolm.v1.aes-sha2"37208
+ ],37209
+ "device_id": "ALICEDEVICE1671",37210
+ "keys": {37211
+ "curve25519:ALICEDEVICE1671": "3zup0EKK2rnFHK+0xO2XUPUBIH+JKl3NogBSrO2sz34",37212
+ "ed25519:ALICEDEVICE1671": "V2SAYz6O6JLQ6GV2Z7wnSFNs/GeecpgTGKrWaSXIf+w"37213
+ },37214
+ "signatures": {37215
+ "@alice_1671:hs1": {37216
+ "ed25519:ALICEDEVICE1671": "Yn+an1r/jvv2AH6OTpgx9MoSeoYKnsnBI+U+g1B4wXC2tudsP6y/Ay9pPPOpcXRKv7WsxKkcIyVDLMGHlizLCw"37217
+ }37218
+ },37219
+ "user_id": "@alice_1671:hs1",37220
+ "unsigned": {}37221
+ }37222
+ },37223
+ "@alice_1701:hs1": {37224
+ "ALICEDEVICE1701": {37225
+ "algorithms": [37226
+ "m.olm.v1.curve25519-aes-sha2",37227
+ "m.megolm.v1.aes-sha2"37228
+ ],37229
+ "device_id": "ALICEDEVICE1701",37230
+ "keys": {37231
+ "curve25519:ALICEDEVICE1701": "x9AfBco+zF8FHh8L5AhxawAeS/64SS9wB9PwtJ3AKCY",37232
+ "ed25519:ALICEDEVICE1701": "880B3niYi43BE8d1LmuLit1Ycp2o9r6upsncK2UzWns"37233
+ },37234
+ "signatures": {37235
+ "@alice_1701:hs1": {37236
+ "ed25519:ALICEDEVICE1701": "ArfbDCkCoHPeArKNqR3+SspQ4nLRI3MCN+d49hzC/bzblqqnarxIX539SH92WnMuhdH0sgQmmR3jLq/MZV+gAQ"37237
+ }37238
+ },37239
+ "user_id": "@alice_1701:hs1",37240
+ "unsigned": {}37241
+ }37242
+ },37243
+ "@alice_1704:hs1": {37244
+ "ALICEDEVICE1704": {37245
+ "algorithms": [37246
+ "m.olm.v1.curve25519-aes-sha2",37247
+ "m.megolm.v1.aes-sha2"37248
+ ],37249
+ "device_id": "ALICEDEVICE1704",37250
+ "keys": {37251
+ "curve25519:ALICEDEVICE1704": "LfWiIgpBp83nzsgebnL/pNvupQvIXHT+Ktx4Y/qQoSs",37252
+ "ed25519:ALICEDEVICE1704": "wDlqMs9oVeugQ0WUOF1wlHsjjnk+FGsFihLhnEYHDuU"37253
+ },37254
+ "signatures": {37255
+ "@alice_1704:hs1": {37256
+ "ed25519:ALICEDEVICE1704": "4MkuBxuMjfnKM6zwEStjqRyQHy2ZrhRcmERgZzxvQguzvXgE3lJITCPNQWqo/3YFbfFeVMegCVn2nfJfcQofBg"37257
+ }37258
+ },37259
+ "user_id": "@alice_1704:hs1",37260
+ "unsigned": {}37261
+ }37262
+ },37263
+ "@alice_1725:hs1": {37264
+ "ALICEDEVICE1725": {37265
+ "algorithms": [37266
+ "m.olm.v1.curve25519-aes-sha2",37267
+ "m.megolm.v1.aes-sha2"37268
+ ],37269
+ "device_id": "ALICEDEVICE1725",37270
+ "keys": {37271
+ "curve25519:ALICEDEVICE1725": "jxTeyHqMfHBozwlMJWOJv4wIekF712HbE0eUYadAPSA",37272
+ "ed25519:ALICEDEVICE1725": "4b/cQBLPVaOncku9KiL8KEoKXNWgktMv7+SdkEPHZKk"37273
+ },37274
+ "signatures": {37275
+ "@alice_1725:hs1": {37276
+ "ed25519:ALICEDEVICE1725": "mg88smekfsbCTynykhbbH8RDIM23XJa37Jw2MtWSrOfaOzvOJgXp1vOZdSgMjsrQixETjcQpUiB8ipaey30NDQ"37277
+ }37278
+ },37279
+ "user_id": "@alice_1725:hs1",37280
+ "unsigned": {}37281
+ }37282
+ },37283
+ "@alice_1728:hs1": {37284
+ "ALICEDEVICE1728": {37285
+ "algorithms": [37286
+ "m.olm.v1.curve25519-aes-sha2",37287
+ "m.megolm.v1.aes-sha2"37288
+ ],37289
+ "device_id": "ALICEDEVICE1728",37290
+ "keys": {37291
+ "curve25519:ALICEDEVICE1728": "ksws6C/SIwiMmok0Y91JNR3bpjKw9CMtOr+DztPLAjw",37292
+ "ed25519:ALICEDEVICE1728": "Vz64b4prH+s3VKh3g+X8LxHDEOutfEZ3AYkBeIsJEI4"37293
+ },37294
+ "signatures": {37295
+ "@alice_1728:hs1": {37296
+ "ed25519:ALICEDEVICE1728": "1pVgMVbGjnj2CsM0QX8w6Gkn/XdKY/E/9m8V344h2oGLvQysLoIkIeRygsKsaHGpCJrA68L13HbaH+t4sMPMBQ"37297
+ }37298
+ },37299
+ "user_id": "@alice_1728:hs1",37300
+ "unsigned": {}37301
+ }37302
+ },37303
+ "@alice_1743:hs1": {37304
+ "ALICEDEVICE1743": {37305
+ "algorithms": [37306
+ "m.olm.v1.curve25519-aes-sha2",37307
+ "m.megolm.v1.aes-sha2"37308
+ ],37309
+ "device_id": "ALICEDEVICE1743",37310
+ "keys": {37311
+ "curve25519:ALICEDEVICE1743": "a38UuBpAMPT6FqsMJXpZW7jo+qR59AqkYIwB6LMTBQo",37312
+ "ed25519:ALICEDEVICE1743": "QDjQ2GEq5jaLQimILsRjv5j92gkjDX/46MBzqmjWXoQ"37313
+ },37314
+ "signatures": {37315
+ "@alice_1743:hs1": {37316
+ "ed25519:ALICEDEVICE1743": "2ujqVAzne+yanGC1ZY7Ks0NvTUymifkQ7NmPPMQOf1YZclV9t0ErvOP34jV9v82LPSC08t/6mM0bBTLkUDrIAw"37317
+ }37318
+ },37319
+ "user_id": "@alice_1743:hs1",37320
+ "unsigned": {}37321
+ }37322
+ },37323
+ "@alice_1749:hs1": {37324
+ "ALICEDEVICE1749": {37325
+ "algorithms": [37326
+ "m.olm.v1.curve25519-aes-sha2",37327
+ "m.megolm.v1.aes-sha2"37328
+ ],37329
+ "device_id": "ALICEDEVICE1749",37330
+ "keys": {37331
+ "curve25519:ALICEDEVICE1749": "G8bBeu9YkHB2qBOZV40WrZ9kSuCi7CAdvBnL61NBFkw",37332
+ "ed25519:ALICEDEVICE1749": "nZXy+pWvXFQBWLs3JGqSGWWlJXZ0pLrc3pmsShbeVH0"37333
+ },37334
+ "signatures": {37335
+ "@alice_1749:hs1": {37336
+ "ed25519:ALICEDEVICE1749": "RwJN5JiD7WJja4ty8mUeNcdL2uyP2O/mq+Os9+w3gjP2RoV2i440k53XxvfJkQak1rX06fUIUf4mT//DXZgeAw"37337
+ }37338
+ },37339
+ "user_id": "@alice_1749:hs1",37340
+ "unsigned": {}37341
+ }37342
+ },37343
+ "@alice_174:hs1": {37344
+ "ALICEDEVICE174": {37345
+ "algorithms": [37346
+ "m.olm.v1.curve25519-aes-sha2",37347
+ "m.megolm.v1.aes-sha2"37348
+ ],37349
+ "device_id": "ALICEDEVICE174",37350
+ "keys": {37351
+ "curve25519:ALICEDEVICE174": "sYDwxNxk8fDPDpnlD+5Up3gURbWO2dWSYBgd17NmHFk",37352
+ "ed25519:ALICEDEVICE174": "JmEp+720XVvHYbIdUW63BJk50gnUtUS7uuhfNO2uqF4"37353
+ },37354
+ "signatures": {37355
+ "@alice_174:hs1": {37356
+ "ed25519:ALICEDEVICE174": "HGcT096SpWtNRGrpqmGrwKvXGechCpHKbapUDSknBrJ02wz9UrDS+Oqy2j4+zAlS0oZQbn+m/2zuwDJCi6oyCA"37357
+ }37358
+ },37359
+ "user_id": "@alice_174:hs1",37360
+ "unsigned": {}37361
+ }37362
+ },37363
+ "@alice_1760:hs1": {37364
+ "ALICEDEVICE1760": {37365
+ "algorithms": [37366
+ "m.olm.v1.curve25519-aes-sha2",37367
+ "m.megolm.v1.aes-sha2"37368
+ ],37369
+ "device_id": "ALICEDEVICE1760",37370
+ "keys": {37371
+ "curve25519:ALICEDEVICE1760": "feaRwp7gEDk+SktiExKv/QKQZ7LyqllapcUL/09TvDk",37372
+ "ed25519:ALICEDEVICE1760": "tU7qCpwlBsjgvgICo34jVEmdA8XK3MW1/fikPkUHgtg"37373
+ },37374
+ "signatures": {37375
+ "@alice_1760:hs1": {37376
+ "ed25519:ALICEDEVICE1760": "QeSQ2STI3dKjTVEMNsdDV2luQ9Vdd6803elxQDvT58FQt69g930ntWwzLJ4O0o9BnxQhSwSwHQBccLmVrMrOBQ"37377
+ }37378
+ },37379
+ "user_id": "@alice_1760:hs1",37380
+ "unsigned": {}37381
+ }37382
+ },37383
+ "@alice_1786:hs1": {37384
+ "ALICEDEVICE1786": {37385
+ "algorithms": [37386
+ "m.olm.v1.curve25519-aes-sha2",37387
+ "m.megolm.v1.aes-sha2"37388
+ ],37389
+ "device_id": "ALICEDEVICE1786",37390
+ "keys": {37391
+ "curve25519:ALICEDEVICE1786": "0rVtesiT3LFULUbGJp2TMReFeA0f9sdLmn2OOyW/8zE",37392
+ "ed25519:ALICEDEVICE1786": "hWcQ8nyEoglt9kqGLiSPJ0WKNcTErE9kffKx1KSc3Bk"37393
+ },37394
+ "signatures": {37395
+ "@alice_1786:hs1": {37396
+ "ed25519:ALICEDEVICE1786": "kUNFlXvtvS8LuW+E5lupm6iRnNIvbC5pWVbC/vf+JDx4wOrxcwOmVNbO/X+n6gEQTXpF7rw8ha/bpW8mRq9pDw"37397
+ }37398
+ },37399
+ "user_id": "@alice_1786:hs1",37400
+ "unsigned": {}37401
+ }37402
+ },37403
+ "@alice_1794:hs1": {37404
+ "ALICEDEVICE1794": {37405
+ "algorithms": [37406
+ "m.olm.v1.curve25519-aes-sha2",37407
+ "m.megolm.v1.aes-sha2"37408
+ ],37409
+ "device_id": "ALICEDEVICE1794",37410
+ "keys": {37411
+ "curve25519:ALICEDEVICE1794": "35crh3HV5z6pqeE1utpAgGK2xbdGQ7vTFg6OHDu7n1o",37412
+ "ed25519:ALICEDEVICE1794": "qenoNqoRw+oqOadFsB4njDmfPHemh1ecVrHU/9Mg6gA"37413
+ },37414
+ "signatures": {37415
+ "@alice_1794:hs1": {37416
+ "ed25519:ALICEDEVICE1794": "HQW4fInIm0j3nC74iE0qfAcPNP+SaiYoVZ3Er4d76/508ABUo9FxDxvc76HxwWtVsJfiRXglDt1WKgc+RNg4DA"37417
+ }37418
+ },37419
+ "user_id": "@alice_1794:hs1",37420
+ "unsigned": {}37421
+ }37422
+ },37423
+ "@alice_1799:hs1": {37424
+ "ALICEDEVICE1799": {37425
+ "algorithms": [37426
+ "m.olm.v1.curve25519-aes-sha2",37427
+ "m.megolm.v1.aes-sha2"37428
+ ],37429
+ "device_id": "ALICEDEVICE1799",37430
+ "keys": {37431
+ "curve25519:ALICEDEVICE1799": "Redj74nUdBtbwe7wkT/5Mvn1OEQCDjUZleSCN3ZeQ14",37432
+ "ed25519:ALICEDEVICE1799": "QK5UuGdZImXGqJDUtzMSvCO9CRPFi1TLeJ0BXkqguP4"37433
+ },37434
+ "signatures": {37435
+ "@alice_1799:hs1": {37436
+ "ed25519:ALICEDEVICE1799": "7aVJ+SSevuhQwRQiz8rVCh8N8X0SjjgDO+5E+9zaS0AXYxa1VmPysTdRDVMUZeHylOFXCK/xmJWbhCEOOf26Dg"37437
+ }37438
+ },37439
+ "user_id": "@alice_1799:hs1",37440
+ "unsigned": {}37441
+ }37442
+ },37443
+ "@alice_17:hs1": {37444
+ "ALICEDEVICE17": {37445
+ "algorithms": [37446
+ "m.olm.v1.curve25519-aes-sha2",37447
+ "m.megolm.v1.aes-sha2"37448
+ ],37449
+ "device_id": "ALICEDEVICE17",37450
+ "keys": {37451
+ "curve25519:ALICEDEVICE17": "vlq2+GQXKuBRHJGEUxnnoXs7hQF2S5wqofYkijOtQho",37452
+ "ed25519:ALICEDEVICE17": "t/PSNUYROTtkClXRPhqE2tSBOjB7HLFq2WPSg0pbthc"37453
+ },37454
+ "signatures": {37455
+ "@alice_17:hs1": {37456
+ "ed25519:ALICEDEVICE17": "+9JxB/iVMuhoTzhiBe1gbzB5WABcAiiDU4NVYl77V2Vx/+VHAwKmLYmrTQWJMM8fxm4Hq3qDDYJHFiYMTKX1DA"37457
+ }37458
+ },37459
+ "user_id": "@alice_17:hs1",37460
+ "unsigned": {}37461
+ }37462
+ },37463
+ "@alice_1801:hs1": {37464
+ "ALICEDEVICE1801": {37465
+ "algorithms": [37466
+ "m.olm.v1.curve25519-aes-sha2",37467
+ "m.megolm.v1.aes-sha2"37468
+ ],37469
+ "device_id": "ALICEDEVICE1801",37470
+ "keys": {37471
+ "curve25519:ALICEDEVICE1801": "4oNZhLPyzhcuaRA76CeVyDuIyMtlFSAB6TSZA2yarwU",37472
+ "ed25519:ALICEDEVICE1801": "I0uG8+p/6BKuJJN04yRqsJZHpsUCxW0PeaiFzkmhI+I"37473
+ },37474
+ "signatures": {37475
+ "@alice_1801:hs1": {37476
+ "ed25519:ALICEDEVICE1801": "zVY7n33Cn9nS5j8LT+xYwTulf1HANRWyMqpAlMDIGzSAj9CEkcx1zSfw9639V3DsqQxcoNv0TPtPy8q3NbwtCQ"37477
+ }37478
+ },37479
+ "user_id": "@alice_1801:hs1",37480
+ "unsigned": {}37481
+ }37482
+ },37483
+ "@alice_180:hs1": {37484
+ "ALICEDEVICE180": {37485
+ "algorithms": [37486
+ "m.olm.v1.curve25519-aes-sha2",37487
+ "m.megolm.v1.aes-sha2"37488
+ ],37489
+ "device_id": "ALICEDEVICE180",37490
+ "keys": {37491
+ "curve25519:ALICEDEVICE180": "o3XDn6Q4omSg0lrtVMZt261hDdvsPDN1IQT1IBdqhFM",37492
+ "ed25519:ALICEDEVICE180": "ZrGNz9fbToVY34trJRKpI4qV2PUxUR/jFIpEILynDZA"37493
+ },37494
+ "signatures": {37495
+ "@alice_180:hs1": {37496
+ "ed25519:ALICEDEVICE180": "s5PXPfvMZewjv98MttwG24b28IuZbUYL2erfuOsCCeHmWitr+hJsOWdbEyM3imQnLyEh7SNlGQ1hRj8Dn0TwCg"37497
+ }37498
+ },37499
+ "user_id": "@alice_180:hs1",37500
+ "unsigned": {}37501
+ }37502
+ },37503
+ "@alice_1824:hs1": {37504
+ "ALICEDEVICE1824": {37505
+ "algorithms": [37506
+ "m.olm.v1.curve25519-aes-sha2",37507
+ "m.megolm.v1.aes-sha2"37508
+ ],37509
+ "device_id": "ALICEDEVICE1824",37510
+ "keys": {37511
+ "curve25519:ALICEDEVICE1824": "Xq5Ih4x+LDG5o8cWlAbKZBPIt5WrH5hOpQX54tZoC2A",37512
+ "ed25519:ALICEDEVICE1824": "NlRX/qeWyJG5JC6h8WubsS75IQgxKfYO0M8zjDNyRGw"37513
+ },37514
+ "signatures": {37515
+ "@alice_1824:hs1": {37516
+ "ed25519:ALICEDEVICE1824": "3yApSgLDMKGociHfYQJHG4/FNJZnOh1Z1YDaWXL3whz/uPEL2DNtUsaLZjwXdrGTAJmXN4EQQpFRjVJ06xAZBQ"37517
+ }37518
+ },37519
+ "user_id": "@alice_1824:hs1",37520
+ "unsigned": {}37521
+ }37522
+ },37523
+ "@alice_182:hs1": {37524
+ "ALICEDEVICE182": {37525
+ "algorithms": [37526
+ "m.olm.v1.curve25519-aes-sha2",37527
+ "m.megolm.v1.aes-sha2"37528
+ ],37529
+ "device_id": "ALICEDEVICE182",37530
+ "keys": {37531
+ "curve25519:ALICEDEVICE182": "XLkQnQbxUQukXxClLl55gfF2xUA0wDnqx6xsYM5863I",37532
+ "ed25519:ALICEDEVICE182": "rRybx5xg/plJJMoWh14z1vwu2ceWmYNT0U4H12VyWmc"37533
+ },37534
+ "signatures": {37535
+ "@alice_182:hs1": {37536
+ "ed25519:ALICEDEVICE182": "WUViBaTAZgNwqmcEvfvD2/WaZEi72+pKbORDG13/AfYlPy8KcvY9hFEo6VbJcdvP9zcmoab8FACF9XeH7Y+aDA"37537
+ }37538
+ },37539
+ "user_id": "@alice_182:hs1",37540
+ "unsigned": {}37541
+ }37542
+ },37543
+ "@alice_1836:hs1": {37544
+ "ALICEDEVICE1836": {37545
+ "algorithms": [37546
+ "m.olm.v1.curve25519-aes-sha2",37547
+ "m.megolm.v1.aes-sha2"37548
+ ],37549
+ "device_id": "ALICEDEVICE1836",37550
+ "keys": {37551
+ "curve25519:ALICEDEVICE1836": "oWPBmJvDh4XGM2YOdPdaDUMffMoQbkBuU2rOumn89Qs",37552
+ "ed25519:ALICEDEVICE1836": "NnqLj+8+3n+ce32wyZM5R8tuekNhNVMEtAtf1fR7cag"37553
+ },37554
+ "signatures": {37555
+ "@alice_1836:hs1": {37556
+ "ed25519:ALICEDEVICE1836": "Z1qa2hsMVNAyAm33C0a9G8T1nxVeJml3kSiPMa4X52ffe8vhKD3ZEQ1+bYNWZkuJGFn2DY+9ESeG7wKiEixTDQ"37557
+ }37558
+ },37559
+ "user_id": "@alice_1836:hs1",37560
+ "unsigned": {}37561
+ }37562
+ },37563
+ "@alice_183:hs1": {37564
+ "ALICEDEVICE183": {37565
+ "algorithms": [37566
+ "m.olm.v1.curve25519-aes-sha2",37567
+ "m.megolm.v1.aes-sha2"37568
+ ],37569
+ "device_id": "ALICEDEVICE183",37570
+ "keys": {37571
+ "curve25519:ALICEDEVICE183": "aU2CseKfJBAjv+eBXkKxl58LUWHUHC38z+qby8cfK0g",37572
+ "ed25519:ALICEDEVICE183": "ly3FDyRhQALGkfONqQGUUn2ax7RHmTiSqAAQX/U4vA4"37573
+ },37574
+ "signatures": {37575
+ "@alice_183:hs1": {37576
+ "ed25519:ALICEDEVICE183": "Ujeo2/DtFAmuc6Nj92+NqsYT6/KgEKp+n122Q8DkFuCtGS3ELupsFMzr07S/1EDZpkurgBSZcMwt2XoWtiBFDw"37577
+ }37578
+ },37579
+ "user_id": "@alice_183:hs1",37580
+ "unsigned": {}37581
+ }37582
+ },37583
+ "@alice_1845:hs1": {37584
+ "ALICEDEVICE1845": {37585
+ "algorithms": [37586
+ "m.olm.v1.curve25519-aes-sha2",37587
+ "m.megolm.v1.aes-sha2"37588
+ ],37589
+ "device_id": "ALICEDEVICE1845",37590
+ "keys": {37591
+ "curve25519:ALICEDEVICE1845": "OYcq/y4Nmtcr+4Q8D0dvKuKBpN4sdpv2piKPkvXNoUs",37592
+ "ed25519:ALICEDEVICE1845": "k9Wqfg4pBt4ez7XnqjxEXHrH+A04pdl87GobGC7UdpM"37593
+ },37594
+ "signatures": {37595
+ "@alice_1845:hs1": {37596
+ "ed25519:ALICEDEVICE1845": "QQUODZ80nt+4OK9Qh60Rw2JK8MIJViKaDDMm9TGDt1RRXnJQMBJki9CKHuS6/c/ZBls35mDca7VXkG4w68ysBw"37597
+ }37598
+ },37599
+ "user_id": "@alice_1845:hs1",37600
+ "unsigned": {}37601
+ }37602
+ },37603
+ "@alice_1861:hs1": {37604
+ "ALICEDEVICE1861": {37605
+ "algorithms": [37606
+ "m.olm.v1.curve25519-aes-sha2",37607
+ "m.megolm.v1.aes-sha2"37608
+ ],37609
+ "device_id": "ALICEDEVICE1861",37610
+ "keys": {37611
+ "curve25519:ALICEDEVICE1861": "cMmJl5hJgXN3hXHRJuWp7+kME8xbKFq15IYg3a9yLnk",37612
+ "ed25519:ALICEDEVICE1861": "ocnzvvNMZD+wwW81MrT1hUtGJ5oKD4mAh/x/RDyyRAs"37613
+ },37614
+ "signatures": {37615
+ "@alice_1861:hs1": {37616
+ "ed25519:ALICEDEVICE1861": "Vy57OleJQkalan2BEh8i9A0SuyqDyechFULydCkYs/54yASXbBGEetIIFYxXf33d3ZGz4FVgp2h9Uh45ktNSCw"37617
+ }37618
+ },37619
+ "user_id": "@alice_1861:hs1",37620
+ "unsigned": {}37621
+ }37622
+ },37623
+ "@alice_1881:hs1": {37624
+ "ALICEDEVICE1881": {37625
+ "algorithms": [37626
+ "m.olm.v1.curve25519-aes-sha2",37627
+ "m.megolm.v1.aes-sha2"37628
+ ],37629
+ "device_id": "ALICEDEVICE1881",37630
+ "keys": {37631
+ "curve25519:ALICEDEVICE1881": "6ycG39wwElv2iaj6u88tZvfScA5RHtoCuoyumJvggj8",37632
+ "ed25519:ALICEDEVICE1881": "L1HF2afWnVIOhk7L6np6Q/EXdwuVy6mwBX/qx45hjgs"37633
+ },37634
+ "signatures": {37635
+ "@alice_1881:hs1": {37636
+ "ed25519:ALICEDEVICE1881": "vl+B3TRijtBKLD5Cp2DBkBMboi8gqWuNklaaK/lwMPmmaPckThKw3xLk8P6LIl0zUxnFQOhkF0ZoLJKVl6rABA"37637
+ }37638
+ },37639
+ "user_id": "@alice_1881:hs1",37640
+ "unsigned": {}37641
+ }37642
+ },37643
+ "@alice_18:hs1": {37644
+ "ALICEDEVICE18": {37645
+ "algorithms": [37646
+ "m.olm.v1.curve25519-aes-sha2",37647
+ "m.megolm.v1.aes-sha2"37648
+ ],37649
+ "device_id": "ALICEDEVICE18",37650
+ "keys": {37651
+ "curve25519:ALICEDEVICE18": "9seYthVOQYmYpN4901y5ZHr6GQddufLK1Lwz71O3Fnk",37652
+ "ed25519:ALICEDEVICE18": "URb9+uEWqCTiYeGG41qGS9CrZjygepuAqtRQ38ijCbc"37653
+ },37654
+ "signatures": {37655
+ "@alice_18:hs1": {37656
+ "ed25519:ALICEDEVICE18": "LW8Vt9W1zv16HU+K+n4P2UQmX9dr7yFXI0w9J9YUlDeN2fQ+Kgn2DJ063C74B1FtriDE3PMmEdEn4jsV7IGQAg"37657
+ }37658
+ },37659
+ "user_id": "@alice_18:hs1",37660
+ "unsigned": {}37661
+ }37662
+ },37663
+ "@alice_1900:hs1": {37664
+ "ALICEDEVICE1900": {37665
+ "algorithms": [37666
+ "m.olm.v1.curve25519-aes-sha2",37667
+ "m.megolm.v1.aes-sha2"37668
+ ],37669
+ "device_id": "ALICEDEVICE1900",37670
+ "keys": {37671
+ "curve25519:ALICEDEVICE1900": "l/BLL/Fey1gp+nbUHQtOgzi5b+d5Wk5v2b3Mpn1G4kc",37672
+ "ed25519:ALICEDEVICE1900": "wFfjMDG7pRSBrZ8Xg8JLO/TcEqnYaoPNSeTALvjufu0"37673
+ },37674
+ "signatures": {37675
+ "@alice_1900:hs1": {37676
+ "ed25519:ALICEDEVICE1900": "1tTU/xus6292DNOrtimaLY1FFBSY6u8YQkpUxp0ByYNJHXXhlbC2PIXf92k0decbIr/6NbSbn2xhD805JQE0Cw"37677
+ }37678
+ },37679
+ "user_id": "@alice_1900:hs1",37680
+ "unsigned": {}37681
+ }37682
+ },37683
+ "@alice_1908:hs1": {37684
+ "ALICEDEVICE1908": {37685
+ "algorithms": [37686
+ "m.olm.v1.curve25519-aes-sha2",37687
+ "m.megolm.v1.aes-sha2"37688
+ ],37689
+ "device_id": "ALICEDEVICE1908",37690
+ "keys": {37691
+ "curve25519:ALICEDEVICE1908": "vkW78yJbXFov4nkSxC9itN2IibkiCTrk5yTOq/htcmE",37692
+ "ed25519:ALICEDEVICE1908": "hGJeOCtNbrrvzlcGsEywlz+6qRyeEWb73zeJs++L7vU"37693
+ },37694
+ "signatures": {37695
+ "@alice_1908:hs1": {37696
+ "ed25519:ALICEDEVICE1908": "AGvGZHFlKqEI9VykzVAdHbtyuK2dl4Sr2CCl767Llzet41g09iFHJF05dkF5dS1+y/Ge9RcP/Ra6Rq2WkjvJCg"37697
+ }37698
+ },37699
+ "user_id": "@alice_1908:hs1",37700
+ "unsigned": {}37701
+ }37702
+ },37703
+ "@alice_1912:hs1": {37704
+ "ALICEDEVICE1912": {37705
+ "algorithms": [37706
+ "m.olm.v1.curve25519-aes-sha2",37707
+ "m.megolm.v1.aes-sha2"37708
+ ],37709
+ "device_id": "ALICEDEVICE1912",37710
+ "keys": {37711
+ "curve25519:ALICEDEVICE1912": "V9aL+rS9Yd3yZl8ncWNKG0LJ454sgpxnGSwihbREDgc",37712
+ "ed25519:ALICEDEVICE1912": "Z8TL02tKKnEPyc1Tcz5CzpFGgHp/tl4Jc5JRa+n6dxQ"37713
+ },37714
+ "signatures": {37715
+ "@alice_1912:hs1": {37716
+ "ed25519:ALICEDEVICE1912": "FoZ0v4kZ5Q7ETwQPo5WUdz1VVnVbOamkABrwB7y6P0ljPWr8UdK/zH97Gz3dhz6WQ5yQPhtBZp49htEkmAs4BQ"37717
+ }37718
+ },37719
+ "user_id": "@alice_1912:hs1",37720
+ "unsigned": {}37721
+ }37722
+ },37723
+ "@alice_1926:hs1": {37724
+ "ALICEDEVICE1926": {37725
+ "algorithms": [37726
+ "m.olm.v1.curve25519-aes-sha2",37727
+ "m.megolm.v1.aes-sha2"37728
+ ],37729
+ "device_id": "ALICEDEVICE1926",37730
+ "keys": {37731
+ "curve25519:ALICEDEVICE1926": "5L3h6fGgnGsf16v174Zb2a8JYs8+9SlXkt9imjzfUHQ",37732
+ "ed25519:ALICEDEVICE1926": "YqzYJt8F2Rof7V6A0KMToeW2sPRRepesZFTNiklAz1w"37733
+ },37734
+ "signatures": {37735
+ "@alice_1926:hs1": {37736
+ "ed25519:ALICEDEVICE1926": "8h+c1Ic2eZnKhIY6FqaUBu09BhlYlKVE5fgvcT5eFO0E8DSFJ0d8688XLpXer5rX8U19Ek2KLZnz8x25SXSzBg"37737
+ }37738
+ },37739
+ "user_id": "@alice_1926:hs1",37740
+ "unsigned": {}37741
+ }37742
+ },37743
+ "@alice_1932:hs1": {37744
+ "ALICEDEVICE1932": {37745
+ "algorithms": [37746
+ "m.olm.v1.curve25519-aes-sha2",37747
+ "m.megolm.v1.aes-sha2"37748
+ ],37749
+ "device_id": "ALICEDEVICE1932",37750
+ "keys": {37751
+ "curve25519:ALICEDEVICE1932": "W6PJL9IK87nGdJMgZedmjNtnUs7fLYm4dyGt9rAKvl8",37752
+ "ed25519:ALICEDEVICE1932": "9a4t0UtXPKzU2vEGgVT1qPDZhKQhtn5pISIx3L1Meew"37753
+ },37754
+ "signatures": {37755
+ "@alice_1932:hs1": {37756
+ "ed25519:ALICEDEVICE1932": "uXQYD5LPJyuH+VU61n7VcUepeRbFERxUpnHl35QG7B1mVvHuRJK4vR3jSJ8buHJijKZQolnn1YF11CDxWCZUAA"37757
+ }37758
+ },37759
+ "user_id": "@alice_1932:hs1",37760
+ "unsigned": {}37761
+ }37762
+ },37763
+ "@alice_1934:hs1": {37764
+ "ALICEDEVICE1934": {37765
+ "algorithms": [37766
+ "m.olm.v1.curve25519-aes-sha2",37767
+ "m.megolm.v1.aes-sha2"37768
+ ],37769
+ "device_id": "ALICEDEVICE1934",37770
+ "keys": {37771
+ "curve25519:ALICEDEVICE1934": "I4PW+ZkI+u28HomjbRQ0t+gbzT477xyXN9n/HlKMQ3c",37772
+ "ed25519:ALICEDEVICE1934": "X9y4G4jzWdfqvAOLfOor0J8D9pwucI53V+WVg7d4gw0"37773
+ },37774
+ "signatures": {37775
+ "@alice_1934:hs1": {37776
+ "ed25519:ALICEDEVICE1934": "hp3U7JERKkWZREzLBJjzwW40SHwutYwNAubeaooubtqABTtJAOFU/Qd3JbrnO345uAU5+xb0rOW5mKRscvBYCg"37777
+ }37778
+ },37779
+ "user_id": "@alice_1934:hs1",37780
+ "unsigned": {}37781
+ }37782
+ },37783
+ "@alice_1946:hs1": {37784
+ "ALICEDEVICE1946": {37785
+ "algorithms": [37786
+ "m.olm.v1.curve25519-aes-sha2",37787
+ "m.megolm.v1.aes-sha2"37788
+ ],37789
+ "device_id": "ALICEDEVICE1946",37790
+ "keys": {37791
+ "curve25519:ALICEDEVICE1946": "QEFoPY8glU1d/kQ6GdCV/zzRfeBfSv2X8+K5c35VcAk",37792
+ "ed25519:ALICEDEVICE1946": "ZnKE/SNRkz9pWKDJPABFeVa1dvnVdMRB26BRT/cV/fk"37793
+ },37794
+ "signatures": {37795
+ "@alice_1946:hs1": {37796
+ "ed25519:ALICEDEVICE1946": "ufnPhl3/8fXIidHI2W+UKoIsYQ1S5/nU//v8u2n3Auzww4IDnvFl/rm1Og6v7W16DCgPDSwMvYr8uNs+FDa+AA"37797
+ }37798
+ },37799
+ "user_id": "@alice_1946:hs1",37800
+ "unsigned": {}37801
+ }37802
+ },37803
+ "@alice_1951:hs1": {37804
+ "ALICEDEVICE1951": {37805
+ "algorithms": [37806
+ "m.olm.v1.curve25519-aes-sha2",37807
+ "m.megolm.v1.aes-sha2"37808
+ ],37809
+ "device_id": "ALICEDEVICE1951",37810
+ "keys": {37811
+ "curve25519:ALICEDEVICE1951": "EnGSNM+e15HKc9BNONxrqfVIidMrLBHdtEjto2UQWhg",37812
+ "ed25519:ALICEDEVICE1951": "m8RRdHM3rXqCJkonqP8eeFQrYFPkOecdmQq5SB6/ujI"37813
+ },37814
+ "signatures": {37815
+ "@alice_1951:hs1": {37816
+ "ed25519:ALICEDEVICE1951": "6sjrLvXolAHrumkNZOy03Z1mz5EHsCFE3BNHGyRFeKfrip4bHDoDgBGupuSmRZmG1wthD4jJj55cSCWqd1qvAQ"37817
+ }37818
+ },37819
+ "user_id": "@alice_1951:hs1",37820
+ "unsigned": {}37821
+ }37822
+ },37823
+ "@alice_1952:hs1": {37824
+ "ALICEDEVICE1952": {37825
+ "algorithms": [37826
+ "m.olm.v1.curve25519-aes-sha2",37827
+ "m.megolm.v1.aes-sha2"37828
+ ],37829
+ "device_id": "ALICEDEVICE1952",37830
+ "keys": {37831
+ "curve25519:ALICEDEVICE1952": "dMffubKY0uer2vIgMefLZto1LzgDzO4V4G02hmg/PG8",37832
+ "ed25519:ALICEDEVICE1952": "JeXuDHdmtjLlJwInnQecqNiFkiX1rmXIRdrzrOCc/cI"37833
+ },37834
+ "signatures": {37835
+ "@alice_1952:hs1": {37836
+ "ed25519:ALICEDEVICE1952": "+L6LSpC4hTFen4z9o6la7cYDgcc17IR8SKKbgzfOcPqfyMDu+OxTrZ5+twPyj6kVetEzQZ8/SiJddUspzZ/nBA"37837
+ }37838
+ },37839
+ "user_id": "@alice_1952:hs1",37840
+ "unsigned": {}37841
+ }37842
+ },37843
+ "@alice_1961:hs1": {37844
+ "ALICEDEVICE1961": {37845
+ "algorithms": [37846
+ "m.olm.v1.curve25519-aes-sha2",37847
+ "m.megolm.v1.aes-sha2"37848
+ ],37849
+ "device_id": "ALICEDEVICE1961",37850
+ "keys": {37851
+ "curve25519:ALICEDEVICE1961": "qUkgW0l2ds0DNa9JgKLPzIY4wJP8/JIFZ/UrxRtv1CU",37852
+ "ed25519:ALICEDEVICE1961": "UJmQSDLzlz9nUkvKkCJh33+v++uXJ/XcN9mqccXwYPs"37853
+ },37854
+ "signatures": {37855
+ "@alice_1961:hs1": {37856
+ "ed25519:ALICEDEVICE1961": "zwycTNS7Gq/lpcrWJCTgTKPU/eOwCv7kbfuwHYHNflbxr/7nKLIEW8Pz5yuGgr3wvwiujtxc5dv1Q+JrA8I9Aw"37857
+ }37858
+ },37859
+ "user_id": "@alice_1961:hs1",37860
+ "unsigned": {}37861
+ }37862
+ },37863
+ "@alice_1966:hs1": {37864
+ "ALICEDEVICE1966": {37865
+ "algorithms": [37866
+ "m.olm.v1.curve25519-aes-sha2",37867
+ "m.megolm.v1.aes-sha2"37868
+ ],37869
+ "device_id": "ALICEDEVICE1966",37870
+ "keys": {37871
+ "curve25519:ALICEDEVICE1966": "moQjXEYsUUqCWuY7xTCSfcWIrQZdOgWYpPG/kxqajRE",37872
+ "ed25519:ALICEDEVICE1966": "nkf2KWjP0eZaJrhaut+3DKQT51D1KXW+hdFHR6FaS6Q"37873
+ },37874
+ "signatures": {37875
+ "@alice_1966:hs1": {37876
+ "ed25519:ALICEDEVICE1966": "NFzIjIKMkPS17c7bCvvm2y+fBhM4ezoBbqVmvj6rSGmhRW4L7uI7BeIHLUhs+vxIHijTn4UOpjMWCJKmDIgeDA"37877
+ }37878
+ },37879
+ "user_id": "@alice_1966:hs1",37880
+ "unsigned": {}37881
+ }37882
+ },37883
+ "@alice_1967:hs1": {37884
+ "ALICEDEVICE1967": {37885
+ "algorithms": [37886
+ "m.olm.v1.curve25519-aes-sha2",37887
+ "m.megolm.v1.aes-sha2"37888
+ ],37889
+ "device_id": "ALICEDEVICE1967",37890
+ "keys": {37891
+ "curve25519:ALICEDEVICE1967": "q01SEAPOKXD9J+cupaMLzdCkFHfIOGEgBXnYpaS8N2o",37892
+ "ed25519:ALICEDEVICE1967": "TlxgxetoAS2LbZI3+CQWDE9lP4/HNq8ubBa1ifKesJo"37893
+ },37894
+ "signatures": {37895
+ "@alice_1967:hs1": {37896
+ "ed25519:ALICEDEVICE1967": "1ax6/5ezdPb27y0IWGlsl0/LcvMZSWFow+LTPdTfUvYN8XkkdK750y84YwnWZUizmcpAZGiOXsDJV9qIHNrDAQ"37897
+ }37898
+ },37899
+ "user_id": "@alice_1967:hs1",37900
+ "unsigned": {}37901
+ }37902
+ },37903
+ "@alice_196:hs1": {37904
+ "ALICEDEVICE196": {37905
+ "algorithms": [37906
+ "m.olm.v1.curve25519-aes-sha2",37907
+ "m.megolm.v1.aes-sha2"37908
+ ],37909
+ "device_id": "ALICEDEVICE196",37910
+ "keys": {37911
+ "curve25519:ALICEDEVICE196": "wnXlCN3F0sOEW/jXo6C7S7gYzw0lKLM/OwW0NjQfSDg",37912
+ "ed25519:ALICEDEVICE196": "ypYNZ/3GE86dBgBBeAGJ3n0GOAPcSF5wRavYhL5vkcA"37913
+ },37914
+ "signatures": {37915
+ "@alice_196:hs1": {37916
+ "ed25519:ALICEDEVICE196": "lECSCLUs1OJmG3Lhv/+N5BNDOOFSaKupeo5843I4hzR1Dgrak/9Hdog6whzyCv2CB4QeLTpQ2fHRI0amSYlJDA"37917
+ }37918
+ },37919
+ "user_id": "@alice_196:hs1",37920
+ "unsigned": {}37921
+ }37922
+ },37923
+ "@alice_1991:hs1": {37924
+ "ALICEDEVICE1991": {37925
+ "algorithms": [37926
+ "m.olm.v1.curve25519-aes-sha2",37927
+ "m.megolm.v1.aes-sha2"37928
+ ],37929
+ "device_id": "ALICEDEVICE1991",37930
+ "keys": {37931
+ "curve25519:ALICEDEVICE1991": "VNioOemaCSycH7TPfUaJb39Ry4dZYiy27GBBRQhoZjc",37932
+ "ed25519:ALICEDEVICE1991": "yQfvEZUEMb5zglCeSQOdCid4rE7iKvxlemjT4v0vB/g"37933
+ },37934
+ "signatures": {37935
+ "@alice_1991:hs1": {37936
+ "ed25519:ALICEDEVICE1991": "Ns5BMMmoo3zs5EBj5l5+2lySv1yZmSWDK1PrBHk3yk/2vLN4qBj/ZNw2L3cAaS14/i2cjQaSIq1A6XiqoMlGBA"37937
+ }37938
+ },37939
+ "user_id": "@alice_1991:hs1",37940
+ "unsigned": {}37941
+ }37942
+ },37943
+ "@alice_208:hs1": {37944
+ "ALICEDEVICE208": {37945
+ "algorithms": [37946
+ "m.olm.v1.curve25519-aes-sha2",37947
+ "m.megolm.v1.aes-sha2"37948
+ ],37949
+ "device_id": "ALICEDEVICE208",37950
+ "keys": {37951
+ "curve25519:ALICEDEVICE208": "tlh8HP6nLJESEDTx3I1Rzgczy/3Tzm+5VBpQ6niSv0g",37952
+ "ed25519:ALICEDEVICE208": "XLg33ThRpJdDm7oS7ICluBTz/KokQaScHfqrP3rKiKg"37953
+ },37954
+ "signatures": {37955
+ "@alice_208:hs1": {37956
+ "ed25519:ALICEDEVICE208": "gYdOzBmpU9fi1xiXU4WpAARH29o/xq9BbENOkPZYbkaiXF3Noa0M9dRmTvBNlTjs56hINssXUDp47r3sDKIKCQ"37957
+ }37958
+ },37959
+ "user_id": "@alice_208:hs1",37960
+ "unsigned": {}37961
+ }37962
+ },37963
+ "@alice_210:hs1": {37964
+ "ALICEDEVICE210": {37965
+ "algorithms": [37966
+ "m.olm.v1.curve25519-aes-sha2",37967
+ "m.megolm.v1.aes-sha2"37968
+ ],37969
+ "device_id": "ALICEDEVICE210",37970
+ "keys": {37971
+ "curve25519:ALICEDEVICE210": "BGSvYFlBLXxtP66DTaZ22AxhgdbnMvOTmh8pvuO63g4",37972
+ "ed25519:ALICEDEVICE210": "H5i4HnavLBGfYSeMPSsiWrGjPGmZPRZE2Jr20qy6h7U"37973
+ },37974
+ "signatures": {37975
+ "@alice_210:hs1": {37976
+ "ed25519:ALICEDEVICE210": "4bSQSimt11ne5FGdZDeEmEwd3gP5ZkSHgfCaNmT9mHuIDjfZ+cCArShtG09po8ucBIZwqs7QxSKaA2ve4UlMAQ"37977
+ }37978
+ },37979
+ "user_id": "@alice_210:hs1",37980
+ "unsigned": {}37981
+ }37982
+ },37983
+ "@alice_213:hs1": {37984
+ "ALICEDEVICE213": {37985
+ "algorithms": [37986
+ "m.olm.v1.curve25519-aes-sha2",37987
+ "m.megolm.v1.aes-sha2"37988
+ ],37989
+ "device_id": "ALICEDEVICE213",37990
+ "keys": {37991
+ "curve25519:ALICEDEVICE213": "vwSr/UwIlU3oZFIxcdELWbscrT3XAXYtJLjAhQEKR1c",37992
+ "ed25519:ALICEDEVICE213": "vK9zypvCcUDTTIgC2AUJAe93wAlGgethbby1gOwLk7E"37993
+ },37994
+ "signatures": {37995
+ "@alice_213:hs1": {37996
+ "ed25519:ALICEDEVICE213": "disQNFL60QjDjGLuPdKp5CAA6bsAPqF6bRFFmKB/Dpn2fvFBo0zsZSGEJOjeRXkITSVKNCs2xc3WGtphwnyWDQ"37997
+ }37998
+ },37999
+ "user_id": "@alice_213:hs1",38000
+ "unsigned": {}38001
+ }38002
+ },38003
+ "@alice_225:hs1": {38004
+ "ALICEDEVICE225": {38005
+ "algorithms": [38006
+ "m.olm.v1.curve25519-aes-sha2",38007
+ "m.megolm.v1.aes-sha2"38008
+ ],38009
+ "device_id": "ALICEDEVICE225",38010
+ "keys": {38011
+ "curve25519:ALICEDEVICE225": "v1vQAvJnJXLqQ/Qdi8Qa+WA7l0kiBJ3sEDLmB64X2B0",38012
+ "ed25519:ALICEDEVICE225": "SbC3rE4xpe5mUR2mb95n/APgkrWpdZrocfKeXPLMruY"38013
+ },38014
+ "signatures": {38015
+ "@alice_225:hs1": {38016
+ "ed25519:ALICEDEVICE225": "XREIn6bvDB0s65tXgc7Cq0nAGkaT6QJDSqycXUuiwtNT4V0Is+11vitwVXdQdw4diQWf4lIeR2SbAHm1KGdWDA"38017
+ }38018
+ },38019
+ "user_id": "@alice_225:hs1",38020
+ "unsigned": {}38021
+ }38022
+ },38023
+ "@alice_228:hs1": {38024
+ "ALICEDEVICE228": {38025
+ "algorithms": [38026
+ "m.olm.v1.curve25519-aes-sha2",38027
+ "m.megolm.v1.aes-sha2"38028
+ ],38029
+ "device_id": "ALICEDEVICE228",38030
+ "keys": {38031
+ "curve25519:ALICEDEVICE228": "+HYL6k1rfy0BmhobcUHXi/DCdZJmd3e448cAIZybtFE",38032
+ "ed25519:ALICEDEVICE228": "nVARswUbSLHIPaqw+7gIOiB5dwac1YxUpYNDP6rMPhI"38033
+ },38034
+ "signatures": {38035
+ "@alice_228:hs1": {38036
+ "ed25519:ALICEDEVICE228": "G6GeX7uESd//8lsooQfAniwh+q/CJ7Cy40jEhl4zLgq23UufPoSdLktCFyl7OQpTuXSOeD6L6+yumTth8pmtBg"38037
+ }38038
+ },38039
+ "user_id": "@alice_228:hs1",38040
+ "unsigned": {}38041
+ }38042
+ },38043
+ "@alice_230:hs1": {38044
+ "ALICEDEVICE230": {38045
+ "algorithms": [38046
+ "m.olm.v1.curve25519-aes-sha2",38047
+ "m.megolm.v1.aes-sha2"38048
+ ],38049
+ "device_id": "ALICEDEVICE230",38050
+ "keys": {38051
+ "curve25519:ALICEDEVICE230": "MM2WGaZ5i778MBRnxJlm5kiWePzX8g1p0u1r7ea2jXI",38052
+ "ed25519:ALICEDEVICE230": "ZwUIDnqgZxoalTkia3o0hjmjC+/cjhH3N5ZWzqsE4PI"38053
+ },38054
+ "signatures": {38055
+ "@alice_230:hs1": {38056
+ "ed25519:ALICEDEVICE230": "g6AVeB9yB0CstPxUEshu8anIhrxQyuLpZiMjKJz0xu2PRK4g9z8Mb2z5SLjaERZGe1Uu2hAs0Jno7ddCNnZTBQ"38057
+ }38058
+ },38059
+ "user_id": "@alice_230:hs1",38060
+ "unsigned": {}38061
+ }38062
+ },38063
+ "@alice_255:hs1": {38064
+ "ALICEDEVICE255": {38065
+ "algorithms": [38066
+ "m.olm.v1.curve25519-aes-sha2",38067
+ "m.megolm.v1.aes-sha2"38068
+ ],38069
+ "device_id": "ALICEDEVICE255",38070
+ "keys": {38071
+ "curve25519:ALICEDEVICE255": "hBwplJ70G208WOk9LEs6japyl/yZ9A/0waEAc09jaC4",38072
+ "ed25519:ALICEDEVICE255": "ALbbG77oW9GCw6xxeNshEnqoANbolAgYoo9ryx86388"38073
+ },38074
+ "signatures": {38075
+ "@alice_255:hs1": {38076
+ "ed25519:ALICEDEVICE255": "8lqBS3lyDfDRwa9MwDS98QEMbbpRmdVJMUpQc0HSwoLQSl8RriMBlq/+CYUa51Xcb9qC35uwHZVzHKmROhZeCg"38077
+ }38078
+ },38079
+ "user_id": "@alice_255:hs1",38080
+ "unsigned": {}38081
+ }38082
+ },38083
+ "@alice_260:hs1": {38084
+ "ALICEDEVICE260": {38085
+ "algorithms": [38086
+ "m.olm.v1.curve25519-aes-sha2",38087
+ "m.megolm.v1.aes-sha2"38088
+ ],38089
+ "device_id": "ALICEDEVICE260",38090
+ "keys": {38091
+ "curve25519:ALICEDEVICE260": "JeXNxgcYwUFl9XsTmzxXbaGdFCc+X6+kRVhOKWBukD8",38092
+ "ed25519:ALICEDEVICE260": "KqAOusxzZ2HKf7kVk9zjCfFu8yZDybg3AylnFFjqOXA"38093
+ },38094
+ "signatures": {38095
+ "@alice_260:hs1": {38096
+ "ed25519:ALICEDEVICE260": "mALisUMZjJTq+71R9pNBPQRAmE4/kVOR22YyNT74lBEO6iXb0lsAVH5u6YYIOZxy6dw04jj0aeNTDEDroydoBA"38097
+ }38098
+ },38099
+ "user_id": "@alice_260:hs1",38100
+ "unsigned": {}38101
+ }38102
+ },38103
+ "@alice_264:hs1": {38104
+ "ALICEDEVICE264": {38105
+ "algorithms": [38106
+ "m.olm.v1.curve25519-aes-sha2",38107
+ "m.megolm.v1.aes-sha2"38108
+ ],38109
+ "device_id": "ALICEDEVICE264",38110
+ "keys": {38111
+ "curve25519:ALICEDEVICE264": "KEubz0gQxKz6irXBekM2F5hm2y54KpvTuOhOimqVrFM",38112
+ "ed25519:ALICEDEVICE264": "vVLXSes43pneWNkDT5B+1bzuY/1cf4ya+zUVxUowR9A"38113
+ },38114
+ "signatures": {38115
+ "@alice_264:hs1": {38116
+ "ed25519:ALICEDEVICE264": "u1HukiIyceByKD+kquGzuL4pnEnseF1STbyEkBM8xHAfogn3TwkGhc8tTfvsVPPYyHj6zOZmyxjsEMcm98ZoCA"38117
+ }38118
+ },38119
+ "user_id": "@alice_264:hs1",38120
+ "unsigned": {}38121
+ }38122
+ },38123
+ "@alice_278:hs1": {38124
+ "ALICEDEVICE278": {38125
+ "algorithms": [38126
+ "m.olm.v1.curve25519-aes-sha2",38127
+ "m.megolm.v1.aes-sha2"38128
+ ],38129
+ "device_id": "ALICEDEVICE278",38130
+ "keys": {38131
+ "curve25519:ALICEDEVICE278": "CAyLX+sbx6gA2Yip53RD5wyTU1jPtPaGXol42BdNqEE",38132
+ "ed25519:ALICEDEVICE278": "xPGqTuWoSkcgwk8hzg7nFljm8kmtiahjWY87OogOOI4"38133
+ },38134
+ "signatures": {38135
+ "@alice_278:hs1": {38136
+ "ed25519:ALICEDEVICE278": "cion0GKHQkJklTsgTk9uYIvwDXWK4GUiTsL1U0LsHVHxPtCmzijfxVcsw84ods5rtkeZzY5fy7Ti5gOEcvhkBQ"38137
+ }38138
+ },38139
+ "user_id": "@alice_278:hs1",38140
+ "unsigned": {}38141
+ }38142
+ },38143
+ "@alice_285:hs1": {38144
+ "ALICEDEVICE285": {38145
+ "algorithms": [38146
+ "m.olm.v1.curve25519-aes-sha2",38147
+ "m.megolm.v1.aes-sha2"38148
+ ],38149
+ "device_id": "ALICEDEVICE285",38150
+ "keys": {38151
+ "curve25519:ALICEDEVICE285": "10HDw8iaB2w3PNWTJz/jWOmh4QN8XqKo6FhRRbLYNhU",38152
+ "ed25519:ALICEDEVICE285": "MbAg4+atKNb0uR/S5Xm+34+EnxbEsbDEiCFa7quZFgo"38153
+ },38154
+ "signatures": {38155
+ "@alice_285:hs1": {38156
+ "ed25519:ALICEDEVICE285": "zduYEhNMXELVxz66YSmtiwGLAoGiCsfHYjrESlxL3MpRW4LHmL/OKwuDUCokmZYXxYqi4deK826Er7m2KCmUDg"38157
+ }38158
+ },38159
+ "user_id": "@alice_285:hs1",38160
+ "unsigned": {}38161
+ }38162
+ },38163
+ "@alice_289:hs1": {38164
+ "ALICEDEVICE289": {38165
+ "algorithms": [38166
+ "m.olm.v1.curve25519-aes-sha2",38167
+ "m.megolm.v1.aes-sha2"38168
+ ],38169
+ "device_id": "ALICEDEVICE289",38170
+ "keys": {38171
+ "curve25519:ALICEDEVICE289": "oIIrw/KDjSQ7eU0UFO1ioyevynUGptT52R0ksDFSUCU",38172
+ "ed25519:ALICEDEVICE289": "Po3Hb9efH4HJ6HL8yk7N8fehQxm85Oic3uOAq/Mgb/A"38173
+ },38174
+ "signatures": {38175
+ "@alice_289:hs1": {38176
+ "ed25519:ALICEDEVICE289": "JeJg/LKFvXg+CQZOGNgbcjYNSj67HH8qnargp/zDrdW3WGBTbWzqCd/VmMwpXUhX+Nhpx+PPSXodsfoCpNAvBA"38177
+ }38178
+ },38179
+ "user_id": "@alice_289:hs1",38180
+ "unsigned": {}38181
+ }38182
+ },38183
+ "@alice_297:hs1": {38184
+ "ALICEDEVICE297": {38185
+ "algorithms": [38186
+ "m.olm.v1.curve25519-aes-sha2",38187
+ "m.megolm.v1.aes-sha2"38188
+ ],38189
+ "device_id": "ALICEDEVICE297",38190
+ "keys": {38191
+ "curve25519:ALICEDEVICE297": "eAwspjeLtAcWfGbno8n1uIZIh/6bDTWzOPM30TeGMRk",38192
+ "ed25519:ALICEDEVICE297": "+PADZVyGwnEebmj07aBUHsLqYoGcIwBmMESFv9XW4NE"38193
+ },38194
+ "signatures": {38195
+ "@alice_297:hs1": {38196
+ "ed25519:ALICEDEVICE297": "RfsXqfUiJoKPn1akw+wwSGHYgStnetaS3KB6JohuVJnf1qkuGA6mzAv/XctnL9Xe0n3KJcNoblDnTI3qnDelDQ"38197
+ }38198
+ },38199
+ "user_id": "@alice_297:hs1",38200
+ "unsigned": {}38201
+ }38202
+ },38203
+ "@alice_299:hs1": {38204
+ "ALICEDEVICE299": {38205
+ "algorithms": [38206
+ "m.olm.v1.curve25519-aes-sha2",38207
+ "m.megolm.v1.aes-sha2"38208
+ ],38209
+ "device_id": "ALICEDEVICE299",38210
+ "keys": {38211
+ "curve25519:ALICEDEVICE299": "RBlQ6wyDFTr+GZ6ARTGLRu5w5RTDDDwo+eZipRzMwAI",38212
+ "ed25519:ALICEDEVICE299": "PNpJF19hDIdnu1IUFwkTNgZBVIq/22tKQHfEQjmH4S8"38213
+ },38214
+ "signatures": {38215
+ "@alice_299:hs1": {38216
+ "ed25519:ALICEDEVICE299": "75KLZSGS+PCcD8ERzbhiqQAt0aoJiqgSs4JNOP3Ry4BZqhpChz+EYvWvvka/jNjf/yAAWKnMzei8CB0bxCZMDw"38217
+ }38218
+ },38219
+ "user_id": "@alice_299:hs1",38220
+ "unsigned": {}38221
+ }38222
+ },38223
+ "@alice_305:hs1": {38224
+ "ALICEDEVICE305": {38225
+ "algorithms": [38226
+ "m.olm.v1.curve25519-aes-sha2",38227
+ "m.megolm.v1.aes-sha2"38228
+ ],38229
+ "device_id": "ALICEDEVICE305",38230
+ "keys": {38231
+ "curve25519:ALICEDEVICE305": "KHC/SCx+yiYx4Zmo17IOhQPKjg8U7bDQvr8DM3sl5y4",38232
+ "ed25519:ALICEDEVICE305": "qCdI41QimbddtAdW62xX08IAahdyYUzz0Xmj0tWUms8"38233
+ },38234
+ "signatures": {38235
+ "@alice_305:hs1": {38236
+ "ed25519:ALICEDEVICE305": "0JMOy7YUa6H8zih8Owr+eFZdUCw9BF+jb3xiG3hwr0IrgyOu8jWRB70ZrtvejknHPod2ungKBRPPyiyDN5pNCg"38237
+ }38238
+ },38239
+ "user_id": "@alice_305:hs1",38240
+ "unsigned": {}38241
+ }38242
+ },38243
+ "@alice_314:hs1": {38244
+ "ALICEDEVICE314": {38245
+ "algorithms": [38246
+ "m.olm.v1.curve25519-aes-sha2",38247
+ "m.megolm.v1.aes-sha2"38248
+ ],38249
+ "device_id": "ALICEDEVICE314",38250
+ "keys": {38251
+ "curve25519:ALICEDEVICE314": "Ow+plLTse9EPRY8vITr6zIxYiT7Vp8xDV5JxZWOFll8",38252
+ "ed25519:ALICEDEVICE314": "UYtu7fUv3VoWCYpE9ZF1vXK5z+dPZ/4OYbY1I/ATkqI"38253
+ },38254
+ "signatures": {38255
+ "@alice_314:hs1": {38256
+ "ed25519:ALICEDEVICE314": "5l4IB+XjttZI4amABYt15Df9lOyMExhVL+ZHaWzIjA57v8pH4pmJvHd3p5KMYLfCc3FFGfOwE6srAXagFY2BDA"38257
+ }38258
+ },38259
+ "user_id": "@alice_314:hs1",38260
+ "unsigned": {}38261
+ }38262
+ },38263
+ "@alice_316:hs1": {38264
+ "ALICEDEVICE316": {38265
+ "algorithms": [38266
+ "m.olm.v1.curve25519-aes-sha2",38267
+ "m.megolm.v1.aes-sha2"38268
+ ],38269
+ "device_id": "ALICEDEVICE316",38270
+ "keys": {38271
+ "curve25519:ALICEDEVICE316": "V9SxVhEP1VPtbc1dP97zCXyv2uNp3ywckUw3rVV5AFU",38272
+ "ed25519:ALICEDEVICE316": "6yKFFhdQMoze2vuPgCu1hxtwDvkn/PBT6Ykunlog6U8"38273
+ },38274
+ "signatures": {38275
+ "@alice_316:hs1": {38276
+ "ed25519:ALICEDEVICE316": "hwbm0E+5i7H2NWD2iwxl3WjrUUPBPTjcg1EbCsaoFcRYKrHGzH5gP6UrnjBjTu73gFvfWlM/4HFn4MJ6mrrIAw"38277
+ }38278
+ },38279
+ "user_id": "@alice_316:hs1",38280
+ "unsigned": {}38281
+ }38282
+ },38283
+ "@alice_318:hs1": {38284
+ "ALICEDEVICE318": {38285
+ "algorithms": [38286
+ "m.olm.v1.curve25519-aes-sha2",38287
+ "m.megolm.v1.aes-sha2"38288
+ ],38289
+ "device_id": "ALICEDEVICE318",38290
+ "keys": {38291
+ "curve25519:ALICEDEVICE318": "4DlP3q4M1J7SXSqXXso7NCmFcUiLjWLJXz3J50IhtB0",38292
+ "ed25519:ALICEDEVICE318": "fHabL+LEBLX3t/OCFws8GxUTqJMEFkucdIUATQNDIB0"38293
+ },38294
+ "signatures": {38295
+ "@alice_318:hs1": {38296
+ "ed25519:ALICEDEVICE318": "Ux1TKm1Rje4nGGTgE6Ku70KzRfwoQ7r8rcoH6zpQryT6zr/5wkte7JpyKCwHI21rURPfvK7pAmvcomXAl5mhCQ"38297
+ }38298
+ },38299
+ "user_id": "@alice_318:hs1",38300
+ "unsigned": {}38301
+ }38302
+ },38303
+ "@alice_336:hs1": {38304
+ "ALICEDEVICE336": {38305
+ "algorithms": [38306
+ "m.olm.v1.curve25519-aes-sha2",38307
+ "m.megolm.v1.aes-sha2"38308
+ ],38309
+ "device_id": "ALICEDEVICE336",38310
+ "keys": {38311
+ "curve25519:ALICEDEVICE336": "9P1bHYOXbKqwh5aJ6aDKPycQLyBkw0WV0/4FS+kSDVg",38312
+ "ed25519:ALICEDEVICE336": "ny96zRauNzqYyjZNJEClnrOI3fgRKCP0vQRG+Par+bs"38313
+ },38314
+ "signatures": {38315
+ "@alice_336:hs1": {38316
+ "ed25519:ALICEDEVICE336": "bkExS3+rUpXqqKjCYkc5AQCDRXWrp0KEtLb6kGyXl1imWd3wTDVZcZAwoerYw0cHjptDxbFbLxkOxTzZfe6DCg"38317
+ }38318
+ },38319
+ "user_id": "@alice_336:hs1",38320
+ "unsigned": {}38321
+ }38322
+ },38323
+ "@alice_338:hs1": {38324
+ "ALICEDEVICE338": {38325
+ "algorithms": [38326
+ "m.olm.v1.curve25519-aes-sha2",38327
+ "m.megolm.v1.aes-sha2"38328
+ ],38329
+ "device_id": "ALICEDEVICE338",38330
+ "keys": {38331
+ "curve25519:ALICEDEVICE338": "tjinKrh0CvFkxMuJz5Z36ofFavgt1SeTmwEt+njEDxI",38332
+ "ed25519:ALICEDEVICE338": "GSucqmpdu5CLt7TpdfhLIuyZMDaHdqog0hs060fL2OU"38333
+ },38334
+ "signatures": {38335
+ "@alice_338:hs1": {38336
+ "ed25519:ALICEDEVICE338": "XvSi3SE6ChnS0jY7vgWa9ME6AO8SXdok3oCLU5ykidL1do+QQddK9iDm7ZLI8LtVqu/rC3fY5yMhT6eEkY62Cw"38337
+ }38338
+ },38339
+ "user_id": "@alice_338:hs1",38340
+ "unsigned": {}38341
+ }38342
+ },38343
+ "@alice_342:hs1": {38344
+ "ALICEDEVICE342": {38345
+ "algorithms": [38346
+ "m.olm.v1.curve25519-aes-sha2",38347
+ "m.megolm.v1.aes-sha2"38348
+ ],38349
+ "device_id": "ALICEDEVICE342",38350
+ "keys": {38351
+ "curve25519:ALICEDEVICE342": "5lbhbA6WaBzHdSGQ7fimTJapSlk0u/O2wNaAUZGdgTE",38352
+ "ed25519:ALICEDEVICE342": "WcXuOuqDimwSeeVsuWFQy0sq+s/RBMxG0XF7eUHjJjQ"38353
+ },38354
+ "signatures": {38355
+ "@alice_342:hs1": {38356
+ "ed25519:ALICEDEVICE342": "oNeTAfsOP2Ng4yGugpfFMrW6w9kEkRdSx7JsOwEY+pyvNrZ7M7ltSIhcEg6Z9FSni53xrD2SoUbHCnfn69YJBw"38357
+ }38358
+ },38359
+ "user_id": "@alice_342:hs1",38360
+ "unsigned": {}38361
+ }38362
+ },38363
+ "@alice_34:hs1": {38364
+ "ALICEDEVICE34": {38365
+ "algorithms": [38366
+ "m.olm.v1.curve25519-aes-sha2",38367
+ "m.megolm.v1.aes-sha2"38368
+ ],38369
+ "device_id": "ALICEDEVICE34",38370
+ "keys": {38371
+ "curve25519:ALICEDEVICE34": "CPaMWkNwtTOEAK6niHr8jOrYgJ6APOU3LbBAKEsKHAI",38372
+ "ed25519:ALICEDEVICE34": "BONIl9gw2BXcYuvPe99/KxE0G6XSS7GoYOc5YVVugIo"38373
+ },38374
+ "signatures": {38375
+ "@alice_34:hs1": {38376
+ "ed25519:ALICEDEVICE34": "uQv/1L28pmsGhC9vk6Nx4v2UglnWJo/VQHg5sfWV8YXtXSh+a3PruyxKu3vX42CBR+vzwKE9IuSzTS6txuQSDQ"38377
+ }38378
+ },38379
+ "user_id": "@alice_34:hs1",38380
+ "unsigned": {}38381
+ }38382
+ },38383
+ "@alice_350:hs1": {38384
+ "ALICEDEVICE350": {38385
+ "algorithms": [38386
+ "m.olm.v1.curve25519-aes-sha2",38387
+ "m.megolm.v1.aes-sha2"38388
+ ],38389
+ "device_id": "ALICEDEVICE350",38390
+ "keys": {38391
+ "curve25519:ALICEDEVICE350": "oupXKdEdQmA22k1biPlThSs13qciNt7K/ycvr5ly/lQ",38392
+ "ed25519:ALICEDEVICE350": "TsNe8joQd07fTjQbpqjGk7AiooSaY3V4/KDeh0t0Zkw"38393
+ },38394
+ "signatures": {38395
+ "@alice_350:hs1": {38396
+ "ed25519:ALICEDEVICE350": "oRZoUZxh8Ru1oHeAIP4+ayNgvATSHUH4/xonxrPDx28X1PYxxNzKEENWIMjf4t7VyB3BnlifYTotHpXEEpJqCQ"38397
+ }38398
+ },38399
+ "user_id": "@alice_350:hs1",38400
+ "unsigned": {}38401
+ }38402
+ },38403
+ "@alice_353:hs1": {38404
+ "ALICEDEVICE353": {38405
+ "algorithms": [38406
+ "m.olm.v1.curve25519-aes-sha2",38407
+ "m.megolm.v1.aes-sha2"38408
+ ],38409
+ "device_id": "ALICEDEVICE353",38410
+ "keys": {38411
+ "curve25519:ALICEDEVICE353": "WQwyKWCVC3GO6IweQcCvcBRPjsmhk1T5lQrMWJ40uxQ",38412
+ "ed25519:ALICEDEVICE353": "I5dLht0fLsjALWLpbrbQlycNAgEOvXdgJLr2cL9mDiY"38413
+ },38414
+ "signatures": {38415
+ "@alice_353:hs1": {38416
+ "ed25519:ALICEDEVICE353": "K8Z/XMPv2quNDhRxAMUWYegP6tkUGNT8N/fJQjYRgEHmqx867NF3Y/JQNtZE1GwyKkLt84dNH1lhf0G2wrH1AQ"38417
+ }38418
+ },38419
+ "user_id": "@alice_353:hs1",38420
+ "unsigned": {}38421
+ }38422
+ },38423
+ "@alice_380:hs1": {38424
+ "ALICEDEVICE380": {38425
+ "algorithms": [38426
+ "m.olm.v1.curve25519-aes-sha2",38427
+ "m.megolm.v1.aes-sha2"38428
+ ],38429
+ "device_id": "ALICEDEVICE380",38430
+ "keys": {38431
+ "curve25519:ALICEDEVICE380": "0gruiXwfarP2yLxrw6milfl2MjAFtFs5N0t0vnp8oiE",38432
+ "ed25519:ALICEDEVICE380": "3OcG8YVNNnY52k3v0raJkAYDCBFluDKJCvaJ8lJcIxk"38433
+ },38434
+ "signatures": {38435
+ "@alice_380:hs1": {38436
+ "ed25519:ALICEDEVICE380": "n8FGk2x7PkgqlMBlQQ/5Yd4CSeJlE1Udg1hQ5ZUtBsUHljW/+ItPtQpiw2ZHcq/dkRz+EG3KiBX27CgFftEZCA"38437
+ }38438
+ },38439
+ "user_id": "@alice_380:hs1",38440
+ "unsigned": {}38441
+ }38442
+ },38443
+ "@alice_385:hs1": {38444
+ "ALICEDEVICE385": {38445
+ "algorithms": [38446
+ "m.olm.v1.curve25519-aes-sha2",38447
+ "m.megolm.v1.aes-sha2"38448
+ ],38449
+ "device_id": "ALICEDEVICE385",38450
+ "keys": {38451
+ "curve25519:ALICEDEVICE385": "hTyLXKR+6rV6tq1n/qhOwCD/D6mWxSqFqY8QmvogUWU",38452
+ "ed25519:ALICEDEVICE385": "4xpjF5TNvn6NdQdTyyvhqJ0VtSTwIcuIjWsDwa+rrA0"38453
+ },38454
+ "signatures": {38455
+ "@alice_385:hs1": {38456
+ "ed25519:ALICEDEVICE385": "lvEPbYrfelAwrP9ugzaaz5swkna6dc7pOiu6iP+gkIOjt6uq8at52bpgw/Y4dnsZ/UGbfLJBWA06BPVqedCWCw"38457
+ }38458
+ },38459
+ "user_id": "@alice_385:hs1",38460
+ "unsigned": {}38461
+ }38462
+ },38463
+ "@alice_392:hs1": {38464
+ "ALICEDEVICE392": {38465
+ "algorithms": [38466
+ "m.olm.v1.curve25519-aes-sha2",38467
+ "m.megolm.v1.aes-sha2"38468
+ ],38469
+ "device_id": "ALICEDEVICE392",38470
+ "keys": {38471
+ "curve25519:ALICEDEVICE392": "hgP6L3s9WA4KuEWzKQhIMRuL5CV760urLIkAthcUqCI",38472
+ "ed25519:ALICEDEVICE392": "Vn7vt0WmL1zXtmkcA7TxeSSxewIBd69UMsViB8ZcNSM"38473
+ },38474
+ "signatures": {38475
+ "@alice_392:hs1": {38476
+ "ed25519:ALICEDEVICE392": "vooxJf9a/8zakewdMBDrkxugeFkwFFfhKW4e6tIXw5u2hH+0Xj1UUuqA4XWrOthwgCpU39ajcQDAKtDpybwgBg"38477
+ }38478
+ },38479
+ "user_id": "@alice_392:hs1",38480
+ "unsigned": {}38481
+ }38482
+ },38483
+ "@alice_397:hs1": {38484
+ "ALICEDEVICE397": {38485
+ "algorithms": [38486
+ "m.olm.v1.curve25519-aes-sha2",38487
+ "m.megolm.v1.aes-sha2"38488
+ ],38489
+ "device_id": "ALICEDEVICE397",38490
+ "keys": {38491
+ "curve25519:ALICEDEVICE397": "Fp90wV22Pwy0el27MubBvDUZnUrmdE9n4nZG+L4KaVY",38492
+ "ed25519:ALICEDEVICE397": "buZfy6UIz6/jb8lmL5CoSIjGJK4RmXw44mvQgKFREXw"38493
+ },38494
+ "signatures": {38495
+ "@alice_397:hs1": {38496
+ "ed25519:ALICEDEVICE397": "iasnS6ajv8d0NWjqh8SmE86V6d85aRcPM9xmNSX9+1OcZJoFYo73I1iD1f8sOXm7/lz5eECxPN48j5fT2Pb/Bg"38497
+ }38498
+ },38499
+ "user_id": "@alice_397:hs1",38500
+ "unsigned": {}38501
+ }38502
+ },38503
+ "@alice_41:hs1": {38504
+ "ALICEDEVICE41": {38505
+ "algorithms": [38506
+ "m.olm.v1.curve25519-aes-sha2",38507
+ "m.megolm.v1.aes-sha2"38508
+ ],38509
+ "device_id": "ALICEDEVICE41",38510
+ "keys": {38511
+ "curve25519:ALICEDEVICE41": "2/etlJ8yJwWMXV9Hs8qYGqvf4POJJVTc1o1zShCouB4",38512
+ "ed25519:ALICEDEVICE41": "aY0oOlp/O9Cu7HMLuCURWysHBbgwxVfc6q2ifYq6jnc"38513
+ },38514
+ "signatures": {38515
+ "@alice_41:hs1": {38516
+ "ed25519:ALICEDEVICE41": "koA5aQ/AtYB8f+8JYrg71gAefpvM31bQRYJmLXrLHtuXpo7xdDq8bfv4hp2XSJrx+8PfqsvYfxECinLW1qm8BQ"38517
+ }38518
+ },38519
+ "user_id": "@alice_41:hs1",38520
+ "unsigned": {}38521
+ }38522
+ },38523
+ "@alice_433:hs1": {38524
+ "ALICEDEVICE433": {38525
+ "algorithms": [38526
+ "m.olm.v1.curve25519-aes-sha2",38527
+ "m.megolm.v1.aes-sha2"38528
+ ],38529
+ "device_id": "ALICEDEVICE433",38530
+ "keys": {38531
+ "curve25519:ALICEDEVICE433": "A5GQxVXYol1sH6FxtfbyPDWa37yxBhZjvPqAjD+LZA0",38532
+ "ed25519:ALICEDEVICE433": "dDT0VfcfNWecFa6qVy+m/bJzg5UPjcJKTHNphBBAAY4"38533
+ },38534
+ "signatures": {38535
+ "@alice_433:hs1": {38536
+ "ed25519:ALICEDEVICE433": "UqKQGxSECvXuy/J//WEWU/DR0Nv2Il4u0Ifm0UFW6tts3JNVrw+6HwU2JXRZf5iJ0Mc1EFX/Z9pGaNwqadZOAw"38537
+ }38538
+ },38539
+ "user_id": "@alice_433:hs1",38540
+ "unsigned": {}38541
+ }38542
+ },38543
+ "@alice_434:hs1": {38544
+ "ALICEDEVICE434": {38545
+ "algorithms": [38546
+ "m.olm.v1.curve25519-aes-sha2",38547
+ "m.megolm.v1.aes-sha2"38548
+ ],38549
+ "device_id": "ALICEDEVICE434",38550
+ "keys": {38551
+ "curve25519:ALICEDEVICE434": "FbqxFU9v1JiFcgtG3tEdULlDRkM7uTb/az/Amxv5GHc",38552
+ "ed25519:ALICEDEVICE434": "Xlj4ZDYQRxjfVmjTgWkj04Jh8+HH1clrNrnLfXyimVI"38553
+ },38554
+ "signatures": {38555
+ "@alice_434:hs1": {38556
+ "ed25519:ALICEDEVICE434": "133ruaChpWXqUlFu3ovj7iHQqirK9QbuVavU7GrjU1bAA6t6A78wxGbgFCqQjxAh7xb0wgbfQKpLbTQU9ITVBA"38557
+ }38558
+ },38559
+ "user_id": "@alice_434:hs1",38560
+ "unsigned": {}38561
+ }38562
+ },38563
+ "@alice_437:hs1": {38564
+ "ALICEDEVICE437": {38565
+ "algorithms": [38566
+ "m.olm.v1.curve25519-aes-sha2",38567
+ "m.megolm.v1.aes-sha2"38568
+ ],38569
+ "device_id": "ALICEDEVICE437",38570
+ "keys": {38571
+ "curve25519:ALICEDEVICE437": "XLpavRO+bfu/utYTiTbBFJjU/LgIeVHFZcrrgmwdTkc",38572
+ "ed25519:ALICEDEVICE437": "KgXYkYR7xdNOlTPvxRbGUEbS/sP4n1ENY7unhTe19FY"38573
+ },38574
+ "signatures": {38575
+ "@alice_437:hs1": {38576
+ "ed25519:ALICEDEVICE437": "6TF1or2dXWpHtV6VRC9KPmCAlc2EK2HMeX7XHTwuyROZhMdaSKplY9381js5pNxJoPZBuaDXN9wgnnHM/QVNBg"38577
+ }38578
+ },38579
+ "user_id": "@alice_437:hs1",38580
+ "unsigned": {}38581
+ }38582
+ },38583
+ "@alice_442:hs1": {38584
+ "ALICEDEVICE442": {38585
+ "algorithms": [38586
+ "m.olm.v1.curve25519-aes-sha2",38587
+ "m.megolm.v1.aes-sha2"38588
+ ],38589
+ "device_id": "ALICEDEVICE442",38590
+ "keys": {38591
+ "curve25519:ALICEDEVICE442": "LfnuavFRWYVA3lqzdLZXNaCSlYKwZy1aGM4QrbMlHCo",38592
+ "ed25519:ALICEDEVICE442": "Au8HYnds8Rao9cMFEn0mthHc7oiEdq9pY1wippcqQhY"38593
+ },38594
+ "signatures": {38595
+ "@alice_442:hs1": {38596
+ "ed25519:ALICEDEVICE442": "gXYOTHTfP6pvBVDUvUTfciejUjFrilC5uBAaYvpSjOWaDBxst+JEa/UsG7n486El5dLCZVHXL5yDknksg3KLCw"38597
+ }38598
+ },38599
+ "user_id": "@alice_442:hs1",38600
+ "unsigned": {}38601
+ }38602
+ },38603
+ "@alice_446:hs1": {38604
+ "ALICEDEVICE446": {38605
+ "algorithms": [38606
+ "m.olm.v1.curve25519-aes-sha2",38607
+ "m.megolm.v1.aes-sha2"38608
+ ],38609
+ "device_id": "ALICEDEVICE446",38610
+ "keys": {38611
+ "curve25519:ALICEDEVICE446": "/XhAK8A4htWFsUTp8tGRN3fqqVU7erlZztevEySSPTs",38612
+ "ed25519:ALICEDEVICE446": "I3npdtDw3T60ct+TwsXFFHZBwg7Wi2O/kEUBuz//IqQ"38613
+ },38614
+ "signatures": {38615
+ "@alice_446:hs1": {38616
+ "ed25519:ALICEDEVICE446": "IdlLbCqpfhPskRXpXcDCYDYOxU+wtAPEMma+Z7h9eu8xzbTOkIO2SNJo/f2rH5VbVCZOFX0rVlwbRKyOjFeeDQ"38617
+ }38618
+ },38619
+ "user_id": "@alice_446:hs1",38620
+ "unsigned": {}38621
+ }38622
+ },38623
+ "@alice_447:hs1": {38624
+ "ALICEDEVICE447": {38625
+ "algorithms": [38626
+ "m.olm.v1.curve25519-aes-sha2",38627
+ "m.megolm.v1.aes-sha2"38628
+ ],38629
+ "device_id": "ALICEDEVICE447",38630
+ "keys": {38631
+ "curve25519:ALICEDEVICE447": "sXwrM9yY0qry3tOTmFWvLLnZ9d6eQoMUKmJRrk1FfSY",38632
+ "ed25519:ALICEDEVICE447": "Uh1SFfXnXldFi7eQTYloiTWdINqt1/JQDCAy/dze1kM"38633
+ },38634
+ "signatures": {38635
+ "@alice_447:hs1": {38636
+ "ed25519:ALICEDEVICE447": "QFE/cKaRVza85tyzPALeFEzXxze7kpkMWJpxvRT0586gte6ihruwBf2Ixc30vqpNo0NSDMsq0HtDfr8z8FRtAA"38637
+ }38638
+ },38639
+ "user_id": "@alice_447:hs1",38640
+ "unsigned": {}38641
+ }38642
+ },38643
+ "@alice_44:hs1": {38644
+ "ALICEDEVICE44": {38645
+ "algorithms": [38646
+ "m.olm.v1.curve25519-aes-sha2",38647
+ "m.megolm.v1.aes-sha2"38648
+ ],38649
+ "device_id": "ALICEDEVICE44",38650
+ "keys": {38651
+ "curve25519:ALICEDEVICE44": "1NYXKwM+Pv6uqZaWJUmp+iHziGNYL/Wa+SdI3oJ2P2A",38652
+ "ed25519:ALICEDEVICE44": "Fg+O3TKAuHVje+/ac6QzR5SYF1i1HQnQOo3PO7KFeyg"38653
+ },38654
+ "signatures": {38655
+ "@alice_44:hs1": {38656
+ "ed25519:ALICEDEVICE44": "d/SaYcWeNbjKR4ZWmD8G/AwE7Cn191oN7KSfxfCa5FPvIXvkAPUtXUNpVj4OkT3oGNpfkX/k6lgQbenQNDRMAg"38657
+ }38658
+ },38659
+ "user_id": "@alice_44:hs1",38660
+ "unsigned": {}38661
+ }38662
+ },38663
+ "@alice_455:hs1": {38664
+ "ALICEDEVICE455": {38665
+ "algorithms": [38666
+ "m.olm.v1.curve25519-aes-sha2",38667
+ "m.megolm.v1.aes-sha2"38668
+ ],38669
+ "device_id": "ALICEDEVICE455",38670
+ "keys": {38671
+ "curve25519:ALICEDEVICE455": "1HhM5m06JuL2whkLgPASNBiWg/eheEDqqOiMC2R/8gw",38672
+ "ed25519:ALICEDEVICE455": "h8IpLfZRs9bmH5jWUYDtTaZ4xvV7cG82ThqCTWObhJI"38673
+ },38674
+ "signatures": {38675
+ "@alice_455:hs1": {38676
+ "ed25519:ALICEDEVICE455": "za/BHOS/zLjWnKvmrocU6FBzTVY4Ie+nlijBPT7t/2p7MDJJASmqRmHJN7aL4yv0U3qTXro1hDNHWVgubVCnAg"38677
+ }38678
+ },38679
+ "user_id": "@alice_455:hs1",38680
+ "unsigned": {}38681
+ }38682
+ },38683
+ "@alice_463:hs1": {38684
+ "ALICEDEVICE463": {38685
+ "algorithms": [38686
+ "m.olm.v1.curve25519-aes-sha2",38687
+ "m.megolm.v1.aes-sha2"38688
+ ],38689
+ "device_id": "ALICEDEVICE463",38690
+ "keys": {38691
+ "curve25519:ALICEDEVICE463": "+No2TRAd7O86mukQ9yZfvSAzwZi2Jbo9y6hky/AErmw",38692
+ "ed25519:ALICEDEVICE463": "hlLU9RXoVDNjPwjrAF9HsjrvcqnzMu8NOsPCDB0c49E"38693
+ },38694
+ "signatures": {38695
+ "@alice_463:hs1": {38696
+ "ed25519:ALICEDEVICE463": "FwgHcr8GUcTEbOzbxocVCMgywX4pll2Lg4jHdpEFz41maCWCUPcsevPvEw6/L/lqWLOWQsSwNhfL4AnGeGM3CQ"38697
+ }38698
+ },38699
+ "user_id": "@alice_463:hs1",38700
+ "unsigned": {}38701
+ }38702
+ },38703
+ "@alice_479:hs1": {38704
+ "ALICEDEVICE479": {38705
+ "algorithms": [38706
+ "m.olm.v1.curve25519-aes-sha2",38707
+ "m.megolm.v1.aes-sha2"38708
+ ],38709
+ "device_id": "ALICEDEVICE479",38710
+ "keys": {38711
+ "curve25519:ALICEDEVICE479": "9EpPPda8xFzRWvB0iA9TTLqN9AQ25B7qPM785r1v0nI",38712
+ "ed25519:ALICEDEVICE479": "7RuTgPoGxnyRZLzeIok66JPAvQkqIW0E9Lf6eUw1q/w"38713
+ },38714
+ "signatures": {38715
+ "@alice_479:hs1": {38716
+ "ed25519:ALICEDEVICE479": "/lqAKfTtNwF7Fm/A+eOgkWPBG7OZAdYAXFMqgbweMpazVXzqVduosoqBFNlIr7AdAQrz4kuWEIRzJA6Puth/BQ"38717
+ }38718
+ },38719
+ "user_id": "@alice_479:hs1",38720
+ "unsigned": {}38721
+ }38722
+ },38723
+ "@alice_497:hs1": {38724
+ "ALICEDEVICE497": {38725
+ "algorithms": [38726
+ "m.olm.v1.curve25519-aes-sha2",38727
+ "m.megolm.v1.aes-sha2"38728
+ ],38729
+ "device_id": "ALICEDEVICE497",38730
+ "keys": {38731
+ "curve25519:ALICEDEVICE497": "vmffM8AT3RW4wRNt/GXOOgAOtGwC9ZUmGVkhL3ysbjw",38732
+ "ed25519:ALICEDEVICE497": "fz/RDes+uULgZy6oq8vktDzrnPCTKFE86s6apmwjn7s"38733
+ },38734
+ "signatures": {38735
+ "@alice_497:hs1": {38736
+ "ed25519:ALICEDEVICE497": "iGZh2Dv6+773B2EQMSd43VcZcBArZ6eosYmgqAvRkWtSl/OgydRXhY5nevD/RufnNsLhopemygT+27dQJhANCg"38737
+ }38738
+ },38739
+ "user_id": "@alice_497:hs1",38740
+ "unsigned": {}38741
+ }38742
+ },38743
+ "@alice_498:hs1": {38744
+ "ALICEDEVICE498": {38745
+ "algorithms": [38746
+ "m.olm.v1.curve25519-aes-sha2",38747
+ "m.megolm.v1.aes-sha2"38748
+ ],38749
+ "device_id": "ALICEDEVICE498",38750
+ "keys": {38751
+ "curve25519:ALICEDEVICE498": "wcENt8D6rsRt/5Hn+rh60nb7TPp5k7QE5szQPaTzVgM",38752
+ "ed25519:ALICEDEVICE498": "3eKMBxjKRiFan6NkzQQ9C6Ld06pTaE3W6SSlpO2C1yk"38753
+ },38754
+ "signatures": {38755
+ "@alice_498:hs1": {38756
+ "ed25519:ALICEDEVICE498": "lsmDU94Fgwzx6fqbCznymOrdzcCT2tfdCcRLxlLua9htGOLx5zcL49lgpdKCuAVc+3agmXDuuqwEx+xUPepFAg"38757
+ }38758
+ },38759
+ "user_id": "@alice_498:hs1",38760
+ "unsigned": {}38761
+ }38762
+ },38763
+ "@alice_500:hs1": {38764
+ "ALICEDEVICE500": {38765
+ "algorithms": [38766
+ "m.olm.v1.curve25519-aes-sha2",38767
+ "m.megolm.v1.aes-sha2"38768
+ ],38769
+ "device_id": "ALICEDEVICE500",38770
+ "keys": {38771
+ "curve25519:ALICEDEVICE500": "UBIUcq525vEZpmAZp+35z258r7LcVPMaGq5iy5+zMh4",38772
+ "ed25519:ALICEDEVICE500": "PSvbcHvDjQMe21Ye82Rn5IBo1ZY7hG0L6QMGrJlENcw"38773
+ },38774
+ "signatures": {38775
+ "@alice_500:hs1": {38776
+ "ed25519:ALICEDEVICE500": "QjhxPNpaW82UOVPHDqQ4rX0IDA7+CdlM6EAM7jJ4ldn7AB1ZhFLGt0LmhlAXrbCvAiA1XN459WBSDF5H4g2GDg"38777
+ }38778
+ },38779
+ "user_id": "@alice_500:hs1",38780
+ "unsigned": {}38781
+ }38782
+ },38783
+ "@alice_505:hs1": {38784
+ "ALICEDEVICE505": {38785
+ "algorithms": [38786
+ "m.olm.v1.curve25519-aes-sha2",38787
+ "m.megolm.v1.aes-sha2"38788
+ ],38789
+ "device_id": "ALICEDEVICE505",38790
+ "keys": {38791
+ "curve25519:ALICEDEVICE505": "dupQXFDb4HsHkwIeNNblR2tTwHFFAxzT1aVTpja5FFg",38792
+ "ed25519:ALICEDEVICE505": "KTJNK8hCa6I4yiw80iBcb5Tw3U5uwhtpRYMUGO7bTZk"38793
+ },38794
+ "signatures": {38795
+ "@alice_505:hs1": {38796
+ "ed25519:ALICEDEVICE505": "xDVZRrxYt/0+oqDbTT+KHinWccIHK9I07NowVJV47M5UkfSL2VZASXOIIfxKZRFgT4mmJS0ykpaZ5vNGycFKDA"38797
+ }38798
+ },38799
+ "user_id": "@alice_505:hs1",38800
+ "unsigned": {}38801
+ }38802
+ },38803
+ "@alice_508:hs1": {38804
+ "ALICEDEVICE508": {38805
+ "algorithms": [38806
+ "m.olm.v1.curve25519-aes-sha2",38807
+ "m.megolm.v1.aes-sha2"38808
+ ],38809
+ "device_id": "ALICEDEVICE508",38810
+ "keys": {38811
+ "curve25519:ALICEDEVICE508": "0ScQp9q2M1GFTiDE4ptHUFaUjK9LxCWzEhbGNOGUOQo",38812
+ "ed25519:ALICEDEVICE508": "GdGf+dWwU8xGMWUe3CXFu2SkIcIZ0xD8W1VMbYDUhEw"38813
+ },38814
+ "signatures": {38815
+ "@alice_508:hs1": {38816
+ "ed25519:ALICEDEVICE508": "Fzfsi7UYStyz3jGMMH9w9swM4u4d1Fhk/eV1465wc/cXnq7ReiE3RjGy2sd+GW/08RRti+Mj0xJVNvSPnZtJCg"38817
+ }38818
+ },38819
+ "user_id": "@alice_508:hs1",38820
+ "unsigned": {}38821
+ }38822
+ },38823
+ "@alice_517:hs1": {38824
+ "ALICEDEVICE517": {38825
+ "algorithms": [38826
+ "m.olm.v1.curve25519-aes-sha2",38827
+ "m.megolm.v1.aes-sha2"38828
+ ],38829
+ "device_id": "ALICEDEVICE517",38830
+ "keys": {38831
+ "curve25519:ALICEDEVICE517": "qXGkxSArRERdUhJ2BbuWBke9NIxyn2wRm7n7ocdCggo",38832
+ "ed25519:ALICEDEVICE517": "O+Bs7XZjpS43UuJxEV4YJC2tzLpmws/ASDZt2BM9Qcc"38833
+ },38834
+ "signatures": {38835
+ "@alice_517:hs1": {38836
+ "ed25519:ALICEDEVICE517": "6yORcXn3WikrQS5gt8kdddr19HChWZjOa2tNoc6nZhR6Dm15fAlC2m0tIZe7ISgDoiRZ4gIemoSplXMStirXCw"38837
+ }38838
+ },38839
+ "user_id": "@alice_517:hs1",38840
+ "unsigned": {}38841
+ }38842
+ },38843
+ "@alice_51:hs1": {38844
+ "ALICEDEVICE51": {38845
+ "algorithms": [38846
+ "m.olm.v1.curve25519-aes-sha2",38847
+ "m.megolm.v1.aes-sha2"38848
+ ],38849
+ "device_id": "ALICEDEVICE51",38850
+ "keys": {38851
+ "curve25519:ALICEDEVICE51": "fp01cqe/KUsHNLc51NfSHK0bDgqFzvKIrR5LPZboBjE",38852
+ "ed25519:ALICEDEVICE51": "bZzqIMlpMejSqjiJivL76Qtvdx40gel6MDE1g2ItbuU"38853
+ },38854
+ "signatures": {38855
+ "@alice_51:hs1": {38856
+ "ed25519:ALICEDEVICE51": "Vt47nxX/3bYYcMWYxg3+BTySjhxakg/KqnQXp5/vPS1UuZTS5lTZUd0kig1eSR5RJB7XJYEDnnlgw+XShTcpCw"38857
+ }38858
+ },38859
+ "user_id": "@alice_51:hs1",38860
+ "unsigned": {}38861
+ }38862
+ },38863
+ "@alice_525:hs1": {38864
+ "ALICEDEVICE525": {38865
+ "algorithms": [38866
+ "m.olm.v1.curve25519-aes-sha2",38867
+ "m.megolm.v1.aes-sha2"38868
+ ],38869
+ "device_id": "ALICEDEVICE525",38870
+ "keys": {38871
+ "curve25519:ALICEDEVICE525": "3LWAiD37iDL6B3u84JX9BezdzYeci/RLy9te0dzWLQ8",38872
+ "ed25519:ALICEDEVICE525": "RlB9SYiyhxdt4BacYf6FztJSdcs7NfdspB0DRMR31Y4"38873
+ },38874
+ "signatures": {38875
+ "@alice_525:hs1": {38876
+ "ed25519:ALICEDEVICE525": "n2eUE0UTdTy87tO4/jRWLbPZjOQLgIVDy/bhfKHNlH4BaTMLblGgLOzxS6JnBorUcr6O3uBMlv3n7cct/NQVCA"38877
+ }38878
+ },38879
+ "user_id": "@alice_525:hs1",38880
+ "unsigned": {}38881
+ }38882
+ },38883
+ "@alice_535:hs1": {38884
+ "ALICEDEVICE535": {38885
+ "algorithms": [38886
+ "m.olm.v1.curve25519-aes-sha2",38887
+ "m.megolm.v1.aes-sha2"38888
+ ],38889
+ "device_id": "ALICEDEVICE535",38890
+ "keys": {38891
+ "curve25519:ALICEDEVICE535": "qF6YwCHLZyUQoYBKlA2LcQVEWq4JsutLCgFEp+FMvFM",38892
+ "ed25519:ALICEDEVICE535": "P6grt+Sw2RfvEarkSeEkkp3Jopu0Rg/UCfMg3UyuCoM"38893
+ },38894
+ "signatures": {38895
+ "@alice_535:hs1": {38896
+ "ed25519:ALICEDEVICE535": "kaygbbG+JmK1UM2l8qgkXA1we0+ouWB9QtOi6LvVzgGs5lbS0JTTs3uYqeWny5RVpPB+4KstkS2G9WtOwgl0Cw"38897
+ }38898
+ },38899
+ "user_id": "@alice_535:hs1",38900
+ "unsigned": {}38901
+ }38902
+ },38903
+ "@alice_536:hs1": {38904
+ "ALICEDEVICE536": {38905
+ "algorithms": [38906
+ "m.olm.v1.curve25519-aes-sha2",38907
+ "m.megolm.v1.aes-sha2"38908
+ ],38909
+ "device_id": "ALICEDEVICE536",38910
+ "keys": {38911
+ "curve25519:ALICEDEVICE536": "H4RxnfMNfN5kPv/TE1A2DKnjy0gB/Jv7WuRqTfh7T0A",38912
+ "ed25519:ALICEDEVICE536": "Udxfq1cQcvafnZsV0iXyiwxBvl9ZLZaxquyEiuscZLo"38913
+ },38914
+ "signatures": {38915
+ "@alice_536:hs1": {38916
+ "ed25519:ALICEDEVICE536": "HEfOsnP36Jg6Lipry5M4h6IXRtfnY/bhSCKUeCmh4Ysn2DNo4xokf53VzOmPJWnvCy3TjHmZ3nJYXbKmxeGFAg"38917
+ }38918
+ },38919
+ "user_id": "@alice_536:hs1",38920
+ "unsigned": {}38921
+ }38922
+ },38923
+ "@alice_539:hs1": {38924
+ "ALICEDEVICE539": {38925
+ "algorithms": [38926
+ "m.olm.v1.curve25519-aes-sha2",38927
+ "m.megolm.v1.aes-sha2"38928
+ ],38929
+ "device_id": "ALICEDEVICE539",38930
+ "keys": {38931
+ "curve25519:ALICEDEVICE539": "8GuBz9Mw7wSjCkFnNyChghM+1K/vMEbb3P7jAQ8FsBY",38932
+ "ed25519:ALICEDEVICE539": "V49AoaV1Z4Sn21WXhqrA88PqHOyfolLYNhjbY/MhE+I"38933
+ },38934
+ "signatures": {38935
+ "@alice_539:hs1": {38936
+ "ed25519:ALICEDEVICE539": "a6Z6WFka5loqURtXbu4/dbtKqgs3fo3VyL1IR/YwNFTkaeIrj424geJJzT554MNvwp3nMs8/9/Cs4V4nFB5wBg"38937
+ }38938
+ },38939
+ "user_id": "@alice_539:hs1",38940
+ "unsigned": {}38941
+ }38942
+ },38943
+ "@alice_552:hs1": {38944
+ "ALICEDEVICE552": {38945
+ "algorithms": [38946
+ "m.olm.v1.curve25519-aes-sha2",38947
+ "m.megolm.v1.aes-sha2"38948
+ ],38949
+ "device_id": "ALICEDEVICE552",38950
+ "keys": {38951
+ "curve25519:ALICEDEVICE552": "dTMS7WmJQdhllNgVqg5JN4D5S564skxYb8X+1AmZihw",38952
+ "ed25519:ALICEDEVICE552": "WZ/j6vsGHoTl93glEr26xSR8XmNV6ugrRNyVKbm8lSc"38953
+ },38954
+ "signatures": {38955
+ "@alice_552:hs1": {38956
+ "ed25519:ALICEDEVICE552": "OQdOGggDDsLqHhqhpgWhvjQZPHmvkFkVDnBC8b9vFcftZFmEJXdG+dStVZ8YLLLi6Z6Lh77pSgz1ID6bEJvzCA"38957
+ }38958
+ },38959
+ "user_id": "@alice_552:hs1",38960
+ "unsigned": {}38961
+ }38962
+ },38963
+ "@alice_556:hs1": {38964
+ "ALICEDEVICE556": {38965
+ "algorithms": [38966
+ "m.olm.v1.curve25519-aes-sha2",38967
+ "m.megolm.v1.aes-sha2"38968
+ ],38969
+ "device_id": "ALICEDEVICE556",38970
+ "keys": {38971
+ "curve25519:ALICEDEVICE556": "f9J81kWjSA3O4pfVb52sJb7veQ3wBHVo6ORR1mvqJz4",38972
+ "ed25519:ALICEDEVICE556": "GWBm1HfY+MYOT9KVIvBc8JTynWLIc5Ckxn6yxYJojXQ"38973
+ },38974
+ "signatures": {38975
+ "@alice_556:hs1": {38976
+ "ed25519:ALICEDEVICE556": "ADOvVjgZW0NqN+CK/9k8/YngOsVi2ljCnLJgD4ixglEvPWWf6vttYuK5uf+VRaYfNuOVGqbk8gW1zaMPEJk5Ag"38977
+ }38978
+ },38979
+ "user_id": "@alice_556:hs1",38980
+ "unsigned": {}38981
+ }38982
+ },38983
+ "@alice_55:hs1": {38984
+ "ALICEDEVICE55": {38985
+ "algorithms": [38986
+ "m.olm.v1.curve25519-aes-sha2",38987
+ "m.megolm.v1.aes-sha2"38988
+ ],38989
+ "device_id": "ALICEDEVICE55",38990
+ "keys": {38991
+ "curve25519:ALICEDEVICE55": "Y6ixowsE+bzAVLRWAV+BtQksHGvNNqGw1KD/6e0LYzo",38992
+ "ed25519:ALICEDEVICE55": "N7g4041mogg2PeXL5jgmac7KPdKXakygjAmhGmgXKZk"38993
+ },38994
+ "signatures": {38995
+ "@alice_55:hs1": {38996
+ "ed25519:ALICEDEVICE55": "CeNPycITZuHa5g6okWhdy2aZFCn0t+agTGCCHkZK29cV+CnNnfSm6ivSyG+dqDc69daO729i4E1byvkcFGX+AA"38997
+ }38998
+ },38999
+ "user_id": "@alice_55:hs1",39000
+ "unsigned": {}39001
+ }39002
+ },39003
+ "@alice_566:hs1": {39004
+ "ALICEDEVICE566": {39005
+ "algorithms": [39006
+ "m.olm.v1.curve25519-aes-sha2",39007
+ "m.megolm.v1.aes-sha2"39008
+ ],39009
+ "device_id": "ALICEDEVICE566",39010
+ "keys": {39011
+ "curve25519:ALICEDEVICE566": "+1UpPhOAckU6RQsXqOB6PmQDOG9pG9vp+d8v+pltwjo",39012
+ "ed25519:ALICEDEVICE566": "vCw4lPc5gb8KFH4M80Iq+UEkt0mJX2L2T5xmIIyoXXw"39013
+ },39014
+ "signatures": {39015
+ "@alice_566:hs1": {39016
+ "ed25519:ALICEDEVICE566": "pbtEmdfN50JATdd6/Zwnj/xWnBWseEsK36+3PAU6jUufeHhgqZCn8kQAQxStsbTkg19snlN6OBQp0FAXwusRAQ"39017
+ }39018
+ },39019
+ "user_id": "@alice_566:hs1",39020
+ "unsigned": {}39021
+ }39022
+ },39023
+ "@alice_572:hs1": {39024
+ "ALICEDEVICE572": {39025
+ "algorithms": [39026
+ "m.olm.v1.curve25519-aes-sha2",39027
+ "m.megolm.v1.aes-sha2"39028
+ ],39029
+ "device_id": "ALICEDEVICE572",39030
+ "keys": {39031
+ "curve25519:ALICEDEVICE572": "XdivSKB0Fmk7j5kYD2oaPjqAMS94NFi8J9vSn2vlMTY",39032
+ "ed25519:ALICEDEVICE572": "GbTUrHc4hTDAt17uS3lKlY+gVOR/2YZICaB5yWYleoo"39033
+ },39034
+ "signatures": {39035
+ "@alice_572:hs1": {39036
+ "ed25519:ALICEDEVICE572": "LIvHi2quIkgP88L3Hx2jD+WD9rzw+CqMeXixZFUj4PdSo83Xhq5PmU38JyMU0RWuBuVMyQQp6giIjz0R1+9rCg"39037
+ }39038
+ },39039
+ "user_id": "@alice_572:hs1",39040
+ "unsigned": {}39041
+ }39042
+ },39043
+ "@alice_593:hs1": {39044
+ "ALICEDEVICE593": {39045
+ "algorithms": [39046
+ "m.olm.v1.curve25519-aes-sha2",39047
+ "m.megolm.v1.aes-sha2"39048
+ ],39049
+ "device_id": "ALICEDEVICE593",39050
+ "keys": {39051
+ "curve25519:ALICEDEVICE593": "Xxuyn5GFUnM2taLe6EUor95z8FiRsqh4oXDMsX8YqE8",39052
+ "ed25519:ALICEDEVICE593": "nZ5r6kVIfBVjtuXzLJey0YMRX7eV+HcinByvyF1I8Uc"39053
+ },39054
+ "signatures": {39055
+ "@alice_593:hs1": {39056
+ "ed25519:ALICEDEVICE593": "SJEpH21hXALQu2jqBNp1ykXO/6CUxD6rphgooCESTTi6u5AGSZvUv6SdN0vmygsKC7y1l2Bf/uSiKxBPk7hjAg"39057
+ }39058
+ },39059
+ "user_id": "@alice_593:hs1",39060
+ "unsigned": {}39061
+ }39062
+ },39063
+ "@alice_60:hs1": {39064
+ "ALICEDEVICE60": {39065
+ "algorithms": [39066
+ "m.olm.v1.curve25519-aes-sha2",39067
+ "m.megolm.v1.aes-sha2"39068
+ ],39069
+ "device_id": "ALICEDEVICE60",39070
+ "keys": {39071
+ "curve25519:ALICEDEVICE60": "VUxB/u+8Az9Z7eS3bXJRq/9FuKXPP1iXuopectH7ehM",39072
+ "ed25519:ALICEDEVICE60": "qsxN5VUpaUwijdc6GAPaq/lerqmBICGPRrkagN3jbLs"39073
+ },39074
+ "signatures": {39075
+ "@alice_60:hs1": {39076
+ "ed25519:ALICEDEVICE60": "Q3J0+gxT2FqF0mLDVLywV7OqS5xVCSXAATrbBBNIPQh29QmoW9AKYTWNbP6vLuh1mHhB0taZsgDOfGKkJPWQDg"39077
+ }39078
+ },39079
+ "user_id": "@alice_60:hs1",39080
+ "unsigned": {}39081
+ }39082
+ },39083
+ "@alice_64:hs1": {39084
+ "ALICEDEVICE64": {39085
+ "algorithms": [39086
+ "m.olm.v1.curve25519-aes-sha2",39087
+ "m.megolm.v1.aes-sha2"39088
+ ],39089
+ "device_id": "ALICEDEVICE64",39090
+ "keys": {39091
+ "curve25519:ALICEDEVICE64": "F2yziVU5OCQcnEmCbAhtctGxvvp668j9+KvsTWbsXSw",39092
+ "ed25519:ALICEDEVICE64": "fKP/KLiSx55/AZ0bfplMSs7IgDgTNFXBeXK+KXOHGng"39093
+ },39094
+ "signatures": {39095
+ "@alice_64:hs1": {39096
+ "ed25519:ALICEDEVICE64": "n/H5ikgnAkwGEt9XWLLHVZxBwxhvoYljzVyIIbIZbQbfFUeOD7ogVSzn0z//Y3IGSMizWFDpg4+E45Ey60ZGAw"39097
+ }39098
+ },39099
+ "user_id": "@alice_64:hs1",39100
+ "unsigned": {}39101
+ }39102
+ },39103
+ "@alice_652:hs1": {39104
+ "ALICEDEVICE652": {39105
+ "algorithms": [39106
+ "m.olm.v1.curve25519-aes-sha2",39107
+ "m.megolm.v1.aes-sha2"39108
+ ],39109
+ "device_id": "ALICEDEVICE652",39110
+ "keys": {39111
+ "curve25519:ALICEDEVICE652": "PvHpO/v9KwpiGA2hT7aZP0ukiqOTgjV9i9FrzDAD8wo",39112
+ "ed25519:ALICEDEVICE652": "88gdv7wZSpiRxQTLRf7qi6HKpD6MMIFJtYj7ph2SdcU"39113
+ },39114
+ "signatures": {39115
+ "@alice_652:hs1": {39116
+ "ed25519:ALICEDEVICE652": "YVFfQsiKjs8W3ag8HXowZrzdUe9aU2lI/09xEvVdhvD1Rx/+PLEwNwhH+k2OkHsnY4fSs+MBkyElc4UJpjlXBg"39117
+ }39118
+ },39119
+ "user_id": "@alice_652:hs1",39120
+ "unsigned": {}39121
+ }39122
+ },39123
+ "@alice_669:hs1": {39124
+ "ALICEDEVICE669": {39125
+ "algorithms": [39126
+ "m.olm.v1.curve25519-aes-sha2",39127
+ "m.megolm.v1.aes-sha2"39128
+ ],39129
+ "device_id": "ALICEDEVICE669",39130
+ "keys": {39131
+ "curve25519:ALICEDEVICE669": "M0Bo7FUpXIuYsiSHOPHsL5AWtFTcGmEh9GTpc2WkjGI",39132
+ "ed25519:ALICEDEVICE669": "+098JTxlXFAqwMfNoZkd777LvfGTtTmOYle1zpAga6A"39133
+ },39134
+ "signatures": {39135
+ "@alice_669:hs1": {39136
+ "ed25519:ALICEDEVICE669": "aUrgn06CUWahJSFM7GjNhmf+S+gNEQEtwQntP3vbHfWy7TwAK4byGgwYYUpheIGU4upEJNmgaelnIduVUs9AAw"39137
+ }39138
+ },39139
+ "user_id": "@alice_669:hs1",39140
+ "unsigned": {}39141
+ }39142
+ },39143
+ "@alice_674:hs1": {39144
+ "ALICEDEVICE674": {39145
+ "algorithms": [39146
+ "m.olm.v1.curve25519-aes-sha2",39147
+ "m.megolm.v1.aes-sha2"39148
+ ],39149
+ "device_id": "ALICEDEVICE674",39150
+ "keys": {39151
+ "curve25519:ALICEDEVICE674": "FS/ec5oGbgM68Gs26WFOaOzPG74sqJQGWhQVN+8iVTs",39152
+ "ed25519:ALICEDEVICE674": "/BDTEYc6fN79bNzO8Yj6lytwIo4ePvshu4+tKbmzC9g"39153
+ },39154
+ "signatures": {39155
+ "@alice_674:hs1": {39156
+ "ed25519:ALICEDEVICE674": "lrQKH2tPaaVTJxizbFjqxsMT6ET6YShg+iKkEDI4HCns0aEaqv9uwHIsUcMJtFZh7XNBfwGlG6vg4USP+ebtCw"39157
+ }39158
+ },39159
+ "user_id": "@alice_674:hs1",39160
+ "unsigned": {}39161
+ }39162
+ },39163
+ "@alice_678:hs1": {39164
+ "ALICEDEVICE678": {39165
+ "algorithms": [39166
+ "m.olm.v1.curve25519-aes-sha2",39167
+ "m.megolm.v1.aes-sha2"39168
+ ],39169
+ "device_id": "ALICEDEVICE678",39170
+ "keys": {39171
+ "curve25519:ALICEDEVICE678": "puUDFGLjdkORfB4ouvZV1PdbeC0tdW4UEpdKZCmTQjs",39172
+ "ed25519:ALICEDEVICE678": "snrQTxZuorLshHQxiZhnqk6Rt742kCi132JDOdWbVDk"39173
+ },39174
+ "signatures": {39175
+ "@alice_678:hs1": {39176
+ "ed25519:ALICEDEVICE678": "+63yxHG8Akjd/DUCuQxYYk2fj04Z9KDp079CTx3dL7D4TpZf7Bim8yX9L5YGvRnn/ATRshkY7oQg8gEMDMQQCA"39177
+ }39178
+ },39179
+ "user_id": "@alice_678:hs1",39180
+ "unsigned": {}39181
+ }39182
+ },39183
+ "@alice_680:hs1": {39184
+ "ALICEDEVICE680": {39185
+ "algorithms": [39186
+ "m.olm.v1.curve25519-aes-sha2",39187
+ "m.megolm.v1.aes-sha2"39188
+ ],39189
+ "device_id": "ALICEDEVICE680",39190
+ "keys": {39191
+ "curve25519:ALICEDEVICE680": "GJFl4iYWQ5rm8cCW0rYgSdM/Qs0RjX5M9CUQa0dxzw8",39192
+ "ed25519:ALICEDEVICE680": "Xqy0joBoydKElEVyZnx6d7QifeNYN/AdSCdcGB0zLC4"39193
+ },39194
+ "signatures": {39195
+ "@alice_680:hs1": {39196
+ "ed25519:ALICEDEVICE680": "SSnZFU3KasnEGoJtrzZ1v2m531KxXpvWsmCWry+JPYtTsZ/bGByAf83XrWojZAxK+O3GEVDdtMdCTcEj3vWsCw"39197
+ }39198
+ },39199
+ "user_id": "@alice_680:hs1",39200
+ "unsigned": {}39201
+ }39202
+ },39203
+ "@alice_696:hs1": {39204
+ "ALICEDEVICE696": {39205
+ "algorithms": [39206
+ "m.olm.v1.curve25519-aes-sha2",39207
+ "m.megolm.v1.aes-sha2"39208
+ ],39209
+ "device_id": "ALICEDEVICE696",39210
+ "keys": {39211
+ "curve25519:ALICEDEVICE696": "fJ/1FXZh1Ja6P39SUhCzW2ZgI3KcrOPq6MKyapNEPGY",39212
+ "ed25519:ALICEDEVICE696": "vA7syp1AS26+rXBEwWUwr5KnRn4Xv4mI/gfaEQMNAYE"39213
+ },39214
+ "signatures": {39215
+ "@alice_696:hs1": {39216
+ "ed25519:ALICEDEVICE696": "zcuqVmBqO+AGtpfSVTAUZcxmMquUq/r9N2DBRrgG56UOfrPCWACNiMNKEGSiNfFko+PLOXBG+esSKttLSfEzCQ"39217
+ }39218
+ },39219
+ "user_id": "@alice_696:hs1",39220
+ "unsigned": {}39221
+ }39222
+ },39223
+ "@alice_699:hs1": {39224
+ "ALICEDEVICE699": {39225
+ "algorithms": [39226
+ "m.olm.v1.curve25519-aes-sha2",39227
+ "m.megolm.v1.aes-sha2"39228
+ ],39229
+ "device_id": "ALICEDEVICE699",39230
+ "keys": {39231
+ "curve25519:ALICEDEVICE699": "/Zu5fhPQ3MlRKJ6dAEabuxnKop+HLuazoejYDU1pRVQ",39232
+ "ed25519:ALICEDEVICE699": "JA1rsGZVheP6hbSQ5+WkwnIgR1bz0EHIviWNGyi1asQ"39233
+ },39234
+ "signatures": {39235
+ "@alice_699:hs1": {39236
+ "ed25519:ALICEDEVICE699": "YnJ1j70kB4KmPiFxtgARiF8rD18q34LJt1e965zWLF/5BkwB34dgPr0dtQ4ckevu22uKN16TAaaa+tpBEpZZBA"39237
+ }39238
+ },39239
+ "user_id": "@alice_699:hs1",39240
+ "unsigned": {}39241
+ }39242
+ },39243
+ "@alice_700:hs1": {39244
+ "ALICEDEVICE700": {39245
+ "algorithms": [39246
+ "m.olm.v1.curve25519-aes-sha2",39247
+ "m.megolm.v1.aes-sha2"39248
+ ],39249
+ "device_id": "ALICEDEVICE700",39250
+ "keys": {39251
+ "curve25519:ALICEDEVICE700": "Rprg26sio+0M5cgwo/F/Y0AP/n+0pxw+LeGS2EGAWUs",39252
+ "ed25519:ALICEDEVICE700": "6XjT3cvLJ/ihhx6aw6DQMbXlXYyScNucyFNioiN6IQk"39253
+ },39254
+ "signatures": {39255
+ "@alice_700:hs1": {39256
+ "ed25519:ALICEDEVICE700": "TulSCXORK6wxYVPJmVIt4LbheDlR3R3RaPgT3u5tvJDe3dIr2Ex51wlEDlbBaTXHAcxHHu3NgRWcUc7HBQ8VDg"39257
+ }39258
+ },39259
+ "user_id": "@alice_700:hs1",39260
+ "unsigned": {}39261
+ }39262
+ },39263
+ "@alice_709:hs1": {39264
+ "ALICEDEVICE709": {39265
+ "algorithms": [39266
+ "m.olm.v1.curve25519-aes-sha2",39267
+ "m.megolm.v1.aes-sha2"39268
+ ],39269
+ "device_id": "ALICEDEVICE709",39270
+ "keys": {39271
+ "curve25519:ALICEDEVICE709": "oKiioH4j64MaYHseodyzhLQMzz5T41mKdKDNfxcvPHQ",39272
+ "ed25519:ALICEDEVICE709": "m6SlMRueY36kl/L47P+DEq4oLCUPv9gQ6ewBR47OrR4"39273
+ },39274
+ "signatures": {39275
+ "@alice_709:hs1": {39276
+ "ed25519:ALICEDEVICE709": "RFBZNAHD0h/8cajC9DOB6dcjVuclYWmc+2meEXe3AnT2uRUWr/jfspsRjbp7s9pfEkUXnJpbVxhlUtIMNXN9CQ"39277
+ }39278
+ },39279
+ "user_id": "@alice_709:hs1",39280
+ "unsigned": {}39281
+ }39282
+ },39283
+ "@alice_712:hs1": {39284
+ "ALICEDEVICE712": {39285
+ "algorithms": [39286
+ "m.olm.v1.curve25519-aes-sha2",39287
+ "m.megolm.v1.aes-sha2"39288
+ ],39289
+ "device_id": "ALICEDEVICE712",39290
+ "keys": {39291
+ "curve25519:ALICEDEVICE712": "9YnyXFv2Hzmq3AleNA4iYNh8MhLFXX/X6AjgLkyhgyg",39292
+ "ed25519:ALICEDEVICE712": "K47WEnHTmGsEAcwkp3PA9KFfrtkrq9vzg/RDvcwNN74"39293
+ },39294
+ "signatures": {39295
+ "@alice_712:hs1": {39296
+ "ed25519:ALICEDEVICE712": "TFknwq8UPUQhCFLIkuqYYCe6TPoMsN1NewaWRINx54CHzbOPOmfkDxZAbXSdfk/pjUEffLkniJm7Uc/QWZvlBg"39297
+ }39298
+ },39299
+ "user_id": "@alice_712:hs1",39300
+ "unsigned": {}39301
+ }39302
+ },39303
+ "@alice_719:hs1": {39304
+ "ALICEDEVICE719": {39305
+ "algorithms": [39306
+ "m.olm.v1.curve25519-aes-sha2",39307
+ "m.megolm.v1.aes-sha2"39308
+ ],39309
+ "device_id": "ALICEDEVICE719",39310
+ "keys": {39311
+ "curve25519:ALICEDEVICE719": "jYIDzC7tB4CjC37ARKUNAoEqvaGrc35OU8h4l//lBz8",39312
+ "ed25519:ALICEDEVICE719": "uz/9Mz9oZLm/RM81zhRjIKASLLJhXObS72BpGjg8mq8"39313
+ },39314
+ "signatures": {39315
+ "@alice_719:hs1": {39316
+ "ed25519:ALICEDEVICE719": "NDNn+GG05L9sgc1Wsdp7zUKERDNmge7R+cgB/g2NstNI8P6gmNxfthTBCkI9qimqgtzhNSx+pt6oTriz8k6PBw"39317
+ }39318
+ },39319
+ "user_id": "@alice_719:hs1",39320
+ "unsigned": {}39321
+ }39322
+ },39323
+ "@alice_723:hs1": {39324
+ "ALICEDEVICE723": {39325
+ "algorithms": [39326
+ "m.olm.v1.curve25519-aes-sha2",39327
+ "m.megolm.v1.aes-sha2"39328
+ ],39329
+ "device_id": "ALICEDEVICE723",39330
+ "keys": {39331
+ "curve25519:ALICEDEVICE723": "f9W220uxeea8I7/RUULP/mK53gYFJA/WwWr3DSzQuU4",39332
+ "ed25519:ALICEDEVICE723": "TpEWdVs44uVSTdY2h9EG71HFugPozNUHkNkNvhUG2EA"39333
+ },39334
+ "signatures": {39335
+ "@alice_723:hs1": {39336
+ "ed25519:ALICEDEVICE723": "i8UqCUPc+zbaD5NV4vW03zgZtiQ4eNayfhpZEDLoXtvBjnFWciLT38yZrbJ86ki8ZK6bvkccwsh/+AgV9HItAA"39337
+ }39338
+ },39339
+ "user_id": "@alice_723:hs1",39340
+ "unsigned": {}39341
+ }39342
+ },39343
+ "@alice_749:hs1": {39344
+ "ALICEDEVICE749": {39345
+ "algorithms": [39346
+ "m.olm.v1.curve25519-aes-sha2",39347
+ "m.megolm.v1.aes-sha2"39348
+ ],39349
+ "device_id": "ALICEDEVICE749",39350
+ "keys": {39351
+ "curve25519:ALICEDEVICE749": "Op+yCzI45PRXfUYZ3gTXd+QI+XWLrMwJVc5yyNUVLTU",39352
+ "ed25519:ALICEDEVICE749": "IzaGttaAhWCiOSzDwFWfHzoREj1MiHtV8ZlX78Gu6xY"39353
+ },39354
+ "signatures": {39355
+ "@alice_749:hs1": {39356
+ "ed25519:ALICEDEVICE749": "rQ9ZxbSrYDdCccME4OxoOswf1+HmKd2mqX1nm701sV5vHFfTq3sARECYapf+Kx8p2j4VjgZ/Sc1CjVT5J/s5AQ"39357
+ }39358
+ },39359
+ "user_id": "@alice_749:hs1",39360
+ "unsigned": {}39361
+ }39362
+ },39363
+ "@alice_751:hs1": {39364
+ "ALICEDEVICE751": {39365
+ "algorithms": [39366
+ "m.olm.v1.curve25519-aes-sha2",39367
+ "m.megolm.v1.aes-sha2"39368
+ ],39369
+ "device_id": "ALICEDEVICE751",39370
+ "keys": {39371
+ "curve25519:ALICEDEVICE751": "hc8xe5v1fz8k9ysND3/NYOulNoyY4ssXmVls7QAffj4",39372
+ "ed25519:ALICEDEVICE751": "bEtLfWXqbOahqaqTZG0kv/qo9eotPTp3HQMWlyojTMw"39373
+ },39374
+ "signatures": {39375
+ "@alice_751:hs1": {39376
+ "ed25519:ALICEDEVICE751": "AZsAtiX32jNFG96pAgm5uENaB4CqhZQWFYM5OKYbWG7b7mGVqf8fDms50+oz//0n7jCYadBAUdGEIyLZqlA1Aw"39377
+ }39378
+ },39379
+ "user_id": "@alice_751:hs1",39380
+ "unsigned": {}39381
+ }39382
+ },39383
+ "@alice_757:hs1": {39384
+ "ALICEDEVICE757": {39385
+ "algorithms": [39386
+ "m.olm.v1.curve25519-aes-sha2",39387
+ "m.megolm.v1.aes-sha2"39388
+ ],39389
+ "device_id": "ALICEDEVICE757",39390
+ "keys": {39391
+ "curve25519:ALICEDEVICE757": "qkTK4kphbbghQWKaWJiaTlew8NONatv2kAFHRgWVIzs",39392
+ "ed25519:ALICEDEVICE757": "W77jfAsVyxnCjNzavlqq6ZuzXPIiOt+ISxhSMpXUOM4"39393
+ },39394
+ "signatures": {39395
+ "@alice_757:hs1": {39396
+ "ed25519:ALICEDEVICE757": "s0zivzGYW5ehzfMOYvgIgjltB8cktdMknfDXis7ArY7gTtSqL+4cMjlBJ9VYwU3dCj+hiHmddSoiHxKIdrHjCQ"39397
+ }39398
+ },39399
+ "user_id": "@alice_757:hs1",39400
+ "unsigned": {}39401
+ }39402
+ },39403
+ "@alice_767:hs1": {39404
+ "ALICEDEVICE767": {39405
+ "algorithms": [39406
+ "m.olm.v1.curve25519-aes-sha2",39407
+ "m.megolm.v1.aes-sha2"39408
+ ],39409
+ "device_id": "ALICEDEVICE767",39410
+ "keys": {39411
+ "curve25519:ALICEDEVICE767": "HdzmTb1UBLgwrvyVA1kFv8ctwqFCLyEqA+9v27obB24",39412
+ "ed25519:ALICEDEVICE767": "+OJvRZSSjBQnbBLNFPtTDyCoRT/ssubf+7tqaoGZGaM"39413
+ },39414
+ "signatures": {39415
+ "@alice_767:hs1": {39416
+ "ed25519:ALICEDEVICE767": "4L+WhTeUlsqU5Xj8FHSkjtqPmKPSWSPkI2chqcV7MxDChwA1k0vOTp6c139CfeP9gHF6lfMD/fDsWp5iNLFaBg"39417
+ }39418
+ },39419
+ "user_id": "@alice_767:hs1",39420
+ "unsigned": {}39421
+ }39422
+ },39423
+ "@alice_770:hs1": {39424
+ "ALICEDEVICE770": {39425
+ "algorithms": [39426
+ "m.olm.v1.curve25519-aes-sha2",39427
+ "m.megolm.v1.aes-sha2"39428
+ ],39429
+ "device_id": "ALICEDEVICE770",39430
+ "keys": {39431
+ "curve25519:ALICEDEVICE770": "MlfyRW5SmnlK8pcxNwgdzDt/yWzjQnawIwzB9mmvVUc",39432
+ "ed25519:ALICEDEVICE770": "0IAjgWUcvB2AG2IhjDnhHXBVIepSSOM+ixuRnmu3Fc8"39433
+ },39434
+ "signatures": {39435
+ "@alice_770:hs1": {39436
+ "ed25519:ALICEDEVICE770": "s8oADYbOcDwuuvTnZa4MBpIKUuYnQJohcxiOt3IxBjl8xDH32UrlovIELauh7GRHGv6ot7p+9QXgm6hwFx3nAQ"39437
+ }39438
+ },39439
+ "user_id": "@alice_770:hs1",39440
+ "unsigned": {}39441
+ }39442
+ },39443
+ "@alice_772:hs1": {39444
+ "ALICEDEVICE772": {39445
+ "algorithms": [39446
+ "m.olm.v1.curve25519-aes-sha2",39447
+ "m.megolm.v1.aes-sha2"39448
+ ],39449
+ "device_id": "ALICEDEVICE772",39450
+ "keys": {39451
+ "curve25519:ALICEDEVICE772": "3A7Coi8j6itO3k7w+ODYAidxXhq2byktS/7uBq9Rs1o",39452
+ "ed25519:ALICEDEVICE772": "BwGM7qfnADteWcGQ3VMzh4vRjWCcnH2/CgH9qbAapHc"39453
+ },39454
+ "signatures": {39455
+ "@alice_772:hs1": {39456
+ "ed25519:ALICEDEVICE772": "qBSlGBu6UCjiVCSXjak8V62YoHO2hO59XvLT3h2uOF5gPjE7sNLiYNpnGRqj6FdRTw8+EZFUkwX1flACflaADw"39457
+ }39458
+ },39459
+ "user_id": "@alice_772:hs1",39460
+ "unsigned": {}39461
+ }39462
+ },39463
+ "@alice_778:hs1": {39464
+ "ALICEDEVICE778": {39465
+ "algorithms": [39466
+ "m.olm.v1.curve25519-aes-sha2",39467
+ "m.megolm.v1.aes-sha2"39468
+ ],39469
+ "device_id": "ALICEDEVICE778",39470
+ "keys": {39471
+ "curve25519:ALICEDEVICE778": "aMwBGOXZmLKPwHmqMgpN8oZIQ9w5R3X0FXUKhZoPTBY",39472
+ "ed25519:ALICEDEVICE778": "2RMeZ2Jm6oTqS3o8hKl61D/SuodNq7qm/PgyfhG4WRY"39473
+ },39474
+ "signatures": {39475
+ "@alice_778:hs1": {39476
+ "ed25519:ALICEDEVICE778": "3FWJV1Ks1AQvv5tAMZjJD+/UB2srFyKeglMxqjk0w1k9pvccRy7Z0QFbLbEuEug9D6YBqjOeMOzSKcrch6xzDA"39477
+ }39478
+ },39479
+ "user_id": "@alice_778:hs1",39480
+ "unsigned": {}39481
+ }39482
+ },39483
+ "@alice_783:hs1": {39484
+ "ALICEDEVICE783": {39485
+ "algorithms": [39486
+ "m.olm.v1.curve25519-aes-sha2",39487
+ "m.megolm.v1.aes-sha2"39488
+ ],39489
+ "device_id": "ALICEDEVICE783",39490
+ "keys": {39491
+ "curve25519:ALICEDEVICE783": "Pj6ai0yikdZSbcZv+8IvXkvR2RxDITHTCgo+nC/gviU",39492
+ "ed25519:ALICEDEVICE783": "vlgZZL5CmB56BaqqIyV9gmud2yHVgC5X3uIAUQxMH7I"39493
+ },39494
+ "signatures": {39495
+ "@alice_783:hs1": {39496
+ "ed25519:ALICEDEVICE783": "Z//6KYLudSTZxo77lZlRm1q7jEFZJ4hQWyzAkUzq9h9QyCA3Xbks1+gRYt1GTtkezJrGHjMRTbYwYvd/JNniAA"39497
+ }39498
+ },39499
+ "user_id": "@alice_783:hs1",39500
+ "unsigned": {}39501
+ }39502
+ },39503
+ "@alice_791:hs1": {39504
+ "ALICEDEVICE791": {39505
+ "algorithms": [39506
+ "m.olm.v1.curve25519-aes-sha2",39507
+ "m.megolm.v1.aes-sha2"39508
+ ],39509
+ "device_id": "ALICEDEVICE791",39510
+ "keys": {39511
+ "curve25519:ALICEDEVICE791": "VujKoYtP6cehHo33kMJd5GLw6IZ6egQEY/XAFOk/dRo",39512
+ "ed25519:ALICEDEVICE791": "6Wck9V8X3jQxuXCX+oeaiekd8Uc77KePjci3Au7rh9E"39513
+ },39514
+ "signatures": {39515
+ "@alice_791:hs1": {39516
+ "ed25519:ALICEDEVICE791": "Q5a50PCbUSufLpVQAmNyoLbEOUk8R6x3rR6LXttfLyYDJa+fguc2PzLlQ5Jyzw/dqtrvc150pNNMtY2Vuj7SAg"39517
+ }39518
+ },39519
+ "user_id": "@alice_791:hs1",39520
+ "unsigned": {}39521
+ }39522
+ },39523
+ "@alice_798:hs1": {39524
+ "ALICEDEVICE798": {39525
+ "algorithms": [39526
+ "m.olm.v1.curve25519-aes-sha2",39527
+ "m.megolm.v1.aes-sha2"39528
+ ],39529
+ "device_id": "ALICEDEVICE798",39530
+ "keys": {39531
+ "curve25519:ALICEDEVICE798": "67+EW/mD6RbbPFHcGVF8eStDesnWWa0cPhRH4N4kKy0",39532
+ "ed25519:ALICEDEVICE798": "AP7Wns6VrDoK6iiqWe2cyjSrxV8eknmTqQhVleqvjqg"39533
+ },39534
+ "signatures": {39535
+ "@alice_798:hs1": {39536
+ "ed25519:ALICEDEVICE798": "XMFLG3A21SJU6BzTCymBKzgu7pRGwQj9oubK312utJAbwtrrrOJZ7TBRMP1PhixjRSGvaTj4enlCnxDcLvuqDA"39537
+ }39538
+ },39539
+ "user_id": "@alice_798:hs1",39540
+ "unsigned": {}39541
+ }39542
+ },39543
+ "@alice_821:hs1": {39544
+ "ALICEDEVICE821": {39545
+ "algorithms": [39546
+ "m.olm.v1.curve25519-aes-sha2",39547
+ "m.megolm.v1.aes-sha2"39548
+ ],39549
+ "device_id": "ALICEDEVICE821",39550
+ "keys": {39551
+ "curve25519:ALICEDEVICE821": "Ndl/n344Jo2UHr4VNNIPEo0fHHnno5nWWvaWnZolbwM",39552
+ "ed25519:ALICEDEVICE821": "eG4NZlKuteTgnrAT/ilgRKH8K1lDF8DlCPN2ZwzvO0E"39553
+ },39554
+ "signatures": {39555
+ "@alice_821:hs1": {39556
+ "ed25519:ALICEDEVICE821": "dKogxB5KmgyJ3tUECB93VVAGbGgBeu5/+EHU2becq6phh0uuaK/twCZuU+l33oyznpW+I9DHAvDDrjBfeKkKCQ"39557
+ }39558
+ },39559
+ "user_id": "@alice_821:hs1",39560
+ "unsigned": {}39561
+ }39562
+ },39563
+ "@alice_823:hs1": {39564
+ "ALICEDEVICE823": {39565
+ "algorithms": [39566
+ "m.olm.v1.curve25519-aes-sha2",39567
+ "m.megolm.v1.aes-sha2"39568
+ ],39569
+ "device_id": "ALICEDEVICE823",39570
+ "keys": {39571
+ "curve25519:ALICEDEVICE823": "KMnoU0k2BCV7vrN7l/S7QnvRF45Kvx4fGjbG/KyvBkE",39572
+ "ed25519:ALICEDEVICE823": "C8giMD1u7HvdpmA+9epDRugCFNMMULnFv5oKokCoxv0"39573
+ },39574
+ "signatures": {39575
+ "@alice_823:hs1": {39576
+ "ed25519:ALICEDEVICE823": "B46QzvnualJ73cDHWIqCByCNBvtA6YWRPU0YCFybPG5sOGVUlPsLximwPh/a6K9/qP91UmrnRiqERmxjxqfFBg"39577
+ }39578
+ },39579
+ "user_id": "@alice_823:hs1",39580
+ "unsigned": {}39581
+ }39582
+ },39583
+ "@alice_824:hs1": {39584
+ "ALICEDEVICE824": {39585
+ "algorithms": [39586
+ "m.olm.v1.curve25519-aes-sha2",39587
+ "m.megolm.v1.aes-sha2"39588
+ ],39589
+ "device_id": "ALICEDEVICE824",39590
+ "keys": {39591
+ "curve25519:ALICEDEVICE824": "bGnf2ZGqnc9lUN2hjKal66JF5ZGVtJM7i/aQr+Nur1s",39592
+ "ed25519:ALICEDEVICE824": "5W2Ffpg+ILfRngn0Q88HNY1SbTBSGVyJ67voYCc//9Y"39593
+ },39594
+ "signatures": {39595
+ "@alice_824:hs1": {39596
+ "ed25519:ALICEDEVICE824": "nMnanEl7CGaQ32dhkzdv/+s1Xe5+1OAYz445O2Az9t8aqlSvxg8FUbrSmSD8Zj1uvyHZOQwm6u4eVeO1pP+dCw"39597
+ }39598
+ },39599
+ "user_id": "@alice_824:hs1",39600
+ "unsigned": {}39601
+ }39602
+ },39603
+ "@alice_82:hs1": {39604
+ "ALICEDEVICE82": {39605
+ "algorithms": [39606
+ "m.olm.v1.curve25519-aes-sha2",39607
+ "m.megolm.v1.aes-sha2"39608
+ ],39609
+ "device_id": "ALICEDEVICE82",39610
+ "keys": {39611
+ "curve25519:ALICEDEVICE82": "IRooQeOB6R2WisoalnOF7JPIzL27K2jnhl5IZbyOFAs",39612
+ "ed25519:ALICEDEVICE82": "a/1wqJHjYMpbMzcOH/+ApARG3VddOJgqibZgBT1u9Xs"39613
+ },39614
+ "signatures": {39615
+ "@alice_82:hs1": {39616
+ "ed25519:ALICEDEVICE82": "6NXJ4yCUOTtLABcYqxbPyyaLP7cEy3Jc7SG3CMGJkXnNN9Ozop8KkK2zf8lMkWJZRx7e6CNPwpC8oLN3EtbEBw"39617
+ }39618
+ },39619
+ "user_id": "@alice_82:hs1",39620
+ "unsigned": {}39621
+ }39622
+ },39623
+ "@alice_847:hs1": {39624
+ "ALICEDEVICE847": {39625
+ "algorithms": [39626
+ "m.olm.v1.curve25519-aes-sha2",39627
+ "m.megolm.v1.aes-sha2"39628
+ ],39629
+ "device_id": "ALICEDEVICE847",39630
+ "keys": {39631
+ "curve25519:ALICEDEVICE847": "jrueRpMn/7qFf/+cptJln/vhUJpQRZy3SaL0zvEgRQA",39632
+ "ed25519:ALICEDEVICE847": "jy6GSm/BxnDNFd4h+PvRwha+6HHk0qHrKUuW4/Hy+sU"39633
+ },39634
+ "signatures": {39635
+ "@alice_847:hs1": {39636
+ "ed25519:ALICEDEVICE847": "ltHXb+j9YSYSlFd7mOGvxppj5/Gb/L/SqzA3Ss7RjRDROG/l/I4eRcY5Ptgo8wLgFBeCNdbNxV4JfjB1wXsyAA"39637
+ }39638
+ },39639
+ "user_id": "@alice_847:hs1",39640
+ "unsigned": {}39641
+ }39642
+ },39643
+ "@alice_852:hs1": {39644
+ "ALICEDEVICE852": {39645
+ "algorithms": [39646
+ "m.olm.v1.curve25519-aes-sha2",39647
+ "m.megolm.v1.aes-sha2"39648
+ ],39649
+ "device_id": "ALICEDEVICE852",39650
+ "keys": {39651
+ "curve25519:ALICEDEVICE852": "GFnM5BPWECBoVquzuxyqhZHr6r53hBoj0CtNrY1SnDM",39652
+ "ed25519:ALICEDEVICE852": "X70n/A47nc4lEyKZazfDM8iSNzg8EsZbVBFQ/TvrlVU"39653
+ },39654
+ "signatures": {39655
+ "@alice_852:hs1": {39656
+ "ed25519:ALICEDEVICE852": "5VDJjyO5u4ia8gD/vLLSPU2VIz4cTelYBDZtE2cQ4umcYwhw7lN1uJxk5K0Og4sfz4i6KMIV5VKb0F61dtj9BA"39657
+ }39658
+ },39659
+ "user_id": "@alice_852:hs1",39660
+ "unsigned": {}39661
+ }39662
+ },39663
+ "@alice_864:hs1": {39664
+ "ALICEDEVICE864": {39665
+ "algorithms": [39666
+ "m.olm.v1.curve25519-aes-sha2",39667
+ "m.megolm.v1.aes-sha2"39668
+ ],39669
+ "device_id": "ALICEDEVICE864",39670
+ "keys": {39671
+ "curve25519:ALICEDEVICE864": "a4FQHPLmCbm6PHqi56zV2l5GaMrqt0D6KglT/2gGZlw",39672
+ "ed25519:ALICEDEVICE864": "7fq4W/RyzeFpmTEEtxz15jtME1tGYvLURT+ljvGHW5U"39673
+ },39674
+ "signatures": {39675
+ "@alice_864:hs1": {39676
+ "ed25519:ALICEDEVICE864": "iz73FLxtzIdHGOIQu4MS4jCHPqGK1p+Jzgeshr7y5cMXdouuCrSzMnIdsFKLxvB9eJ+bB0cxjTo36ZsDFjJ+Bw"39677
+ }39678
+ },39679
+ "user_id": "@alice_864:hs1",39680
+ "unsigned": {}39681
+ }39682
+ },39683
+ "@alice_865:hs1": {39684
+ "ALICEDEVICE865": {39685
+ "algorithms": [39686
+ "m.olm.v1.curve25519-aes-sha2",39687
+ "m.megolm.v1.aes-sha2"39688
+ ],39689
+ "device_id": "ALICEDEVICE865",39690
+ "keys": {39691
+ "curve25519:ALICEDEVICE865": "VSz62TcMPs53RnHZ3g5VUH2ba9HPsOqxObF6/PTwbXE",39692
+ "ed25519:ALICEDEVICE865": "QggE+vzwbovcOHVxAGR9n6Bp83+Kq4AnNcJPkPuF9Ic"39693
+ },39694
+ "signatures": {39695
+ "@alice_865:hs1": {39696
+ "ed25519:ALICEDEVICE865": "HpHt5EDre0pTZ6b5BiqSEOjmmiDwTvPjwWVK1fWrhyDu7BY84DPineiTDgMPzXAEdTHTrah41Re+2amXFRcXCw"39697
+ }39698
+ },39699
+ "user_id": "@alice_865:hs1",39700
+ "unsigned": {}39701
+ }39702
+ },39703
+ "@alice_86:hs1": {39704
+ "ALICEDEVICE86": {39705
+ "algorithms": [39706
+ "m.olm.v1.curve25519-aes-sha2",39707
+ "m.megolm.v1.aes-sha2"39708
+ ],39709
+ "device_id": "ALICEDEVICE86",39710
+ "keys": {39711
+ "curve25519:ALICEDEVICE86": "viokHwmS4sfgh1bA5o8ffTV/c0lGDj34OD7U/eUYrHI",39712
+ "ed25519:ALICEDEVICE86": "7UNSSxRo9EOuO24oNpLqix+yfym00f4av/hvT8msLL4"39713
+ },39714
+ "signatures": {39715
+ "@alice_86:hs1": {39716
+ "ed25519:ALICEDEVICE86": "wb44d0DhZ8Rn/9oiNf69hJPFrqAtox7Xr73BQbOwxNAYa9VulyTkpvQt1i+Qfmn9jnWh5shxWo03MXBNz8WtDA"39717
+ }39718
+ },39719
+ "user_id": "@alice_86:hs1",39720
+ "unsigned": {}39721
+ }39722
+ },39723
+ "@alice_886:hs1": {39724
+ "ALICEDEVICE886": {39725
+ "algorithms": [39726
+ "m.olm.v1.curve25519-aes-sha2",39727
+ "m.megolm.v1.aes-sha2"39728
+ ],39729
+ "device_id": "ALICEDEVICE886",39730
+ "keys": {39731
+ "curve25519:ALICEDEVICE886": "tH15Fg/k5NLsFoy6Poua+doGgMDv+H0qIdfwNZDffk0",39732
+ "ed25519:ALICEDEVICE886": "1S2d+4mNn+R9meeIFXL1rEI//RywMcpSf/7R9erlSbg"39733
+ },39734
+ "signatures": {39735
+ "@alice_886:hs1": {39736
+ "ed25519:ALICEDEVICE886": "Jh6vws5sRfIERUXORarokZqgJPqQ6vp8POSdbxHWWA6njbQCwgoobE/xukYFZ39hVlNME8JOJhj2FJOt2a97Dw"39737
+ }39738
+ },39739
+ "user_id": "@alice_886:hs1",39740
+ "unsigned": {}39741
+ }39742
+ },39743
+ "@alice_88:hs1": {39744
+ "ALICEDEVICE88": {39745
+ "algorithms": [39746
+ "m.olm.v1.curve25519-aes-sha2",39747
+ "m.megolm.v1.aes-sha2"39748
+ ],39749
+ "device_id": "ALICEDEVICE88",39750
+ "keys": {39751
+ "curve25519:ALICEDEVICE88": "XQROTMFRmt99xR75h4hKbnHVO3ylXgBMNZNmhE8aBgQ",39752
+ "ed25519:ALICEDEVICE88": "j0wAPzary0YNnfdTeeTXGIQ2WAs/yU6tJhds0rv6pEU"39753
+ },39754
+ "signatures": {39755
+ "@alice_88:hs1": {39756
+ "ed25519:ALICEDEVICE88": "RnwoCe96WwBOrDS6//H0nNODYb5PGm39KUcLtowUrY7khU7VYgOJk/cP2ig9AYHAdCJyTrmTgmANb7h8gOITBQ"39757
+ }39758
+ },39759
+ "user_id": "@alice_88:hs1",39760
+ "unsigned": {}39761
+ }39762
+ },39763
+ "@alice_905:hs1": {39764
+ "ALICEDEVICE905": {39765
+ "algorithms": [39766
+ "m.olm.v1.curve25519-aes-sha2",39767
+ "m.megolm.v1.aes-sha2"39768
+ ],39769
+ "device_id": "ALICEDEVICE905",39770
+ "keys": {39771
+ "curve25519:ALICEDEVICE905": "ze34OQak9EZikhKwTkbVYGpEvQpyKZgMLZx97WvXAmY",39772
+ "ed25519:ALICEDEVICE905": "IIecfXwqjdf9h99UrHOvd5KfZzRNZ1Pi3yViIyssQM0"39773
+ },39774
+ "signatures": {39775
+ "@alice_905:hs1": {39776
+ "ed25519:ALICEDEVICE905": "Gthuxj5eoVArxEapZVdIKxfmbyr0ONhUWGuFuAHF5KDhXy+FvhpjcF8ZqBu+puj4C4Gw2HMadwLE5sRBlcoeAg"39777
+ }39778
+ },39779
+ "user_id": "@alice_905:hs1",39780
+ "unsigned": {}39781
+ }39782
+ },39783
+ "@alice_906:hs1": {39784
+ "ALICEDEVICE906": {39785
+ "algorithms": [39786
+ "m.olm.v1.curve25519-aes-sha2",39787
+ "m.megolm.v1.aes-sha2"39788
+ ],39789
+ "device_id": "ALICEDEVICE906",39790
+ "keys": {39791
+ "curve25519:ALICEDEVICE906": "E4ghSL+5TDSnNE46sxfiJpw+X4x+3ysLq95z17DrLEE",39792
+ "ed25519:ALICEDEVICE906": "SmFe0o9eyVtVjRYfsBazfBD8woyEszh3sQRjoz2OEw4"39793
+ },39794
+ "signatures": {39795
+ "@alice_906:hs1": {39796
+ "ed25519:ALICEDEVICE906": "ewqjeaa5alu6A+tLd/W8gExoWFtXbJ2R9bhDsS0vynRa6ybtEUdM0KYVjPrUgyPAHOH3U2xOIVWlzPYWUFokDA"39797
+ }39798
+ },39799
+ "user_id": "@alice_906:hs1",39800
+ "unsigned": {}39801
+ }39802
+ },39803
+ "@alice_921:hs1": {39804
+ "ALICEDEVICE921": {39805
+ "algorithms": [39806
+ "m.olm.v1.curve25519-aes-sha2",39807
+ "m.megolm.v1.aes-sha2"39808
+ ],39809
+ "device_id": "ALICEDEVICE921",39810
+ "keys": {39811
+ "curve25519:ALICEDEVICE921": "WuOd4lX20tEkR6j1UAawWSGCawsqvh1FaF9BiTF5eyI",39812
+ "ed25519:ALICEDEVICE921": "L4SezbCMBd51qHl01fLJCBlZE4pBN0XVu4e1Hbq5lXg"39813
+ },39814
+ "signatures": {39815
+ "@alice_921:hs1": {39816
+ "ed25519:ALICEDEVICE921": "9swi+ZZwrDPHscemo5KxrE6LwUqTCLjrbgrhc2ziA9ZgX7Rie723x9mO7VQlfIua4OupIBtCBCKfEQuikr9/Bg"39817
+ }39818
+ },39819
+ "user_id": "@alice_921:hs1",39820
+ "unsigned": {}39821
+ }39822
+ },39823
+ "@alice_923:hs1": {39824
+ "ALICEDEVICE923": {39825
+ "algorithms": [39826
+ "m.olm.v1.curve25519-aes-sha2",39827
+ "m.megolm.v1.aes-sha2"39828
+ ],39829
+ "device_id": "ALICEDEVICE923",39830
+ "keys": {39831
+ "curve25519:ALICEDEVICE923": "Q9pUU0HQxN+LC13bUpVbSwSAB02lCQKoFC3Bgn06724",39832
+ "ed25519:ALICEDEVICE923": "FDZ6CTQ1u1kJQYLeFHU5MW31QYuhTRPfXJNMFUrwGwc"39833
+ },39834
+ "signatures": {39835
+ "@alice_923:hs1": {39836
+ "ed25519:ALICEDEVICE923": "pmsNLuqQYizcXTVfVKu/XCZVJw5ARccIkNQ4IMSMQcri/ubfAbNgAEznOZMlXQSIPX2OChZk0KgitXGHNSHQCQ"39837
+ }39838
+ },39839
+ "user_id": "@alice_923:hs1",39840
+ "unsigned": {}39841
+ }39842
+ },39843
+ "@alice_92:hs1": {39844
+ "ALICEDEVICE92": {39845
+ "algorithms": [39846
+ "m.olm.v1.curve25519-aes-sha2",39847
+ "m.megolm.v1.aes-sha2"39848
+ ],39849
+ "device_id": "ALICEDEVICE92",39850
+ "keys": {39851
+ "curve25519:ALICEDEVICE92": "hR44aMSh6JajiKKf7MijhufMhR28hfnONdZKsv25/TY",39852
+ "ed25519:ALICEDEVICE92": "DP35agDDp2fSMWegmtcTQ2+HOLoesrkp66Oa6GcJH+I"39853
+ },39854
+ "signatures": {39855
+ "@alice_92:hs1": {39856
+ "ed25519:ALICEDEVICE92": "dZbPDuLDepCqU1cwbMVA6iLFfy8aiwXUy6j8NbtiqC1M7FSpQn0iaw4+s9sjx6vZw9TcqysBuZctduHQFfzfCQ"39857
+ }39858
+ },39859
+ "user_id": "@alice_92:hs1",39860
+ "unsigned": {}39861
+ }39862
+ },39863
+ "@alice_936:hs1": {39864
+ "ALICEDEVICE936": {39865
+ "algorithms": [39866
+ "m.olm.v1.curve25519-aes-sha2",39867
+ "m.megolm.v1.aes-sha2"39868
+ ],39869
+ "device_id": "ALICEDEVICE936",39870
+ "keys": {39871
+ "curve25519:ALICEDEVICE936": "DbS2KigGRFOwKCtGUAYc3/p8L1+McYX+KnbJ73tjMGs",39872
+ "ed25519:ALICEDEVICE936": "rRyR3K9XEZsDVZzyymvBLGxlYdbNe2tS0d+0uLmrG9s"39873
+ },39874
+ "signatures": {39875
+ "@alice_936:hs1": {39876
+ "ed25519:ALICEDEVICE936": "/tcNLAJWjssEW4FFAk62VcZJjZazULs8+QFdMLtgz7swiuTkC/50VD2FUBkKoxeXKVLh0cLyd0jBZkV0ypuDBg"39877
+ }39878
+ },39879
+ "user_id": "@alice_936:hs1",39880
+ "unsigned": {}39881
+ }39882
+ },39883
+ "@alice_939:hs1": {39884
+ "ALICEDEVICE939": {39885
+ "algorithms": [39886
+ "m.olm.v1.curve25519-aes-sha2",39887
+ "m.megolm.v1.aes-sha2"39888
+ ],39889
+ "device_id": "ALICEDEVICE939",39890
+ "keys": {39891
+ "curve25519:ALICEDEVICE939": "V7wzGkNBs/nFhiMEVOsFE5BWu6xAHGcvI8MYHCpwGXI",39892
+ "ed25519:ALICEDEVICE939": "b14F6FaamFLmO0yd/0cAxiDh96ml1myjEx07/MVZcxQ"39893
+ },39894
+ "signatures": {39895
+ "@alice_939:hs1": {39896
+ "ed25519:ALICEDEVICE939": "sPQx9lx41JUwE7giZgxot5eWEI1QzZHBD82JML43KmrPcBkH3Gc2yhCg4f5tv3nV1V35xf4IV0ippB7gnjzSCA"39897
+ }39898
+ },39899
+ "user_id": "@alice_939:hs1",39900
+ "unsigned": {}39901
+ }39902
+ },39903
+ "@alice_93:hs1": {39904
+ "ALICEDEVICE93": {39905
+ "algorithms": [39906
+ "m.olm.v1.curve25519-aes-sha2",39907
+ "m.megolm.v1.aes-sha2"39908
+ ],39909
+ "device_id": "ALICEDEVICE93",39910
+ "keys": {39911
+ "curve25519:ALICEDEVICE93": "hjg21jCZYzXfXIJ4nHlqSy11TBIXvtfFRqZNGeJzbgQ",39912
+ "ed25519:ALICEDEVICE93": "4SHG3Z0qBDK3SReYcF5ttH7AMnIefI5tJewbmsJU42U"39913
+ },39914
+ "signatures": {39915
+ "@alice_93:hs1": {39916
+ "ed25519:ALICEDEVICE93": "Txzzq41l73PepT5kTtrnBO71I09/SOAOG1V25URihTNQUJPQSnfdFbBg2OFREgLbw1OfQQJpxfoYLb9pFX+wCg"39917
+ }39918
+ },39919
+ "user_id": "@alice_93:hs1",39920
+ "unsigned": {}39921
+ }39922
+ },39923
+ "@alice_940:hs1": {39924
+ "ALICEDEVICE940": {39925
+ "algorithms": [39926
+ "m.olm.v1.curve25519-aes-sha2",39927
+ "m.megolm.v1.aes-sha2"39928
+ ],39929
+ "device_id": "ALICEDEVICE940",39930
+ "keys": {39931
+ "curve25519:ALICEDEVICE940": "m+vMyG7mS+oLZYpvqMbA0hI1YFIDHr0y/TuHphoE6yU",39932
+ "ed25519:ALICEDEVICE940": "S40uUYFql3zPSvrdNwstE8Yd0QGlbEXxzOK4UP8aglo"39933
+ },39934
+ "signatures": {39935
+ "@alice_940:hs1": {39936
+ "ed25519:ALICEDEVICE940": "3WCOBFoSvPN400rhqRH1qWbmwayKd5BHYuBY8H4///vdO9Usow+cOMcLPD++H1QbqusRNYSojdfZzkB1NU/0DQ"39937
+ }39938
+ },39939
+ "user_id": "@alice_940:hs1",39940
+ "unsigned": {}39941
+ }39942
+ },39943
+ "@alice_951:hs1": {39944
+ "ALICEDEVICE951": {39945
+ "algorithms": [39946
+ "m.olm.v1.curve25519-aes-sha2",39947
+ "m.megolm.v1.aes-sha2"39948
+ ],39949
+ "device_id": "ALICEDEVICE951",39950
+ "keys": {39951
+ "curve25519:ALICEDEVICE951": "NFz9vZZAvipSTUrw72lxgJgVEigj5cmwHf6XH5BOLyU",39952
+ "ed25519:ALICEDEVICE951": "IvsXOx5IaHLuyKNqntPgd762ZlcFu/Xr2SdwNTSluhY"39953
+ },39954
+ "signatures": {39955
+ "@alice_951:hs1": {39956
+ "ed25519:ALICEDEVICE951": "J+kJ5CJD6Tf+ndaVB6szWTcO76RF00hisrK9JJrnl+5QJEq/mo984TTmQUOjcnh1QsGR6mPEERUtdJMTJr6IBA"39957
+ }39958
+ },39959
+ "user_id": "@alice_951:hs1",39960
+ "unsigned": {}39961
+ }39962
+ },39963
+ "@alice_956:hs1": {39964
+ "ALICEDEVICE956": {39965
+ "algorithms": [39966
+ "m.olm.v1.curve25519-aes-sha2",39967
+ "m.megolm.v1.aes-sha2"39968
+ ],39969
+ "device_id": "ALICEDEVICE956",39970
+ "keys": {39971
+ "curve25519:ALICEDEVICE956": "D/xWwi+KdbpKAcfOb1Cc5DPHgcUOlcWTwvO7N3KG7zA",39972
+ "ed25519:ALICEDEVICE956": "iJw3/sl9wVEISB1IPBRdm3q3IcJeRjXk9ucUS4xcc5U"39973
+ },39974
+ "signatures": {39975
+ "@alice_956:hs1": {39976
+ "ed25519:ALICEDEVICE956": "WXuQjywc1q7IJ2sBzbbd6+X9rnlBTTSsOaas+QBo7V4BKDx0tUwVrRepy/7h0p7PYLBL/u+Y8gUVYZwtQPmXCw"39977
+ }39978
+ },39979
+ "user_id": "@alice_956:hs1",39980
+ "unsigned": {}39981
+ }39982
+ },39983
+ "@alice_961:hs1": {39984
+ "ALICEDEVICE961": {39985
+ "algorithms": [39986
+ "m.olm.v1.curve25519-aes-sha2",39987
+ "m.megolm.v1.aes-sha2"39988
+ ],39989
+ "device_id": "ALICEDEVICE961",39990
+ "keys": {39991
+ "curve25519:ALICEDEVICE961": "XyXymxUju51s3XXsX5Hu4NDf/0N6CJ3KK/tWmxSX8EE",39992
+ "ed25519:ALICEDEVICE961": "auB/CXds6fU4PNYfTyPp/kYCJ9pOI1lMbaNKgLmvZV8"39993
+ },39994
+ "signatures": {39995
+ "@alice_961:hs1": {39996
+ "ed25519:ALICEDEVICE961": "Pp+JSwo4aI4nYJM9xIdFJrPsrBFA3DuT412Yq2T5Jojozt15U8xPFtNNSq5auxrIveMnkcJW/QANMKXjYk/hDA"39997
+ }39998
+ },39999
+ "user_id": "@alice_961:hs1",40000
+ "unsigned": {}40001
+ }40002
+ },40003
+ "@alice_990:hs1": {40004
+ "ALICEDEVICE990": {40005
+ "algorithms": [40006
+ "m.olm.v1.curve25519-aes-sha2",40007
+ "m.megolm.v1.aes-sha2"40008
+ ],40009
+ "device_id": "ALICEDEVICE990",40010
+ "keys": {40011
+ "curve25519:ALICEDEVICE990": "5ux0XUUhZ+/BW+YFVrXS22juTtJXfUdYoRu4/vmTN1M",40012
+ "ed25519:ALICEDEVICE990": "eBwZXDVr14fXA8stiN/b68TYXWWcm+i8tKV/Ec/REHs"40013
+ },40014
+ "signatures": {40015
+ "@alice_990:hs1": {40016
+ "ed25519:ALICEDEVICE990": "GPnH3huHe9kPAlXB29IGvkx8QeLYi97dGUt61nFyBbjJfERd0ka9L1ZXFKWbK71RW7W80PPVpg5KIWhcnu7PCQ"40017
+ }40018
+ },40019
+ "user_id": "@alice_990:hs1",40020
+ "unsigned": {}40021
+ }40022
+ },40023
+ "@alice_993:hs1": {40024
+ "ALICEDEVICE993": {40025
+ "algorithms": [40026
+ "m.olm.v1.curve25519-aes-sha2",40027
+ "m.megolm.v1.aes-sha2"40028
+ ],40029
+ "device_id": "ALICEDEVICE993",40030
+ "keys": {40031
+ "curve25519:ALICEDEVICE993": "vIFLqaqe+YQQoh7mFG9UIW0cVU8O5Gj+kqs+Vqtvgjc",40032
+ "ed25519:ALICEDEVICE993": "10rjU48ubyRupcxOAJ1XOr8XgIAS4tqSbdfeaK9xkCk"40033
+ },40034
+ "signatures": {40035
+ "@alice_993:hs1": {40036
+ "ed25519:ALICEDEVICE993": "ASJHqf+LXapTstDRDpT2YlOPZ9zMZlkBRxB9kBH84vm38M/wH+XZAXUj7QRk94uFCp4PjNBJ7aPiSHgesAX7AA"40037
+ }40038
+ },40039
+ "user_id": "@alice_993:hs1",40040
+ "unsigned": {}40041
+ }40042
+ },40043
+ "@alice_996:hs1": {40044
+ "ALICEDEVICE996": {40045
+ "algorithms": [40046
+ "m.olm.v1.curve25519-aes-sha2",40047
+ "m.megolm.v1.aes-sha2"40048
+ ],40049
+ "device_id": "ALICEDEVICE996",40050
+ "keys": {40051
+ "curve25519:ALICEDEVICE996": "LFQJ4cPrSa+3RlRw0CnSGU1b3olDhwRmXHvRaQA8zRs",40052
+ "ed25519:ALICEDEVICE996": "F02/MdaOAKprbSzfXwS1xo2BtqMajL2Tqhsvp0eF4PA"40053
+ },40054
+ "signatures": {40055
+ "@alice_996:hs1": {40056
+ "ed25519:ALICEDEVICE996": "stzPmXhjtOC/4cuFe14IkMgwBjou6qneeP2iVyl5s+gLUBuUEp5HJMfZ+n5xNyZMlHXWX+POBYZSzCnw8n62CA"40057
+ }40058
+ },40059
+ "user_id": "@alice_996:hs1",40060
+ "unsigned": {}40061
+ }40062
+ },40063
+ "@bob:hs1": {}40064
+ },40065
+ "failures": {},40066
+ "master_keys": {},40067
+ "self_signing_keys": {},40068
+ "user_signing_keys": {}40069
+}@@ -0,0 +1,361 @@
1
+use std::{pin::Pin, sync::Arc};2
+3
+use criterion::{BenchmarkId, Criterion, Throughput, criterion_group, criterion_main};4
+use matrix_sdk::{5
+ RoomInfo, RoomState, SqliteEventCacheStore, StateStore,6
+ cross_process_lock::CrossProcessLockConfig,7
+ store::StoreConfig,8
+ sync::{JoinedRoomUpdate, RoomUpdates},9
+ test_utils::client::MockClientBuilder,10
+};11
+use matrix_sdk_base::event_cache::store::{DynEventCacheStore, IntoEventCacheStore, MemoryStore};12
+use matrix_sdk_test::{ALICE, base64_sha256_hash, event_factory::EventFactory};13
+use ruma::{14
+ OwnedRoomId, RoomId,15
+ events::{relation::RelationType, room::message::RoomMessageEventContentWithoutRelation},16
+ room_id,17
+};18
+use tempfile::tempdir;19
+use tokio::runtime::Builder;20
+21
+type StoreBuilder = Box<dyn Fn() -> Pin<Box<dyn Future<Output = Arc<DynEventCacheStore>>>>>;22
+23
+fn handle_room_updates(c: &mut Criterion) {24
+ // Create a new asynchronous runtime.25
+ let runtime = Builder::new_multi_thread()26
+ .enable_time()27
+ .enable_io()28
+ .build()29
+ .expect("Failed to create an asynchronous runtime");30
+31
+ let mut group = c.benchmark_group("Event cache room updates");32
+ group.sample_size(10);33
+34
+ const NUM_EVENTS: usize = 1000;35
+36
+ for num_rooms in [1, 10, 100] {37
+ // Add some joined rooms, each with NUM_EVENTS in it, to the sync response.38
+ let mut room_updates = RoomUpdates::default();39
+40
+ let mut changes = matrix_sdk::StateChanges::default();41
+42
+ for i in 0..num_rooms {43
+ // Synapse's room IDs for rooms v1 to v11 have an 18 characters localpart.44
+ let raw_room_id = format!("!firstbatchroom{i:04}:example.com");45
+46
+ let room_id = if i % 10 == 9 {47
+ // Make 1 in 10 rooms use a room v12 ID, which is a base64 hash similar to an48
+ // event ID.49
+ RoomId::new_v2(&base64_sha256_hash(raw_room_id.as_bytes())).unwrap()50
+ } else {51
+ OwnedRoomId::try_from(raw_room_id).unwrap()52
+ };53
+ let event_factory = EventFactory::new().room(&room_id).sender(&ALICE);54
+55
+ let mut joined_room_update = JoinedRoomUpdate::default();56
+ for j in 0..NUM_EVENTS {57
+ let event = event_factory.text_msg(format!("Message {j}")).into();58
+ joined_room_update.timeline.events.push(event);59
+ }60
+ room_updates.joined.insert(room_id.clone(), joined_room_update);61
+62
+ changes.add_room(RoomInfo::new(&room_id, RoomState::Joined));63
+ }64
+65
+ // Declare new stores for this set of events.66
+ let temp_dir = Arc::new(tempdir().unwrap());67
+68
+ let store_builders: Vec<(_, StoreBuilder)> = vec![69
+ (70
+ "memory",71
+ Box::new(|| Box::pin(async { MemoryStore::default().into_event_cache_store() })),72
+ ),73
+ (74
+ "SQLite",75
+ Box::new(move || {76
+ let temp_dir = temp_dir.clone();77
+ Box::pin(async move {78
+ // Remove all the files in the temp_dir, to reset the event cache state.79
+ for entry in temp_dir.path().read_dir().unwrap() {80
+ let entry = entry.unwrap();81
+ let path = entry.path();82
+ if path.is_dir() {83
+ // If it's a directory, remove it recursively.84
+ std::fs::remove_dir_all(path).unwrap();85
+ } else {86
+ std::fs::remove_file(path).unwrap();87
+ }88
+ }89
+90
+ // Recreate a new store.91
+ SqliteEventCacheStore::open(temp_dir.path().join("bench"), None)92
+ .await93
+ .unwrap()94
+ .into_event_cache_store()95
+ })96
+ }),97
+ ),98
+ ];99
+100
+ let state_store = runtime.block_on(async {101
+ let state_store = matrix_sdk::MemoryStore::new();102
+ state_store.save_changes(&changes).await.unwrap();103
+ Arc::new(state_store)104
+ });105
+106
+ for (store_name, store_builder) in &store_builders {107
+ let client = runtime.block_on(async {108
+ let event_cache_store = store_builder().await;109
+110
+ let client = MockClientBuilder::new(None)111
+ .on_builder(|builder| {112
+ builder.store_config(113
+ StoreConfig::new(CrossProcessLockConfig::multi_process(114
+ "cross-process-store-locks-holder-name",115
+ ))116
+ .state_store(state_store.clone())117
+ .event_cache_store(event_cache_store.clone()),118
+ )119
+ })120
+ .build()121
+ .await;122
+123
+ client.event_cache().subscribe().unwrap();124
+125
+ client126
+ });127
+128
+ // Define a state store with all rooms known in it.129
+ // Define the throughput.130
+ group.throughput(Throughput::Elements(num_rooms));131
+132
+ // Bench the handling of room updates.133
+ group.bench_function(134
+ BenchmarkId::new(135
+ format!("Event cache room updates[{store_name}]"),136
+ format!("room count: {num_rooms}"),137
+ ),138
+ |bencher| {139
+ bencher.to_async(&runtime).iter(140
+ // The routine itself.141
+ || {142
+ let room_updates = room_updates.clone();143
+ let client = client.clone();144
+145
+ async move {146
+ client.event_cache().clear_all_rooms().await.unwrap();147
+148
+ client149
+ .event_cache()150
+ .handle_room_updates(room_updates.clone())151
+ .await152
+ .unwrap();153
+ }154
+ },155
+ )156
+ },157
+ );158
+ }159
+ }160
+161
+ group.finish()162
+}163
+164
+fn find_event_relations(c: &mut Criterion) {165
+ // Number of other events to saturate the DB, but that will not be affected by166
+ // the benchmark. A small multiple of this number will be added.167
+ // When running locally, run with more events than in Codespeed CI.168
+ #[cfg(feature = "codspeed")]169
+ const NUM_OTHER_EVENTS: usize = 100;170
+ #[cfg(not(feature = "codspeed"))]171
+ const NUM_OTHER_EVENTS: usize = 1000;172
+173
+ // Create a new asynchronous runtime.174
+ let runtime = Builder::new_multi_thread()175
+ .enable_time()176
+ .enable_io()177
+ .build()178
+ .expect("Failed to create an asynchronous runtime");179
+180
+ let mut group = c.benchmark_group("Event cache room updates");181
+ group.sample_size(10);182
+183
+ // Room v1-v11 ID.184
+ let room_id = room_id!("!initialtestingroom:ben.ch");185
+ // Room v12 ID.186
+ let other_room_id = room_id!("!ICMDdumUm6RRX_eWYY2wMb2w0CY0Z_5OvlY2gBR6ELc");187
+188
+ // Make the state store aware of the room, so that `client.get_room()` works189
+ // with it.190
+ let mut changes = matrix_sdk::StateChanges::default();191
+ changes.add_room(RoomInfo::new(room_id, RoomState::Joined));192
+ changes.add_room(RoomInfo::new(other_room_id, RoomState::Joined));193
+ let state_store = runtime.block_on(async {194
+ let state_store = matrix_sdk::MemoryStore::new();195
+ state_store.save_changes(&changes).await.unwrap();196
+ Arc::new(state_store)197
+ });198
+199
+ for num_related_events in [10, 100, 1000] {200
+ // Prefill the event cache store with one event and N related events.201
+ let mut room_updates = RoomUpdates::default();202
+203
+ let event_factory = EventFactory::new().room(room_id).sender(&ALICE);204
+205
+ let mut joined_room_update = JoinedRoomUpdate::default();206
+207
+ // Add the target event.208
+ let target_event = event_factory.text_msg("hello world").into_event();209
+ let target_event_id =210
+ { &target_event.event_id().expect("generated event has an event ID") };211
+ joined_room_update.timeline.events.push(target_event);212
+213
+ // Add the numerous edits.214
+ for i in 0..num_related_events {215
+ let event = event_factory216
+ .text_msg(format!("* edit {i}"))217
+ .edit(218
+ target_event_id,219
+ RoomMessageEventContentWithoutRelation::text_plain(format!("edit {i}")),220
+ )221
+ .into();222
+ joined_room_update.timeline.events.push(event);223
+ }224
+225
+ // Add other events, in the same room, without a relation.226
+ for i in 0..NUM_OTHER_EVENTS {227
+ let event = event_factory.text_msg(format!("unrelated message {i}")).into();228
+ joined_room_update.timeline.events.push(event);229
+ }230
+231
+ // Add other events, in the same room, related to other events.232
+ let other_target_event = event_factory.text_msg("hello world").into_event();233
+ let other_target_event_id =234
+ other_target_event.event_id().expect("generated event has an event ID");235
+ joined_room_update.timeline.events.push(other_target_event);236
+237
+ for _i in 0..NUM_OTHER_EVENTS {238
+ let event = event_factory.reaction(&other_target_event_id, "👍").into();239
+ joined_room_update.timeline.events.push(event);240
+ }241
+242
+ room_updates.joined.insert(room_id.to_owned(), joined_room_update);243
+244
+ // Add other events, in another room.245
+ let mut other_joined_room_update = JoinedRoomUpdate::default();246
+ let event_factory = event_factory.room(other_room_id);247
+ for i in 0..NUM_OTHER_EVENTS {248
+ let event = event_factory.text_msg(format!("hi {i}")).into();249
+ other_joined_room_update.timeline.events.push(event);250
+ }251
+ room_updates.joined.insert(other_room_id.to_owned(), other_joined_room_update);252
+253
+ changes.add_room(RoomInfo::new(room_id, RoomState::Joined));254
+255
+ // Declare new stores for this set of events.256
+ let temp_dir = Arc::new(tempdir().unwrap());257
+258
+ let stores = vec![259
+ ("memory", MemoryStore::default().into_event_cache_store()),260
+ (261
+ "SQLite",262
+ runtime.block_on(async {263
+ SqliteEventCacheStore::open(temp_dir.path().join("bench"), None)264
+ .await265
+ .unwrap()266
+ .into_event_cache_store()267
+ }),268
+ ),269
+ ];270
+271
+ for (store_name, event_cache_store) in stores {272
+ let (client, room_event_cache, _drop_handles) = runtime.block_on(async {273
+ let client = MockClientBuilder::new(None)274
+ .on_builder(|builder| {275
+ builder.store_config(276
+ StoreConfig::new(CrossProcessLockConfig::multi_process(277
+ "cross-process-store-locks-holder-name",278
+ ))279
+ .state_store(state_store.clone())280
+ .event_cache_store(event_cache_store),281
+ )282
+ })283
+ .build()284
+ .await;285
+286
+ client.event_cache().subscribe().unwrap();287
+288
+ // Sync the updates before starting the benchmark.289
+ let mut update_recv = client.event_cache().subscribe_to_room_generic_updates();290
+291
+ client.event_cache().handle_room_updates(room_updates.clone()).await.unwrap();292
+293
+ // Wait for the event cache to notify us of the room updates.294
+ let update = update_recv.recv().await.unwrap();295
+ assert!(update.room_id == room_id || update.room_id == other_room_id);296
+297
+ let update = update_recv.recv().await.unwrap();298
+ assert!(update.room_id == room_id || update.room_id == other_room_id);299
+300
+ let room = client.get_room(room_id).unwrap();301
+ let room_event_cache = room.event_cache().await.unwrap();302
+303
+ (client, room_event_cache.0, room_event_cache.1)304
+ });305
+306
+ // Define the throughput.307
+ group.throughput(Throughput::Elements(num_related_events));308
+309
+ for filter in [None, Some(vec![RelationType::Replacement])] {310
+ group.bench_function(311
+ BenchmarkId::new(312
+ format!("Event cache find_event_relations[{store_name}]"),313
+ format!(314
+ "{num_related_events} events, {} filter",315
+ if filter.is_some() { "edits" } else { "#no" },316
+ ),317
+ ),318
+ |bencher| {319
+ bencher.to_async(&runtime).iter_batched(320
+ // The setup.321
+ || (room_event_cache.clone(), filter.clone()),322
+ // The routine itself.323
+ |(room_event_cache, filter)| async move {324
+ let (target, relations) = room_event_cache325
+ .find_event_with_relations(target_event_id, filter)326
+ .await327
+ .unwrap()328
+ .unwrap();329
+ assert_eq!(target.event_id().unwrap(), *target_event_id);330
+ assert_eq!(relations.len(), num_related_events as usize);331
+ },332
+ criterion::BatchSize::PerIteration,333
+ )334
+ },335
+ );336
+ }337
+338
+ {339
+ let _guard = runtime.enter();340
+ drop(room_event_cache);341
+ drop(client);342
+ drop(_drop_handles);343
+ }344
+ }345
+ }346
+347
+ {348
+ let _guard = runtime.enter();349
+ drop(state_store);350
+ }351
+352
+ group.finish()353
+}354
+355
+criterion_group! {356
+ name = event_cache;357
+ config = Criterion::default();358
+ targets = handle_room_updates, find_event_relations,359
+}360
+361
+criterion_main!(event_cache);@@ -0,0 +1,263 @@
1
+use std::{sync::Arc, time::Duration};2
+3
+use criterion::{BatchSize, BenchmarkId, Criterion, Throughput, criterion_group, criterion_main};4
+use matrix_sdk::{5
+ SqliteEventCacheStore,6
+ linked_chunk::{LinkedChunk, LinkedChunkId, Update, lazy_loader},7
+};8
+use matrix_sdk_base::event_cache::{9
+ Event, Gap,10
+ store::{DEFAULT_CHUNK_CAPACITY, DynEventCacheStore, IntoEventCacheStore, MemoryStore},11
+};12
+use matrix_sdk_test::{ALICE, event_factory::EventFactory};13
+use ruma::room_id;14
+use tempfile::tempdir;15
+use tokio::runtime::Builder;16
+17
+#[derive(Clone, Debug)]18
+enum Operation {19
+ PushItemsBack(Vec<Event>),20
+ PushGapBack(Gap),21
+}22
+23
+#[cfg(not(feature = "codspeed"))]24
+const NUMBER_OF_EVENTS: &[u64] = &[10, 100, 1000, 10_000, 100_000];25
+#[cfg(feature = "codspeed")]26
+const NUMBER_OF_EVENTS: &[u64] = &[10, 100, 1000];27
+28
+fn writing(c: &mut Criterion) {29
+ // Create a new asynchronous runtime.30
+ let runtime = Builder::new_multi_thread()31
+ .enable_time()32
+ .enable_io()33
+ .build()34
+ .expect("Failed to create an asynchronous runtime");35
+36
+ let room_id = room_id!("!fabricandofitfaber:bar.baz");37
+ let linked_chunk_id = LinkedChunkId::Room(room_id);38
+ let event_factory = EventFactory::new().room(room_id).sender(&ALICE);39
+40
+ let mut group = c.benchmark_group("Linked chunk writing");41
+ group.sample_size(10).measurement_time(Duration::from_secs(30));42
+43
+ for &number_of_events in NUMBER_OF_EVENTS {44
+ let sqlite_temp_dir = tempdir().unwrap();45
+46
+ // Declare new stores for this set of events.47
+ let stores: [(&str, Option<Arc<DynEventCacheStore>>); 3] = [48
+ ("none", None),49
+ ("memory store", Some(MemoryStore::default().into_event_cache_store())),50
+ (51
+ "sqlite store",52
+ runtime.block_on(async {53
+ Some(54
+ SqliteEventCacheStore::open(sqlite_temp_dir.path().join("bench"), None)55
+ .await56
+ .unwrap()57
+ .into_event_cache_store(),58
+ )59
+ }),60
+ ),61
+ ];62
+63
+ for (store_name, store) in stores {64
+ // Create the operations we want to bench.65
+ let mut operations = Vec::new();66
+67
+ {68
+ let mut events = (0..number_of_events)69
+ .map(|nth| event_factory.text_msg(format!("foo {nth}")).into_event())70
+ .peekable();71
+72
+ let mut gap_nth = 0;73
+74
+ while events.peek().is_some() {75
+ {76
+ let events_to_push_back = events.by_ref().take(80).collect::<Vec<_>>();77
+78
+ if events_to_push_back.is_empty() {79
+ break;80
+ }81
+82
+ operations.push(Operation::PushItemsBack(events_to_push_back));83
+ }84
+85
+ {86
+ operations87
+ .push(Operation::PushGapBack(Gap { token: format!("gap{gap_nth}") }));88
+ gap_nth += 1;89
+ }90
+ }91
+ }92
+93
+ // Define the throughput.94
+ group.throughput(Throughput::Elements(number_of_events));95
+96
+ // Get a bencher.97
+ group.bench_with_input(98
+ BenchmarkId::new(format!("Linked chunk writing [{store_name}]"), number_of_events),99
+ &operations,100
+ |bencher, operations| {101
+ // Bench the routine.102
+ bencher.to_async(&runtime).iter_batched(103
+ || operations.clone(),104
+ |operations| async {105
+ // The routine to bench!106
+107
+ let mut linked_chunk = LinkedChunk::<DEFAULT_CHUNK_CAPACITY, Event, Gap>::new_with_update_history();108
+109
+ for operation in operations {110
+ match operation {111
+ Operation::PushItemsBack(events) => linked_chunk.push_items_back(events),112
+ Operation::PushGapBack(gap) => linked_chunk.push_gap_back(gap),113
+ }114
+ }115
+116
+ if let Some(store) = &store {117
+ let updates = linked_chunk.updates().unwrap().take();118
+ store.handle_linked_chunk_updates(linked_chunk_id, updates).await.unwrap();119
+ // Empty the store.120
+ store.handle_linked_chunk_updates(linked_chunk_id, vec![Update::Clear]).await.unwrap();121
+ }122
+123
+ },124
+ BatchSize::SmallInput125
+ )126
+ },127
+ );128
+129
+ {130
+ let _guard = runtime.enter();131
+ drop(store);132
+ }133
+ }134
+ }135
+136
+ group.finish()137
+}138
+139
+fn reading(c: &mut Criterion) {140
+ // Create a new asynchronous runtime.141
+ let runtime = Builder::new_multi_thread()142
+ .enable_time()143
+ .enable_io()144
+ .build()145
+ .expect("Failed to create an asynchronous runtime");146
+147
+ let room_id = room_id!("!fabricandofitfaber:bar.baz");148
+ let linked_chunk_id = LinkedChunkId::Room(room_id);149
+ let event_factory = EventFactory::new().room(room_id).sender(&ALICE);150
+151
+ let mut group = c.benchmark_group("Linked chunk reading");152
+ group.sample_size(10);153
+154
+ for &num_events in NUMBER_OF_EVENTS {155
+ let sqlite_temp_dir = tempdir().unwrap();156
+157
+ // Declare new stores for this set of events.158
+ let stores: [(&str, Arc<DynEventCacheStore>); 2] = [159
+ ("memory store", MemoryStore::default().into_event_cache_store()),160
+ (161
+ "sqlite store",162
+ runtime.block_on(async {163
+ SqliteEventCacheStore::open(sqlite_temp_dir.path().join("bench"), None)164
+ .await165
+ .unwrap()166
+ .into_event_cache_store()167
+ }),168
+ ),169
+ ];170
+171
+ for (store_name, store) in stores {172
+ // Store some events and gap chunks in the store.173
+ {174
+ let mut events = (0..num_events)175
+ .map(|nth| event_factory.text_msg(format!("foo {nth}")).into_event())176
+ .peekable();177
+178
+ let mut lc =179
+ LinkedChunk::<DEFAULT_CHUNK_CAPACITY, Event, Gap>::new_with_update_history();180
+ let mut num_gaps = 0;181
+182
+ while events.peek().is_some() {183
+ let events_chunk = events.by_ref().take(80).collect::<Vec<_>>();184
+185
+ if events_chunk.is_empty() {186
+ break;187
+ }188
+189
+ lc.push_items_back(events_chunk);190
+ lc.push_gap_back(Gap { token: format!("gap{num_gaps}") });191
+192
+ num_gaps += 1;193
+ }194
+195
+ // Now persist the updates to recreate this full linked chunk.196
+ let updates = lc.updates().unwrap().take();197
+ runtime198
+ .block_on(store.handle_linked_chunk_updates(linked_chunk_id, updates))199
+ .unwrap();200
+ }201
+202
+ // Define the throughput.203
+ group.throughput(Throughput::Elements(num_events));204
+205
+ // Bench the lazy loader.206
+ group.bench_function(207
+ BenchmarkId::new(format!("Linked chunk lazy loader[{store_name}]"), num_events),208
+ |bencher| {209
+ // Bench the routine.210
+ bencher.to_async(&runtime).iter(|| async {211
+ // Load the last chunk first,212
+ let (last_chunk, chunk_id_gen) =213
+ store.load_last_chunk(linked_chunk_id).await.unwrap();214
+215
+ let mut lc =216
+ lazy_loader::from_last_chunk::<128, _, _>(last_chunk, chunk_id_gen)217
+ .expect("no error when reconstructing the linked chunk")218
+ .expect("there is a linked chunk in the store");219
+220
+ // Then load until the start of the linked chunk.221
+ let mut cur_chunk_id = lc.chunks().next().unwrap().identifier();222
+ while let Some(prev) =223
+ store.load_previous_chunk(linked_chunk_id, cur_chunk_id).await.unwrap()224
+ {225
+ cur_chunk_id = prev.identifier;226
+ lazy_loader::insert_new_first_chunk(&mut lc, prev)227
+ .expect("no error when linking the previous lazy-loaded chunk");228
+ }229
+ })230
+ },231
+ );232
+233
+ // Bench the metadata loader.234
+ group.bench_function(235
+ BenchmarkId::new(format!("Linked chunk metadata loader[{store_name}]"), num_events),236
+ |bencher| {237
+ // Bench the routine.238
+ bencher.to_async(&runtime).iter(|| async {239
+ let _metadata = store240
+ .load_all_chunks_metadata(linked_chunk_id)241
+ .await242
+ .expect("metadata must load");243
+ })244
+ },245
+ );246
+247
+ {248
+ let _guard = runtime.enter();249
+ drop(store);250
+ }251
+ }252
+ }253
+254
+ group.finish()255
+}256
+257
+criterion_group! {258
+ name = event_cache;259
+ config = Criterion::default();260
+ targets = writing, reading,261
+}262
+263
+criterion_main!(event_cache);@@ -0,0 +1,208 @@
1
+use std::time::Duration;2
+3
+use criterion::{BenchmarkId, Criterion, Throughput, criterion_group, criterion_main};4
+use matrix_sdk::{5
+ cross_process_lock::CrossProcessLockConfig, store::RoomLoadSettings,6
+ test_utils::mocks::MatrixMockServer,7
+};8
+use matrix_sdk_base::{9
+ BaseClient, DmRoomDefinition, RoomInfo, RoomState, SessionMeta, StateChanges, StateStore,10
+ ThreadingSupport, store::StoreConfig,11
+};12
+use matrix_sdk_sqlite::SqliteStateStore;13
+use matrix_sdk_test::{JoinedRoomBuilder, base64_sha256_hash, event_factory::EventFactory};14
+use matrix_sdk_ui::timeline::{TimelineBuilder, TimelineFocus};15
+use ruma::{16
+ EventId, MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedUserId,17
+ api::client::membership::get_member_events,18
+ events::room::member::{MembershipState, RoomMemberEvent},19
+ mxc_uri, owned_device_id, owned_room_id, owned_user_id,20
+ serde::Raw,21
+};22
+use tokio::runtime::Builder;23
+use wiremock::{Request, ResponseTemplate};24
+25
+pub fn receive_all_members_benchmark(c: &mut Criterion) {26
+ const MEMBERS_IN_ROOM: usize = 100000;27
+28
+ let runtime = Builder::new_multi_thread().build().expect("Can't create runtime");29
+ let room_id = owned_room_id!("!homohominilupusest:example.com");30
+31
+ let f = EventFactory::new().room(&room_id);32
+ let mut member_events: Vec<Raw<RoomMemberEvent>> = Vec::with_capacity(MEMBERS_IN_ROOM);33
+ for i in 0..MEMBERS_IN_ROOM {34
+ let user_id = OwnedUserId::try_from(format!("@user_{i}:matrix.org")).unwrap();35
+ let event = f36
+ .member(&user_id)37
+ .membership(MembershipState::Join)38
+ .avatar_url(mxc_uri!("mxc://example.org/SEsfnsuifSDFSSEF"))39
+ .display_name("Alice Margatroid")40
+ .reason("Looking for support")41
+ .into_raw();42
+ member_events.push(event);43
+ }44
+45
+ // Create a fake list of changes, and a session to recover from.46
+ let mut changes = StateChanges::default();47
+ changes.add_room(RoomInfo::new(&room_id, RoomState::Joined));48
+ for member_event in member_events.iter() {49
+ let event = member_event.clone().cast();50
+ changes.add_state_event(&room_id, event.deserialize().unwrap(), event);51
+ }52
+53
+ // Sqlite54
+ let sqlite_dir = tempfile::tempdir().unwrap();55
+ let sqlite_store = runtime.block_on(SqliteStateStore::open(sqlite_dir.path(), None)).unwrap();56
+ runtime57
+ .block_on(sqlite_store.save_changes(&changes))58
+ .expect("initial filling of sqlite failed");59
+60
+ let base_client = BaseClient::new(61
+ StoreConfig::new(CrossProcessLockConfig::multi_process(62
+ "cross-process-store-locks-holder-name",63
+ ))64
+ .state_store(sqlite_store),65
+ ThreadingSupport::Disabled,66
+ DmRoomDefinition::default(),67
+ );68
+69
+ runtime70
+ .block_on(base_client.activate(71
+ SessionMeta {72
+ user_id: owned_user_id!("@somebody:example.com"),73
+ device_id: owned_device_id!("DEVICE_ID"),74
+ },75
+ RoomLoadSettings::default(),76
+ None,77
+ ))78
+ .expect("Could not set session meta");79
+80
+ base_client.get_or_create_room(&room_id, RoomState::Joined);81
+82
+ let request = get_member_events::v3::Request::new(room_id.clone());83
+ let response = get_member_events::v3::Response::new(member_events);84
+85
+ let count = MEMBERS_IN_ROOM;86
+ let name = format!("{count} members");87
+ let mut group = c.benchmark_group("Test");88
+ group.throughput(Throughput::Elements(count as u64));89
+ group.sample_size(50);90
+91
+ group.bench_function(BenchmarkId::new("Handle /members request [SQLite]", name), |b| {92
+ b.to_async(&runtime).iter(|| async {93
+ base_client.receive_all_members(&room_id, &request, &response).await.unwrap();94
+ });95
+ });96
+97
+ {98
+ let _guard = runtime.enter();99
+ drop(base_client);100
+ }101
+102
+ group.finish();103
+}104
+105
+pub fn load_pinned_events_benchmark(c: &mut Criterion) {106
+ const PINNED_EVENTS_COUNT: usize = 100;107
+108
+ let runtime = Builder::new_multi_thread().enable_all().build().expect("Can't create runtime");109
+ let room_id = owned_room_id!("!homohominilupusest:example.com");110
+ let sender_id = owned_user_id!("@sender:example.com");111
+112
+ let f = EventFactory::new().room(&room_id).sender(&sender_id);113
+114
+ let mut joined_room_builder =115
+ JoinedRoomBuilder::new(&room_id).add_state_event(f.room_encryption());116
+117
+ let pinned_event_ids: Vec<OwnedEventId> = (0..PINNED_EVENTS_COUNT)118
+ .map(|i| {119
+ EventId::new_v2_or_v3(&base64_sha256_hash(format!("${i}").as_bytes()))120
+ .expect("Invalid event id")121
+ })122
+ .collect();123
+ joined_room_builder =124
+ joined_room_builder.add_state_bulk(vec![f.room_pinned_events(pinned_event_ids).into()]);125
+126
+ let (server, client, room) = runtime.block_on(async move {127
+ let server = MatrixMockServer::new().await;128
+ let client = server.client_builder().build().await;129
+130
+ let room = server.sync_room(&client, joined_room_builder).await;131
+132
+ server133
+ .mock_room_event()134
+ .respond_with(move |r: &Request| {135
+ let segments: Vec<&str> = r.url.path_segments().expect("Invalid path").collect();136
+ let event_id_str = segments[6];137
+ let event_id = EventId::parse(event_id_str).expect("Invalid event id in response");138
+ let event = f139
+ .text_msg(format!("Message {event_id_str}"))140
+ .event_id(&event_id)141
+ .server_ts(MilliSecondsSinceUnixEpoch::now())142
+ .into_raw_sync();143
+ ResponseTemplate::new(200)144
+ .set_delay(Duration::from_millis(50))145
+ .set_body_json(event.json())146
+ })147
+ .mount()148
+ .await;149
+150
+ client.event_cache().subscribe().unwrap();151
+152
+ (server, client, room)153
+ });154
+155
+ let pinned_event_ids = room.pinned_event_ids().unwrap_or_default();156
+ assert!(!pinned_event_ids.is_empty());157
+ assert_eq!(pinned_event_ids.len(), PINNED_EVENTS_COUNT);158
+159
+ let count = PINNED_EVENTS_COUNT;160
+ let name = format!("{count} pinned events");161
+ let mut group = c.benchmark_group("Load pinned events");162
+ group.throughput(Throughput::Elements(count as u64));163
+ group.sample_size(10);164
+165
+ group.bench_function(BenchmarkId::new("Load pinned events [memory]", name), |b| {166
+ b.to_async(&runtime).iter(|| async {167
+ let pinned_event_ids = room.pinned_event_ids().unwrap_or_default();168
+ assert!(!pinned_event_ids.is_empty());169
+ assert_eq!(pinned_event_ids.len(), PINNED_EVENTS_COUNT);170
+171
+ // Reset cache so it always loads the events from the mocked endpoint172
+ client173
+ .event_cache_store()174
+ .lock()175
+ .await176
+ .unwrap()177
+ .as_clean()178
+ .unwrap()179
+ .clear_all_linked_chunks()180
+ .await181
+ .unwrap();182
+183
+ let timeline = TimelineBuilder::new(&room)184
+ .with_focus(TimelineFocus::PinnedEvents)185
+ .build()186
+ .await187
+ .expect("Could not create timeline");188
+189
+ let (items, _) = timeline.subscribe().await;190
+ assert_eq!(items.len(), PINNED_EVENTS_COUNT + 1);191
+ timeline.clear().await;192
+ });193
+ });194
+195
+ {196
+ let _guard = runtime.enter();197
+ drop(server);198
+ }199
+200
+ group.finish();201
+}202
+203
+criterion_group! {204
+ name = room;205
+ config = Criterion::default();206
+ targets = receive_all_members_benchmark, load_pinned_events_benchmark,207
+}208
+criterion_main!(room);@@ -0,0 +1,101 @@
1
+use assert_matches::assert_matches;2
+use criterion::{BenchmarkId, Criterion, Throughput, criterion_group, criterion_main};3
+use futures_util::pin_mut;4
+use matrix_sdk::{stream::StreamExt, test_utils::mocks::MatrixMockServer};5
+use matrix_sdk_test::{JoinedRoomBuilder, base64_sha256_hash, event_factory::EventFactory};6
+use matrix_sdk_ui::{7
+ RoomListService, eyeball_im::VectorDiff, room_list_service::filters::new_filter_non_left,8
+};9
+use rand::{distr::Uniform, prelude::Distribution};10
+use ruma::{OwnedRoomId, RoomId, owned_user_id};11
+use tokio::runtime::Builder;12
+13
+/// Benchmark the time it takes to create a room list.14
+pub fn create(c: &mut Criterion) {15
+ const NUMBER_OF_ROOMS: usize = 1000;16
+ const NUMBER_OF_EVENTS_PER_ROOM: usize = 1000;17
+18
+ let runtime = Builder::new_multi_thread().enable_all().build().expect("Can't create runtime");19
+20
+ let (server, client) = runtime.block_on(async {21
+ let server = MatrixMockServer::new().await;22
+ let client = server.client_builder().build().await;23
+ client.event_cache().subscribe().unwrap();24
+25
+ (server, client)26
+ });27
+28
+ let sender_id = owned_user_id!("@mnt_io:matrix.org");29
+ let mut rand = rand::rng();30
+ let server_ts_range = Uniform::try_from(100..1000).unwrap();31
+32
+ for room_nth in 0..NUMBER_OF_ROOMS {33
+ // Synapse's room IDs for rooms v1 to v11 have an 18 characters localpart.34
+ let raw_room_id = format!("!arsgratiaartis{room_nth:04}:example.com");35
+36
+ let room_id = if room_nth % 10 == 9 {37
+ // Make 1 in 10 rooms use a room v12 ID, which is a base64 hash similar to an38
+ // event ID.39
+ RoomId::new_v2(&base64_sha256_hash(raw_room_id.as_bytes())).unwrap()40
+ } else {41
+ OwnedRoomId::try_from(raw_room_id).unwrap()42
+ };43
+44
+ let first_server_ts = server_ts_range.sample(&mut rand);45
+ let event_factory = EventFactory::new().room(&room_id).server_ts(first_server_ts);46
+47
+ let events = (0..NUMBER_OF_EVENTS_PER_ROOM)48
+ .map(|event_nth| {49
+ event_factory50
+ .text_msg(format!("a {room_nth}_{event_nth}"))51
+ .sender(&sender_id)52
+ .into_raw_sync()53
+ })54
+ .collect::<Vec<_>>();55
+56
+ let _room = runtime.block_on(async {57
+ server58
+ .sync_room(&client, JoinedRoomBuilder::new(&room_id).add_timeline_bulk(events))59
+ .await60
+ });61
+ }62
+63
+ let mut group = c.benchmark_group("RoomList");64
+ group.throughput(Throughput::Elements(NUMBER_OF_ROOMS.try_into().unwrap()));65
+66
+ group.bench_function(67
+ BenchmarkId::new(68
+ "Create",69
+ format!("{NUMBER_OF_ROOMS} rooms × {NUMBER_OF_EVENTS_PER_ROOM} events"),70
+ ),71
+ |bencher| {72
+ bencher.to_async(&runtime).iter(|| async {73
+ let room_list_service = RoomListService::new(client.clone())74
+ .await75
+ .expect("build the room list service");76
+ let room_list = room_list_service.all_rooms().await.expect("fetch `all_rooms`");77
+ let (entries_stream, entries_controller) =78
+ room_list.entries_with_dynamic_adapters(20);79
+80
+ // Setting the filter will trigger the entries stream computation.81
+ entries_controller.set_filter(Box::new(new_filter_non_left()));82
+83
+ pin_mut!(entries_stream);84
+ let update = entries_stream.next().await.expect("receiving the reset update");85
+ assert_eq!(update.len(), 1);86
+ assert_matches!(&update[0], VectorDiff::Reset { values } => {87
+ assert_eq!(values.len(), 20);88
+ });89
+ });90
+ },91
+ );92
+93
+ group.finish();94
+}95
+96
+criterion_group! {97
+ name = room_list;98
+ config = Criterion::default();99
+ targets = create100
+}101
+criterion_main!(room_list);@@ -0,0 +1,139 @@
1
+use std::sync::Arc;2
+3
+use criterion::{BenchmarkId, Criterion, Throughput, criterion_group, criterion_main};4
+use matrix_sdk::{5
+ Client, RoomInfo, RoomState, SessionTokens, StateChanges,6
+ authentication::matrix::MatrixSession, config::StoreConfig,7
+ cross_process_lock::CrossProcessLockConfig,8
+};9
+use matrix_sdk_base::{SessionMeta, StateStore as _, store::MemoryStore};10
+use matrix_sdk_sqlite::SqliteStateStore;11
+use matrix_sdk_test::base64_sha256_hash;12
+use ruma::{OwnedRoomId, RoomId, owned_device_id, owned_user_id};13
+use tokio::runtime::Builder;14
+15
+/// Number of joined rooms in the benchmark.16
+const NUM_JOINED_ROOMS: usize = 10000;17
+18
+/// Number of stripped rooms in the benchmark.19
+const NUM_STRIPPED_JOINED_ROOMS: usize = 10000;20
+21
+pub fn restore_session(c: &mut Criterion) {22
+ let runtime = Builder::new_multi_thread().enable_time().build().expect("Can't create runtime");23
+24
+ // Create a fake list of changes, and a session to recover from.25
+ let mut changes = StateChanges::default();26
+27
+ for i in 0..NUM_JOINED_ROOMS {28
+ // Synapse's room IDs for rooms v1 to v11 have an 18 characters localpart.29
+ let raw_room_id = format!("!joinedchamber{i:05}:example.com");30
+31
+ let room_id = if i % 20 == 19 {32
+ // Make 1 in 20 rooms use a room v12 ID, which is a base64 hash similar to an33
+ // event ID.34
+ RoomId::new_v2(&base64_sha256_hash(raw_room_id.as_bytes())).unwrap()35
+ } else {36
+ OwnedRoomId::try_from(raw_room_id).unwrap()37
+ };38
+ changes.add_room(RoomInfo::new(&room_id, RoomState::Joined));39
+ }40
+41
+ for i in 0..NUM_STRIPPED_JOINED_ROOMS {42
+ // Synapse's room IDs for rooms v1 to v11 have an 18 characters localpart.43
+ let raw_room_id = format!("!strippedlodge{i:05}:example.com");44
+45
+ let room_id = if i % 20 == 19 {46
+ // Make 1 in 20 rooms use a room v12 ID, which is a base64 hash similar to an47
+ // event ID.48
+ RoomId::new_v2(&base64_sha256_hash(raw_room_id.as_bytes())).unwrap()49
+ } else {50
+ OwnedRoomId::try_from(raw_room_id).unwrap()51
+ };52
+ changes.add_room(RoomInfo::new(&room_id, RoomState::Invited));53
+ }54
+55
+ let session = MatrixSession {56
+ meta: SessionMeta {57
+ user_id: owned_user_id!("@somebody:example.com"),58
+ device_id: owned_device_id!("DEVICE_ID"),59
+ },60
+ tokens: SessionTokens { access_token: "OHEY".to_owned(), refresh_token: None },61
+ };62
+63
+ // Start the benchmark.64
+65
+ let mut group = c.benchmark_group("Client reload");66
+ group.throughput(Throughput::Elements(100));67
+68
+ // Memory69
+ let mem_store = Arc::new(MemoryStore::new());70
+ runtime.block_on(mem_store.save_changes(&changes)).expect("initial filling of mem failed");71
+72
+ group.bench_with_input("Restore session [memory store]", &mem_store, |b, store| {73
+ b.to_async(&runtime).iter(|| async {74
+ let client = Client::builder()75
+ .homeserver_url("https://matrix.example.com")76
+ .store_config(77
+ StoreConfig::new(CrossProcessLockConfig::multi_process(78
+ "cross-process-store-locks-holder-name",79
+ ))80
+ .state_store(store.clone()),81
+ )82
+ .build()83
+ .await84
+ .expect("Can't build client");85
+ client.restore_session(session.clone()).await.expect("couldn't restore session");86
+ })87
+ });88
+89
+ for encryption_password in [None, Some("hunter2")] {90
+ let encrypted_suffix = if encryption_password.is_some() { "encrypted" } else { "clear" };91
+92
+ // Sqlite93
+ let sqlite_dir = tempfile::tempdir().unwrap();94
+ let sqlite_store = runtime95
+ .block_on(SqliteStateStore::open(sqlite_dir.path(), encryption_password))96
+ .unwrap();97
+ runtime98
+ .block_on(sqlite_store.save_changes(&changes))99
+ .expect("initial filling of sqlite failed");100
+101
+ group.bench_with_input(102
+ BenchmarkId::new("Restore session [SQLite]", encrypted_suffix),103
+ &sqlite_store,104
+ |b, store| {105
+ b.to_async(&runtime).iter(|| async {106
+ let client = Client::builder()107
+ .homeserver_url("https://matrix.example.com")108
+ .store_config(109
+ StoreConfig::new(CrossProcessLockConfig::multi_process(110
+ "cross-process-store-locks-holder-name",111
+ ))112
+ .state_store(store.clone()),113
+ )114
+ .build()115
+ .await116
+ .expect("Can't build client");117
+ client118
+ .restore_session(session.clone())119
+ .await120
+ .expect("couldn't restore session");121
+ })122
+ },123
+ );124
+125
+ {126
+ let _guard = runtime.enter();127
+ drop(sqlite_store);128
+ }129
+ }130
+131
+ group.finish()132
+}133
+134
+criterion_group! {135
+ name = benches;136
+ config = Criterion::default();137
+ targets = restore_session138
+}139
+criterion_main!(benches);@@ -0,0 +1,123 @@
1
+use criterion::{BenchmarkId, Criterion, Throughput, criterion_group, criterion_main};2
+use matrix_sdk::test_utils::mocks::MatrixMockServer;3
+use matrix_sdk_test::{JoinedRoomBuilder, event_factory::EventFactory};4
+use matrix_sdk_ui::timeline::{TimelineBuilder, TimelineReadReceiptTracking};5
+use ruma::{6
+ OwnedEventId, events::room::message::RoomMessageEventContentWithoutRelation, owned_room_id,7
+ owned_user_id,8
+};9
+use tokio::runtime::Builder;10
+11
+/// Benchmark the time it takes to create a timeline (with read receipt12
+/// support), when there are many initial events at rest in the event cache.13
+///14
+/// `NUM_EVENTS` is the number of events that will be stored initially in the15
+/// event cache. It will be a mix of messages, reactions, edits and redactions,16
+/// so there are some aggregations to take into account by the timeline as well.17
+pub fn create_timeline_with_initial_events(c: &mut Criterion) {18
+ const NUM_EVENTS: usize = 10000;19
+20
+ let runtime = Builder::new_multi_thread().enable_all().build().expect("Can't create runtime");21
+ let room_id = owned_room_id!("!fortesfortunajuvat:example.com");22
+23
+ let sender_id = owned_user_id!("@sender:example.com");24
+ let other_sender_id = owned_user_id!("@other_sender:example.com");25
+ let another_sender_id = owned_user_id!("@another_sender:example.com");26
+27
+ let f = EventFactory::new().room(&room_id);28
+29
+ let mut events = Vec::new();30
+ for i in 0..NUM_EVENTS {31
+ let sender = match i % 3 {32
+ 0 => &sender_id,33
+ 1 => &other_sender_id,34
+ 2 => &another_sender_id,35
+ _ => unreachable!("math genius over here"),36
+ };37
+38
+ let j = i % 10;39
+ if j < 6 {40
+ // Messages.41
+ events.push(f.text_msg(format!("Message {i}")).sender(sender).into_raw_sync());42
+ } else if j < 8 {43
+ // Reactions.44
+ let prev_event_id = events[i - 2]45
+ .get_field::<OwnedEventId>("event_id")46
+ .expect("invalid event ID")47
+ .expect("missing event ID");48
+ events.push(f.reaction(&prev_event_id, "👍").sender(sender).into_raw_sync());49
+ } else if j == 8 {50
+ // Edit.51
+ // Note: (i-3)%3 is the same as i%3 -> same sender!52
+ let prev_event_id = events[i - 3]53
+ .get_field::<OwnedEventId>("event_id")54
+ .expect("invalid event ID")55
+ .expect("missing event ID");56
+ events.push(57
+ f.text_msg(format!("* Message {}v2", i - 3))58
+ .edit(59
+ &prev_event_id,60
+ RoomMessageEventContentWithoutRelation::text_plain(format!(61
+ "Message {}v2",62
+ i - 363
+ )),64
+ )65
+ .sender(sender)66
+ .into_raw_sync(),67
+ );68
+ } else if j == 9 {69
+ // Redaction.70
+ // Note: (i-6)%3 is the same as i%6 -> same sender!71
+ let prev_event_id = events[i - 6]72
+ .get_field::<OwnedEventId>("event_id")73
+ .expect("invalid event ID")74
+ .expect("missing event ID");75
+ events.push(f.redaction(&prev_event_id).sender(sender).into_raw_sync());76
+ }77
+ }78
+79
+ let builder = JoinedRoomBuilder::new(&room_id)80
+ .add_state_event(f.room_encryption().sender(&sender_id))81
+ .add_timeline_bulk(events);82
+83
+ let room = runtime.block_on(async move {84
+ let server = MatrixMockServer::new().await;85
+ let client = server.client_builder().build().await;86
+87
+ client.event_cache().subscribe().unwrap();88
+89
+ let room = server.sync_room(&client, builder).await;90
+ drop(server);91
+92
+ room93
+ });94
+95
+ let mut group = c.benchmark_group("Create a timeline");96
+ group.throughput(Throughput::Elements(NUM_EVENTS as _));97
+ group.sample_size(10);98
+99
+ group.bench_function(100
+ BenchmarkId::new("Create a timeline with initial events", format!("{NUM_EVENTS} events")),101
+ |b| {102
+ b.to_async(&runtime).iter(|| async {103
+ let timeline = TimelineBuilder::new(&room)104
+ .track_read_marker_and_receipts(TimelineReadReceiptTracking::AllEvents)105
+ .build()106
+ .await107
+ .expect("Could not create timeline");108
+109
+ let (items, _) = timeline.subscribe().await;110
+ assert_eq!(items.len(), 20);111
+ });112
+ },113
+ );114
+115
+ group.finish();116
+}117
+118
+criterion_group! {119
+ name = room;120
+ config = Criterion::default();121
+ targets = create_timeline_with_initial_events122
+}123
+criterion_main!(room);@@ -0,0 +1,79 @@
1
+## Introduction2
+3
+**matrix-rust-sdk** leverages [UniFFI](https://mozilla.github.io/uniffi-rs/) to4
+generate bindings for host languages (eg. Swift and Kotlin).5
+6
+Rust code related with bindings live in the7
+[matrix-rust-sdk/bindings](https://github.com/matrix-org/matrix-rust-sdk/tree/main/bindings)8
+folder.9
+10
+Developers can expose Rust code to UniFFI using two different approaches:11
+12
+- Using an `.udl` file. When a crate has one, you find it under the `src` folder13
+ ([an example is here](https://github.com/matrix-org/matrix-rust-sdk/blob/main/bindings/matrix-sdk-ffi/src/api.udl)).14
+- Add UniFFI directivies as Rust attributes. In this case Rust source files15
+ (`.rs`) contain attributes related to UniFFI (e.g. `#[uniffi::export]`).16
+ Attributes are preferred, where applicable.17
+18
+## Expose Rust definitions to UniFFI19
+20
+### Check if the API is already on UniFFI21
+22
+First of all check if the Rust definition you are looking for exists on UniFFI23
+already. Most of exposed matrix definitions are collected in the crate24
+[matrix-sdk-ffi](https://github.com/matrix-org/matrix-rust-sdk/tree/main/bindings/matrix-sdk-ffi).25
+This crate contains mainly small Rust wrappers around the actual Rust SDK (e.g.26
+the crate27
+[matrix-sdk](https://github.com/matrix-org/matrix-rust-sdk/tree/main/crates/matrix-sdk))28
+29
+If the Rust definition is on UniFFI already, you either:30
+31
+- find it in a `.udl` file like32
+ [matrix-sdk-ffi/src/api.udl](https://github.com/matrix-org/matrix-rust-sdk/blob/main/bindings/matrix-sdk-ffi/src/api.udl)33
+- see it marked with a proper UniFFI Rust attribute like this34
+ `#[uniffi::export]`35
+36
+### Adding a missing matrix API37
+38
+1. Unless you want to contribute on the crypto side, you probably need to add39
+ some code in the40
+ [matrix-sdk-ffi](https://github.com/matrix-org/matrix-rust-sdk/tree/main/bindings/matrix-sdk-ffi)41
+ crate. After you find the crate you need to understand which file is best to42
+ contain the new Rust definition. When exposing new matrix API often (but not43
+ always) you need to touch the file44
+ [client.rs](https://github.com/matrix-org/matrix-rust-sdk/blob/main/bindings/matrix-sdk-ffi/src/client.rs)45
+46
+2. Identify the API to expose in the target Rust crate (typically in47
+ [matrix-sdk](https://github.com/matrix-org/matrix-rust-sdk/tree/main/crates/matrix-sdk).48
+ If you can’t find it, you probably need to touch the actual Rust SDK as well.49
+ In this case you typically just need to write some code around50
+ [ruma](https://github.com/ruma/ruma) (a Rust SDK’s dependency) which already51
+ implements most of the matrix protocol52
+53
+3. After you got (by finding or writing) the required Rust code, you need to54
+ expose to UniFFI. To do that just write a small Rust wrapper in the related55
+ UniFFI crate (most of the time is **matrix-sdk-ffi**) you found on step 1.56
+57
+4. When your new (wrapping) Rust definition is ready, remember to expose it to58
+ UniFFI.59
+It’s best to do it using UniFFI Rust attributes (e.g. `#[uniffi::export]`).60
+Otherwise add the new definition in the crate’s `.udl` file. For the61
+**matrix-sdk-ffi** crate the definition file is62
+[api.udl](https://github.com/matrix-org/matrix-rust-sdk/blob/main/bindings/matrix-sdk-ffi/src/api.udl).63
+**Remember**: the language inside a `.udl` file isn’t Rust. To64
+[learn more about how map Rust into UDL read here](https://mozilla.github.io/uniffi-rs/udl_file_spec.html)65
+66
+## FAQ67
+68
+**Q**: I wrote my Rust code and exposed it to UniFFI. How can I check if the69
+compiler is happy?\70
+**A**: Run `cargo build` in the crate you touched (e.g. matrix-sdk-ffi). The71
+compiler will complain if the Rust code and/or the `.udl` is wrong.72
+73
+**Q**: The compiler is happy with my code but the CI is failing on GitHub. How74
+can I fix it?\75
+**A**: The CI may fail for different reasons, you need to have a look on the76
+failing GitHub workflow. One common reason though is that the linter77
+([Clippy](https://github.com/rust-lang/rust-clippy)) isn’t happy with your code.78
+If this is the case, you can run `cargo clippy` in the crate you touched to see79
+what’s wrong and fix it accordingly.@@ -0,0 +1,30 @@
1
+# Matrix Rust SDK bindings2
+3
+In this directory, one can find bindings to the Rust SDK that are4
+maintained by the owners of the Matrix Rust SDK project.5
+6
+- [`apple`] or `matrix-rust-components-swift`, Swift bindings of the7
+ [`matrix-sdk`] crate via [`matrix-sdk-ffi`],8
+- [`matrix-sdk-crypto-ffi`], UniFFI (Kotlin, Swift, Python, Ruby) bindings of9
+ the [`matrix-sdk-crypto`] crate,10
+- [`matrix-sdk-ffi`], UniFFI bindings of the [`matrix-sdk`] crate.11
+12
+There are also external bindings in other repositories:13
+14
+- [`matrix-sdk-crypto-wasm`], JavaScript / WebAssembly bindings of the15
+ [`matrix-sdk-crypto`] crate,16
+- [`matrix-sdk-crypto-nodejs`], Node.js bindings of the17
+ [`matrix-sdk-crypto`] crate18
+19
+[`apple`]: ./apple20
+[`matrix-sdk-crypto-ffi`]: ./matrix-sdk-crypto-ffi21
+[`matrix-sdk-crypto`]: ../crates/matrix-sdk-crypto22
+[`matrix-sdk-ffi`]: ./matrix-sdk-ffi23
+[`matrix-sdk`]: ../crates/matrix-sdk24
+25
+[`matrix-sdk-crypto-wasm`]: https://github.com/matrix-org/matrix-rust-sdk-crypto-wasm26
+[`matrix-sdk-crypto-nodejs`]: https://github.com/matrix-org/matrix-rust-sdk-crypto-nodejs27
+28
+## Contributing29
+30
+To contribute read this [guide](./CONTRIBUTING.md).@@ -0,0 +1,8 @@
1
+// swift-tools-version:5.62
+3
+// A package manifest for local development. This file will be copied4
+// into the root of the repo when generating an XCFramework.5
+6
+import PackageDescription7
+8
+let package = Package()@@ -0,0 +1,25 @@
1
+// swift-tools-version:5.72
+3
+// A package manifest for local development. This file will be copied4
+// into the root of the repo when generating an XCFramework.5
+6
+import PackageDescription7
+8
+let package = Package(9
+ name: "MatrixRustSDK",10
+ platforms: [11
+ .iOS(.v16),12
+ .macOS(.v12)13
+ ],14
+ products: [15
+ .library(name: "MatrixRustSDK",16
+ type: .dynamic,17
+ targets: ["MatrixRustSDK"]),18
+ ],19
+ targets: [20
+ .binaryTarget(name: "MatrixSDKFFI", path: "bindings/apple/generated/MatrixSDKFFI.xcframework"),21
+ .target(name: "MatrixRustSDK",22
+ dependencies: [.target(name: "MatrixSDKFFI")],23
+ path: "bindings/apple/generated/swift")24
+ ]25
+)@@ -0,0 +1,21 @@
1
+# Podspec file for local-development only, which points to local version of generated framework instead of github release2
+# To use this, the file needs to be copied to the root of `matrix-rust-sdk` in order to have access to the source files.`3
+Pod::Spec.new do |s|4
+5
+ s.name = "MatrixSDKCrypto"6
+ s.version = "0.4.1"7
+ s.summary = "Uniffi based bindings for the Rust SDK crypto crate."8
+ s.homepage = "https://github.com/matrix-org/matrix-rust-sdk"9
+ s.license = { :type => "Apache License, Version 2.0", :file => "LICENSE" }10
+ s.author = { "matrix.org" => "support@matrix.org" }11
+ 12
+ s.ios.deployment_target = "13.0"13
+ s.osx.deployment_target = "10.15"14
+15
+ s.swift_versions = ['5.1', '5.2']16
+17
+ s.source = { :git => "Not Published", :tag => "Cocoapods/#{s.name}/#{s.version}" }18
+ s.vendored_frameworks = "generated/MatrixSDKCryptoFFI.xcframework"19
+ s.source_files = "generated/Sources/**/*.{swift}"20
+ s.resources = ["bindings/matrix-sdk-crypto-ffi/src/**/*.rs", "crates/matrix-sdk-crypto/src/**/*.rs"]21
+end@@ -0,0 +1,19 @@
1
+Pod::Spec.new do |s|2
+3
+ s.name = "MatrixSDKCrypto"4
+ s.version = "0.4.1" # Version is only incremented manually and locally before pushing to CocoaPods5
+ s.summary = "Uniffi based bindings for the Rust SDK crypto crate."6
+ s.homepage = "https://github.com/matrix-org/matrix-rust-sdk"7
+ s.license = { :type => "Apache License, Version 2.0", :file => "LICENSE" }8
+ s.author = { "matrix.org" => "support@matrix.org" }9
+10
+ s.ios.deployment_target = "13.0"11
+ s.osx.deployment_target = "10.15"12
+13
+ s.swift_versions = ['5.1', '5.2']14
+15
+ s.source = { :http => "https://github.com/matrix-org/matrix-rust-sdk/releases/download/matrix-sdk-crypto-ffi-#{s.version}/MatrixSDKCryptoFFI.zip" }16
+ s.vendored_frameworks = "MatrixSDKCryptoFFI.xcframework"17
+ s.source_files = "Sources/**/*.{swift}"18
+ 19
+end@@ -0,0 +1,33 @@
1
+// swift-tools-version: 5.72
+// The swift-tools-version declares the minimum version of Swift required to build this package.3
+4
+import PackageDescription5
+6
+let package = Package(7
+ name: "MatrixRustSDK",8
+ platforms: [9
+ .iOS(.v16),10
+ .macOS(.v12)11
+ ],12
+ products: [13
+ .library(name: "MatrixRustSDK",14
+ targets: ["MatrixRustSDK"]),15
+ ],16
+ targets: [17
+ .target(name: "MatrixRustSDK",18
+ path: "generated/swift",19
+ swiftSettings: [20
+ .unsafeFlags(["-I", "./generated/matrix_sdk_ffi"])21
+ ]),22
+ .testTarget(name: "MatrixRustSDKTests",23
+ dependencies: ["MatrixRustSDK"],24
+ swiftSettings: [25
+ .unsafeFlags(["-I", "./generated/matrix_sdk_ffi"])26
+ ],27
+ linkerSettings: [28
+ .linkedLibrary("matrix_sdk_ffi", .when(platforms: [.macOS])),29
+ .linkedLibrary("matrix_sdk_ffiFFI", .when(platforms: [.linux])),30
+ .unsafeFlags(["-L./generated/matrix_sdk_ffi"])31
+ ])32
+ ]33
+)@@ -0,0 +1,115 @@
1
+# Apple platforms support2
+3
+This project and build script demonstrate how to create an XCFramework that can4
+be imported into an Xcode project and run on Apple platforms. It can compile and5
+bundle an [entire SDK](#Building-the-SDK), or only a smaller6
+[Crypto module](#Building-only-the-Crypto-SDK) that provides end-to-end7
+encryption for clients that already depend on an SDK (e.g.8
+[Matrix iOS SDK](https://github.com/matrix-org/matrix-ios-sdk))9
+10
+## Building11
+12
+### Prerequisites for building universal frameworks13
+14
+- the Rust toolchain15
+- Apple targets (e.g.16
+ `rustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios aarch64-apple-darwin x86_64-apple-darwin`) <!-- rumdl-disable-line MD013 -->17
+- `xcodebuild` command line tool from18
+ [Apple](https://developer.apple.com/library/archive/technotes/tn2339/_index.html)19
+- `lipo` for creating the fat static libs20
+21
+### Building the SDK22
+23
+```text24
+cargo xtask swift build-framework25
+```26
+27
+The `build-framework` task will go through all the steps required to generate a28
+fully usable `.xcframework`:29
+30
+1. compile `matrix-sdk-ffi` libraries for iOS, the iOS simulator and macOS under31
+ `/target`. Some targets are not part of the standard library and they will be32
+ built using the nightly toolchain.33
+2. `lipo` together the libraries for the same platform under `/generated`34
+3. run `uniffi` and generate the C header, module map and swift files35
+4. `xcodebuild` an `xcframework` from the fat static libs and the original iOS36
+ one, and add the header and module map to it under37
+ `generated/MatrixSDKFFI.xcframework`38
+5. cleanup and delete the generated files except the .xcframework and the swift39
+ sources (that aren't part of the framework)40
+41
+For development purposes, it will additionally generate a `Package.swift` file42
+in the root of the repo that can be used to add the framework to your project43
+and enable debugging through the use of44
+[rust-xcode-plugin](https://github.com/BrainiumLLC/rust-xcode-plugin) (make sure45
+to run the task with the argument `--profile=reldbg`).46
+47
+When building the SDK for release you should pass the `--release` argument to48
+the task, which will strip away any symbols and optimise the created binary.49
+50
+### Building only the crypto SDK51
+52
+```text53
+build_crypto_xcframework.sh54
+```55
+56
+The `build_crypto_xcframework.sh` script will go through all the steps required57
+to generate a fully usable `.xcframework`:58
+59
+1. compile `matrix-sdk-crypto-ffi` libraries for iOS and the iOS simulator under60
+ `/target`61
+2. `lipo` together the libraries for the same platform under `/generated`62
+3. run `uniffi` and generate the C header, module map and swift files63
+4. `xcodebuild` an `xcframework` from the fat static libs and the original iOS64
+ one, and add the header and module map to it under65
+ `generated/MatrixSDKCryptoFFI.xcframework`66
+5. cleanup and delete the generated files except the .xcframework and the swift67
+ sources (that aren't part of the framework)68
+69
+### Building & testing the Swift package70
+71
+The `Package.swift` file in this directory provides a simple example on how to72
+integrate everything together but also a place to run unit and integration tests73
+from.74
+75
+It's pre-configured to link to the generated static lib and .swift files so76
+successfully running `cargo xtask swift build-library` first is necessary for it77
+to compile. Afterwards you can execute the tests with `swift test`. Note that78
+for the moment this only works on macOS but we're planning to add Linux support79
+in the future.80
+81
+## Distribution82
+83
+The generated framework and Swift code can be distributed and integrated84
+directly but in order to make things simpler we bundle them together as a85
+[Swift package](https://github.com/matrix-org/matrix-rust-components-swift/) in86
+the case of SDK, and as a CocoaPods podspec in the case of Crypto SDK.87
+88
+### Publishing `MatrixSDKCrypto`89
+90
+1. Navigate into `bindings/apple` and run91
+ [`build_crypto_xcframework.sh`](#building-only-the-crypto-sdk) script which92
+ generates a .zip file with the framework in `./generated` folder93
+94
+ Note that whilst you can run this command from any git branch, if you want to95
+ make a public release, ensure you are building from latest `main`96
+97
+2. Tag the commit you just used to build the release and push the tag to GitHub98
+99
+ Use `matrix-sdk-crypto-ffi-<major>.<minor>.<patch>` tag name100
+101
+3. Create a new102
+ [GitHub release](https://github.com/matrix-org/matrix-rust-sdk/releases)103
+ using this tag (see104
+ [example](https://github.com/matrix-org/matrix-rust-sdk/releases/tag/matrix-sdk-crypto-ffi-0.3.4))105
+4. Upload the previously generated .zip file to this release106
+5. Increment the version in107
+ [`MatrixSDKCrypto.podspec`](./MatrixSDKCrypto.podspec)108
+109
+ Note that this is not automated and is a local-only change. To determine the110
+ most recent published version, run111
+ `pod repo update && pod search MatrixSDKCrypto` or check git tags via112
+ `git tag | grep matrix-sdk-crypto-ffi`113
+114
+6. Push new Podspec version to Cocoapods via115
+ `pod trunk push MatrixSDKCrypto.podspec --allow-warnings`@@ -0,0 +1,51 @@
1
+import XCTest2
+@testable import MatrixRustSDK3
+4
+final class ClientTests: XCTestCase {5
+ func testBuildingWithHomeserverURL() async {6
+ do {7
+ _ = try await ClientBuilder()8
+ .homeserverUrl(url: "https://localhost:8008")9
+ .build()10
+ } catch {11
+ XCTFail("The client should build successfully when given a homeserver.")12
+ }13
+ }14
+15
+ func testBuildingWithHomeserverURLAndUserAgent() async {16
+ do {17
+ _ = try await ClientBuilder()18
+ .homeserverUrl(url: "https://localhost:8008")19
+ .userAgent(userAgent: "golden-eye/007")20
+ .build()21
+ } catch {22
+ XCTFail("The client should build successfully when given a homeserver and user agent.")23
+ }24
+ }25
+ 26
+ func testBuildingWithInvalidUsername() async {27
+ do {28
+ _ = try await ClientBuilder()29
+ .username(username: "@test:invalid")30
+ .build()31
+ 32
+ XCTFail("The client should not build when given an invalid username.")33
+ } catch ClientBuildError.ServerUnreachable(let message) {34
+ XCTAssertTrue(message.contains(".well-known"), "The client should fail to do the well-known lookup.")35
+ } catch {36
+ XCTFail("Not expecting any other kind of exception")37
+ }38
+ }39
+ 40
+ // MARK: - Private41
+ 42
+ static private var basePath: String {43
+ guard let url = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first else {44
+ fatalError("Should always be able to retrieve the caches directory")45
+ }46
+ 47
+ try? FileManager.default.createDirectory(at: url, withIntermediateDirectories: false, attributes: nil)48
+ 49
+ return url.path50
+ }51
+}@@ -0,0 +1,134 @@
1
+#!/usr/bin/env bash2
+set -eEu3
+4
+helpFunction() {5
+ echo ""6
+ echo "Usage: $0 -only_ios"7
+ echo -e "\t-i Option to build only for iOS. Default will build for all targets."8
+ exit 19
+}10
+11
+only_ios='false'12
+13
+while getopts ':i' 'opt'; do14
+ case ${opt} in15
+ 'i') only_ios='true' ;;16
+ ?) helpFunction ;;17
+ esac18
+done19
+20
+cd "$(dirname "$0")"21
+22
+# Path to the repo root23
+SRC_ROOT=../..24
+25
+TARGET_DIR="${SRC_ROOT}/target"26
+27
+GENERATED_DIR="${SRC_ROOT}/generated"28
+if [ -d "${GENERATED_DIR}" ]; then rm -rf "${GENERATED_DIR}"; fi29
+mkdir -p ${GENERATED_DIR}/{macos,simulator}30
+31
+REL_FLAG="--release"32
+REL_TYPE_DIR="release"33
+34
+TARGET_CRATE=matrix-sdk-crypto-ffi35
+36
+# Build static libs for all the different architectures37
+38
+# Required by olm-sys crate39
+export IOS_SDK_PATH=`xcrun --show-sdk-path --sdk iphoneos`40
+41
+if ${only_ios}; then42
+ # iOS43
+ echo -e "Building only for iOS"44
+ cargo build -p ${TARGET_CRATE} ${REL_FLAG} --target "aarch64-apple-ios"45
+else46
+ # iOS47
+ echo -e "Building for iOS [1/5]"48
+ cargo build -p ${TARGET_CRATE} ${REL_FLAG} --target "aarch64-apple-ios"49
+50
+ # MacOS51
+ echo -e "\nBuilding for macOS (Apple Silicon) [2/5]"52
+ cargo build -p ${TARGET_CRATE} ${REL_FLAG} --target "aarch64-apple-darwin"53
+ echo -e "\nBuilding for macOS (Intel) [3/5]"54
+ cargo build -p ${TARGET_CRATE} ${REL_FLAG} --target "x86_64-apple-darwin"55
+56
+ # iOS Simulator57
+ echo -e "\nBuilding for iOS Simulator (Apple Silicon) [4/5]"58
+ cargo build -p ${TARGET_CRATE} ${REL_FLAG} --target "aarch64-apple-ios-sim"59
+ echo -e "\nBuilding for iOS Simulator (Intel) [5/5]"60
+ cargo build -p ${TARGET_CRATE} ${REL_FLAG} --target "x86_64-apple-ios"61
+fi62
+63
+echo -e "\nCreating XCFramework"64
+# Lipo together the libraries for the same platform65
+66
+if ! ${only_ios}; then67
+ echo "Lipo together the libraries for the same platform"68
+ # MacOS69
+ lipo -create \70
+ "${TARGET_DIR}/x86_64-apple-darwin/${REL_TYPE_DIR}/libmatrix_sdk_crypto_ffi.a" \71
+ "${TARGET_DIR}/aarch64-apple-darwin/${REL_TYPE_DIR}/libmatrix_sdk_crypto_ffi.a" \72
+ -output "${GENERATED_DIR}/macos/libmatrix_sdk_crypto_ffi.a"73
+74
+ # iOS Simulator75
+ lipo -create \76
+ "${TARGET_DIR}/x86_64-apple-ios/${REL_TYPE_DIR}/libmatrix_sdk_crypto_ffi.a" \77
+ "${TARGET_DIR}/aarch64-apple-ios-sim/${REL_TYPE_DIR}/libmatrix_sdk_crypto_ffi.a" \78
+ -output "${GENERATED_DIR}/simulator/libmatrix_sdk_crypto_ffi.a"79
+fi80
+81
+# Generate uniffi files82
+cd ../matrix-sdk-crypto-ffi && cargo run --bin matrix_sdk_crypto_ffi generate \83
+ --language swift \84
+ --library "${TARGET_DIR}/aarch64-apple-ios/${REL_TYPE_DIR}/libmatrix_sdk_crypto_ffi.a" \85
+ --out-dir ${GENERATED_DIR}86
+87
+# Move headers to the right place88
+HEADERS_DIR=${GENERATED_DIR}/headers89
+mkdir -p ${HEADERS_DIR}90
+mv ${GENERATED_DIR}/*.h ${HEADERS_DIR}91
+92
+# Rename and merge the modulemap files into a single file to the right place93
+for f in ${GENERATED_DIR}/*.modulemap94
+do 95
+ cat $f; echo; 96
+done > ${HEADERS_DIR}/module.modulemap97
+rm ${GENERATED_DIR}/*.modulemap98
+99
+# Move source files to the right place100
+SWIFT_DIR="${GENERATED_DIR}/Sources"101
+mkdir -p ${SWIFT_DIR}102
+mv ${GENERATED_DIR}/*.swift ${SWIFT_DIR}103
+104
+# Build the xcframework105
+106
+if [ -d "${GENERATED_DIR}/MatrixSDKCryptoFFI.xcframework" ]; then rm -rf "${GENERATED_DIR}/MatrixSDKCryptoFFI.xcframework"; fi107
+if ${only_ios}; then108
+ xcodebuild -create-xcframework \109
+ -library "${TARGET_DIR}/aarch64-apple-ios/${REL_TYPE_DIR}/libmatrix_sdk_crypto_ffi.a" \110
+ -headers ${HEADERS_DIR} \111
+ -output "${GENERATED_DIR}/MatrixSDKCryptoFFI.xcframework"112
+else113
+ xcodebuild -create-xcframework \114
+ -library "${TARGET_DIR}/aarch64-apple-ios/${REL_TYPE_DIR}/libmatrix_sdk_crypto_ffi.a" \115
+ -headers ${HEADERS_DIR} \116
+ -library "${GENERATED_DIR}/macos/libmatrix_sdk_crypto_ffi.a" \117
+ -headers ${HEADERS_DIR} \118
+ -library "${GENERATED_DIR}/simulator/libmatrix_sdk_crypto_ffi.a" \119
+ -headers ${HEADERS_DIR} \120
+ -output "${GENERATED_DIR}/MatrixSDKCryptoFFI.xcframework"121
+fi122
+123
+# Cleanup124
+if [ -d "${GENERATED_DIR}/macos" ]; then rm -rf "${GENERATED_DIR}/macos"; fi125
+if [ -d "${GENERATED_DIR}/simulator" ]; then rm -rf "${GENERATED_DIR}/simulator"; fi126
+if [ -d ${HEADERS_DIR} ]; then rm -rf ${HEADERS_DIR}; fi127
+128
+# Zip up framework, sources and LICENSE, ready to be uploaded to GitHub Releases and used by MatrixSDKCrypto.podspec129
+cp ${SRC_ROOT}/LICENSE $GENERATED_DIR130
+cd $GENERATED_DIR131
+zip -r MatrixSDKCryptoFFI.zip MatrixSDKCryptoFFI.xcframework Sources LICENSE132
+rm LICENSE133
+134
+echo "XCFramework is ready 🚀"@@ -0,0 +1,78 @@
1
+[package]2
+name = "matrix-sdk-crypto-ffi"3
+version = "0.1.0"4
+authors = ["Damir Jelić <poljar@termina.org.uk>"]5
+edition = "2024"6
+rust-version.workspace = true7
+description = "Uniffi based bindings for the Rust SDK crypto crate"8
+repository = "https://github.com/matrix-org/matrix-rust-sdk"9
+license = "Apache-2.0"10
+publish = false11
+12
+[package.metadata.release]13
+release = false14
+15
+[lib]16
+crate-type = ["cdylib", "staticlib"]17
+18
+[[bin]]19
+name = "matrix_sdk_crypto_ffi"20
+path = "uniffi-bindgen.rs"21
+22
+[features]23
+default = ["bundled-sqlite"]24
+bundled-sqlite = ["matrix-sdk-sqlite/bundled"]25
+26
+# Enable experimental support for encrypting state events; see27
+# https://github.com/matrix-org/matrix-rust-sdk/issues/5397.28
+experimental-encrypted-state-events = [29
+ "matrix-sdk-crypto/experimental-encrypted-state-events",30
+]31
+32
+[dependencies]33
+anyhow.workspace = true34
+futures-util.workspace = true35
+hmac.workspace = true36
+http.workspace = true37
+matrix-sdk-common = { workspace = true, features = ["uniffi"] }38
+matrix-sdk-ffi-macros.workspace = true39
+pbkdf2.workspace = true40
+rand.workspace = true41
+ruma.workspace = true42
+serde.workspace = true43
+serde_json.workspace = true44
+sha2.workspace = true45
+thiserror.workspace = true46
+tracing-subscriber = { workspace = true, features = ["env-filter"] }47
+# keep in sync with uniffi dependency in matrix-sdk-ffi, and uniffi_bindgen in ffi CI job48
+uniffi = { workspace = true, features = ["cli"] }49
+vodozemac.workspace = true50
+zeroize = { workspace = true, features = ["zeroize_derive"] }51
+52
+[dependencies.js_int]53
+version = "0.2.2"54
+default-features = false55
+features = ["lax_deserialize"]56
+57
+[dependencies.matrix-sdk-crypto]58
+workspace = true59
+features = ["qrcode", "automatic-room-key-forwarding", "uniffi"]60
+61
+[dependencies.matrix-sdk-sqlite]62
+workspace = true63
+features = ["crypto-store"]64
+65
+[dependencies.tokio]66
+workspace = true67
+features = ["rt-multi-thread"]68
+69
+[build-dependencies]70
+uniffi = { workspace = true, default-features = false, features = ["build"] }71
+vergen-gitcl = { workspace = true, default-features = false, features = ["build"] }72
+73
+[dev-dependencies]74
+assert_matches2.workspace = true75
+tempfile.workspace = true76
+77
+[lints]78
+workspace = true@@ -0,0 +1,99 @@
1
+# Uniffi based bindings for the Rust SDK crypto crate2
+3
+This crate contains Uniffi based bindings for the `matrix-sdk-crypto` crate. The4
+README mainly describes how to build and integrate the bindings into a Kotlin5
+based Android project, but the Android specific bits can be skipped if you are6
+targeting an x86 Linux project.7
+8
+To build and distribute bindings for iOS projects, see a9
+[dedicated page](../apple/README.md)10
+11
+## Prerequisites12
+13
+### Rust14
+15
+To build the bindings [Rust] will be needed it can be either installed using an16
+OS specific package manager or directly with the provided17
+[installer](https://rustup.rs/).18
+19
+### Android NDK20
+21
+The Android NDK will be required as well, it can be installed either through22
+Android Studio or directly using an23
+[installer](https://developer.android.com/ndk/downloads).24
+25
+### Configuring Rust for cross compilation26
+27
+First we'll need to install the Rust target for our desired Android28
+architecture, for example:29
+30
+```text31
+# rustup target add aarch64-linux-android32
+```33
+34
+This will add support to cross-compile for the aarch64-linux-android target,35
+Rust supports many different [targets], you'll have to make sure to pick the36
+right one for your device or emulator.37
+38
+After this is done, we'll have to configure [Cargo] to use the correct linker39
+for our target, by providing the Cargo setting of40
+[target.<triple>.linker](https://doc.rust-lang.org/cargo/reference/config.html#targettriplelinker)41
+with a value of the path to an appropriate linker in your NDK installation.42
+43
+This may be set through an environment variable:44
+45
+```text46
+$ export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="<path-to-ndk-installation>/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android30-clang"47
+```48
+49
+Alternatively, it may be set in the `.cargo/config.toml` file in the current50
+directory, any parent directory, or your home directory:51
+52
+```text53
+[target.aarch64-linux-android]54
+linker = "<path-to-ndk-installation>/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android30-clang"55
+```56
+57
+## Building58
+59
+To enable cross compilation for `olm-sys` which builds our `libolm` C library60
+we'll need to set the `ANDROID_NDK` environment variable to the location of our61
+Android NDK installation.62
+63
+```text64
+$ export ANDROID_NDK=$HOME/Android/Sdk/ndk/<some-installed-version>65
+```66
+67
+Also, include the NDK tools directory in your `PATH`:68
+69
+```text70
+$ export PATH="$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH"71
+```72
+73
+### Building for a target74
+75
+The bindings can built for the `aarch64` target with:76
+77
+```text78
+$ cargo build --target aarch64-linux-android79
+```80
+81
+After that, a dynamic library can be found in the82
+`target/aarch64-linux-android/debug` directory, under the repository root83
+directory. The library will be called `libmatrix_sdk_crypto_ffi.so` and needs to84
+be renamed and copied into the `jniLibs` directory of your Android project, for85
+Element Android:86
+87
+```text88
+$ cp ../../target/aarch64-linux-android/debug/libmatrix_sdk_crypto_ffi.so \89
+ /home/example/matrix-sdk-android/src/main/jniLibs/aarch64/libuniffi_olm.so90
+```91
+92
+## License93
+94
+[Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0)95
+96
+[Rust]: https://www.rust-lang.org/97
+[installer]: https://rustup.rs/98
+[targets]: https://doc.rust-lang.org/nightly/rustc/platform-support.html99
+[Cargo]: https://doc.rust-lang.org/cargo/@@ -0,0 +1,72 @@
1
+use std::{2
+ env,3
+ error::Error,4
+ path::{Path, PathBuf},5
+ process::Command,6
+};7
+8
+use vergen_gitcl::{Emitter, GitclBuilder};9
+10
+/// Adds a temporary workaround for an issue with the Rust compiler and Android11
+/// in x86_64 devices: https://github.com/rust-lang/rust/issues/109717.12
+/// The workaround is based on: https://github.com/mozilla/application-services/pull/544213
+///14
+/// TODO: I think this is obsolete with cargo-ndk 4.0.0:15
+/// https://github.com/bbqsrc/cargo-ndk/commit/03c738653f935416580803b82fc6ad72c10dbebc16
+///17
+/// IMPORTANT: if you modify this, make sure to modify18
+/// [../matrix-sdk-ffi/build.rs] too!19
+fn setup_x86_64_android_workaround() {20
+ let target_os = env::var("CARGO_CFG_TARGET_OS").expect("CARGO_CFG_TARGET_OS not set");21
+ let target_arch = env::var("CARGO_CFG_TARGET_ARCH").expect("CARGO_CFG_TARGET_ARCH not set");22
+ if target_arch == "x86_64" && target_os == "android" {23
+ // Configure rust to statically link against the `libclang_rt.builtins` supplied24
+ // with clang.25
+26
+ // cargo-ndk sets CC_x86_64-linux-android to the path to `clang`, within the27
+ // Android NDK.28
+ let clang_path = PathBuf::from(29
+ env::var("CC_x86_64-linux-android").expect("CC_x86_64-linux-android not set"),30
+ );31
+32
+ // clang_path should now look something like33
+ // `.../sdk/ndk/28.0.12674087/toolchains/llvm/prebuilt/linux-x86_64/bin/clang`.34
+ // We strip `/bin/clang` from the end to get the toolchain path.35
+ let toolchain_path = clang_path36
+ .ancestors()37
+ .nth(2)38
+ .expect("could not find NDK toolchain path")39
+ .to_str()40
+ .expect("NDK toolchain path is not valid UTF-8");41
+42
+ let clang_version = get_clang_major_version(&clang_path);43
+44
+ println!("cargo:rustc-link-search={toolchain_path}/lib/clang/{clang_version}/lib/linux/");45
+ println!("cargo:rustc-link-lib=static=clang_rt.builtins-x86_64-android");46
+47
+ // Ensure we re-run this build script if the location of the toolchain changes.48
+ println!("cargo:rerun-if-env-changed=CC_x86_64-linux-android");49
+ }50
+}51
+52
+/// Run the clang binary at `clang_path`, and return its major version number53
+fn get_clang_major_version(clang_path: &Path) -> String {54
+ let clang_output =55
+ Command::new(clang_path).arg("-dumpversion").output().expect("failed to start clang");56
+57
+ if !clang_output.status.success() {58
+ panic!("failed to run clang: {}", String::from_utf8_lossy(&clang_output.stderr));59
+ }60
+61
+ let clang_version = String::from_utf8(clang_output.stdout).expect("clang output is not utf8");62
+ clang_version.split('.').next().expect("could not parse clang output").to_owned()63
+}64
+65
+fn main() -> Result<(), Box<dyn Error>> {66
+ setup_x86_64_android_workaround();67
+68
+ let git_config = GitclBuilder::default().sha(true).describe(true, false, None).build()?;69
+ Emitter::default().add_instructions(&git_config)?.emit()?;70
+71
+ Ok(())72
+}@@ -0,0 +1,229 @@
1
+use std::{collections::HashMap, iter, ops::DerefMut, sync::Arc};2
+3
+use hmac::Hmac;4
+use matrix_sdk_crypto::{5
+ backups::DecryptionError,6
+ store::{CryptoStoreError as InnerStoreError, types::BackupDecryptionKey},7
+};8
+use pbkdf2::pbkdf2;9
+use rand::{RngExt, distr::Alphanumeric, rng};10
+use sha2::Sha512;11
+use thiserror::Error;12
+use zeroize::Zeroize;13
+14
+/// The private part of the backup key, the one used for recovery.15
+#[derive(uniffi::Object)]16
+pub struct BackupRecoveryKey {17
+ pub(crate) inner: BackupDecryptionKey,18
+ pub(crate) passphrase_info: Option<PassphraseInfo>,19
+}20
+21
+/// Error type for the decryption of backed up room keys.22
+#[derive(Debug, Error, uniffi::Error)]23
+#[uniffi(flat_error)]24
+pub enum PkDecryptionError {25
+ /// An internal libolm error happened during decryption.26
+ #[error("Error decryption a PkMessage {0}")]27
+ Olm(#[from] DecryptionError),28
+}29
+30
+/// Error type for the decoding and storing of the backup key.31
+#[derive(Debug, Error, uniffi::Error)]32
+#[uniffi(flat_error)]33
+pub enum DecodeError {34
+ /// An error happened while decoding the recovery key.35
+ #[error(transparent)]36
+ Decode(#[from] matrix_sdk_crypto::backups::DecodeError),37
+ /// An error happened in the storage layer while trying to save the38
+ /// decoded recovery key.39
+ #[error(transparent)]40
+ CryptoStore(#[from] InnerStoreError),41
+}42
+43
+/// Struct containing info about the way the backup key got derived from a44
+/// passphrase.45
+#[derive(Debug, Clone, uniffi::Record)]46
+pub struct PassphraseInfo {47
+ /// The salt that was used during key derivation.48
+ pub private_key_salt: String,49
+ /// The number of PBKDF rounds that were used for key derivation.50
+ pub private_key_iterations: i32,51
+}52
+53
+/// The public part of the backup key.54
+#[derive(uniffi::Record)]55
+pub struct MegolmV1BackupKey {56
+ /// The actual base64 encoded public key.57
+ pub public_key: String,58
+ /// Signatures that have signed our backup key.59
+ pub signatures: HashMap<String, HashMap<String, String>>,60
+ /// The passphrase info, if the key was derived from one.61
+ pub passphrase_info: Option<PassphraseInfo>,62
+ /// Get the full name of the backup algorithm this backup key supports.63
+ pub backup_algorithm: String,64
+}65
+66
+impl BackupRecoveryKey {67
+ const KEY_SIZE: usize = 32;68
+ const SALT_SIZE: usize = 32;69
+ const PBKDF_ROUNDS: i32 = 500_000;70
+}71
+72
+#[matrix_sdk_ffi_macros::export]73
+impl BackupRecoveryKey {74
+ /// Create a new random [`BackupRecoveryKey`].75
+ #[allow(clippy::new_without_default)]76
+ #[uniffi::constructor]77
+ pub fn new() -> Arc<Self> {78
+ Arc::new(Self { inner: BackupDecryptionKey::new(), passphrase_info: None })79
+ }80
+81
+ /// Try to create a [`BackupRecoveryKey`] from a base 64 encoded string.82
+ #[uniffi::constructor]83
+ pub fn from_base64(key: String) -> Result<Arc<Self>, DecodeError> {84
+ Ok(Arc::new(Self { inner: BackupDecryptionKey::from_base64(&key)?, passphrase_info: None }))85
+ }86
+87
+ /// Try to create a [`BackupRecoveryKey`] from a base 58 encoded string.88
+ #[uniffi::constructor]89
+ pub fn from_base58(key: String) -> Result<Arc<Self>, DecodeError> {90
+ Ok(Arc::new(Self { inner: BackupDecryptionKey::from_base58(&key)?, passphrase_info: None }))91
+ }92
+93
+ /// Create a new [`BackupRecoveryKey`] from the given passphrase.94
+ #[uniffi::constructor]95
+ pub fn new_from_passphrase(passphrase: String) -> Arc<Self> {96
+ let mut rng = rng();97
+ let salt: String = iter::repeat(())98
+ .map(|()| rng.sample(Alphanumeric))99
+ .map(char::from)100
+ .take(Self::SALT_SIZE)101
+ .collect();102
+103
+ Self::from_passphrase(passphrase, salt, Self::PBKDF_ROUNDS)104
+ }105
+106
+ /// Restore a [`BackupRecoveryKey`] from the given passphrase.107
+ #[uniffi::constructor]108
+ pub fn from_passphrase(passphrase: String, salt: String, rounds: i32) -> Arc<Self> {109
+ let mut key = Box::new([0u8; Self::KEY_SIZE]);110
+ let rounds = rounds as u32;111
+112
+ pbkdf2::<Hmac<Sha512>>(passphrase.as_bytes(), salt.as_bytes(), rounds, key.deref_mut())113
+ .expect(114
+ "We should be able to expand a passphrase of any length due to \115
+ HMAC being able to be initialized with any input size",116
+ );117
+118
+ let backup_decryption_key = BackupDecryptionKey::from_bytes(&key);119
+120
+ key.zeroize();121
+122
+ Arc::new(Self {123
+ inner: backup_decryption_key,124
+ passphrase_info: Some(PassphraseInfo {125
+ private_key_salt: salt,126
+ private_key_iterations: rounds as i32,127
+ }),128
+ })129
+ }130
+131
+ /// Convert the recovery key to a base 58 encoded string.132
+ pub fn to_base58(&self) -> String {133
+ self.inner.to_base58()134
+ }135
+136
+ /// Convert the recovery key to a base 64 encoded string.137
+ pub fn to_base64(&self) -> String {138
+ self.inner.to_base64()139
+ }140
+141
+ /// Get the public part of the backup key.142
+ pub fn megolm_v1_public_key(&self) -> MegolmV1BackupKey {143
+ let public_key = self.inner.megolm_v1_public_key();144
+145
+ let signatures: HashMap<String, HashMap<String, String>> = public_key146
+ .signatures()147
+ .into_iter()148
+ .map(|(k, v)| {149
+ (150
+ k.to_string(),151
+ v.into_iter()152
+ .map(|(k, v)| {153
+ (154
+ k.to_string(),155
+ match v {156
+ Ok(s) => s.to_base64(),157
+ Err(s) => s.source,158
+ },159
+ )160
+ })161
+ .collect(),162
+ )163
+ })164
+ .collect();165
+166
+ MegolmV1BackupKey {167
+ public_key: public_key.to_base64(),168
+ signatures,169
+ passphrase_info: self.passphrase_info.clone(),170
+ backup_algorithm: public_key.backup_algorithm().to_owned(),171
+ }172
+ }173
+174
+ /// Try to decrypt a message that was encrypted using the public part of the175
+ /// backup key.176
+ pub fn decrypt_v1(177
+ &self,178
+ ephemeral_key: String,179
+ mac: String,180
+ ciphertext: String,181
+ ) -> Result<String, PkDecryptionError> {182
+ self.inner.decrypt_v1(&ephemeral_key, &mac, &ciphertext).map_err(|e| e.into())183
+ }184
+}185
+186
+#[cfg(test)]187
+mod tests {188
+ use ruma::api::client::backup::KeyBackupData;189
+ use serde_json::json;190
+191
+ use super::BackupRecoveryKey;192
+193
+ #[test]194
+ fn test_decrypt_key() {195
+ let recovery_key = BackupRecoveryKey::from_base64(196
+ "Ha9cklU/9NqFo9WKdVfGzmqUL/9wlkdxfEitbSIPVXw".to_owned(),197
+ )198
+ .unwrap();199
+200
+ let data = json!({201
+ "first_message_index": 0,202
+ "forwarded_count": 0,203
+ "is_verified": false,204
+ "session_data": {205
+ "ephemeral": "HlLi76oV6wxHz3PCqE/bxJi6yF1HnYz5Dq3T+d/KpRw",206
+ "ciphertext": "MuM8E3Yc6TSAvhVGb77rQ++jE6p9dRepx63/3YPD2wACKAppkZHeFrnTH6wJ/HSyrmzo\207
+ 7HfwqVl6tKNpfooSTHqUf6x1LHz+h4B/Id5ITO1WYt16AaI40LOnZqTkJZCfSPuE2oxa\208
+ lwEHnCS3biWybutcnrBFPR3LMtaeHvvkb+k3ny9l5ZpsU9G7vCm3XoeYkWfLekWXvDhb\209
+ qWrylXD0+CNUuaQJ/S527TzLd4XKctqVjjO/cCH7q+9utt9WJAfK8LGaWT/mZ3AeWjf5\210
+ kiqOpKKf5Cn4n5SSil5p/pvGYmjnURvZSEeQIzHgvunIBEPtzK/MYEPOXe/P5achNGlC\211
+ x+5N19Ftyp9TFaTFlTWCTi0mpD7ePfCNISrwpozAz9HZc0OhA8+1aSc7rhYFIeAYXFU3\212
+ 26NuFIFHI5pvpSxjzPQlOA+mavIKmiRAtjlLw11IVKTxgrdT4N8lXeMr4ndCSmvIkAzF\213
+ Mo1uZA4fzjiAdQJE4/2WeXFNNpvdfoYmX8Zl9CAYjpSO5HvpwkAbk4/iLEH3hDfCVUwD\214
+ fMh05PdGLnxeRpiEFWSMSsJNp+OWAA+5JsF41BoRGrxoXXT+VKqlUDONd+O296Psu8Q+\215
+ d8/S618",216
+ "mac": "GtMrurhDTwo"217
+ }218
+ });219
+220
+ let key_backup_data: KeyBackupData = serde_json::from_value(data).unwrap();221
+ let ephemeral = key_backup_data.session_data.ephemeral.encode();222
+ let ciphertext = key_backup_data.session_data.ciphertext.encode();223
+ let mac = key_backup_data.session_data.mac.encode();224
+225
+ let _ = recovery_key226
+ .decrypt_v1(ephemeral, mac, ciphertext)227
+ .expect("The backed up key should be decrypted successfully");228
+ }229
+}@@ -0,0 +1,256 @@
1
+use std::{mem::ManuallyDrop, sync::Arc};2
+3
+use matrix_sdk_common::executor::Handle;4
+use matrix_sdk_crypto::{5
+ DecryptionSettings,6
+ dehydrated_devices::{7
+ DehydratedDevice as InnerDehydratedDevice, DehydratedDevices as InnerDehydratedDevices,8
+ RehydratedDevice as InnerRehydratedDevice,9
+ },10
+ store::types::DehydratedDeviceKey as InnerDehydratedDeviceKey,11
+};12
+use ruma::{OwnedDeviceId, api::client::dehydrated_device, events::AnyToDeviceEvent, serde::Raw};13
+use serde_json::json;14
+15
+use crate::{CryptoStoreError, DehydratedDeviceKey};16
+17
+#[derive(Debug, thiserror::Error, uniffi::Error)]18
+#[uniffi(flat_error)]19
+pub enum DehydrationError {20
+ #[error(transparent)]21
+ Pickle(#[from] matrix_sdk_crypto::vodozemac::DehydratedDeviceError),22
+ #[error(transparent)]23
+ LegacyPickle(#[from] matrix_sdk_crypto::vodozemac::LibolmPickleError),24
+ #[error(transparent)]25
+ MissingSigningKey(#[from] matrix_sdk_crypto::SignatureError),26
+ #[error(transparent)]27
+ Json(#[from] serde_json::Error),28
+ #[error(transparent)]29
+ Store(#[from] matrix_sdk_crypto::CryptoStoreError),30
+ #[error("The pickle key has an invalid length, expected 32 bytes, got {0}")]31
+ PickleKeyLength(usize),32
+}33
+34
+impl From<matrix_sdk_crypto::dehydrated_devices::DehydrationError> for DehydrationError {35
+ fn from(value: matrix_sdk_crypto::dehydrated_devices::DehydrationError) -> Self {36
+ match value {37
+ matrix_sdk_crypto::dehydrated_devices::DehydrationError::Json(e) => Self::Json(e),38
+ matrix_sdk_crypto::dehydrated_devices::DehydrationError::Pickle(e) => Self::Pickle(e),39
+ matrix_sdk_crypto::dehydrated_devices::DehydrationError::LegacyPickle(e) => {40
+ Self::LegacyPickle(e)41
+ }42
+ matrix_sdk_crypto::dehydrated_devices::DehydrationError::MissingSigningKey(e) => {43
+ Self::MissingSigningKey(e)44
+ }45
+ matrix_sdk_crypto::dehydrated_devices::DehydrationError::Store(e) => Self::Store(e),46
+ matrix_sdk_crypto::dehydrated_devices::DehydrationError::PickleKeyLength(l) => {47
+ Self::PickleKeyLength(l)48
+ }49
+ }50
+ }51
+}52
+53
+#[derive(uniffi::Object)]54
+pub struct DehydratedDevices {55
+ pub(crate) runtime: Handle,56
+ pub(crate) inner: ManuallyDrop<InnerDehydratedDevices>,57
+}58
+59
+impl Drop for DehydratedDevices {60
+ fn drop(&mut self) {61
+ // See the drop implementation for the `crate::OlmMachine` for an explanation.62
+ let _guard = self.runtime.enter();63
+ unsafe {64
+ ManuallyDrop::drop(&mut self.inner);65
+ }66
+ }67
+}68
+69
+#[matrix_sdk_ffi_macros::export]70
+impl DehydratedDevices {71
+ pub fn create(&self) -> Result<Arc<DehydratedDevice>, DehydrationError> {72
+ let inner = self.runtime.block_on(self.inner.create())?;73
+74
+ Ok(Arc::new(DehydratedDevice {75
+ inner: ManuallyDrop::new(inner),76
+ runtime: self.runtime.to_owned(),77
+ }))78
+ }79
+80
+ pub fn rehydrate(81
+ &self,82
+ pickle_key: &DehydratedDeviceKey,83
+ device_id: String,84
+ device_data: String,85
+ ) -> Result<Arc<RehydratedDevice>, DehydrationError> {86
+ let device_data: Raw<_> = serde_json::from_str(&device_data)?;87
+ let device_id: OwnedDeviceId = device_id.into();88
+89
+ let key = InnerDehydratedDeviceKey::from_slice(&pickle_key.inner)?;90
+91
+ let ret = RehydratedDevice {92
+ runtime: self.runtime.to_owned(),93
+ inner: ManuallyDrop::new(self.runtime.block_on(self.inner.rehydrate(94
+ &key,95
+ &device_id,96
+ device_data,97
+ ))?),98
+ }99
+ .into();100
+101
+ Ok(ret)102
+ }103
+104
+ /// Get the cached dehydrated device pickle key if any.105
+ ///106
+ /// None if the key was not previously cached (via107
+ /// [`Self::save_dehydrated_device_pickle_key`]).108
+ ///109
+ /// Should be used to periodically rotate the dehydrated device to avoid110
+ /// OTK exhaustion and accumulation of to_device messages.111
+ pub fn get_dehydrated_device_key(112
+ &self,113
+ ) -> Result<Option<crate::DehydratedDeviceKey>, CryptoStoreError> {114
+ Ok(self115
+ .runtime116
+ .block_on(self.inner.get_dehydrated_device_pickle_key())?117
+ .map(crate::DehydratedDeviceKey::from))118
+ }119
+120
+ /// Store the dehydrated device pickle key in the crypto store.121
+ ///122
+ /// This is useful if the client wants to periodically rotate dehydrated123
+ /// devices to avoid OTK exhaustion and accumulated to_device problems.124
+ pub fn save_dehydrated_device_key(125
+ &self,126
+ pickle_key: &crate::DehydratedDeviceKey,127
+ ) -> Result<(), CryptoStoreError> {128
+ let pickle_key = InnerDehydratedDeviceKey::from_slice(&pickle_key.inner)?;129
+ Ok(self.runtime.block_on(self.inner.save_dehydrated_device_pickle_key(&pickle_key))?)130
+ }131
+132
+ /// Deletes the previously stored dehydrated device pickle key.133
+ pub fn delete_dehydrated_device_key(&self) -> Result<(), CryptoStoreError> {134
+ Ok(self.runtime.block_on(self.inner.delete_dehydrated_device_pickle_key())?)135
+ }136
+}137
+138
+#[derive(uniffi::Object)]139
+pub struct RehydratedDevice {140
+ inner: ManuallyDrop<InnerRehydratedDevice>,141
+ runtime: Handle,142
+}143
+144
+impl Drop for RehydratedDevice {145
+ fn drop(&mut self) {146
+ // See the drop implementation for the `crate::OlmMachine` for an explanation.147
+ let _guard = self.runtime.enter();148
+ unsafe {149
+ ManuallyDrop::drop(&mut self.inner);150
+ }151
+ }152
+}153
+154
+#[matrix_sdk_ffi_macros::export]155
+impl RehydratedDevice {156
+ pub fn receive_events(157
+ &self,158
+ events: String,159
+ decryption_settings: &DecryptionSettings,160
+ ) -> Result<(), crate::CryptoStoreError> {161
+ let events: Vec<Raw<AnyToDeviceEvent>> = serde_json::from_str(&events)?;162
+ self.runtime.block_on(self.inner.receive_events(events, decryption_settings))?;163
+164
+ Ok(())165
+ }166
+}167
+168
+#[derive(uniffi::Object)]169
+pub struct DehydratedDevice {170
+ pub(crate) runtime: Handle,171
+ pub(crate) inner: ManuallyDrop<InnerDehydratedDevice>,172
+}173
+174
+impl Drop for DehydratedDevice {175
+ fn drop(&mut self) {176
+ // See the drop implementation for the `crate::OlmMachine` for an explanation.177
+ let _guard = self.runtime.enter();178
+ unsafe {179
+ ManuallyDrop::drop(&mut self.inner);180
+ }181
+ }182
+}183
+184
+#[matrix_sdk_ffi_macros::export]185
+impl DehydratedDevice {186
+ pub fn keys_for_upload(187
+ &self,188
+ device_display_name: String,189
+ pickle_key: &DehydratedDeviceKey,190
+ ) -> Result<UploadDehydratedDeviceRequest, DehydrationError> {191
+ let key = InnerDehydratedDeviceKey::from_slice(&pickle_key.inner)?;192
+193
+ let request =194
+ self.runtime.block_on(self.inner.keys_for_upload(device_display_name, &key))?;195
+196
+ Ok(request.into())197
+ }198
+}199
+200
+#[derive(Debug, uniffi::Record)]201
+pub struct UploadDehydratedDeviceRequest {202
+ /// The serialized JSON body of the request.203
+ body: String,204
+}205
+206
+impl From<dehydrated_device::put_dehydrated_device::unstable::Request>207
+ for UploadDehydratedDeviceRequest208
+{209
+ fn from(value: dehydrated_device::put_dehydrated_device::unstable::Request) -> Self {210
+ let body = json!({211
+ "device_id": value.device_id,212
+ "device_data": value.device_data,213
+ "initial_device_display_name": value.initial_device_display_name,214
+ "device_keys": value.device_keys,215
+ "one_time_keys": value.one_time_keys,216
+ "fallback_keys": value.fallback_keys,217
+ });218
+219
+ let body = serde_json::to_string(&body)220
+ .expect("We should be able to serialize the PUT dehydrated devices request body");221
+222
+ Self { body }223
+ }224
+}225
+226
+#[cfg(test)]227
+mod tests {228
+ use crate::{DehydratedDeviceKey, dehydrated_devices::DehydrationError};229
+230
+ #[test]231
+ fn test_creating_dehydrated_key() {232
+ let dehydrated_device_key = DehydratedDeviceKey::new();233
+ let base_64 = dehydrated_device_key.to_base64();234
+ let inner_bytes = dehydrated_device_key.inner;235
+236
+ let copy = DehydratedDeviceKey::from_slice(&inner_bytes).unwrap();237
+238
+ assert_eq!(base_64, copy.to_base64());239
+ }240
+241
+ #[test]242
+ fn test_creating_dehydrated_key_failure() {243
+ let bytes = [0u8; 24];244
+245
+ let pickle_key = DehydratedDeviceKey::from_slice(&bytes);246
+247
+ assert!(pickle_key.is_err());248
+249
+ match pickle_key {250
+ Err(DehydrationError::PickleKeyLength(pickle_key_length)) => {251
+ assert_eq!(bytes.len(), pickle_key_length);252
+ }253
+ _ => panic!("Should have failed!"),254
+ }255
+ }256
+}@@ -0,0 +1,50 @@
1
+use std::collections::HashMap;2
+3
+use matrix_sdk_crypto::Device as InnerDevice;4
+5
+/// An E2EE capable Matrix device.6
+#[derive(uniffi::Record)]7
+pub struct Device {8
+ /// The device owner.9
+ pub user_id: String,10
+ /// The unique ID of the device.11
+ pub device_id: String,12
+ /// The published public identity keys of the devices13
+ ///14
+ /// A map from the key type (e.g. curve25519) to the base64 encoded key.15
+ pub keys: HashMap<String, String>,16
+ /// The supported algorithms of the device.17
+ pub algorithms: Vec<String>,18
+ /// The human readable name of the device.19
+ pub display_name: Option<String>,20
+ /// A flag indicating if the device has been blocked, blocked devices don't21
+ /// receive any room keys from us.22
+ pub is_blocked: bool,23
+ /// Is the device locally trusted24
+ pub locally_trusted: bool,25
+ /// Is our cross signing identity trusted and does the identity trust the26
+ /// device.27
+ pub cross_signing_trusted: bool,28
+ /// The first time this device was seen in local timestamp, milliseconds29
+ /// since epoch.30
+ pub first_time_seen_ts: u64,31
+ /// Whether or not the device is a dehydrated device.32
+ pub dehydrated: bool,33
+}34
+35
+impl From<InnerDevice> for Device {36
+ fn from(d: InnerDevice) -> Self {37
+ Device {38
+ user_id: d.user_id().to_string(),39
+ device_id: d.device_id().to_string(),40
+ keys: d.keys().iter().map(|(k, v)| (k.to_string(), v.to_base64())).collect(),41
+ algorithms: d.algorithms().iter().map(|a| a.to_string()).collect(),42
+ display_name: d.display_name().map(|d| d.to_owned()),43
+ is_blocked: d.is_blacklisted(),44
+ locally_trusted: d.is_locally_trusted(),45
+ cross_signing_trusted: d.is_cross_signing_trusted(),46
+ first_time_seen_ts: d.first_time_seen_ts().0.into(),47
+ dehydrated: d.is_dehydrated(),48
+ }49
+ }50
+}@@ -0,0 +1,172 @@
1
+#![allow(missing_docs)]2
+3
+use matrix_sdk_crypto::{4
+ KeyExportError, MegolmError, OlmError, SecretImportError as RustSecretImportError,5
+ SignatureError as InnerSignatureError,6
+ store::{CryptoStoreError as InnerStoreError, DehydrationError as InnerDehydrationError},7
+};8
+use matrix_sdk_sqlite::OpenStoreError;9
+use ruma::{IdParseError, OwnedUserId};10
+11
+#[derive(Debug, thiserror::Error, uniffi::Error)]12
+#[uniffi(flat_error)]13
+pub enum KeyImportError {14
+ #[error(transparent)]15
+ Export(#[from] KeyExportError),16
+ #[error(transparent)]17
+ CryptoStore(#[from] InnerStoreError),18
+ #[error(transparent)]19
+ Json(#[from] serde_json::Error),20
+}21
+22
+#[derive(Debug, thiserror::Error, uniffi::Error)]23
+#[uniffi(flat_error)]24
+pub enum SecretImportError {25
+ #[error(transparent)]26
+ CryptoStore(#[from] InnerStoreError),27
+ #[error(transparent)]28
+ Import(#[from] RustSecretImportError),29
+}30
+31
+#[derive(Debug, thiserror::Error, uniffi::Error)]32
+#[uniffi(flat_error)]33
+pub enum SignatureError {34
+ #[error(transparent)]35
+ Signature(#[from] InnerSignatureError),36
+ #[error(transparent)]37
+ Identifier(#[from] IdParseError),38
+ #[error(transparent)]39
+ CryptoStore(#[from] InnerStoreError),40
+ #[error("Unknown device {0} {1}")]41
+ UnknownDevice(OwnedUserId, String),42
+ #[error("Unknown user identity {0}")]43
+ UnknownUserIdentity(String),44
+}45
+46
+#[derive(Debug, thiserror::Error, uniffi::Error)]47
+#[uniffi(flat_error)]48
+pub enum CryptoStoreError {49
+ #[error("Failed to open the store")]50
+ OpenStore(#[from] OpenStoreError),51
+ #[error(transparent)]52
+ CryptoStore(#[from] InnerStoreError),53
+ #[error(transparent)]54
+ OlmError(#[from] OlmError),55
+ #[error(transparent)]56
+ Serialization(#[from] serde_json::Error),57
+ #[error("The given string is not a valid user ID: source {0}, error {1}")]58
+ InvalidUserId(String, IdParseError),59
+ #[error(transparent)]60
+ Identifier(#[from] IdParseError),61
+ #[error(transparent)]62
+ DehydrationError(#[from] InnerDehydrationError),63
+}64
+65
+#[derive(Debug, thiserror::Error, uniffi::Error)]66
+pub enum DecryptionError {67
+ #[error("serialization error: {error}")]68
+ Serialization { error: String },69
+ #[error("identifier parsing error: {error}")]70
+ Identifier { error: String },71
+ #[error("megolm error: {error}")]72
+ Megolm { error: String },73
+ #[error("missing room key: {error}")]74
+ MissingRoomKey { error: String, withheld_code: Option<String> },75
+ #[error("store error: {error}")]76
+ Store { error: String },77
+}78
+79
+/// Error describing what went wrong when exporting a [`SecretsBundle`].80
+///81
+/// The [`SecretsBundle`] can only be exported if we have all cross-signing82
+/// private keys in the store.83
+#[derive(Debug, thiserror::Error, uniffi::Error)]84
+pub enum SecretsBundleExportError {85
+ /// The store itself had an error.86
+ #[error(transparent)]87
+ CryptoStore(CryptoStoreError),88
+ /// We're missing one or more cross-signing keys.89
+ #[error("The store doesn't contain all the cross-signing keys")]90
+ MissingCrossSigningKeys,91
+ /// We have a backup key stored, but we don't know the version of the92
+ /// backup.93
+ #[error("The store contains a backup key, but no backup version")]94
+ MissingBackupVersion,95
+ #[error("serialization error: {error}")]96
+ Serialization { error: String },97
+}98
+99
+impl From<matrix_sdk_crypto::store::SecretsBundleExportError> for SecretsBundleExportError {100
+ fn from(value: matrix_sdk_crypto::store::SecretsBundleExportError) -> Self {101
+ match value {102
+ matrix_sdk_crypto::store::SecretsBundleExportError::Store(e) => {103
+ Self::CryptoStore(e.into())104
+ }105
+ matrix_sdk_crypto::store::SecretsBundleExportError::MissingCrossSigningKey(_)106
+ | matrix_sdk_crypto::store::SecretsBundleExportError::MissingCrossSigningKeys => {107
+ Self::MissingCrossSigningKeys108
+ }109
+ matrix_sdk_crypto::store::SecretsBundleExportError::MissingBackupVersion => {110
+ Self::MissingBackupVersion111
+ }112
+ }113
+ }114
+}115
+116
+impl From<serde_json::Error> for SecretsBundleExportError {117
+ fn from(err: serde_json::Error) -> Self {118
+ Self::Serialization { error: err.to_string() }119
+ }120
+}121
+122
+impl From<MegolmError> for DecryptionError {123
+ fn from(value: MegolmError) -> Self {124
+ match &value {125
+ MegolmError::MissingRoomKey(withheld_code) => Self::MissingRoomKey {126
+ error: value.to_string(),127
+ withheld_code: withheld_code.as_ref().map(|w| w.as_str().to_owned()),128
+ },129
+ _ => Self::Megolm { error: value.to_string() },130
+ }131
+ }132
+}133
+134
+impl From<serde_json::Error> for DecryptionError {135
+ fn from(err: serde_json::Error) -> Self {136
+ Self::Serialization { error: err.to_string() }137
+ }138
+}139
+140
+impl From<IdParseError> for DecryptionError {141
+ fn from(err: IdParseError) -> Self {142
+ Self::Identifier { error: err.to_string() }143
+ }144
+}145
+146
+impl From<InnerStoreError> for DecryptionError {147
+ fn from(err: InnerStoreError) -> Self {148
+ Self::Store { error: err.to_string() }149
+ }150
+}151
+152
+#[cfg(test)]153
+mod tests {154
+ use assert_matches2::assert_let;155
+ use matrix_sdk_crypto::MegolmError;156
+157
+ use super::DecryptionError;158
+159
+ #[test]160
+ fn test_withheld_error_mapping() {161
+ use matrix_sdk_common::deserialized_responses::WithheldCode;162
+163
+ let inner_error = MegolmError::MissingRoomKey(Some(WithheldCode::Unverified));164
+165
+ let binding_error: DecryptionError = inner_error.into();166
+167
+ assert_let!(168
+ DecryptionError::MissingRoomKey { error: _, withheld_code: Some(code) } = binding_error169
+ );170
+ assert_eq!("m.unverified", code)171
+ }172
+}@@ -0,0 +1,1219 @@
1
+//! Uniffi based bindings for the `matrix-sdk-crypto` crate.2
+//!3
+//! This crate can be used to introduce E2EE support into an existing Matrix4
+//! client or client library in any of the language targets Uniffi supports.5
+6
+#![warn(missing_docs)]7
+#![allow(unused_qualifications)]8
+9
+mod backup_recovery_key;10
+mod dehydrated_devices;11
+mod device;12
+mod error;13
+mod logger;14
+mod machine;15
+mod responses;16
+mod users;17
+mod verification;18
+19
+use std::{20
+ collections::{BTreeMap, HashMap},21
+ sync::Arc,22
+ time::Duration,23
+};24
+25
+use anyhow::Context as _;26
+pub use backup_recovery_key::{27
+ BackupRecoveryKey, DecodeError, MegolmV1BackupKey, PassphraseInfo, PkDecryptionError,28
+};29
+pub use device::Device;30
+pub use error::{31
+ CryptoStoreError, DecryptionError, KeyImportError, SecretImportError, SignatureError,32
+};33
+use js_int::UInt;34
+pub use logger::{Logger, set_logger};35
+pub use machine::{KeyRequestPair, OlmMachine, SignatureVerification};36
+use matrix_sdk_common::deserialized_responses::{ShieldState as RustShieldState, ShieldStateCode};37
+use matrix_sdk_crypto::{38
+ CollectStrategy, EncryptionSettings as RustEncryptionSettings,39
+ olm::{IdentityKeys, InboundGroupSession, SenderData, Session},40
+ store::{41
+ CryptoStore,42
+ types::{43
+ Changes, DehydratedDeviceKey as InnerDehydratedDeviceKey, PendingChanges,44
+ RoomSettings as RustRoomSettings,45
+ },46
+ },47
+ types::{48
+ DeviceKey, DeviceKeys, EventEncryptionAlgorithm as RustEventEncryptionAlgorithm, SigningKey,49
+ },50
+};51
+use matrix_sdk_sqlite::SqliteCryptoStore;52
+pub use responses::{53
+ BootstrapCrossSigningResult, DeviceLists, KeysImportResult, OutgoingVerificationRequest,54
+ Request, RequestType, SignatureUploadRequest, UploadSigningKeysRequest,55
+};56
+use ruma::{57
+ DeviceKeyAlgorithm, DeviceKeyId, MilliSecondsSinceUnixEpoch, OwnedDeviceId, OwnedUserId,58
+ RoomId, SecondsSinceUnixEpoch, UserId,59
+ events::room::history_visibility::HistoryVisibility as RustHistoryVisibility,60
+};61
+use serde::{Deserialize, Serialize};62
+use tokio::runtime::Runtime;63
+pub use users::UserIdentity;64
+pub use verification::{65
+ CancelInfo, ConfirmVerificationResult, QrCode, QrCodeListener, QrCodeState,66
+ RequestVerificationResult, Sas, SasListener, SasState, ScanResult, StartSasResult,67
+ Verification, VerificationRequest, VerificationRequestListener, VerificationRequestState,68
+};69
+use vodozemac::{Curve25519PublicKey, Ed25519PublicKey};70
+71
+use crate::dehydrated_devices::DehydrationError;72
+73
+/// Struct collecting data that is important to migrate to the rust-sdk74
+#[derive(Deserialize, Serialize, uniffi::Record)]75
+pub struct MigrationData {76
+ /// The pickled version of the Olm Account77
+ account: PickledAccount,78
+ /// The list of pickleds Olm Sessions.79
+ sessions: Vec<PickledSession>,80
+ /// The list of Megolm inbound group sessions.81
+ inbound_group_sessions: Vec<PickledInboundGroupSession>,82
+ /// The Olm pickle key that was used to pickle all the Olm objects.83
+ pickle_key: Vec<u8>,84
+ /// The backup version that is currently active.85
+ backup_version: Option<String>,86
+ // The backup recovery key, as a base58 encoded string.87
+ backup_recovery_key: Option<String>,88
+ /// The private cross signing keys.89
+ cross_signing: CrossSigningKeyExport,90
+ /// The list of users that the Rust SDK should track.91
+ tracked_users: Vec<String>,92
+ /// Map of room settings93
+ room_settings: HashMap<String, RoomSettings>,94
+}95
+96
+/// Struct collecting data that is important to migrate sessions to the rust-sdk97
+#[derive(uniffi::Record)]98
+pub struct SessionMigrationData {99
+ /// The user id that the data belongs to.100
+ user_id: String,101
+ /// The device id that the data belongs to.102
+ device_id: String,103
+ /// The Curve25519 public key of the Account that owns this data.104
+ curve25519_key: String,105
+ /// The Ed25519 public key of the Account that owns this data.106
+ ed25519_key: String,107
+ /// The list of pickleds Olm Sessions.108
+ sessions: Vec<PickledSession>,109
+ /// The list of pickled Megolm inbound group sessions.110
+ inbound_group_sessions: Vec<PickledInboundGroupSession>,111
+ /// The Olm pickle key that was used to pickle all the Olm objects.112
+ pickle_key: Vec<u8>,113
+}114
+115
+/// A pickled version of an `Account`.116
+///117
+/// Holds all the information that needs to be stored in a database to restore118
+/// an account.119
+#[derive(Debug, Deserialize, Serialize, uniffi::Record)]120
+pub struct PickledAccount {121
+ /// The user id of the account owner.122
+ pub user_id: String,123
+ /// The device ID of the account owner.124
+ pub device_id: String,125
+ /// The pickled version of the Olm account.126
+ pub pickle: String,127
+ /// Was the account shared.128
+ pub shared: bool,129
+ /// The number of uploaded one-time keys we have on the server.130
+ pub uploaded_signed_key_count: i64,131
+}132
+133
+/// A pickled version of a `Session`.134
+///135
+/// Holds all the information that needs to be stored in a database to restore136
+/// a Session.137
+#[derive(Debug, Deserialize, Serialize, uniffi::Record)]138
+pub struct PickledSession {139
+ /// The pickle string holding the Olm Session.140
+ pub pickle: String,141
+ /// The curve25519 key of the other user that we share this session with.142
+ pub sender_key: String,143
+ /// Was the session created using a fallback key.144
+ pub created_using_fallback_key: bool,145
+ /// Unix timestamp (in seconds) when the session was created.146
+ pub creation_time: u64,147
+ /// Unix timestamp (in seconds) when the session was last used.148
+ pub last_use_time: u64,149
+}150
+151
+/// A pickled version of an `InboundGroupSession`.152
+///153
+/// Holds all the information that needs to be stored in a database to restore154
+/// an InboundGroupSession.155
+#[derive(Debug, Deserialize, Serialize, uniffi::Record)]156
+pub struct PickledInboundGroupSession {157
+ /// The pickle string holding the InboundGroupSession.158
+ pub pickle: String,159
+ /// The public curve25519 key of the account that sent us the session160
+ pub sender_key: String,161
+ /// The public ed25519 key of the account that sent us the session.162
+ pub signing_key: HashMap<String, String>,163
+ /// The id of the room that the session is used in.164
+ pub room_id: String,165
+ /// The list of claimed ed25519 that forwarded us this key. Will be empty if166
+ /// we directly received this session.167
+ pub forwarding_chains: Vec<String>,168
+ /// Flag remembering if the session was directly sent to us by the sender169
+ /// or if it was imported.170
+ pub imported: bool,171
+ /// Flag remembering if the session has been backed up.172
+ pub backed_up: bool,173
+}174
+175
+/// Error type for the migration process.176
+#[derive(Debug, thiserror::Error, uniffi::Error)]177
+pub enum MigrationError {178
+ /// Generic catch all error variant.179
+ #[error("error migrating database: {error_message}")]180
+ Generic {181
+ /// The error message182
+ error_message: String,183
+ },184
+}185
+186
+impl From<anyhow::Error> for MigrationError {187
+ fn from(e: anyhow::Error) -> MigrationError {188
+ MigrationError::Generic { error_message: e.to_string() }189
+ }190
+}191
+192
+/// Migrate a libolm based setup to a vodozemac based setup stored in a SQLite193
+/// store.194
+///195
+/// # Arguments196
+///197
+/// * `data` - The data that should be migrated over to the SQLite store.198
+///199
+/// * `path` - The path where the SQLite store should be created.200
+///201
+/// * `passphrase` - The passphrase that should be used to encrypt the data at202
+/// rest in the SQLite store. **Warning**, if no passphrase is given, the203
+/// store and all its data will remain unencrypted.204
+///205
+/// * `progress_listener` - A callback that can be used to introspect the206
+/// progress of the migration.207
+#[matrix_sdk_ffi_macros::export]208
+pub fn migrate(209
+ data: MigrationData,210
+ path: String,211
+ passphrase: Option<String>,212
+ progress_listener: Box<dyn ProgressListener>,213
+) -> Result<(), MigrationError> {214
+ let runtime = Runtime::new().context("initializing tokio runtime")?;215
+ runtime.block_on(async move {216
+ migrate_data(data, &path, passphrase, progress_listener).await?;217
+ Ok(())218
+ })219
+}220
+221
+async fn migrate_data(222
+ mut data: MigrationData,223
+ path: &str,224
+ passphrase: Option<String>,225
+ progress_listener: Box<dyn ProgressListener>,226
+) -> anyhow::Result<()> {227
+ use matrix_sdk_crypto::{olm::PrivateCrossSigningIdentity, store::types::BackupDecryptionKey};228
+ use vodozemac::olm::Account;229
+ use zeroize::Zeroize;230
+231
+ // The total steps here include all the sessions/inbound group sessions and232
+ // additionally some static number of steps:233
+ //234
+ // 1. opening the store235
+ // 2. the Account236
+ // 3. the cross signing keys237
+ // 4. the tracked users238
+ // 5. the final save operation239
+ let total_steps = 5 + data.sessions.len() + data.inbound_group_sessions.len();240
+ let mut processed_steps = 0;241
+ let listener = |progress: usize, total: usize| {242
+ progress_listener.on_progress(progress as i32, total as i32)243
+ };244
+245
+ let store = SqliteCryptoStore::open(path, passphrase.as_deref()).await?;246
+247
+ processed_steps += 1;248
+ listener(processed_steps, total_steps);249
+250
+ let user_id = parse_user_id(&data.account.user_id)?;251
+ let device_id: OwnedDeviceId = data.account.device_id.into();252
+253
+ let account = Account::from_libolm_pickle(&data.account.pickle, &data.pickle_key)?;254
+ let pickle = account.pickle();255
+ let identity_keys = Arc::new(account.identity_keys());256
+ let pickled_account = matrix_sdk_crypto::olm::PickledAccount {257
+ user_id: parse_user_id(&data.account.user_id)?,258
+ device_id: device_id.clone(),259
+ pickle,260
+ dehydrated: false, // dehydrated devices are never involved in migration261
+ shared: data.account.shared,262
+ uploaded_signed_key_count: data.account.uploaded_signed_key_count as u64,263
+ creation_local_time: MilliSecondsSinceUnixEpoch::now(),264
+ fallback_key_creation_timestamp: Some(MilliSecondsSinceUnixEpoch::now()),265
+ };266
+ let account = matrix_sdk_crypto::olm::Account::from_pickle(pickled_account)?;267
+268
+ processed_steps += 1;269
+ listener(processed_steps, total_steps);270
+271
+ let (sessions, inbound_group_sessions) = collect_sessions(272
+ processed_steps,273
+ total_steps,274
+ &listener,275
+ &data.pickle_key,276
+ user_id.clone(),277
+ device_id,278
+ identity_keys,279
+ data.sessions,280
+ data.inbound_group_sessions,281
+ )?;282
+283
+ let backup_decryption_key = data284
+ .backup_recovery_key285
+ .map(|k| BackupDecryptionKey::from_base58(k.as_str()))286
+ .transpose()?;287
+288
+ let cross_signing = PrivateCrossSigningIdentity::empty((*user_id).into());289
+ cross_signing290
+ .import_secrets_unchecked(291
+ data.cross_signing.master_key.as_deref(),292
+ data.cross_signing.self_signing_key.as_deref(),293
+ data.cross_signing.user_signing_key.as_deref(),294
+ )295
+ .await?;296
+297
+ data.cross_signing.master_key.zeroize();298
+ data.cross_signing.self_signing_key.zeroize();299
+ data.cross_signing.user_signing_key.zeroize();300
+301
+ processed_steps += 1;302
+ listener(processed_steps, total_steps);303
+304
+ let tracked_users: Vec<_> = data305
+ .tracked_users306
+ .into_iter()307
+ .filter_map(|s| parse_user_id(&s).ok().map(|u| (u, true)))308
+ .collect();309
+310
+ let tracked_users: Vec<_> = tracked_users.iter().map(|(u, d)| (&**u, *d)).collect();311
+ store.save_tracked_users(tracked_users.as_slice()).await?;312
+313
+ processed_steps += 1;314
+ listener(processed_steps, total_steps);315
+316
+ let mut room_settings = HashMap::new();317
+ for (room_id, settings) in data.room_settings {318
+ let room_id = RoomId::parse(room_id)?;319
+ room_settings.insert(room_id, settings.into());320
+ }321
+322
+ store.save_pending_changes(PendingChanges { account: Some(account) }).await?;323
+324
+ let changes = Changes {325
+ private_identity: Some(cross_signing),326
+ sessions,327
+ inbound_group_sessions,328
+ backup_decryption_key,329
+ backup_version: data.backup_version,330
+ room_settings,331
+ ..Default::default()332
+ };333
+334
+ save_changes(processed_steps, total_steps, &listener, changes, &store).await335
+}336
+337
+async fn save_changes(338
+ mut processed_steps: usize,339
+ total_steps: usize,340
+ listener: &dyn Fn(usize, usize),341
+ changes: Changes,342
+ store: &SqliteCryptoStore,343
+) -> anyhow::Result<()> {344
+ store.save_changes(changes).await?;345
+346
+ processed_steps += 1;347
+ listener(processed_steps, total_steps);348
+349
+ Ok(())350
+}351
+352
+/// Migrate sessions and group sessions of a libolm based setup to a vodozemac353
+/// based setup stored in a SQLite store.354
+///355
+/// This method allows you to migrate a subset of the data, it should only be356
+/// used after the [`migrate()`] method has been already used.357
+///358
+/// # Arguments359
+///360
+/// * `data` - The data that should be migrated over to the SQLite store.361
+///362
+/// * `path` - The path where the SQLite store should be created.363
+///364
+/// * `passphrase` - The passphrase that should be used to encrypt the data at365
+/// rest in the SQLite store. **Warning**, if no passphrase is given, the366
+/// store and all its data will remain unencrypted.367
+///368
+/// * `progress_listener` - A callback that can be used to introspect the369
+/// progress of the migration.370
+#[matrix_sdk_ffi_macros::export]371
+pub fn migrate_sessions(372
+ data: SessionMigrationData,373
+ path: String,374
+ passphrase: Option<String>,375
+ progress_listener: Box<dyn ProgressListener>,376
+) -> Result<(), MigrationError> {377
+ let runtime = Runtime::new().context("initializing tokio runtime")?;378
+ runtime.block_on(migrate_session_data(data, &path, passphrase, progress_listener))?;379
+ Ok(())380
+}381
+382
+async fn migrate_session_data(383
+ data: SessionMigrationData,384
+ path: &str,385
+ passphrase: Option<String>,386
+ progress_listener: Box<dyn ProgressListener>,387
+) -> anyhow::Result<()> {388
+ let store = SqliteCryptoStore::open(path, passphrase.as_deref()).await?;389
+390
+ let listener = |progress: usize, total: usize| {391
+ progress_listener.on_progress(progress as i32, total as i32)392
+ };393
+394
+ let total_steps = 1 + data.sessions.len() + data.inbound_group_sessions.len();395
+ let processed_steps = 0;396
+397
+ let user_id = UserId::parse(data.user_id)?;398
+ let device_id: OwnedDeviceId = data.device_id.into();399
+400
+ let identity_keys = IdentityKeys {401
+ ed25519: Ed25519PublicKey::from_base64(&data.ed25519_key)?,402
+ curve25519: Curve25519PublicKey::from_base64(&data.curve25519_key)?,403
+ }404
+ .into();405
+406
+ let (sessions, inbound_group_sessions) = collect_sessions(407
+ processed_steps,408
+ total_steps,409
+ &listener,410
+ &data.pickle_key,411
+ user_id,412
+ device_id,413
+ identity_keys,414
+ data.sessions,415
+ data.inbound_group_sessions,416
+ )?;417
+418
+ let changes = Changes { sessions, inbound_group_sessions, ..Default::default() };419
+ save_changes(processed_steps, total_steps, &listener, changes, &store).await420
+}421
+422
+#[allow(clippy::too_many_arguments)]423
+fn collect_sessions(424
+ mut processed_steps: usize,425
+ total_steps: usize,426
+ listener: &dyn Fn(usize, usize),427
+ pickle_key: &[u8],428
+ user_id: OwnedUserId,429
+ device_id: OwnedDeviceId,430
+ identity_keys: Arc<IdentityKeys>,431
+ session_pickles: Vec<PickledSession>,432
+ group_session_pickles: Vec<PickledInboundGroupSession>,433
+) -> anyhow::Result<(Vec<Session>, Vec<InboundGroupSession>)> {434
+ let mut sessions = Vec::new();435
+436
+ // Create a DeviceKeys struct with enough information to get a working437
+ // Session, but we will won't actually use the Sessions (and we'll clear438
+ // the session cache after migration) so we don't need to worry about439
+ // signatures.440
+ let device_keys = DeviceKeys::new(441
+ user_id,442
+ device_id.clone(),443
+ Default::default(),444
+ BTreeMap::from([445
+ (446
+ DeviceKeyId::from_parts(DeviceKeyAlgorithm::Ed25519, &device_id),447
+ DeviceKey::Ed25519(identity_keys.ed25519),448
+ ),449
+ (450
+ DeviceKeyId::from_parts(DeviceKeyAlgorithm::Curve25519, &device_id),451
+ DeviceKey::Curve25519(identity_keys.curve25519),452
+ ),453
+ ]),454
+ Default::default(),455
+ );456
+457
+ for session_pickle in session_pickles {458
+ let pickle =459
+ vodozemac::olm::Session::from_libolm_pickle(&session_pickle.pickle, pickle_key)?460
+ .pickle();461
+462
+ let creation_time = SecondsSinceUnixEpoch(463
+ UInt::new(session_pickle.creation_time).context("invalid creation timestamp")?,464
+ );465
+ let last_use_time = SecondsSinceUnixEpoch(466
+ UInt::new(session_pickle.last_use_time).context("invalid last use timestamp")?,467
+ );468
+469
+ let pickle = matrix_sdk_crypto::olm::PickledSession {470
+ pickle,471
+ sender_key: Curve25519PublicKey::from_base64(&session_pickle.sender_key)?,472
+ created_using_fallback_key: session_pickle.created_using_fallback_key,473
+ creation_time,474
+ last_use_time,475
+ };476
+477
+ let session = Session::from_pickle(device_keys.clone(), pickle)?;478
+479
+ sessions.push(session);480
+ processed_steps += 1;481
+ listener(processed_steps, total_steps);482
+ }483
+484
+ let mut inbound_group_sessions = Vec::new();485
+486
+ for session in group_session_pickles {487
+ let pickle = vodozemac::megolm::InboundGroupSession::from_libolm_pickle(488
+ &session.pickle,489
+ pickle_key,490
+ )?491
+ .pickle();492
+493
+ let sender_key = Curve25519PublicKey::from_base64(&session.sender_key)?;494
+495
+ let pickle = matrix_sdk_crypto::olm::PickledInboundGroupSession {496
+ pickle,497
+ sender_key,498
+ signing_key: session499
+ .signing_key500
+ .into_iter()501
+ .map(|(k, v)| {502
+ let algorithm = DeviceKeyAlgorithm::from(k);503
+ let key = SigningKey::from_parts(&algorithm, v)?;504
+505
+ Ok((algorithm, key))506
+ })507
+ .collect::<anyhow::Result<_>>()?,508
+ sender_data: SenderData::legacy(),509
+ forwarder_data: None,510
+ room_id: RoomId::parse(session.room_id)?,511
+ imported: session.imported,512
+ backed_up: session.backed_up,513
+ history_visibility: None,514
+ shared_history: false,515
+ algorithm: RustEventEncryptionAlgorithm::MegolmV1AesSha2,516
+ };517
+518
+ let session = matrix_sdk_crypto::olm::InboundGroupSession::from_pickle(pickle)?;519
+520
+ inbound_group_sessions.push(session);521
+ processed_steps += 1;522
+ listener(processed_steps, total_steps);523
+ }524
+525
+ Ok((sessions, inbound_group_sessions))526
+}527
+528
+/// Migrate room settings, including room algorithm and whether to block529
+/// untrusted devices from legacy store to Sqlite store.530
+///531
+/// Note that this method should only be used if a client has already migrated532
+/// account data via [migrate](#method.migrate) method, which did not include533
+/// room settings. For a brand new migration, the [migrate](#method.migrate)534
+/// method will take care of room settings automatically, if provided.535
+///536
+/// # Arguments537
+///538
+/// * `room_settings` - Map of room settings539
+///540
+/// * `path` - The path where the Sqlite store should be created.541
+///542
+/// * `passphrase` - The passphrase that should be used to encrypt the data at543
+/// rest in the Sqlite store. **Warning**, if no passphrase is given, the544
+/// store and all its data will remain unencrypted.545
+#[matrix_sdk_ffi_macros::export]546
+pub fn migrate_room_settings(547
+ room_settings: HashMap<String, RoomSettings>,548
+ path: String,549
+ passphrase: Option<String>,550
+) -> Result<(), MigrationError> {551
+ let runtime = Runtime::new().context("initializing tokio runtime")?;552
+ runtime.block_on(async move {553
+ let store = SqliteCryptoStore::open(path, passphrase.as_deref())554
+ .await555
+ .context("opening sqlite crypto store")?;556
+557
+ let mut rust_settings = HashMap::new();558
+ for (room_id, settings) in room_settings {559
+ let room_id = RoomId::parse(room_id).context("parsing room ID")?;560
+ rust_settings.insert(room_id, settings.into());561
+ }562
+563
+ let changes = Changes { room_settings: rust_settings, ..Default::default() };564
+ store.save_changes(changes).await.context("saving changes")?;565
+566
+ Ok(())567
+ })568
+}569
+570
+/// Callback that will be passed over the FFI to report progress571
+#[matrix_sdk_ffi_macros::export(callback_interface)]572
+pub trait ProgressListener {573
+ /// The callback that should be called on the Rust side574
+ ///575
+ /// # Arguments576
+ ///577
+ /// * `progress` - The current number of items that have been handled578
+ ///579
+ /// * `total` - The total number of items that will be handled580
+ fn on_progress(&self, progress: i32, total: i32);581
+}582
+583
+impl<T: Fn(i32, i32)> ProgressListener for T {584
+ fn on_progress(&self, progress: i32, total: i32) {585
+ self(progress, total)586
+ }587
+}588
+589
+/// An encryption algorithm to be used to encrypt messages sent to a room.590
+#[derive(Debug, Deserialize, Serialize, PartialEq, uniffi::Enum)]591
+pub enum EventEncryptionAlgorithm {592
+ /// Olm version 1 using Curve25519, AES-256, and SHA-256.593
+ OlmV1Curve25519AesSha2,594
+ /// Megolm version 1 using AES-256 and SHA-256.595
+ MegolmV1AesSha2,596
+}597
+598
+impl From<EventEncryptionAlgorithm> for RustEventEncryptionAlgorithm {599
+ fn from(a: EventEncryptionAlgorithm) -> Self {600
+ match a {601
+ EventEncryptionAlgorithm::OlmV1Curve25519AesSha2 => Self::OlmV1Curve25519AesSha2,602
+ EventEncryptionAlgorithm::MegolmV1AesSha2 => Self::MegolmV1AesSha2,603
+ }604
+ }605
+}606
+607
+impl TryFrom<RustEventEncryptionAlgorithm> for EventEncryptionAlgorithm {608
+ type Error = serde_json::Error;609
+610
+ fn try_from(value: RustEventEncryptionAlgorithm) -> Result<Self, Self::Error> {611
+ match value {612
+ RustEventEncryptionAlgorithm::OlmV1Curve25519AesSha2 => {613
+ Ok(Self::OlmV1Curve25519AesSha2)614
+ }615
+ RustEventEncryptionAlgorithm::MegolmV1AesSha2 => Ok(Self::MegolmV1AesSha2),616
+ _ => Err(serde::de::Error::custom(format!("Unsupported algorithm {value}"))),617
+ }618
+ }619
+}620
+621
+/// Who can see a room's history.622
+#[derive(uniffi::Enum)]623
+pub enum HistoryVisibility {624
+ /// Previous events are accessible to newly joined members from the point625
+ /// they were invited onwards.626
+ ///627
+ /// Events stop being accessible when the member's state changes to628
+ /// something other than *invite* or *join*.629
+ Invited,630
+631
+ /// Previous events are accessible to newly joined members from the point632
+ /// they joined the room onwards.633
+ /// Events stop being accessible when the member's state changes to634
+ /// something other than *join*.635
+ Joined,636
+637
+ /// Previous events are always accessible to newly joined members.638
+ ///639
+ /// All events in the room are accessible, even those sent when the member640
+ /// was not a part of the room.641
+ Shared,642
+643
+ /// All events while this is the `HistoryVisibility` value may be shared by644
+ /// any participating homeserver with anyone, regardless of whether they645
+ /// have ever joined the room.646
+ WorldReadable,647
+}648
+649
+impl From<HistoryVisibility> for RustHistoryVisibility {650
+ fn from(h: HistoryVisibility) -> Self {651
+ match h {652
+ HistoryVisibility::Invited => Self::Invited,653
+ HistoryVisibility::Joined => Self::Joined,654
+ HistoryVisibility::Shared => Self::Shared,655
+ HistoryVisibility::WorldReadable => Self::Shared,656
+ }657
+ }658
+}659
+660
+/// Settings that should be used when a room key is shared.661
+///662
+/// These settings control which algorithm the room key should use, how long a663
+/// room key should be used and some other important information that determines664
+/// the lifetime of a room key.665
+#[derive(uniffi::Record)]666
+pub struct EncryptionSettings {667
+ /// The encryption algorithm that should be used in the room.668
+ pub algorithm: EventEncryptionAlgorithm,669
+ /// Whether state event encryption is enabled.670
+ #[cfg(feature = "experimental-encrypted-state-events")]671
+ pub encrypt_state_events: bool,672
+ /// How long can the room key be used before it should be rotated. Time in673
+ /// seconds.674
+ pub rotation_period: u64,675
+ /// How many messages should be sent before the room key should be rotated.676
+ pub rotation_period_msgs: u64,677
+ /// The current history visibility of the room. The visibility will be678
+ /// tracked by the room key and the key will be rotated if the visibility679
+ /// changes.680
+ pub history_visibility: HistoryVisibility,681
+ /// Should untrusted devices receive the room key, or should they be682
+ /// excluded from the conversation.683
+ pub only_allow_trusted_devices: bool,684
+ /// Should fail to send when a verified user has unverified devices, or when685
+ /// a previously verified user replaces their identity.686
+ pub error_on_verified_user_problem: bool,687
+}688
+689
+impl From<EncryptionSettings> for RustEncryptionSettings {690
+ fn from(v: EncryptionSettings) -> Self {691
+ let sharing_strategy = if v.only_allow_trusted_devices {692
+ CollectStrategy::OnlyTrustedDevices693
+ } else if v.error_on_verified_user_problem {694
+ CollectStrategy::ErrorOnVerifiedUserProblem695
+ } else {696
+ CollectStrategy::AllDevices697
+ };698
+699
+ RustEncryptionSettings {700
+ algorithm: v.algorithm.into(),701
+ #[cfg(feature = "experimental-encrypted-state-events")]702
+ encrypt_state_events: false,703
+ rotation_period: Duration::from_secs(v.rotation_period),704
+ rotation_period_msgs: v.rotation_period_msgs,705
+ history_visibility: v.history_visibility.into(),706
+ sharing_strategy,707
+ }708
+ }709
+}710
+711
+/// An event that was successfully decrypted.712
+#[derive(uniffi::Record)]713
+pub struct DecryptedEvent {714
+ /// The decrypted version of the event.715
+ pub clear_event: String,716
+ /// The claimed curve25519 key of the sender.717
+ pub sender_curve25519_key: String,718
+ /// The claimed ed25519 key of the sender.719
+ pub claimed_ed25519_key: Option<String>,720
+ /// The curve25519 chain of the senders that forwarded the Megolm decryption721
+ /// key to us. Is empty if the key came directly from the sender of the722
+ /// event.723
+ pub forwarding_curve25519_chain: Vec<String>,724
+ /// The shield state (color and message to display to user) for the event,725
+ /// representing the event's authenticity. Computed from the properties of726
+ /// the sender user identity and their Olm device.727
+ ///728
+ /// Note that this is computed at time of decryption, so the value reflects729
+ /// the computed event authenticity at that time. Authenticity-related730
+ /// properties can change later on, such as when a user identity is731
+ /// subsequently verified or a device is deleted.732
+ pub shield_state: ShieldState,733
+}734
+735
+/// Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`]736
+/// for more info.737
+#[allow(missing_docs)]738
+#[derive(uniffi::Enum)]739
+pub enum ShieldColor {740
+ Red,741
+ Grey,742
+ None,743
+}744
+745
+/// Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`]746
+/// for more info.747
+#[derive(uniffi::Record)]748
+#[allow(missing_docs)]749
+pub struct ShieldState {750
+ color: ShieldColor,751
+ code: Option<ShieldStateCode>,752
+ message: Option<String>,753
+}754
+755
+impl From<RustShieldState> for ShieldState {756
+ fn from(value: RustShieldState) -> Self {757
+ match value {758
+ RustShieldState::Red { code, message } => Self {759
+ color: ShieldColor::Red,760
+ code: Some(code),761
+ message: Some(message.to_owned()),762
+ },763
+ RustShieldState::Grey { code, message } => Self {764
+ color: ShieldColor::Grey,765
+ code: Some(code),766
+ message: Some(message.to_owned()),767
+ },768
+ RustShieldState::None => Self { color: ShieldColor::None, code: None, message: None },769
+ }770
+ }771
+}772
+773
+/// Struct representing the state of our private cross signing keys, it shows774
+/// which private cross signing keys we have locally stored.775
+#[derive(Debug, Clone, uniffi::Record)]776
+pub struct CrossSigningStatus {777
+ /// Do we have the master key.778
+ pub has_master: bool,779
+ /// Do we have the self signing key, this one is necessary to sign our own780
+ /// devices.781
+ pub has_self_signing: bool,782
+ /// Do we have the user signing key, this one is necessary to sign other783
+ /// users.784
+ pub has_user_signing: bool,785
+}786
+787
+/// A struct containing private cross signing keys that can be backed up or788
+/// uploaded to the secret store.789
+#[derive(Deserialize, Serialize, uniffi::Record)]790
+pub struct CrossSigningKeyExport {791
+ /// The seed of the master key encoded as unpadded base64.792
+ pub master_key: Option<String>,793
+ /// The seed of the self signing key encoded as unpadded base64.794
+ pub self_signing_key: Option<String>,795
+ /// The seed of the user signing key encoded as unpadded base64.796
+ pub user_signing_key: Option<String>,797
+}798
+799
+/// Struct holding the number of room keys we have.800
+#[derive(uniffi::Record)]801
+pub struct RoomKeyCounts {802
+ /// The total number of room keys.803
+ pub total: i64,804
+ /// The number of backed up room keys.805
+ pub backed_up: i64,806
+}807
+808
+/// Backup keys and information we load from the store.809
+#[derive(uniffi::Object)]810
+pub struct BackupKeys {811
+ /// The recovery key as a base64 encoded string.812
+ recovery_key: Arc<BackupRecoveryKey>,813
+ /// The version that is used with the recovery key.814
+ backup_version: String,815
+}816
+817
+#[matrix_sdk_ffi_macros::export]818
+impl BackupKeys {819
+ /// Get the recovery key that we're holding on to.820
+ pub fn recovery_key(&self) -> Arc<BackupRecoveryKey> {821
+ self.recovery_key.clone()822
+ }823
+824
+ /// Get the backups version that we're holding on to.825
+ pub fn backup_version(&self) -> String {826
+ self.backup_version.to_owned()827
+ }828
+}829
+830
+impl TryFrom<matrix_sdk_crypto::store::types::BackupKeys> for BackupKeys {831
+ type Error = ();832
+833
+ fn try_from(keys: matrix_sdk_crypto::store::types::BackupKeys) -> Result<Self, Self::Error> {834
+ Ok(Self {835
+ recovery_key: BackupRecoveryKey {836
+ inner: keys.decryption_key.ok_or(())?,837
+ passphrase_info: None,838
+ }839
+ .into(),840
+ backup_version: keys.backup_version.ok_or(())?,841
+ })842
+ }843
+}844
+845
+/// Dehydrated device key846
+#[derive(uniffi::Record, Clone)]847
+pub struct DehydratedDeviceKey {848
+ pub(crate) inner: Vec<u8>,849
+}850
+851
+impl DehydratedDeviceKey {852
+ /// Generates a new random pickle key.853
+ #[allow(clippy::new_without_default)]854
+ pub fn new() -> Self {855
+ InnerDehydratedDeviceKey::new().into()856
+ }857
+858
+ /// Creates a new dehydration pickle key from the given slice.859
+ ///860
+ /// Fail if the slice length is not 32.861
+ pub fn from_slice(slice: &[u8]) -> Result<Self, DehydrationError> {862
+ let inner = InnerDehydratedDeviceKey::from_slice(slice)?;863
+ Ok(inner.into())864
+ }865
+866
+ /// Export the [`DehydratedDeviceKey`] as a base64 encoded string.867
+ pub fn to_base64(&self) -> String {868
+ let inner = InnerDehydratedDeviceKey::from_slice(&self.inner).unwrap();869
+ inner.to_base64()870
+ }871
+}872
+impl From<InnerDehydratedDeviceKey> for DehydratedDeviceKey {873
+ fn from(pickle_key: InnerDehydratedDeviceKey) -> Self {874
+ DehydratedDeviceKey { inner: pickle_key.into() }875
+ }876
+}877
+878
+impl From<matrix_sdk_crypto::store::types::RoomKeyCounts> for RoomKeyCounts {879
+ fn from(count: matrix_sdk_crypto::store::types::RoomKeyCounts) -> Self {880
+ Self { total: count.total as i64, backed_up: count.backed_up as i64 }881
+ }882
+}883
+884
+impl From<matrix_sdk_crypto::CrossSigningKeyExport> for CrossSigningKeyExport {885
+ fn from(e: matrix_sdk_crypto::CrossSigningKeyExport) -> Self {886
+ Self {887
+ master_key: e.master_key.clone(),888
+ self_signing_key: e.self_signing_key.clone(),889
+ user_signing_key: e.user_signing_key.clone(),890
+ }891
+ }892
+}893
+894
+impl From<CrossSigningKeyExport> for matrix_sdk_crypto::CrossSigningKeyExport {895
+ fn from(e: CrossSigningKeyExport) -> Self {896
+ matrix_sdk_crypto::CrossSigningKeyExport {897
+ master_key: e.master_key,898
+ self_signing_key: e.self_signing_key,899
+ user_signing_key: e.user_signing_key,900
+ }901
+ }902
+}903
+904
+impl From<matrix_sdk_crypto::CrossSigningStatus> for CrossSigningStatus {905
+ fn from(s: matrix_sdk_crypto::CrossSigningStatus) -> Self {906
+ Self {907
+ has_master: s.has_master,908
+ has_self_signing: s.has_self_signing,909
+ has_user_signing: s.has_user_signing,910
+ }911
+ }912
+}913
+914
+/// Room encryption settings which are modified by state events or user options915
+#[derive(Debug, PartialEq, Deserialize, Serialize, uniffi::Record)]916
+pub struct RoomSettings {917
+ /// The encryption algorithm that should be used in the room.918
+ pub algorithm: EventEncryptionAlgorithm,919
+ /// Whether state event encryption is enabled.920
+ #[cfg(feature = "experimental-encrypted-state-events")]921
+ #[serde(default)]922
+ pub encrypt_state_events: bool,923
+ /// Should untrusted devices receive the room key, or should they be924
+ /// excluded from the conversation.925
+ pub only_allow_trusted_devices: bool,926
+}927
+928
+impl TryFrom<RustRoomSettings> for RoomSettings {929
+ type Error = serde_json::Error;930
+931
+ fn try_from(value: RustRoomSettings) -> Result<Self, Self::Error> {932
+ let algorithm = value.algorithm.try_into()?;933
+ Ok(Self {934
+ algorithm,935
+ #[cfg(feature = "experimental-encrypted-state-events")]936
+ encrypt_state_events: value.encrypt_state_events,937
+ only_allow_trusted_devices: value.only_allow_trusted_devices,938
+ })939
+ }940
+}941
+942
+impl From<RoomSettings> for RustRoomSettings {943
+ fn from(value: RoomSettings) -> Self {944
+ Self {945
+ algorithm: value.algorithm.into(),946
+ only_allow_trusted_devices: value.only_allow_trusted_devices,947
+ ..RustRoomSettings::default()948
+ }949
+ }950
+}951
+952
+fn parse_user_id(user_id: &str) -> Result<OwnedUserId, CryptoStoreError> {953
+ ruma::UserId::parse(user_id).map_err(|e| CryptoStoreError::InvalidUserId(user_id.to_owned(), e))954
+}955
+956
+#[matrix_sdk_ffi_macros::export]957
+fn version_info() -> VersionInfo {958
+ VersionInfo {959
+ version: matrix_sdk_crypto::VERSION.to_owned(),960
+ vodozemac_version: matrix_sdk_crypto::vodozemac::VERSION.to_owned(),961
+ git_description: env!("VERGEN_GIT_DESCRIBE").to_owned(),962
+ git_sha: env!("VERGEN_GIT_SHA").to_owned(),963
+ }964
+}965
+966
+/// Build-time information about important crates that are used.967
+#[derive(uniffi::Record)]968
+pub struct VersionInfo {969
+ /// The version of the matrix-sdk-crypto crate.970
+ pub version: String,971
+ /// The version of the vodozemac crate.972
+ pub vodozemac_version: String,973
+ /// The Git commit hash of the crate's source tree at build time.974
+ pub git_sha: String,975
+ /// The build-time output of the `git describe` command of the source tree976
+ /// of crate.977
+ pub git_description: String,978
+}979
+980
+#[matrix_sdk_ffi_macros::export]981
+fn version() -> String {982
+ matrix_sdk_crypto::VERSION.to_owned()983
+}984
+985
+#[matrix_sdk_ffi_macros::export]986
+fn vodozemac_version() -> String {987
+ vodozemac::VERSION.to_owned()988
+}989
+990
+/// The encryption component of PkEncryption support.991
+///992
+/// This struct can be created using a [`Curve25519PublicKey`] corresponding to993
+/// a `PkDecryption` object, allowing messages to be encrypted for the994
+/// associated decryption object.995
+#[derive(uniffi::Object)]996
+pub struct PkEncryption {997
+ inner: matrix_sdk_crypto::vodozemac::pk_encryption::PkEncryption,998
+}999
+1000
+#[matrix_sdk_ffi_macros::export]1001
+impl PkEncryption {1002
+ /// Create a new [`PkEncryption`] object from a `Curve25519PublicKey`1003
+ /// encoded as Base64.1004
+ ///1005
+ /// The public key should come from an existing `PkDecryption` object.1006
+ /// Returns a `DecodeError` if the Curve25519 key could not be decoded1007
+ /// correctly.1008
+ #[uniffi::constructor]1009
+ pub fn from_base64(key: &str) -> Result<Arc<Self>, DecodeError> {1010
+ let key = vodozemac::Curve25519PublicKey::from_base64(key)1011
+ .map_err(matrix_sdk_crypto::backups::DecodeError::PublicKey)?;1012
+ let inner = vodozemac::pk_encryption::PkEncryption::from_key(key);1013
+1014
+ Ok(Self { inner }.into())1015
+ }1016
+1017
+ /// Encrypt a message using this [`PkEncryption`] object.1018
+ pub fn encrypt(&self, plaintext: &str) -> Option<PkMessage> {1019
+ use vodozemac::base64_encode;1020
+1021
+ let message = self.inner.encrypt(plaintext.as_ref()).ok()?;1022
+1023
+ let vodozemac::pk_encryption::Message { ciphertext, mac, ephemeral_key } = message;1024
+1025
+ Some(PkMessage {1026
+ ciphertext: base64_encode(ciphertext),1027
+ mac: base64_encode(mac),1028
+ ephemeral_key: ephemeral_key.to_base64(),1029
+ })1030
+ }1031
+}1032
+1033
+/// A message that was encrypted using a [`PkEncryption`] object.1034
+#[derive(uniffi::Record)]1035
+pub struct PkMessage {1036
+ /// The ciphertext of the message.1037
+ pub ciphertext: String,1038
+ /// The message authentication code of the message.1039
+ ///1040
+ /// *Warning*: This does not authenticate the ciphertext.1041
+ pub mac: String,1042
+ /// The ephemeral Curve25519 key of the message which was used to derive the1043
+ /// individual message key.1044
+ pub ephemeral_key: String,1045
+}1046
+1047
+uniffi::setup_scaffolding!();1048
+1049
+#[cfg(test)]1050
+mod tests {1051
+ use anyhow::Result;1052
+ use serde_json::{Value, json};1053
+ use tempfile::tempdir;1054
+1055
+ use super::MigrationData;1056
+ use crate::{EventEncryptionAlgorithm, OlmMachine, RoomSettings, migrate};1057
+1058
+ #[test]1059
+ fn android_migration() -> Result<()> {1060
+ let data: Value = json!({1061
+ "account":{1062
+ "user_id":"@ganfra146:matrix.org",1063
+ "device_id":"DEWRCMENGS",1064
+ "pickle":"FFGTGho89T3Xgd56l+EedOPV37s09RR8aYnS9305qPKF66LG+ly29YpCibjJOvkwm0dZwN9A2bOH/z7WscriqwZn/p0GE6YSNwLzffCy5iROzYzpYzFe0HtiyJmCQWCezvLc5lHV8YsfD00C1pKGX2R9M1wwp3/n4/3VjtTyPsdnmtwAPu4WdcPSkisCaQ3a6JaSKqv8zYzUjnpzgcpXHvPUR5d5+TzXgrVz3BeCOe8NEOWIW6xYUxFtGteYP0BczOkkJ22t7Css0tSMSrYgCll4zZUGNrd6D9b/z7KwcDnb978epsZ16DcZ/aaTxPdM5uDIkHgF/qHWerfxcaqsqs4EQfJdSgOTeqhjHBw1k0uWF2bByJLK+n7sGkYXEAuTzc4+0XvSFvu3Qp+1bHZuT7QejngRZzyxznORyBxd8la3/JjeJlehSK80OL7zSmohoYZD59S6i3tFWfopjQThJ0/eIyVOhEN/c3tfIcVr3lFEQeokgpCRNOVldhPcQWq994NHaL7jtb6yhUqT1gShY4zYayFL/VRz6nBSXXYwzrC9jho67knqXSri3lIKYevP9aOi384IvzbkinQdumc804dYwiCbs5hZppfEnfhfgiDDm+kVrJ9WaPRF4SySCTlS8jdGmBeL2CfCQ5IcZ5nK6X7tZM3tmtYwva0RuQiTNltp3XTfbMa0EoaEBximv25165hFTpzrWgoszBTpZPfgsMuWENWBcIX4AcLSk0CJ0qzPDeUwvmRcFStstGYV4drs5u5HEqovFSI48CoHPSEZfwwERCI4c/0efZ0CVEfnm8VcMv3AbnAfedD7v3QNdVwWOEhz/fGR76BQi2WjZP4MWvYRJ/vsLO5hcVWUvaJGQs5kANUFZMWuJQeJv3DmkV9kKKXnyfFUerlQ4Uk/5tp2mXiG+adHjuRp/Eeh5V/biCcIaX3rNuIY6MJaPz6SOwlFe79MMBaNwaS3j4Kh/Aq9BRw0QXdjO4CqMI4p2xCE1N5QTPdeaRTHTZ3r7mLkHX3FpZMxitc8vDl9L2FRoSOMMh/sRD1boBCkjrsty9rvTUGYY3li05jBuTXnYMjA4zj79dC9TGo4g+/wi+h537EhtP5+170LwqnIzfHt8yfjbsMMC7iwLpC1C57sTwxpMkNo3nQEvZOfqCxjq+ihiGuL9iN5lSstu9/C4qP2tQll86ASXf1axxRZQlUB0hlLHbEW6/7O7xOU6FTs4yXAZC04souRkggmfhDzZ9kQmN/zRTbqlATFI7l9/0VGxwLOVnCMUhgiDX5yL8CYK9I4ENMLf5zOuO6P3GbYISjEoHC7fUOzQ6OwGgLyI0wCEVdSJzQcdKh+W15VV+eDjhE/qEJHQWx024hTQFTKYHlDn95+lMmRI9BJLP1HU2JW6onVWsTsE5zSYu9jLj739EKfV4gS/pWzoQDRa7a9ZG6+m+RrwyJhCso3gkUekDNobhFlDX6YeH+Btj91N0uS3F9qr8lbo491s/z2fNV42zT4NYObzgrAYDQAV/2WYF8tXtxLV/Jzk8AMmyr/cfNaT2dXxVJKWq+nN2BYHBmg9CCWPJ2aB/1WWIcHfcDOlngtH991gP6246f/DEaVC/Ayxz7bPtSH5tlZ4Xbpc2P4BYxaRp/yxhhQ2C9H2I/PTt3mnNNgky/t8PZrN3W5+eiSVE9sONF8G3mYsa4XFqM+KxfbPUqsrEnrRBmvmJ250hpTPkFcIF775RvvRRKALXdlTKs+S4HKDW7KoP0Dm9+r4RlO0UHpWND9w0WSMItvWQyo0VViXJgZfBjYtWDoO0Ud+Kc7PLWNX6RUKY7RlDjXadJTC4adH6CN3UBC/ouqqfTrYvPOkyd2oKf4RLjEVcFAUIftFbLy+WBcWv8072nnAFJIlm3CxGq++80TyjqFR45P+qfIJavxQNIt5zhHPfMgHjX27OA3+l7rHDxqfMLBPxhtARwlyF+qx1IJiSWbmlHkdz2ylD9unoLSpf+DmmFvvgTj+3EEP4bY2jA/t91XFeG3uaTQSy3ryDvhbX21U7G2HGOEl9rCkmz+hG0YRB/6KxZZ0eMIDr7OWfpPEuHV8oYwDNYbsT9zCGsR1hHxBJtdo60b36mjMemtf761DhJ/oQZ4eU738yzx1hvVS3aCJsfyp70H5u+pUjgrA565uG2lEMNLu4T4NFVw0UdrVudyrhmT8P7vF4v+mR4pp+OzRbLf8AtZrKmHlMqRst+/wOHUHug/Tpz6EwZPDWGiQyFyPUkjHWW7ACouegBFOWFabsk+zCDhyxoSNrSMCtdB1L+qK72jRPGOvXk8p/1kBOIJfAjaK1ZWz8hTc30hOSWYxkRP296zPHiQF0ibNYSPNZ9tNxgq9nV/cEQ68TsNr3SULfDr0TSjCPf4AfmJ0k1k5xphSYv/TtGIbjg/9yGVFqclg4Y/6rrfkApbx36PQEBNxLiRsZ4hGpCfVU6h0jOekk8TV6CAguXVX/G31UqsAEa4sOD2g10Ir+5JD7bdd3JE/999kHGdiCqc0DNcgSqWYbq2QYwrN/mb+mMUbiQSNMcc34kK1n+7dGxppnt7YN7UsJqBWJdH0Lw1Epxi11ViTeVma9bqioJYXi6N5exdpZTT7KmcGYFsoTqO958EX6AppgcML7N9oP3TO8qSgCpV3Bbbemq4bvjV43aM6Rdx17pC4GZo0jjU97p4K8jE4PvgoHlYkuPwSJDOSAdnYPh+Inq/vCk48UfIlup0ATJFVUXD7uf84v9roZSwZPXZ5j/88+MkHBIJwPv8cugmz5uN2EuBW5IScMuEqG7Cmk72SU3/QA39G79S0Gpw7iPhTos5LXxhfvohGcnSaNEvfNeecQf7fpVciTdHwuvcgqJizUKpSFg2P+LDBiO44mJD15RNAaT37Rrj5P06YITO4PDj+FMdc6gx+JQUFbcSRhScE/0gfsVm0P1BYIH5q0k/QDgEVoerf/n19lITTzPib1F2OHP4hyF3BEq1pd9NwuPhhsVVqTVTK5MzFwFIOH7cwJyY7aBykmsWBavdb2J7UA5wjKqMHl1auUGPlNL+lZjqG4tw05bchtFAF+PGWQXJhJCtRSkkzTOCrLRyYyyI9mWYEjoc23cGLanlIs7WA1Nd0Jz+5RSNlf9Gtnd65yQp/W1eqY6yzURPHUUa7FrynyORmjaR9adT9utSQkXy8++IeDNzhMtFr+SqQ/gKECLe0GeuyTs6E5bImUtqpN+xopBXnEeq8wp+bvLf76d98qPE5ibTRwlsSyCE4c1Y7vrJrlc15Yc2R9ciIuKUS8rUKLSdGBFe/TD4R3cPhCKAnnRLGWnJiPPgxoTVwHVZMISdsAjNaWblBmiAOzFcu7443d3PCLyXVcfR9xgvW51HTumo91t5Qyx4HIXGoZxayZYFm2hrhSlieUqLnDL2j2gYgGU5NGoQl4OnEY2QqobpRUF4xJ4HhLzYbLrBeXmTDPvj0MasC3kKsRlm/HrsRRWZ2iPSMw9601tLvDfyjG53ddPISiVNnkdXcaAN5np7dwipdBOC1s4a0sEmKakNbkkDb8LsGBNte/g6UYs5yYaKr0bnXlDjMCznHQa7pypBjE7S55T3UeRpwo3IvZ1tfIGdb+z9RIA/PDvUksxJ3Xq3lqtZzkZJF5aeedfIOekGS/G0LiCSYsELgRceH5veknHqoGoL6xi4Q6/VjmfpZVXT19bDcTNtaR9Dlaq4LDjpQl9rl5C3O/X1hgADvJUuINCiLrD114sLY1DG/TDXE0sp+TK7utnjLAoHuAuj+6anY5vN66CSbwyUNmvo+m8li/AMkRYdtSDoPWkV7Y1ixMBPcua0Llwn2HSKKwnCjvhDIDIIVwbWwb1s6b9cztH81WF5RWUgFujewPvTElM1Sy10y7BcZohKw28uLRFVsKunc9yX2PiQoTSB4PHBHRA4U5dEQV3GHQJ93nee7VT3oeQPMVebWhuhOhi34Z33LQajzpCF3OjIbJb0tOPP6L6N/ODqkNsYViI3kgCnkNhexadOuGFWIqen2Q8iv2uOZWbPirt0YEeKZIk2dpND07L8Q3OsoQCk2rjpnw9LuFrjgu7gN9gFyPq25HJRBn7PM/lS60DF+xVkJq94PwN+CiZWC43SVcBGx65DFZIs/N78MZCUzZbFlsS7FsIrDJt878cp9eZdq/Ai4LZhL8QYHpVUrQxRxZGSqooA755N6nOxw66JkA1VPnjECCMgoNNtWox0JzhMe8PBdh2ZliXf8yQ6/eTvsG6FD84F+49pc7m0L99pfWHb9ClyO3KRHscp/MOIC1MJmqoB4dNxV20U+z8/lSTIvcmM8DiaAZj/yxlst90drlGydlyPjQzYd/XtIYcO5gHoeD1KUCZRapE5dkyk5vh97WZJn/JkR8hsslU3D6x3rNGwJbQVRu0IiA3PpeAQNZBNAJHHfv8IzIYxPhMJdYq0YqLIGSUYu87D04cDOxJY7hgawYs+ExOWb7XkbpuRoITQd8zpwVDFlSCS+wFO+qah3Vn8RBTc6cXHO5xRWfUNj+NrEtPdVmax+9EXqXtHQyFpxaauvL96RH+mGwpKHOk3aisXbZ6gLE2mF4egGjjJOIJdHyb2ZR+kj+4GIvkoBwipDgUfr4UBXY8pvFxQOxRgtI4LgOY9Z1Aco7Mwp6qi1KoMFJW8d+gJwsgM3cMsyEeYH1n/mdpJW6VDbIWzOHkP5n+OKKNm2vJTkQFFwF9eOtGy9fNBtS4qo4jvOUJnnAPsrPbGMbBYd1dMC3daHLEwvIKCAVBn7q1Z2c4zAD5eEoY0EwZj/j8x8lGQ8TswFT81ZotW7ZBDai/YtV8mkGfuaWJRI5yHc/bV7GWLF+yrMji/jicBF5jy2UoqwxseqjgTut49FRgBH3h1qwnfYbXD3FvQljyAAgBCiZV726pFRG+sZv0FjDbq0iCKILVSEUDZgmQ",1065
+ "shared":true,1066
+ "uploaded_signed_key_count":501067
+ },1068
+ "sessions":[1069
+ {1070
+ "pickle":"cryZlFaQv0hwWe6tTgv75RExFKGnC8tMHBXJYMHOw4s+SdrKUYAMUdGcYD7QukrPklEOy7fJho9YGK/jV04QdA8JABiOfD+ngJTR4V8eZdmDuG08+Q5EL79V81hQwU2fKndP0y/9nAXPUIADYq0Zrg4EsOnXz7aE+hAeBAm0IBog1s8RYUvynZ15uwjbd/OTLP+gpqpX33DwVg2leiBkQetiUSpOpZCuQ8CcZwIA0MoGCqvaT7h76VHX9JxJx+2fCMhsJMx1nhd99WJH1W9ge5CtdbC4KUP92OSxIrPOnMrNcOPJPp/paZP+HFNQ3PDL+z8pGKXmCnrXGSbd7iPHurPYESrVkBzr",1071
+ "sender_key":"WJ6Ce7U67a6jqkHYHd8o0+5H4bqdi9hInZdk0+swuXs",1072
+ "created_using_fallback_key":false,1073
+ "creation_time": 1649425011424u64,1074
+ "last_use_time": 1649425011424u641075
+ },1076
+ {1077
+ "pickle":"cryZlFaQv0hwWe6tTgv75RExFKGnC8tMHBXJYMHOw4t2W/lowyrV6SXVZp+uG59im0AAfNSKjhjZuiOpQlX7MS+AOJkCNvyujJ2g3KSjLZ94IkoHxkBDHLWSjwaLPu40rfOzJPDpm0XZsR6bQrsxKOmXLGEw2qw5jOTouzMVL2gvuuTix97nSYSU8j3XvTMRUoh0AF/tUpRLcvEFZeGrdUYmTMlyTv4na+FVUalUZ+jrk8t1/sM99JNq3SY1IBSjrBq/0rCOHieiippz0sw2fe2b87id4rqj1g3R9w2MWTWEdOz3ugjMGYF1YDBQZA1tJZ/hmgppk2AU2xKQXE2X3DgSC6fC66D4",1078
+ "sender_key":"RzRROfmHNlBfzxnNCUYBfn/5oZNQ11XYjDg59hS+mV0",1079
+ "created_using_fallback_key":false,1080
+ "creation_time": 1649425011503u64,1081
+ "last_use_time": 1649425011503u641082
+ },1083
+ {1084
+ "pickle":"cryZlFaQv0hwWe6tTgv75RExFKGnC8tMHBXJYMHOw4titbL3SS12PYHpcBPJc6hXnOnZXqrjtjYOD545fck+3utEo8cqqwWubc9tsvxGW3tOWPttLBdAW30Vn8V1M8ebqVCNVWEAb1GKjV4ni8xG7G9SlEcCjLjnF4lJpddSZkqVMFoN0ITr9aSz/eJwXpc3HLreUFXwc8LuQp7krQ4Vt1e5EE/klduqsdurZf5V14RHsmWz2lKjt7nVgtIz/dhtF5F/sGJdg8kCGaHIMSbGAPuPPpa4/Laicb/5otrYt4pg4W4KdFpSGJIcvUQNjXaOZMx3cu/RPJIOyNhx7whG1QiYAUBqAJvr",1085
+ "sender_key":"IXSZugAHig1v8MowE1jxi2wDDDfuZBeJynHlegJVwUc",1086
+ "created_using_fallback_key":false,1087
+ "creation_time": 1649425011566u64,1088
+ "last_use_time": 1649425011566u641089
+ },1090
+ {1091
+ "pickle":"SmkDiFZjNukiarQ7XHQo25FILHsuhNOnxy56cMSQU/Y71jaGbJes4YrvN4Dfy4RSONfejEDXDkbW2JudlHHRP/rWEmnfJiGbK6ArbrG2puqIZgOecPnOUgPfCisr49p1Gmf36dPaO5lm/ZSrngfSoxahoeJJE/CcJN98sYM15XytRk2LBwc+CyYDqr4V1qxfsBt6tzJ4+tsAZeRdD0UtipQgysgH56o8N7nKTCkaZz5lfpYCl3FEgwXpLJ0MGQvtQmbORFvOLqR1jZ/EbmNGKiqDDIYsqG0sf78ii1jqfpLDBXLuYDccsg",1092
+ "sender_key":"EB9SC4jVAydKhM6/GcwMc9biKwVNywqW3TerNTrtb1M",1093
+ "created_using_fallback_key":false,1094
+ "creation_time": 1649542063182u64,1095
+ "last_use_time": 1649542063182u641096
+ }1097
+ ],1098
+ "inbound_group_sessions":[1099
+ {1100
+ "pickle":"KoA0sxDNQ7lz0vylU9zlmar0VCVQRMCfRrIfTh1bdMhlAgy8/D2ToT+oKRaKy1HiW6H862bzdpgxprlseSjmip9OfLbIuyd2YZcEinwc2666oEI/hpk4oTlE61uE1M+ThfdFf41yGCmaAP7mhjwF234ZrZ6i/F/qx42TLQ8Unc30wDJaJgyheO5eW85SD/0g0cdg2WnEKrx2/wl7Vg/YijT3JMDZ+OsdfJfSZtxBNjlG+PQ/9D31qb1eHfaovc8vFZh5QLfAFg/5rBrF1PhRsC7xOAZbUNdrTbvypNfMM4mznf84C2SzZRSMeAfg5v/YticM3Keg4eHuEj1WO9DrmRXYl6b/pITdf1xuk5euVT0pyxJpXmq41AoAZKAo1l94HGy1LG1RpruD1uQPhiponh5PGHSOf43Q",1101
+ "sender_key":"vJfH7wiYmGos3C8U1XcJ//YWSmkueAYqrmUA6/ukfAM",1102
+ "signing_key":{1103
+ "ed25519":"JGgPQRuYj3ScMdPS+A0P+k/1qS9Hr3qeKXLscI+hS78"1104
+ },1105
+ "room_id":"!AZkqtjvtwPAuyNOXEt:matrix.org",1106
+ "forwarding_chains":[1107
+ ],1108
+ "imported":true,1109
+ "backed_up":true1110
+ },1111
+ {1112
+ "pickle":"9RF6GBu9CvjZZx2hxIlw2gMdKs36LFhXhLTHAPrLSjT2OTbeE/jK263+iiFdSpF7Cblp/lXzljPKJN6sL8JGzoT7ssYh56nI0kKsp7/y88z+tTOH/5NYYTmZzHYw6yy4Cmaxh0pdHDs+RQpSSIe9jhF/EJJna5jcKYXxDY52m8H4LECQzVuDlYfblCr9zoYWhQrVhiRDGy7eLhk4X6Rp0Yoek4YUKcCQArDfZ/Vf43qfHUpOJgRpm5Oyj42HA/j4xZBb5U0Fmo6YHRPt0/KuWrDfpgJSGiN0zza7641IfADg8f3WdhlPAWMyri7k4vOZMBjlwFNcMpc0wM2TaTmbi2zqXEKZy9Oh/eJqBapFx0oNWaQ1VQ++iXxGUbZhwy7x2vd6UkqUTwYeym+aP23ee3TCtnNWN0aC",1113
+ "sender_key":"EB9SC4jVAydKhM6/GcwMc9biKwVNywqW3TerNTrtb1M",1114
+ "signing_key":{1115
+ "ed25519":"1NXa5GyJ+p2ruAClEque+TL1VktrBzMW4dZFNfNGrvc"1116
+ },1117
+ "room_id":"!CWLUCoEWXSFyTCOtfL:matrix.org",1118
+ "forwarding_chains":[],1119
+ "imported":true,1120
+ "backed_up":true1121
+ }1122
+ ],1123
+ "pickle_key": [17, 36, 120, 74, 95, 78, 56, 36, 62, 123, 5, 105, 74,1124
+ 111, 70, 48, 51, 101, 66, 86, 116, 14, 114, 85, 85,1125
+ 92, 44, 71, 89, 99, 55, 74],1126
+ "backup_version":"3",1127
+ "backup_recovery_key":"EsTHScmRV5oT1WBhe2mj2Gn3odeYantZ4NEk7L51p6L8hrmB",1128
+ "cross_signing":{1129
+ "master_key":"trnK/dBv/M2x2zZt8lnORHQqmFHWvjYE6rdlAONRUPY",1130
+ "self_signing_key":"SJhsj9jXC4hxhqS/1B3RZ65zWMHuF+1fUjWHrzVRh6w",1131
+ "user_signing_key":"LPYrV11T9Prm4ZIUxrq2a8Y/F64R1+NaGNyo6GlXjGg"1132
+ },1133
+ "tracked_users":[1134
+ "@ganfra146:matrix.org",1135
+ "@this-is-me:matrix.org",1136
+ "@Amandine:matrix.org",1137
+ "@ganfra:matrix.org",1138
+ "NotAUser%ID"1139
+ ],1140
+ "room_settings": {1141
+ "!AZkqtjvtwPAuyNOXEt:matrix.org": {1142
+ "algorithm": "OlmV1Curve25519AesSha2",1143
+ "only_allow_trusted_devices": true1144
+ },1145
+ "!CWLUCoEWXSFyTCOtfL:matrix.org": {1146
+ "algorithm": "MegolmV1AesSha2",1147
+ "only_allow_trusted_devices": false1148
+ },1149
+ }1150
+ });1151
+1152
+ let migration_data: MigrationData = serde_json::from_value(data)?;1153
+1154
+ let dir = tempdir()?;1155
+ let path = dir1156
+ .path()1157
+ .to_str()1158
+ .expect("Creating a string from the tempdir path should not fail")1159
+ .to_owned();1160
+1161
+ migrate(migration_data, path.clone(), None, Box::new(|_, _| {}))?;1162
+1163
+ let machine = OlmMachine::new(1164
+ "@ganfra146:matrix.org".to_owned(),1165
+ "DEWRCMENGS".to_owned(),1166
+ path,1167
+ None,1168
+ )?;1169
+1170
+ assert_eq!(1171
+ machine.identity_keys()["ed25519"],1172
+ "JGgPQRuYj3ScMdPS+A0P+k/1qS9Hr3qeKXLscI+hS78"1173
+ );1174
+1175
+ let room_keys =1176
+ machine.runtime.block_on(machine.inner.store().export_room_keys(|_| true))?;1177
+ assert_eq!(room_keys.len(), 2);1178
+1179
+ let cross_signing_status = machine.cross_signing_status();1180
+ assert!(cross_signing_status.has_master);1181
+ assert!(cross_signing_status.has_user_signing);1182
+ assert!(cross_signing_status.has_self_signing);1183
+1184
+ let backup_keys = machine.get_backup_keys()?;1185
+ assert!(backup_keys.is_some());1186
+1187
+ let settings1 = machine.get_room_settings("!AZkqtjvtwPAuyNOXEt:matrix.org".into())?;1188
+ assert_eq!(1189
+ Some(RoomSettings {1190
+ algorithm: EventEncryptionAlgorithm::OlmV1Curve25519AesSha2,1191
+ #[cfg(feature = "experimental-encrypted-state-events")]1192
+ encrypt_state_events: false,1193
+ only_allow_trusted_devices: true1194
+ }),1195
+ settings11196
+ );1197
+1198
+ let settings2 = machine.get_room_settings("!CWLUCoEWXSFyTCOtfL:matrix.org".into())?;1199
+ assert_eq!(1200
+ Some(RoomSettings {1201
+ algorithm: EventEncryptionAlgorithm::MegolmV1AesSha2,1202
+ #[cfg(feature = "experimental-encrypted-state-events")]1203
+ encrypt_state_events: false,1204
+ only_allow_trusted_devices: false1205
+ }),1206
+ settings21207
+ );1208
+1209
+ let settings3 = machine.get_room_settings("!XYZ:matrix.org".into())?;1210
+ assert!(settings3.is_none());1211
+1212
+ assert!(machine.is_user_tracked("@ganfra146:matrix.org".into()).unwrap());1213
+ assert!(machine.is_user_tracked("@Amandine:matrix.org".into()).unwrap());1214
+ assert!(machine.is_user_tracked("@this-is-me:matrix.org".into()).unwrap());1215
+ assert!(machine.is_user_tracked("@ganfra:matrix.org".into()).unwrap());1216
+1217
+ Ok(())1218
+ }1219
+}@@ -0,0 +1,63 @@
1
+use std::{2
+ io::{Result, Write},3
+ sync::{Arc, Mutex},4
+};5
+6
+use tracing_subscriber::{EnvFilter, fmt::MakeWriter};7
+8
+/// Trait that can be used to forward Rust logs over FFI to a language specific9
+/// logger.10
+#[matrix_sdk_ffi_macros::export(callback_interface)]11
+pub trait Logger: Send {12
+ /// Called every time the Rust side wants to post a log line.13
+ fn log(&self, log_line: String);14
+ // TODO add support for different log levels, do this by adding more methods15
+ // to the trait.16
+}17
+18
+impl Write for LoggerWrapper {19
+ fn write(&mut self, buf: &[u8]) -> Result<usize> {20
+ let data = String::from_utf8_lossy(buf).to_string();21
+ self.inner.lock().unwrap().log(data);22
+23
+ Ok(buf.len())24
+ }25
+26
+ fn flush(&mut self) -> Result<()> {27
+ Ok(())28
+ }29
+}30
+31
+impl MakeWriter<'_> for LoggerWrapper {32
+ type Writer = LoggerWrapper;33
+34
+ fn make_writer(&self) -> Self::Writer {35
+ self.clone()36
+ }37
+}38
+39
+#[derive(Clone)]40
+pub struct LoggerWrapper {41
+ inner: Arc<Mutex<Box<dyn Logger>>>,42
+}43
+44
+/// Set the logger that should be used to forward Rust logs over FFI.45
+#[matrix_sdk_ffi_macros::export]46
+pub fn set_logger(logger: Box<dyn Logger>) {47
+ let logger = LoggerWrapper { inner: Arc::new(Mutex::new(logger)) };48
+49
+ let filter = EnvFilter::from_default_env()50
+ .add_directive(51
+ "matrix_sdk_crypto=trace".parse().expect("Can't parse logging filter directive"),52
+ )53
+ .add_directive(54
+ "matrix_sdk_sqlite=debug".parse().expect("Can't parse logging filter directive"),55
+ );56
+57
+ let _ = tracing_subscriber::fmt()58
+ .with_writer(logger)59
+ .with_env_filter(filter)60
+ .with_ansi(false)61
+ .without_time()62
+ .try_init();63
+}@@ -0,0 +1,1620 @@
1
+use std::{2
+ collections::{BTreeMap, HashMap},3
+ io::Cursor,4
+ mem::ManuallyDrop,5
+ ops::Deref,6
+ sync::Arc,7
+ time::Duration,8
+};9
+10
+use js_int::UInt;11
+use matrix_sdk_common::deserialized_responses::AlgorithmInfo;12
+use matrix_sdk_crypto::{13
+ CollectStrategy, DecryptionSettings, LocalTrust, OlmMachine as InnerMachine,14
+ UserIdentity as SdkUserIdentity,15
+ backups::{16
+ MegolmV1BackupKey as RustBackupKey, SignatureState,17
+ SignatureVerification as RustSignatureCheckResult,18
+ },19
+ decrypt_room_key_export, encrypt_room_key_export,20
+ olm::ExportedRoomKey,21
+ store::types::{BackupDecryptionKey, Changes},22
+ types::requests::ToDeviceRequest,23
+};24
+use ruma::{25
+ DeviceKeyAlgorithm, EventId, OneTimeKeyAlgorithm, OwnedTransactionId, OwnedUserId, RoomId,26
+ UserId,27
+ api::{28
+ IncomingResponse,29
+ client::{30
+ backup::add_backup_keys::v3::Response as KeysBackupResponse,31
+ keys::{32
+ claim_keys::v3::Response as KeysClaimResponse,33
+ get_keys::v3::Response as KeysQueryResponse,34
+ upload_keys::v3::Response as KeysUploadResponse,35
+ upload_signatures::v3::Response as SignatureUploadResponse,36
+ },37
+ message::send_message_event::v3::Response as RoomMessageResponse,38
+ sync::sync_events::{DeviceLists as RumaDeviceLists, v3::ToDevice},39
+ to_device::send_event_to_device::v3::Response as ToDeviceResponse,40
+ },41
+ },42
+ events::{43
+ AnyMessageLikeEvent, AnySyncMessageLikeEvent, AnyTimelineEvent, MessageLikeEvent,44
+ key::verification::VerificationMethod, room::message::MessageType,45
+ },46
+ serde::Raw,47
+ to_device::DeviceIdOrAllDevices,48
+};49
+use serde::{Deserialize, Serialize};50
+use serde_json::{Value, value::RawValue};51
+use tokio::runtime::Runtime;52
+use zeroize::Zeroize;53
+54
+use crate::{55
+ BackupKeys, BackupRecoveryKey, BootstrapCrossSigningResult, CrossSigningKeyExport,56
+ CrossSigningStatus, DecodeError, DecryptedEvent, Device, DeviceLists, EncryptionSettings,57
+ EventEncryptionAlgorithm, KeyImportError, KeysImportResult, MegolmV1BackupKey,58
+ ProgressListener, Request, RequestType, RequestVerificationResult, RoomKeyCounts, RoomSettings,59
+ Sas, SignatureUploadRequest, StartSasResult, UserIdentity, Verification, VerificationRequest,60
+ dehydrated_devices::DehydratedDevices,61
+ error::{62
+ CryptoStoreError, DecryptionError, SecretImportError, SecretsBundleExportError,63
+ SignatureError,64
+ },65
+ parse_user_id,66
+ responses::{OwnedResponse, response_from_string},67
+};68
+69
+/// The return value for the [`OlmMachine::receive_sync_changes()`] method.70
+///71
+/// Will contain various information about the `/sync` changes the72
+/// [`OlmMachine`] processed.73
+#[derive(uniffi::Record)]74
+pub struct SyncChangesResult {75
+ /// The, now possibly decrypted, to-device events the [`OlmMachine`]76
+ /// received, decrypted, and processed.77
+ to_device_events: Vec<String>,78
+79
+ /// Information about the room keys that were extracted out of the to-device80
+ /// events.81
+ room_key_infos: Vec<RoomKeyInfo>,82
+}83
+84
+/// Information on a room key that has been received or imported.85
+#[derive(uniffi::Record)]86
+pub struct RoomKeyInfo {87
+ /// The [messaging algorithm] that this key is used for. Will be one of the88
+ /// `m.megolm.*` algorithms.89
+ ///90
+ /// [messaging algorithm]: https://spec.matrix.org/v1.6/client-server-api/#messaging-algorithms91
+ pub algorithm: String,92
+93
+ /// The room where the key is used.94
+ pub room_id: String,95
+96
+ /// The Curve25519 key of the device which initiated the session originally.97
+ pub sender_key: String,98
+99
+ /// The ID of the session that the key is for.100
+ pub session_id: String,101
+}102
+103
+impl From<matrix_sdk_crypto::store::types::RoomKeyInfo> for RoomKeyInfo {104
+ fn from(value: matrix_sdk_crypto::store::types::RoomKeyInfo) -> Self {105
+ Self {106
+ algorithm: value.algorithm.to_string(),107
+ room_id: value.room_id.to_string(),108
+ sender_key: value.sender_key.to_base64(),109
+ session_id: value.session_id,110
+ }111
+ }112
+}113
+114
+/// A high level state machine that handles E2EE for Matrix.115
+#[derive(uniffi::Object)]116
+pub struct OlmMachine {117
+ pub(crate) inner: ManuallyDrop<InnerMachine>,118
+ pub(crate) runtime: Runtime,119
+}120
+121
+impl Drop for OlmMachine {122
+ fn drop(&mut self) {123
+ // Dropping the inner OlmMachine must happen within a tokio context124
+ // because deadpool drops sqlite connections in the DB pool on tokio's125
+ // blocking threadpool to avoid blocking async worker threads.126
+ let _guard = self.runtime.enter();127
+ // SAFETY: self.inner is never used again, which is the only requirement128
+ // for ManuallyDrop::drop to be used safely.129
+ unsafe {130
+ ManuallyDrop::drop(&mut self.inner);131
+ }132
+ }133
+}134
+135
+/// A pair of outgoing room key requests, both of those are sendToDevice136
+/// requests.137
+#[derive(uniffi::Record)]138
+pub struct KeyRequestPair {139
+ /// The optional cancellation, this is None if no previous key request was140
+ /// sent out for this key, thus it doesn't need to be cancelled.141
+ pub cancellation: Option<Request>,142
+ /// The actual key request.143
+ pub key_request: Request,144
+}145
+146
+/// The result of a signature verification of a signed JSON object.147
+#[derive(Clone, Debug, PartialEq, Eq, uniffi::Record)]148
+pub struct SignatureVerification {149
+ /// The result of the signature verification using the public key of our own150
+ /// device.151
+ pub device_signature: SignatureState,152
+ /// The result of the signature verification using the public key of our own153
+ /// user identity.154
+ pub user_identity_signature: SignatureState,155
+ /// The result of the signature verification using public keys of other156
+ /// devices we own.157
+ pub other_devices_signatures: HashMap<String, SignatureState>,158
+ /// Is the signed JSON object trusted.159
+ ///160
+ /// This flag tells us if the result has a valid signature from any of the161
+ /// following:162
+ ///163
+ /// * Our own device164
+ /// * Our own user identity, provided the identity is trusted as well165
+ /// * Any of our own devices, provided the device is trusted as well166
+ pub trusted: bool,167
+}168
+169
+impl From<RustSignatureCheckResult> for SignatureVerification {170
+ fn from(r: RustSignatureCheckResult) -> Self {171
+ let trusted = r.trusted();172
+173
+ Self {174
+ device_signature: r.device_signature,175
+ user_identity_signature: r.user_identity_signature,176
+ other_devices_signatures: r177
+ .other_signatures178
+ .into_iter()179
+ .map(|(k, v)| (k.to_string(), v))180
+ .collect(),181
+ trusted,182
+ }183
+ }184
+}185
+186
+#[matrix_sdk_ffi_macros::export]187
+impl OlmMachine {188
+ /// Create a new `OlmMachine`189
+ ///190
+ /// # Arguments191
+ ///192
+ /// * `user_id` - The unique ID of the user that owns this machine.193
+ ///194
+ /// * `device_id` - The unique ID of the device that owns this machine.195
+ ///196
+ /// * `path` - The path where the state of the machine should be persisted.197
+ ///198
+ /// * `passphrase` - The passphrase that should be used to encrypt the data199
+ /// at rest in the crypto store. **Warning**, if no passphrase is given,200
+ /// the store and all its data will remain unencrypted.201
+ #[uniffi::constructor]202
+ pub fn new(203
+ user_id: String,204
+ device_id: String,205
+ path: String,206
+ mut passphrase: Option<String>,207
+ ) -> Result<Arc<Self>, CryptoStoreError> {208
+ let user_id = parse_user_id(&user_id)?;209
+ let device_id = device_id.as_str().into();210
+ let runtime = Runtime::new().expect("Couldn't create a tokio runtime");211
+212
+ let store = runtime213
+ .block_on(matrix_sdk_sqlite::SqliteCryptoStore::open(path, passphrase.as_deref()))?;214
+215
+ passphrase.zeroize();216
+217
+ let inner = runtime.block_on(InnerMachine::with_store(218
+ &user_id,219
+ device_id,220
+ Arc::new(store),221
+ None,222
+ ))?;223
+224
+ Ok(Arc::new(OlmMachine { inner: ManuallyDrop::new(inner), runtime }))225
+ }226
+227
+ /// Get the user ID of the owner of this `OlmMachine`.228
+ pub fn user_id(&self) -> String {229
+ self.inner.user_id().to_string()230
+ }231
+232
+ /// Get the device ID of the device of this `OlmMachine`.233
+ pub fn device_id(&self) -> String {234
+ self.inner.device_id().to_string()235
+ }236
+237
+ /// Get our own identity keys.238
+ pub fn identity_keys(&self) -> HashMap<String, String> {239
+ let identity_keys = self.inner.identity_keys();240
+ let curve_key = identity_keys.curve25519.to_base64();241
+ let ed25519_key = identity_keys.ed25519.to_base64();242
+243
+ HashMap::from([("ed25519".to_owned(), ed25519_key), ("curve25519".to_owned(), curve_key)])244
+ }245
+246
+ /// Get the status of the private cross signing keys.247
+ ///248
+ /// This can be used to check which private cross signing keys we have249
+ /// stored locally.250
+ pub fn cross_signing_status(&self) -> CrossSigningStatus {251
+ self.runtime.block_on(self.inner.cross_signing_status()).into()252
+ }253
+254
+ /// Get a cross signing user identity for the given user ID.255
+ ///256
+ /// # Arguments257
+ ///258
+ /// * `user_id` - The unique id of the user that the identity belongs to259
+ ///260
+ /// * `timeout` - The time in seconds we should wait before returning if the261
+ /// user's device list has been marked as stale. Passing a 0 as the262
+ /// timeout means that we won't wait at all. **Note**, this assumes that263
+ /// the requests from [`OlmMachine::outgoing_requests`] are being264
+ /// processed and sent out. Namely, this waits for a `/keys/query`265
+ /// response to be received.266
+ pub fn get_identity(267
+ &self,268
+ user_id: String,269
+ timeout: u32,270
+ ) -> Result<Option<UserIdentity>, CryptoStoreError> {271
+ let user_id = parse_user_id(&user_id)?;272
+273
+ let timeout = if timeout == 0 { None } else { Some(Duration::from_secs(timeout.into())) };274
+275
+ Ok(276
+ if let Some(identity) =277
+ self.runtime.block_on(self.inner.get_identity(&user_id, timeout))?278
+ {279
+ Some(self.runtime.block_on(UserIdentity::from_rust(identity))?)280
+ } else {281
+ None282
+ },283
+ )284
+ }285
+286
+ /// Check if a user identity is considered to be verified by us.287
+ pub fn is_identity_verified(&self, user_id: String) -> Result<bool, CryptoStoreError> {288
+ let user_id = parse_user_id(&user_id)?;289
+290
+ Ok(291
+ if let Some(identity) =292
+ self.runtime.block_on(self.inner.get_identity(&user_id, None))?293
+ {294
+ identity.is_verified()295
+ } else {296
+ false297
+ },298
+ )299
+ }300
+301
+ /// Manually the user with the given user ID.302
+ ///303
+ /// This method will attempt to sign the user identity using either our304
+ /// private cross signing key, for other user identities, or our device keys305
+ /// for our own user identity.306
+ ///307
+ /// This method can fail if we don't have the private part of our308
+ /// user-signing key.309
+ ///310
+ /// Returns a request that needs to be sent out for the user identity to be311
+ /// marked as verified.312
+ pub fn verify_identity(313
+ &self,314
+ user_id: String,315
+ ) -> Result<SignatureUploadRequest, SignatureError> {316
+ let user_id = UserId::parse(user_id)?;317
+318
+ let user_identity = self.runtime.block_on(self.inner.get_identity(&user_id, None))?;319
+320
+ if let Some(user_identity) = user_identity {321
+ Ok(match user_identity {322
+ SdkUserIdentity::Own(i) => self.runtime.block_on(i.verify())?,323
+ SdkUserIdentity::Other(i) => self.runtime.block_on(i.verify())?,324
+ }325
+ .into())326
+ } else {327
+ Err(SignatureError::UnknownUserIdentity(user_id.to_string()))328
+ }329
+ }330
+331
+ /// Get a `Device` from the store.332
+ ///333
+ /// # Arguments334
+ ///335
+ /// * `user_id` - The id of the device owner.336
+ ///337
+ /// * `device_id` - The id of the device itself.338
+ ///339
+ /// * `timeout` - The time in seconds we should wait before returning if the340
+ /// user's device list has been marked as stale. Passing a 0 as the341
+ /// timeout means that we won't wait at all. **Note**, this assumes that342
+ /// the requests from [`OlmMachine::outgoing_requests`] are being343
+ /// processed and sent out. Namely, this waits for a `/keys/query`344
+ /// response to be received.345
+ pub fn get_device(346
+ &self,347
+ user_id: String,348
+ device_id: String,349
+ timeout: u32,350
+ ) -> Result<Option<Device>, CryptoStoreError> {351
+ let user_id = parse_user_id(&user_id)?;352
+353
+ let timeout = if timeout == 0 { None } else { Some(Duration::from_secs(timeout.into())) };354
+355
+ Ok(self356
+ .runtime357
+ .block_on(self.inner.get_device(&user_id, device_id.as_str().into(), timeout))?358
+ .map(|d| d.into()))359
+ }360
+361
+ /// Manually verify the device of the given user with the given device ID.362
+ ///363
+ /// This method will attempt to sign the device using our private cross364
+ /// signing key.365
+ ///366
+ /// This method will always fail if the device belongs to someone else, we367
+ /// can only sign our own devices.368
+ ///369
+ /// It can also fail if we don't have the private part of our self-signing370
+ /// key.371
+ ///372
+ /// Returns a request that needs to be sent out for the device to be marked373
+ /// as verified.374
+ pub fn verify_device(375
+ &self,376
+ user_id: String,377
+ device_id: String,378
+ ) -> Result<SignatureUploadRequest, SignatureError> {379
+ let user_id = UserId::parse(user_id)?;380
+ let device = self.runtime.block_on(self.inner.get_device(381
+ &user_id,382
+ device_id.as_str().into(),383
+ None,384
+ ))?;385
+386
+ if let Some(device) = device {387
+ Ok(self.runtime.block_on(device.verify())?.into())388
+ } else {389
+ Err(SignatureError::UnknownDevice(user_id, device_id))390
+ }391
+ }392
+393
+ /// Set local trust state for the device of the given user without creating394
+ /// or uploading any signatures if verified395
+ pub fn set_local_trust(396
+ &self,397
+ user_id: String,398
+ device_id: String,399
+ trust_state: LocalTrust,400
+ ) -> Result<(), CryptoStoreError> {401
+ let user_id = parse_user_id(&user_id)?;402
+403
+ let device = self.runtime.block_on(self.inner.get_device(404
+ &user_id,405
+ device_id.as_str().into(),406
+ None,407
+ ))?;408
+409
+ if let Some(device) = device {410
+ self.runtime.block_on(device.set_local_trust(trust_state))?;411
+ }412
+413
+ Ok(())414
+ }415
+416
+ /// Get all devices of an user.417
+ ///418
+ /// # Arguments419
+ ///420
+ /// * `user_id` - The id of the device owner.421
+ ///422
+ /// * `timeout` - The time in seconds we should wait before returning if the423
+ /// user's device list has been marked as stale. Passing a 0 as the424
+ /// timeout means that we won't wait at all. **Note**, this assumes that425
+ /// the requests from [`OlmMachine::outgoing_requests`] are being426
+ /// processed and sent out. Namely, this waits for a `/keys/query`427
+ /// response to be received.428
+ pub fn get_user_devices(429
+ &self,430
+ user_id: String,431
+ timeout: u32,432
+ ) -> Result<Vec<Device>, CryptoStoreError> {433
+ let user_id = parse_user_id(&user_id)?;434
+435
+ let timeout = if timeout == 0 { None } else { Some(Duration::from_secs(timeout.into())) };436
+ Ok(self437
+ .runtime438
+ .block_on(self.inner.get_user_devices(&user_id, timeout))?439
+ .devices()440
+ .map(|d| d.into())441
+ .collect())442
+ }443
+444
+ /// Get the list of outgoing requests that need to be sent to the445
+ /// homeserver.446
+ ///447
+ /// After the request was sent out and a successful response was received448
+ /// the response body should be passed back to the state machine using the449
+ /// [mark_request_as_sent()](Self::mark_request_as_sent) method.450
+ ///451
+ /// **Note**: This method call should be locked per call.452
+ pub fn outgoing_requests(&self) -> Result<Vec<Request>, CryptoStoreError> {453
+ Ok(self454
+ .runtime455
+ .block_on(self.inner.outgoing_requests())?456
+ .into_iter()457
+ .map(|r| r.into())458
+ .collect())459
+ }460
+461
+ /// Mark a request that was sent to the server as sent.462
+ ///463
+ /// # Arguments464
+ ///465
+ /// * `request_id` - The unique ID of the request that was sent out. This466
+ /// needs to be an UUID.467
+ ///468
+ /// * `request_type` - The type of the request that was sent out.469
+ ///470
+ /// * `response_body` - The body of the response that was received.471
+ pub fn mark_request_as_sent(472
+ &self,473
+ request_id: String,474
+ request_type: RequestType,475
+ response_body: String,476
+ ) -> Result<(), CryptoStoreError> {477
+ let id: OwnedTransactionId = request_id.into();478
+479
+ let response = response_from_string(&response_body);480
+481
+ let response: OwnedResponse = match request_type {482
+ RequestType::KeysUpload => {483
+ KeysUploadResponse::try_from_http_response(response).map(Into::into)484
+ }485
+ RequestType::KeysQuery => {486
+ KeysQueryResponse::try_from_http_response(response).map(Into::into)487
+ }488
+ RequestType::ToDevice => {489
+ ToDeviceResponse::try_from_http_response(response).map(Into::into)490
+ }491
+ RequestType::KeysClaim => {492
+ KeysClaimResponse::try_from_http_response(response).map(Into::into)493
+ }494
+ RequestType::SignatureUpload => {495
+ SignatureUploadResponse::try_from_http_response(response).map(Into::into)496
+ }497
+ RequestType::KeysBackup => {498
+ KeysBackupResponse::try_from_http_response(response).map(Into::into)499
+ }500
+ RequestType::RoomMessage => {501
+ RoomMessageResponse::try_from_http_response(response).map(Into::into)502
+ }503
+ }504
+ .expect("Can't convert json string to response");505
+506
+ self.runtime.block_on(self.inner.mark_request_as_sent(&id, &response))?;507
+508
+ Ok(())509
+ }510
+511
+ /// Let the state machine know about E2EE related sync changes that we512
+ /// received from the server.513
+ ///514
+ /// This needs to be called after every sync, ideally before processing515
+ /// any other sync changes.516
+ ///517
+ /// # Arguments518
+ ///519
+ /// * `events` - A serialized array of to-device events we received in the520
+ /// current sync response.521
+ ///522
+ /// * `device_changes` - The list of devices that have changed in some way523
+ /// since the previous sync.524
+ ///525
+ /// * `key_counts` - The map of uploaded one-time key types and counts.526
+ pub fn receive_sync_changes(527
+ &self,528
+ events: String,529
+ device_changes: DeviceLists,530
+ key_counts: HashMap<String, i32>,531
+ unused_fallback_keys: Option<Vec<String>>,532
+ next_batch_token: String,533
+ decryption_settings: &DecryptionSettings,534
+ ) -> Result<SyncChangesResult, CryptoStoreError> {535
+ let to_device: ToDevice = serde_json::from_str(&events)?;536
+ let device_changes: RumaDeviceLists = device_changes.into();537
+ let key_counts: BTreeMap<OneTimeKeyAlgorithm, UInt> = key_counts538
+ .into_iter()539
+ .map(|(k, v)| {540
+ (541
+ OneTimeKeyAlgorithm::from(k),542
+ v.clamp(0, i32::MAX)543
+ .try_into()544
+ .expect("Couldn't convert key counts into an UInt"),545
+ )546
+ })547
+ .collect();548
+549
+ let unused_fallback_keys: Option<Vec<OneTimeKeyAlgorithm>> =550
+ unused_fallback_keys.map(|u| u.into_iter().map(OneTimeKeyAlgorithm::from).collect());551
+552
+ let (to_device_events, room_key_infos) =553
+ self.runtime.block_on(self.inner.receive_sync_changes(554
+ matrix_sdk_crypto::EncryptionSyncChanges {555
+ to_device_events: to_device.events,556
+ changed_devices: &device_changes,557
+ one_time_keys_counts: &key_counts,558
+ unused_fallback_keys: unused_fallback_keys.as_deref(),559
+ next_batch_token: Some(next_batch_token),560
+ },561
+ decryption_settings,562
+ ))?;563
+564
+ let to_device_events = to_device_events565
+ .into_iter()566
+ .map(|event| event.to_raw().json().get().to_owned())567
+ .collect();568
+ let room_key_infos = room_key_infos.into_iter().map(|info| info.into()).collect();569
+570
+ Ok(SyncChangesResult { to_device_events, room_key_infos })571
+ }572
+573
+ /// Add the given list of users to be tracked, triggering a key query574
+ /// request for them.575
+ ///576
+ /// The OlmMachine maintains a list of users whose devices we are keeping577
+ /// track of: these are known as "tracked users". These must be users578
+ /// that we share a room with, so that the server sends us updates for579
+ /// their device lists.580
+ ///581
+ /// *Note*: Only users that aren't already tracked will be considered for an582
+ /// update. It's safe to call this with already tracked users, it won't583
+ /// result in excessive `/keys/query` requests.584
+ ///585
+ /// # Arguments586
+ ///587
+ /// `users` - The users that should be queued up for a key query.588
+ pub fn update_tracked_users(&self, users: Vec<String>) -> Result<(), CryptoStoreError> {589
+ let users: Vec<OwnedUserId> =590
+ users.into_iter().filter_map(|u| UserId::parse(u).ok()).collect();591
+592
+ self.runtime.block_on(self.inner.update_tracked_users(users.iter().map(Deref::deref)))?;593
+594
+ Ok(())595
+ }596
+597
+ /// Check if the given user is considered to be tracked.598
+ ///599
+ /// A user can be marked for tracking using the600
+ /// [`OlmMachine::update_tracked_users()`] method.601
+ pub fn is_user_tracked(&self, user_id: String) -> Result<bool, CryptoStoreError> {602
+ let user_id = parse_user_id(&user_id)?;603
+ Ok(self.runtime.block_on(self.inner.tracked_users())?.contains(&user_id))604
+ }605
+606
+ /// Generate one-time key claiming requests for all the users we are missing607
+ /// sessions for.608
+ ///609
+ /// After the request was sent out and a successful response was received610
+ /// the response body should be passed back to the state machine using the611
+ /// [mark_request_as_sent()](Self::mark_request_as_sent) method.612
+ ///613
+ /// This method should be called every time before a call to614
+ /// [`share_room_key()`](Self::share_room_key) is made.615
+ ///616
+ /// # Arguments617
+ ///618
+ /// * `users` - The list of users for which we would like to establish 1:1619
+ /// Olm sessions for.620
+ pub fn get_missing_sessions(621
+ &self,622
+ users: Vec<String>,623
+ ) -> Result<Option<Request>, CryptoStoreError> {624
+ let users: Vec<OwnedUserId> =625
+ users.into_iter().filter_map(|u| UserId::parse(u).ok()).collect();626
+627
+ Ok(self628
+ .runtime629
+ .block_on(self.inner.get_missing_sessions(users.iter().map(Deref::deref)))?630
+ .map(|r| r.into()))631
+ }632
+633
+ /// Get the stored room settings, such as the encryption algorithm or634
+ /// whether to encrypt only for trusted devices.635
+ ///636
+ /// These settings can be modified via637
+ /// [set_room_algorithm()](Self::set_room_algorithm) and638
+ /// [set_room_only_allow_trusted_devices()](Self::set_room_only_allow_trusted_devices)639
+ /// methods.640
+ pub fn get_room_settings(641
+ &self,642
+ room_id: String,643
+ ) -> Result<Option<RoomSettings>, CryptoStoreError> {644
+ let room_id = RoomId::parse(room_id)?;645
+ let settings = self646
+ .runtime647
+ .block_on(self.inner.store().get_room_settings(&room_id))?648
+ .map(|v| v.try_into())649
+ .transpose()?;650
+ Ok(settings)651
+ }652
+653
+ /// Set the room algorithm used for encrypting messages to one of the654
+ /// available variants655
+ pub fn set_room_algorithm(656
+ &self,657
+ room_id: String,658
+ algorithm: EventEncryptionAlgorithm,659
+ ) -> Result<(), CryptoStoreError> {660
+ let room_id = RoomId::parse(room_id)?;661
+ self.runtime.block_on(async move {662
+ let mut settings =663
+ self.inner.store().get_room_settings(&room_id).await?.unwrap_or_default();664
+ settings.algorithm = algorithm.into();665
+ self.inner666
+ .store()667
+ .save_changes(Changes {668
+ room_settings: HashMap::from([(room_id, settings)]),669
+ ..Default::default()670
+ })671
+ .await?;672
+ Ok(())673
+ })674
+ }675
+676
+ /// Set flag whether this room should encrypt messages for untrusted677
+ /// devices, or whether they should be excluded from the conversation.678
+ ///679
+ /// Note that per-room setting may be overridden by a global680
+ /// [set_only_allow_trusted_devices()](Self::set_only_allow_trusted_devices)681
+ /// method.682
+ pub fn set_room_only_allow_trusted_devices(683
+ &self,684
+ room_id: String,685
+ only_allow_trusted_devices: bool,686
+ ) -> Result<(), CryptoStoreError> {687
+ let room_id = RoomId::parse(room_id)?;688
+ self.runtime.block_on(async move {689
+ let mut settings =690
+ self.inner.store().get_room_settings(&room_id).await?.unwrap_or_default();691
+ settings.only_allow_trusted_devices = only_allow_trusted_devices;692
+ self.inner693
+ .store()694
+ .save_changes(Changes {695
+ room_settings: HashMap::from([(room_id, settings)]),696
+ ..Default::default()697
+ })698
+ .await?;699
+ Ok(())700
+ })701
+ }702
+703
+ /// Check whether there is a global flag to only encrypt messages for704
+ /// trusted devices or for everyone.705
+ ///706
+ /// Note that if the global flag is false, individual rooms may still be707
+ /// encrypting only for trusted devices, depending on the per-room708
+ /// `only_allow_trusted_devices` flag.709
+ pub fn get_only_allow_trusted_devices(&self) -> Result<bool, CryptoStoreError> {710
+ let block = self.runtime.block_on(self.inner.store().get_only_allow_trusted_devices())?;711
+ Ok(block)712
+ }713
+714
+ /// Set global flag whether to encrypt messages for untrusted devices, or715
+ /// whether they should be excluded from the conversation.716
+ ///717
+ /// Note that if enabled, it will override any per-room settings.718
+ pub fn set_only_allow_trusted_devices(719
+ &self,720
+ only_allow_trusted_devices: bool,721
+ ) -> Result<(), CryptoStoreError> {722
+ self.runtime.block_on(723
+ self.inner.store().set_only_allow_trusted_devices(only_allow_trusted_devices),724
+ )?;725
+ Ok(())726
+ }727
+728
+ /// Share a room key with the given list of users for the given room.729
+ ///730
+ /// After the request was sent out and a successful response was received731
+ /// the response body should be passed back to the state machine using the732
+ /// [mark_request_as_sent()](Self::mark_request_as_sent) method.733
+ ///734
+ /// This method should be called every time before a call to735
+ /// [`encrypt()`](Self::encrypt) with the given `room_id` is made.736
+ ///737
+ /// # Arguments738
+ ///739
+ /// * `room_id` - The unique id of the room, note that this doesn't strictly740
+ /// need to be a Matrix room, it just needs to be an unique identifier for741
+ /// the group that will participate in the conversation.742
+ ///743
+ /// * `users` - The list of users which are considered to be members of the744
+ /// room and should receive the room key.745
+ ///746
+ /// * `settings` - The settings that should be used for the room key.747
+ pub fn share_room_key(748
+ &self,749
+ room_id: String,750
+ users: Vec<String>,751
+ settings: EncryptionSettings,752
+ ) -> Result<Vec<Request>, CryptoStoreError> {753
+ let users: Vec<OwnedUserId> =754
+ users.into_iter().filter_map(|u| UserId::parse(u).ok()).collect();755
+756
+ let room_id = RoomId::parse(room_id)?;757
+ let requests = self.runtime.block_on(self.inner.share_room_key(758
+ &room_id,759
+ users.iter().map(Deref::deref),760
+ settings,761
+ ))?;762
+763
+ Ok(requests.into_iter().map(|r| r.as_ref().into()).collect())764
+ }765
+766
+ /// Encrypt the given event with the given type and content for the given767
+ /// room.768
+ ///769
+ /// **Note**: A room key needs to be shared with the group of users that are770
+ /// members in the given room. If this is not done this method will panic.771
+ ///772
+ /// The usual flow to encrypt an event using this state machine is as773
+ /// follows:774
+ ///775
+ /// 1. Get the one-time key claim request to establish 1:1 Olm sessions for776
+ /// the room members of the room we wish to participate in. This is done777
+ /// using the [`get_missing_sessions()`](Self::get_missing_sessions)778
+ /// method. This method call should be locked per call.779
+ ///780
+ /// 2. Share a room key with all the room members using the781
+ /// [`share_room_key()`](Self::share_room_key). This method call should782
+ /// be locked per room.783
+ ///784
+ /// 3. Encrypt the event using this method.785
+ ///786
+ /// 4. Send the encrypted event to the server.787
+ ///788
+ /// After the room key is shared steps 1 and 2 will become noops, unless789
+ /// there's some changes in the room membership or in the list of devices a790
+ /// member has.791
+ ///792
+ /// # Arguments793
+ ///794
+ /// * `room_id` - The unique id of the room where the event will be sent to.795
+ ///796
+ /// * `even_type` - The type of the event.797
+ ///798
+ /// * `content` - The serialized content of the event.799
+ pub fn encrypt(800
+ &self,801
+ room_id: String,802
+ event_type: String,803
+ content: String,804
+ ) -> Result<String, CryptoStoreError> {805
+ let room_id = RoomId::parse(room_id)?;806
+ let content = serde_json::from_str(&content)?;807
+808
+ let result = self809
+ .runtime810
+ .block_on(self.inner.encrypt_room_event_raw(&room_id, &event_type, &content))811
+ .expect("Encrypting an event produced an error");812
+813
+ Ok(serde_json::to_string(&result.content)?)814
+ }815
+816
+ /// Encrypt the given event with the given type and content for the given817
+ /// device. This method is used to send an event to a specific device.818
+ ///819
+ /// # Arguments820
+ ///821
+ /// * `user_id` - The ID of the user who owns the target device.822
+ /// * `device_id` - The ID of the device to which the message will be sent.823
+ /// * `event_type` - The event type.824
+ /// * `content` - The serialized content of the event.825
+ ///826
+ /// # Returns827
+ /// A `Result` containing the request to be sent out if the encryption was828
+ /// successful. If the device is not found, the result will be `Ok(None)`.829
+ ///830
+ /// The caller should ensure that there is an olm session (see831
+ /// `get_missing_sessions`) with the target device before calling this832
+ /// method.833
+ pub fn create_encrypted_to_device_request(834
+ &self,835
+ user_id: String,836
+ device_id: String,837
+ event_type: String,838
+ content: String,839
+ share_strategy: CollectStrategy,840
+ ) -> Result<Option<Request>, CryptoStoreError> {841
+ let user_id = parse_user_id(&user_id)?;842
+ let device_id = device_id.as_str().into();843
+ let content = serde_json::from_str(&content)?;844
+845
+ let device = self.runtime.block_on(self.inner.get_device(&user_id, device_id, None))?;846
+847
+ if let Some(device) = device {848
+ let encrypted_content = self.runtime.block_on(device.encrypt_event_raw(849
+ &event_type,850
+ &content,851
+ share_strategy,852
+ ))?;853
+854
+ let request = ToDeviceRequest::new(855
+ user_id.as_ref(),856
+ DeviceIdOrAllDevices::DeviceId(device_id.to_owned()),857
+ "m.room.encrypted",858
+ encrypted_content.cast(),859
+ );860
+861
+ Ok(Some(request.into()))862
+ } else {863
+ Ok(None)864
+ }865
+ }866
+867
+ /// Decrypt the given event that was sent in the given room.868
+ ///869
+ /// # Arguments870
+ ///871
+ /// * `event` - The serialized encrypted version of the event.872
+ ///873
+ /// * `room_id` - The unique id of the room where the event was sent to.874
+ ///875
+ /// * `handle_verification_events` - if the supplied event is a verification876
+ /// event, use it to update the verification state. **Note**: it is877
+ /// recommended to avoid setting this flag to true and use the explicit878
+ /// [`OlmMachine::receive_verification_event`] method instead:879
+ /// verification events sometimes need preparation before we can handle880
+ /// them: see the documentation for881
+ /// [`OlmMachine::receive_verification_event`].882
+ ///883
+ /// * `strict_shields` - If `true`, messages will be decorated with strict884
+ /// warnings (use `false` to match legacy behaviour where unsafe keys have885
+ /// lower severity warnings and unverified identities are not decorated).886
+ ///887
+ /// * `decryption_settings` - The setting for decrypting messages.888
+ pub fn decrypt_room_event(889
+ &self,890
+ event: String,891
+ room_id: String,892
+ handle_verification_events: bool,893
+ strict_shields: bool,894
+ decryption_settings: DecryptionSettings,895
+ ) -> Result<DecryptedEvent, DecryptionError> {896
+ // Element Android wants only the content and the type and will create a897
+ // decrypted event with those two itself, this struct makes sure we898
+ // throw away all the other fields.899
+ #[derive(Deserialize, Serialize)]900
+ struct Event<'a> {901
+ #[serde(rename = "type")]902
+ event_type: String,903
+ #[serde(borrow)]904
+ content: &'a RawValue,905
+ }906
+907
+ let event: Raw<_> = serde_json::from_str(&event)?;908
+ let room_id = RoomId::parse(room_id)?;909
+910
+ let decrypted = self.runtime.block_on(self.inner.decrypt_room_event(911
+ &event,912
+ &room_id,913
+ &decryption_settings,914
+ ))?;915
+916
+ if handle_verification_events917
+ && let Ok(AnyTimelineEvent::MessageLike(e)) = decrypted.event.deserialize()918
+ {919
+ match &e {920
+ AnyMessageLikeEvent::RoomMessage(MessageLikeEvent::Original(original_event)) => {921
+ if let MessageType::VerificationRequest(_) = &original_event.content.msgtype {922
+ self.runtime.block_on(self.inner.receive_verification_event(&e))?;923
+ }924
+ }925
+ _ if e.event_type().to_string().starts_with("m.key.verification") => {926
+ self.runtime.block_on(self.inner.receive_verification_event(&e))?;927
+ }928
+ _ => (),929
+ }930
+ }931
+932
+ let encryption_info = decrypted.encryption_info;933
+934
+ let event_json: Event<'_> = serde_json::from_str(decrypted.event.json().get())?;935
+936
+ Ok(match &encryption_info.algorithm_info {937
+ AlgorithmInfo::MegolmV1AesSha2 {938
+ curve25519_key,939
+ sender_claimed_keys,940
+ session_id: _,941
+ } => DecryptedEvent {942
+ clear_event: serde_json::to_string(&event_json)?,943
+ sender_curve25519_key: curve25519_key.to_owned(),944
+ claimed_ed25519_key: sender_claimed_keys.get(&DeviceKeyAlgorithm::Ed25519).cloned(),945
+ forwarding_curve25519_chain: vec![],946
+ shield_state: if strict_shields {947
+ encryption_info.verification_state.to_shield_state_strict().into()948
+ } else {949
+ encryption_info.verification_state.to_shield_state_lax().into()950
+ },951
+ },952
+ AlgorithmInfo::OlmV1Curve25519AesSha2 { .. } => {953
+ // cannot happen because `decrypt_room_event` would have fail to decrypt olm for954
+ // a room (EventError::UnsupportedAlgorithm)955
+ panic!("Unsupported olm algorithm in room")956
+ }957
+ })958
+ }959
+960
+ /// Request or re-request a room key that was used to encrypt the given961
+ /// event.962
+ ///963
+ /// # Arguments964
+ ///965
+ /// * `event` - The undecryptable event that we would wish to request a room966
+ /// key for.967
+ ///968
+ /// * `room_id` - The id of the room the event was sent to.969
+ pub fn request_room_key(970
+ &self,971
+ event: String,972
+ room_id: String,973
+ ) -> Result<KeyRequestPair, DecryptionError> {974
+ let event: Raw<_> = serde_json::from_str(&event)?;975
+ let room_id = RoomId::parse(room_id)?;976
+977
+ let (cancel, request) =978
+ self.runtime.block_on(self.inner.request_room_key(&event, &room_id))?;979
+980
+ let cancellation = cancel.map(|r| r.into());981
+ let key_request = request.into();982
+983
+ Ok(KeyRequestPair { cancellation, key_request })984
+ }985
+986
+ /// Export all of our room keys.987
+ ///988
+ /// # Arguments989
+ ///990
+ /// * `passphrase` - The passphrase that should be used to encrypt the key991
+ /// export.992
+ ///993
+ /// * `rounds` - The number of rounds that should be used when expanding the994
+ /// passphrase into an key.995
+ pub fn export_room_keys(996
+ &self,997
+ passphrase: String,998
+ rounds: i32,999
+ ) -> Result<String, CryptoStoreError> {1000
+ let keys = self.runtime.block_on(self.inner.store().export_room_keys(|_| true))?;1001
+1002
+ let encrypted = encrypt_room_key_export(&keys, &passphrase, rounds as u32)1003
+ .map_err(CryptoStoreError::Serialization)?;1004
+1005
+ Ok(encrypted)1006
+ }1007
+1008
+ /// Import room keys from the given serialized key export.1009
+ ///1010
+ /// # Arguments1011
+ ///1012
+ /// * `keys` - The serialized version of the key export.1013
+ ///1014
+ /// * `passphrase` - The passphrase that was used to encrypt the key export.1015
+ ///1016
+ /// * `progress_listener` - A callback that can be used to introspect the1017
+ /// progress of the key import.1018
+ pub fn import_room_keys(1019
+ &self,1020
+ keys: String,1021
+ passphrase: String,1022
+ progress_listener: Box<dyn ProgressListener>,1023
+ ) -> Result<KeysImportResult, KeyImportError> {1024
+ let keys = Cursor::new(keys);1025
+ let keys = decrypt_room_key_export(keys, &passphrase)?;1026
+ self.import_room_keys_helper(keys, None, progress_listener)1027
+ }1028
+1029
+ /// Import room keys from the given serialized unencrypted key export.1030
+ ///1031
+ /// This method is the same as [`OlmMachine::import_room_keys`] but the1032
+ /// decryption step is skipped and should be performed by the caller. This1033
+ /// should be used if the room keys are coming from the server-side backup,1034
+ /// the method will mark all imported room keys as backed up.1035
+ ///1036
+ /// **Note**: This has been deprecated. Use1037
+ /// [`OlmMachine::import_room_keys_from_backup`] instead.1038
+ ///1039
+ /// # Arguments1040
+ ///1041
+ /// * `keys` - The serialized version of the unencrypted key export.1042
+ ///1043
+ /// * `progress_listener` - A callback that can be used to introspect the1044
+ /// progress of the key import.1045
+ pub fn import_decrypted_room_keys(1046
+ &self,1047
+ keys: String,1048
+ progress_listener: Box<dyn ProgressListener>,1049
+ ) -> Result<KeysImportResult, KeyImportError> {1050
+ // Assume that the keys came from the current backup version.1051
+ let backup_version = self.runtime.block_on(self.inner.backup_machine().backup_version());1052
+ let keys: Vec<Value> = serde_json::from_str(&keys)?;1053
+ let keys = keys.into_iter().map(serde_json::from_value).filter_map(|k| k.ok()).collect();1054
+ self.import_room_keys_helper(keys, backup_version.as_deref(), progress_listener)1055
+ }1056
+1057
+ /// Import room keys from the given serialized unencrypted key export.1058
+ ///1059
+ /// This method is the same as [`OlmMachine::import_room_keys`] but the1060
+ /// decryption step is skipped and should be performed by the caller. This1061
+ /// should be used if the room keys are coming from the server-side backup.1062
+ /// The method will mark all imported room keys as backed up.1063
+ ///1064
+ /// # Arguments1065
+ ///1066
+ /// * `keys` - The serialized version of the unencrypted key export.1067
+ ///1068
+ /// * `backup_version` - The version of the backup that these keys came1069
+ /// from.1070
+ ///1071
+ /// * `progress_listener` - A callback that can be used to introspect the1072
+ /// progress of the key import.1073
+ pub fn import_room_keys_from_backup(1074
+ &self,1075
+ keys: String,1076
+ backup_version: String,1077
+ progress_listener: Box<dyn ProgressListener>,1078
+ ) -> Result<KeysImportResult, KeyImportError> {1079
+ let keys: Vec<Value> = serde_json::from_str(&keys)?;1080
+ let keys = keys.into_iter().map(serde_json::from_value).filter_map(|k| k.ok()).collect();1081
+ self.import_room_keys_helper(keys, Some(&backup_version), progress_listener)1082
+ }1083
+1084
+ /// Discard the currently active room key for the given room if there is1085
+ /// one.1086
+ pub fn discard_room_key(&self, room_id: String) -> Result<(), CryptoStoreError> {1087
+ let room_id = RoomId::parse(room_id)?;1088
+1089
+ self.runtime.block_on(self.inner.discard_room_key(&room_id))?;1090
+1091
+ Ok(())1092
+ }1093
+1094
+ /// Receive an unencrypted verification event.1095
+ ///1096
+ /// This method can be used to pass verification events that are happening1097
+ /// in unencrypted rooms to the `OlmMachine`.1098
+ ///1099
+ /// **Note**: This has been deprecated.1100
+ pub fn receive_unencrypted_verification_event(1101
+ &self,1102
+ event: String,1103
+ room_id: String,1104
+ ) -> Result<(), CryptoStoreError> {1105
+ self.receive_verification_event(event, room_id)1106
+ }1107
+1108
+ /// Receive a verification event.1109
+ ///1110
+ /// This method can be used to pass verification events that are happening1111
+ /// in rooms to the `OlmMachine`. The event should be in the decrypted form.1112
+ ///1113
+ /// **Note**: If the supplied event is an `m.room.message` event with1114
+ /// `msgtype: m.key.verification.request`, then the device information for1115
+ /// the sending user must be up-to-date before calling this method1116
+ /// (otherwise, the request will be ignored). It is hard to guarantee this1117
+ /// is the case, but you can maximize your chances by explicitly making a1118
+ /// request to /keys/query for the user's device info, and processing the1119
+ /// response with [`OlmMachine::mark_request_as_sent`].1120
+ pub fn receive_verification_event(1121
+ &self,1122
+ event: String,1123
+ room_id: String,1124
+ ) -> Result<(), CryptoStoreError> {1125
+ let room_id = RoomId::parse(room_id)?;1126
+ let event: AnySyncMessageLikeEvent = serde_json::from_str(&event)?;1127
+1128
+ let event = event.into_full_event(room_id);1129
+1130
+ self.runtime.block_on(self.inner.receive_verification_event(&event))?;1131
+1132
+ Ok(())1133
+ }1134
+1135
+ /// Get all the verification requests that we share with the given user.1136
+ ///1137
+ /// # Arguments1138
+ ///1139
+ /// * `user_id` - The ID of the user for which we would like to fetch the1140
+ /// verification requests.1141
+ pub fn get_verification_requests(&self, user_id: String) -> Vec<Arc<VerificationRequest>> {1142
+ let Ok(user_id) = UserId::parse(user_id) else {1143
+ return vec![];1144
+ };1145
+1146
+ self.inner1147
+ .get_verification_requests(&user_id)1148
+ .into_iter()1149
+ .map(|v| {1150
+ VerificationRequest { inner: v, runtime: self.runtime.handle().to_owned() }.into()1151
+ })1152
+ .collect()1153
+ }1154
+1155
+ /// Get a verification requests that we share with the given user with the1156
+ /// given flow id.1157
+ ///1158
+ /// # Arguments1159
+ ///1160
+ /// * `user_id` - The ID of the user for which we would like to fetch the1161
+ /// verification requests.1162
+ ///1163
+ /// * `flow_id` - The ID that uniquely identifies the verification flow.1164
+ pub fn get_verification_request(1165
+ &self,1166
+ user_id: String,1167
+ flow_id: String,1168
+ ) -> Option<Arc<VerificationRequest>> {1169
+ let user_id = UserId::parse(user_id).ok()?;1170
+1171
+ self.inner.get_verification_request(&user_id, flow_id).map(|v| {1172
+ VerificationRequest { inner: v, runtime: self.runtime.handle().to_owned() }.into()1173
+ })1174
+ }1175
+1176
+ /// Get an m.key.verification.request content for the given user.1177
+ ///1178
+ /// # Arguments1179
+ ///1180
+ /// * `user_id` - The ID of the user which we would like to request to1181
+ /// verify.1182
+ ///1183
+ /// * `methods` - The list of verification methods we want to advertise to1184
+ /// support.1185
+ pub fn verification_request_content(1186
+ &self,1187
+ user_id: String,1188
+ methods: Vec<String>,1189
+ ) -> Result<Option<String>, CryptoStoreError> {1190
+ let user_id = parse_user_id(&user_id)?;1191
+1192
+ let identity = self.runtime.block_on(self.inner.get_identity(&user_id, None))?;1193
+1194
+ let methods = methods.into_iter().map(VerificationMethod::from).collect();1195
+1196
+ Ok(if let Some(identity) = identity.and_then(|i| i.other()) {1197
+ let content = identity.verification_request_content(Some(methods));1198
+ Some(serde_json::to_string(&content)?)1199
+ } else {1200
+ None1201
+ })1202
+ }1203
+1204
+ /// Request a verification flow to begin with the given user in the given1205
+ /// room.1206
+ ///1207
+ /// # Arguments1208
+ ///1209
+ /// * `user_id` - The ID of the user which we would like to request to1210
+ /// verify.1211
+ ///1212
+ /// * `room_id` - The ID of the room that represents a DM with the given1213
+ /// user.1214
+ ///1215
+ /// * `event_id` - The event ID of the `m.key.verification.request` event1216
+ /// that we sent out to request the verification to begin. The content for1217
+ /// this request can be created using the [verification_request_content()]1218
+ /// method.1219
+ ///1220
+ /// * `methods` - The list of verification methods we advertised as1221
+ /// supported in the `m.key.verification.request` event.1222
+ ///1223
+ /// [verification_request_content()]: Self::verification_request_content1224
+ pub fn request_verification(1225
+ &self,1226
+ user_id: String,1227
+ room_id: String,1228
+ event_id: String,1229
+ methods: Vec<String>,1230
+ ) -> Result<Option<Arc<VerificationRequest>>, CryptoStoreError> {1231
+ let user_id = parse_user_id(&user_id)?;1232
+ let event_id = EventId::parse(event_id)?;1233
+ let room_id = RoomId::parse(room_id)?;1234
+1235
+ let identity = self.runtime.block_on(self.inner.get_identity(&user_id, None))?;1236
+1237
+ let methods = methods.into_iter().map(VerificationMethod::from).collect();1238
+1239
+ Ok(if let Some(identity) = identity.and_then(|i| i.other()) {1240
+ let request = identity.request_verification(&room_id, &event_id, Some(methods));1241
+1242
+ Some(1243
+ VerificationRequest { inner: request, runtime: self.runtime.handle().to_owned() }1244
+ .into(),1245
+ )1246
+ } else {1247
+ None1248
+ })1249
+ }1250
+1251
+ /// Request a verification flow to begin with the given user's device.1252
+ ///1253
+ /// # Arguments1254
+ ///1255
+ /// * `user_id` - The ID of the user which we would like to request to1256
+ /// verify.1257
+ ///1258
+ /// * `device_id` - The ID of the device that we wish to verify.1259
+ ///1260
+ /// * `methods` - The list of verification methods we advertised as1261
+ /// supported in the `m.key.verification.request` event.1262
+ pub fn request_verification_with_device(1263
+ &self,1264
+ user_id: String,1265
+ device_id: String,1266
+ methods: Vec<String>,1267
+ ) -> Result<Option<RequestVerificationResult>, CryptoStoreError> {1268
+ let user_id = parse_user_id(&user_id)?;1269
+ let device_id = device_id.as_str().into();1270
+1271
+ let methods = methods.into_iter().map(VerificationMethod::from).collect();1272
+1273
+ Ok(1274
+ if let Some(device) =1275
+ self.runtime.block_on(self.inner.get_device(&user_id, device_id, None))?1276
+ {1277
+ let (verification, request) = device.request_verification_with_methods(methods);1278
+1279
+ Some(RequestVerificationResult {1280
+ verification: VerificationRequest {1281
+ inner: verification,1282
+ runtime: self.runtime.handle().to_owned(),1283
+ }1284
+ .into(),1285
+ request: request.into(),1286
+ })1287
+ } else {1288
+ None1289
+ },1290
+ )1291
+ }1292
+1293
+ /// Request a verification flow to begin with our other devices.1294
+ ///1295
+ /// # Arguments1296
+ ///1297
+ /// `methods` - The list of verification methods we want to advertise to1298
+ /// support.1299
+ pub fn request_self_verification(1300
+ &self,1301
+ methods: Vec<String>,1302
+ ) -> Result<Option<RequestVerificationResult>, CryptoStoreError> {1303
+ let identity =1304
+ self.runtime.block_on(self.inner.get_identity(self.inner.user_id(), None))?;1305
+1306
+ let methods = methods.into_iter().map(VerificationMethod::from).collect();1307
+1308
+ Ok(if let Some(identity) = identity.and_then(|i| i.own()) {1309
+ let (verification, request) =1310
+ self.runtime.block_on(identity.request_verification_with_methods(methods))?;1311
+ Some(RequestVerificationResult {1312
+ verification: VerificationRequest {1313
+ inner: verification,1314
+ runtime: self.runtime.handle().to_owned(),1315
+ }1316
+ .into(),1317
+ request: request.into(),1318
+ })1319
+ } else {1320
+ None1321
+ })1322
+ }1323
+1324
+ /// Get a verification flow object for the given user with the given flow1325
+ /// id.1326
+ ///1327
+ /// # Arguments1328
+ ///1329
+ /// * `user_id` - The ID of the user for which we would like to fetch the1330
+ /// verification.1331
+ ///1332
+ /// * `flow_id` - The ID that uniquely identifies the verification flow.1333
+ pub fn get_verification(&self, user_id: String, flow_id: String) -> Option<Arc<Verification>> {1334
+ let user_id = UserId::parse(user_id).ok()?;1335
+1336
+ self.inner1337
+ .get_verification(&user_id, &flow_id)1338
+ .map(|v| Verification { inner: v, runtime: self.runtime.handle().to_owned() }.into())1339
+ }1340
+1341
+ /// Start short auth string verification with a device without going1342
+ /// through a verification request first.1343
+ ///1344
+ /// **Note**: This has been largely deprecated and the1345
+ /// [request_verification_with_device()] method should be used instead.1346
+ ///1347
+ /// # Arguments1348
+ ///1349
+ /// * `user_id` - The ID of the user for which we would like to start the1350
+ /// SAS verification.1351
+ ///1352
+ /// * `device_id` - The ID of device we would like to verify.1353
+ ///1354
+ /// [request_verification_with_device()]: Self::request_verification_with_device1355
+ pub fn start_sas_with_device(1356
+ &self,1357
+ user_id: String,1358
+ device_id: String,1359
+ ) -> Result<Option<StartSasResult>, CryptoStoreError> {1360
+ let user_id = parse_user_id(&user_id)?;1361
+ let device_id = device_id.as_str().into();1362
+1363
+ Ok(1364
+ if let Some(device) =1365
+ self.runtime.block_on(self.inner.get_device(&user_id, device_id, None))?1366
+ {1367
+ let (sas, request) = self.runtime.block_on(device.start_verification())?;1368
+1369
+ Some(StartSasResult {1370
+ sas: Sas { inner: Box::new(sas), runtime: self.runtime.handle().to_owned() }1371
+ .into(),1372
+ request: request.into(),1373
+ })1374
+ } else {1375
+ None1376
+ },1377
+ )1378
+ }1379
+1380
+ /// Create a new private cross signing identity and create a request to1381
+ /// upload the public part of it to the server.1382
+ pub fn bootstrap_cross_signing(&self) -> Result<BootstrapCrossSigningResult, CryptoStoreError> {1383
+ Ok(self.runtime.block_on(self.inner.bootstrap_cross_signing(true))?.into())1384
+ }1385
+1386
+ /// Export all our private cross signing keys.1387
+ ///1388
+ /// The export will contain the seed for the ed25519 keys as a base641389
+ /// encoded string.1390
+ ///1391
+ /// This method returns `None` if we don't have any private cross signing1392
+ /// keys.1393
+ pub fn export_cross_signing_keys(1394
+ &self,1395
+ ) -> Result<Option<CrossSigningKeyExport>, CryptoStoreError> {1396
+ Ok(self.runtime.block_on(self.inner.export_cross_signing_keys())?.map(|e| e.into()))1397
+ }1398
+1399
+ /// Import our private cross signing keys.1400
+ ///1401
+ /// The export needs to contain the seed for the ed25519 keys as a base641402
+ /// encoded string.1403
+ pub fn import_cross_signing_keys(1404
+ &self,1405
+ export: CrossSigningKeyExport,1406
+ ) -> Result<(), SecretImportError> {1407
+ self.runtime.block_on(self.inner.import_cross_signing_keys(export.into()))?;1408
+1409
+ Ok(())1410
+ }1411
+1412
+ /// Export all the secrets we have in the store into a serialized1413
+ /// SecretsBundle.1414
+ ///1415
+ /// This method will export all the private cross-signing keys and, if1416
+ /// available, the private part of a backup key and its accompanying1417
+ /// version.1418
+ ///1419
+ /// The method will fail if we don't have all three private cross-signing1420
+ /// keys available.1421
+ ///1422
+ /// **Warning**: Only export this and share it with a trusted recipient,1423
+ /// i.e. if an existing device is sharing this with a new device.1424
+ pub fn export_secrets_bundle(&self) -> Result<String, SecretsBundleExportError> {1425
+ let bundle = self.runtime.block_on(self.inner.store().export_secrets_bundle())?;1426
+1427
+ Ok(serde_json::to_string(&bundle)?)1428
+ }1429
+1430
+ /// Request missing local secrets from our devices (cross signing private1431
+ /// keys, megolm backup). This will ask the sdk to create outgoing1432
+ /// request to get the missing secrets.1433
+ ///1434
+ /// The requests will be processed as soon as `outgoing_requests()` is1435
+ /// called to process them.1436
+ pub fn query_missing_secrets_from_other_sessions(&self) -> Result<bool, CryptoStoreError> {1437
+ Ok(self.runtime.block_on(self.inner.query_missing_secrets_from_other_sessions())?)1438
+ }1439
+1440
+ /// Activate the given backup key to be used with the given backup version.1441
+ ///1442
+ /// **Warning**: The caller needs to make sure that the given `BackupKey` is1443
+ /// trusted, otherwise we might be encrypting room keys that a malicious1444
+ /// party could decrypt.1445
+ ///1446
+ /// The [`OlmMachine::verify_backup`] method can be used to so.1447
+ pub fn enable_backup_v1(1448
+ &self,1449
+ key: MegolmV1BackupKey,1450
+ version: String,1451
+ ) -> Result<(), DecodeError> {1452
+ let backup_key = RustBackupKey::from_base64(&key.public_key)?;1453
+ backup_key.set_version(version);1454
+1455
+ self.runtime.block_on(self.inner.backup_machine().enable_backup_v1(backup_key))?;1456
+1457
+ Ok(())1458
+ }1459
+1460
+ /// Are we able to encrypt room keys.1461
+ ///1462
+ /// This returns true if we have an active `BackupKey` and backup version1463
+ /// registered with the state machine.1464
+ pub fn backup_enabled(&self) -> bool {1465
+ self.runtime.block_on(self.inner.backup_machine().enabled())1466
+ }1467
+1468
+ /// Disable and reset our backup state.1469
+ ///1470
+ /// This will remove any pending backup request, remove the backup key and1471
+ /// reset the backup state of each room key we have.1472
+ pub fn disable_backup(&self) -> Result<(), CryptoStoreError> {1473
+ Ok(self.runtime.block_on(self.inner.backup_machine().disable_backup())?)1474
+ }1475
+1476
+ /// Encrypt a batch of room keys and return a request that needs to be sent1477
+ /// out to backup the room keys.1478
+ pub fn backup_room_keys(&self) -> Result<Option<Request>, CryptoStoreError> {1479
+ let request = self.runtime.block_on(self.inner.backup_machine().backup())?;1480
+1481
+ let request = request.map(|r| r.into());1482
+1483
+ Ok(request)1484
+ }1485
+1486
+ /// Get the number of backed up room keys and the total number of room keys.1487
+ pub fn room_key_counts(&self) -> Result<RoomKeyCounts, CryptoStoreError> {1488
+ Ok(self.runtime.block_on(self.inner.backup_machine().room_key_counts())?.into())1489
+ }1490
+1491
+ /// Store the recovery key in the crypto store.1492
+ ///1493
+ /// This is useful if the client wants to support gossiping of the backup1494
+ /// key.1495
+ pub fn save_recovery_key(1496
+ &self,1497
+ key: Option<Arc<BackupRecoveryKey>>,1498
+ version: Option<String>,1499
+ ) -> Result<(), CryptoStoreError> {1500
+ let key = key.map(|k| {1501
+ // We need to clone here due to FFI limitations but RecoveryKey does1502
+ // not want to expose clone since it's private key material.1503
+ let mut encoded = k.to_base64();1504
+ let key = BackupDecryptionKey::from_base64(&encoded)1505
+ .expect("Encoding and decoding from base64 should always work");1506
+ encoded.zeroize();1507
+ key1508
+ });1509
+ Ok(self.runtime.block_on(self.inner.backup_machine().save_decryption_key(key, version))?)1510
+ }1511
+1512
+ /// Get the backup keys we have saved in our crypto store.1513
+ pub fn get_backup_keys(&self) -> Result<Option<Arc<BackupKeys>>, CryptoStoreError> {1514
+ Ok(self1515
+ .runtime1516
+ .block_on(self.inner.backup_machine().get_backup_keys())?1517
+ .try_into()1518
+ .ok()1519
+ .map(Arc::new))1520
+ }1521
+1522
+ /// Sign the given message using our device key and if available cross1523
+ /// signing master key.1524
+ pub fn sign(1525
+ &self,1526
+ message: String,1527
+ ) -> Result<HashMap<String, HashMap<String, String>>, CryptoStoreError> {1528
+ Ok(self1529
+ .runtime1530
+ .block_on(self.inner.sign(&message))?1531
+ .into_iter()1532
+ .map(|(k, v)| {1533
+ (1534
+ k.to_string(),1535
+ v.into_iter()1536
+ .map(|(k, v)| {1537
+ (1538
+ k.to_string(),1539
+ match v {1540
+ Ok(s) => s.to_base64(),1541
+ Err(i) => i.source,1542
+ },1543
+ )1544
+ })1545
+ .collect(),1546
+ )1547
+ })1548
+ .collect())1549
+ }1550
+1551
+ /// Check if the given backup has been verified by us or by another of our1552
+ /// devices that we trust.1553
+ ///1554
+ /// The `backup_info` should be a JSON encoded object with the following1555
+ /// format:1556
+ ///1557
+ /// ```json1558
+ /// {1559
+ /// "algorithm": "m.megolm_backup.v1.curve25519-aes-sha2",1560
+ /// "auth_data": {1561
+ /// "public_key":"XjhWTCjW7l59pbfx9tlCBQolfnIQWARoKOzjTOPSlWM",1562
+ /// "signatures": {}1563
+ /// }1564
+ /// }1565
+ /// ```1566
+ pub fn verify_backup(1567
+ &self,1568
+ backup_info: String,1569
+ ) -> Result<SignatureVerification, CryptoStoreError> {1570
+ let backup_info = serde_json::from_str(&backup_info)?;1571
+1572
+ Ok(self1573
+ .runtime1574
+ .block_on(self.inner.backup_machine().verify_backup(backup_info, false))?1575
+ .into())1576
+ }1577
+1578
+ /// Manage dehydrated devices.1579
+ pub fn dehydrated_devices(&self) -> Arc<DehydratedDevices> {1580
+ DehydratedDevices {1581
+ inner: ManuallyDrop::new(self.inner.dehydrated_devices()),1582
+ runtime: self.runtime.handle().to_owned(),1583
+ }1584
+ .into()1585
+ }1586
+}1587
+1588
+impl OlmMachine {1589
+ fn import_room_keys_helper(1590
+ &self,1591
+ keys: Vec<ExportedRoomKey>,1592
+ from_backup_version: Option<&str>,1593
+ progress_listener: Box<dyn ProgressListener>,1594
+ ) -> Result<KeysImportResult, KeyImportError> {1595
+ let listener = |progress: usize, total: usize| {1596
+ progress_listener.on_progress(progress as i32, total as i32)1597
+ };1598
+1599
+ let result = self.runtime.block_on(self.inner.store().import_room_keys(1600
+ keys,1601
+ from_backup_version,1602
+ listener,1603
+ ))?;1604
+1605
+ Ok(KeysImportResult {1606
+ imported: result.imported_count as i64,1607
+ total: result.total_count as i64,1608
+ keys: result1609
+ .keys1610
+ .into_iter()1611
+ .map(|(r, m)| {1612
+ (1613
+ r.to_string(),1614
+ m.into_iter().map(|(s, k)| (s, k.into_iter().collect())).collect(),1615
+ )1616
+ })1617
+ .collect(),1618
+ })1619
+ }1620
+}@@ -0,0 +1,356 @@
1
+#![allow(missing_docs)]2
+3
+use std::collections::HashMap;4
+5
+use http::Response;6
+use matrix_sdk_crypto::{7
+ CrossSigningBootstrapRequests,8
+ types::requests::{9
+ AnyIncomingResponse, KeysBackupRequest, OutgoingRequest,10
+ OutgoingVerificationRequest as SdkVerificationRequest, RoomMessageRequest, ToDeviceRequest,11
+ UploadSigningKeysRequest as RustUploadSigningKeysRequest,12
+ },13
+};14
+use ruma::{15
+ OwnedTransactionId, UserId,16
+ api::client::{17
+ backup::add_backup_keys::v3::Response as KeysBackupResponse,18
+ keys::{19
+ claim_keys::v3::{Request as KeysClaimRequest, Response as KeysClaimResponse},20
+ get_keys::v3::Response as KeysQueryResponse,21
+ upload_keys::v3::Response as KeysUploadResponse,22
+ upload_signatures::v3::{23
+ Request as RustSignatureUploadRequest, Response as SignatureUploadResponse,24
+ },25
+ },26
+ message::send_message_event::v3::Response as RoomMessageResponse,27
+ sync::sync_events::DeviceLists as RumaDeviceLists,28
+ to_device::send_event_to_device::v3::Response as ToDeviceResponse,29
+ },30
+ assign,31
+ events::MessageLikeEventContent,32
+};33
+use serde_json::json;34
+35
+#[derive(uniffi::Record)]36
+pub struct SignatureUploadRequest {37
+ pub body: String,38
+}39
+40
+impl From<RustSignatureUploadRequest> for SignatureUploadRequest {41
+ fn from(r: RustSignatureUploadRequest) -> Self {42
+ Self {43
+ body: serde_json::to_string(&r.signed_keys)44
+ .expect("Can't serialize signature upload request"),45
+ }46
+ }47
+}48
+49
+#[derive(uniffi::Record)]50
+pub struct UploadSigningKeysRequest {51
+ pub master_key: String,52
+ pub self_signing_key: String,53
+ pub user_signing_key: String,54
+}55
+56
+impl From<RustUploadSigningKeysRequest> for UploadSigningKeysRequest {57
+ fn from(r: RustUploadSigningKeysRequest) -> Self {58
+ Self {59
+ master_key: serde_json::to_string(60
+ &r.master_key.expect("Request didn't contain a master key"),61
+ )62
+ .expect("Can't serialize cross signing master key"),63
+ self_signing_key: serde_json::to_string(64
+ &r.self_signing_key.expect("Request didn't contain a self-signing key"),65
+ )66
+ .expect("Can't serialize cross signing self-signing key"),67
+ user_signing_key: serde_json::to_string(68
+ &r.user_signing_key.expect("Request didn't contain a user-signing key"),69
+ )70
+ .expect("Can't serialize cross signing user-signing key"),71
+ }72
+ }73
+}74
+75
+#[derive(uniffi::Record)]76
+pub struct BootstrapCrossSigningResult {77
+ /// Optional request to upload some device keys alongside.78
+ ///79
+ /// Must be sent first if present, and marked with `mark_request_as_sent`.80
+ pub upload_keys_request: Option<Request>,81
+ /// Request to upload the signing keys. Must be sent second.82
+ pub upload_signing_keys_request: UploadSigningKeysRequest,83
+ /// Request to upload the keys signatures, including for the signing keys84
+ /// and optionally for the device keys. Must be sent last.85
+ pub upload_signature_request: SignatureUploadRequest,86
+}87
+88
+impl From<CrossSigningBootstrapRequests> for BootstrapCrossSigningResult {89
+ fn from(requests: CrossSigningBootstrapRequests) -> Self {90
+ Self {91
+ upload_signing_keys_request: requests.upload_signing_keys_req.into(),92
+ upload_keys_request: requests.upload_keys_req.map(Request::from),93
+ upload_signature_request: requests.upload_signatures_req.into(),94
+ }95
+ }96
+}97
+98
+#[derive(uniffi::Enum)]99
+pub enum OutgoingVerificationRequest {100
+ ToDevice { request_id: String, event_type: String, body: String },101
+ InRoom { request_id: String, room_id: String, event_type: String, content: String },102
+}103
+104
+impl From<SdkVerificationRequest> for OutgoingVerificationRequest {105
+ fn from(r: SdkVerificationRequest) -> Self {106
+ match r {107
+ SdkVerificationRequest::ToDevice(r) => r.into(),108
+ SdkVerificationRequest::InRoom(r) => Self::InRoom {109
+ request_id: r.txn_id.to_string(),110
+ room_id: r.room_id.to_string(),111
+ content: serde_json::to_string(&r.content)112
+ .expect("Can't serialize message content"),113
+ event_type: r.content.event_type().to_string(),114
+ },115
+ }116
+ }117
+}118
+119
+impl From<ToDeviceRequest> for OutgoingVerificationRequest {120
+ fn from(r: ToDeviceRequest) -> Self {121
+ Self::ToDevice {122
+ request_id: r.txn_id.to_string(),123
+ event_type: r.event_type.to_string(),124
+ body: serde_json::to_string(&r.messages).expect("Can't serialize to-device body"),125
+ }126
+ }127
+}128
+129
+#[derive(Debug, uniffi::Enum)]130
+pub enum Request {131
+ ToDevice { request_id: String, event_type: String, body: String },132
+ KeysUpload { request_id: String, body: String },133
+ KeysQuery { request_id: String, users: Vec<String> },134
+ KeysClaim { request_id: String, one_time_keys: HashMap<String, HashMap<String, String>> },135
+ KeysBackup { request_id: String, version: String, rooms: String },136
+ RoomMessage { request_id: String, room_id: String, event_type: String, content: String },137
+ SignatureUpload { request_id: String, body: String },138
+}139
+140
+impl From<OutgoingRequest> for Request {141
+ fn from(r: OutgoingRequest) -> Self {142
+ use matrix_sdk_crypto::types::requests::AnyOutgoingRequest::*;143
+144
+ match r.request() {145
+ KeysUpload(u) => {146
+ let body = json!({147
+ "device_keys": u.device_keys,148
+ "one_time_keys": u.one_time_keys,149
+ "fallback_keys": u.fallback_keys,150
+ });151
+152
+ Request::KeysUpload {153
+ request_id: r.request_id().to_string(),154
+ body: serde_json::to_string(&body)155
+ .expect("Can't serialize `/keys/upload` request"),156
+ }157
+ }158
+ KeysQuery(k) => {159
+ let users: Vec<String> = k.device_keys.keys().map(|u| u.to_string()).collect();160
+ Request::KeysQuery { request_id: r.request_id().to_string(), users }161
+ }162
+ ToDeviceRequest(t) => Request::from(t),163
+ SignatureUpload(t) => Request::SignatureUpload {164
+ request_id: r.request_id().to_string(),165
+ body: serde_json::to_string(&t.signed_keys)166
+ .expect("Can't serialize signature upload request"),167
+ },168
+ RoomMessage(r) => Request::from(r),169
+ KeysClaim(c) => (r.request_id().to_owned(), c.clone()).into(),170
+ }171
+ }172
+}173
+174
+impl From<ToDeviceRequest> for Request {175
+ fn from(r: ToDeviceRequest) -> Self {176
+ Request::ToDevice {177
+ request_id: r.txn_id.to_string(),178
+ event_type: r.event_type.to_string(),179
+ body: serde_json::to_string(&r.messages).expect("Can't serialize to-device body"),180
+ }181
+ }182
+}183
+184
+impl From<(OwnedTransactionId, KeysClaimRequest)> for Request {185
+ fn from(request_tuple: (OwnedTransactionId, KeysClaimRequest)) -> Self {186
+ let (request_id, request) = request_tuple;187
+188
+ Request::KeysClaim {189
+ request_id: request_id.to_string(),190
+ one_time_keys: request191
+ .one_time_keys192
+ .into_iter()193
+ .map(|(u, d)| {194
+ (195
+ u.to_string(),196
+ d.into_iter().map(|(k, v)| (k.to_string(), v.to_string())).collect(),197
+ )198
+ })199
+ .collect(),200
+ }201
+ }202
+}203
+204
+impl From<(OwnedTransactionId, KeysBackupRequest)> for Request {205
+ fn from(request_tuple: (OwnedTransactionId, KeysBackupRequest)) -> Self {206
+ let (request_id, request) = request_tuple;207
+208
+ Request::KeysBackup {209
+ request_id: request_id.to_string(),210
+ version: request.version.to_owned(),211
+ rooms: serde_json::to_string(&request.rooms)212
+ .expect("Can't serialize keys backup request"),213
+ }214
+ }215
+}216
+217
+impl From<&ToDeviceRequest> for Request {218
+ fn from(r: &ToDeviceRequest) -> Self {219
+ Request::ToDevice {220
+ request_id: r.txn_id.to_string(),221
+ event_type: r.event_type.to_string(),222
+ body: serde_json::to_string(&r.messages).expect("Can't serialize to-device body"),223
+ }224
+ }225
+}226
+227
+impl From<&Box<RoomMessageRequest>> for Request {228
+ fn from(r: &Box<RoomMessageRequest>) -> Self {229
+ Self::RoomMessage {230
+ request_id: r.txn_id.to_string(),231
+ room_id: r.room_id.to_string(),232
+ event_type: r.content.event_type().to_string(),233
+ content: serde_json::to_string(&r.content).expect("Can't serialize message content"),234
+ }235
+ }236
+}237
+238
+pub(crate) fn response_from_string(body: &str) -> Response<Vec<u8>> {239
+ Response::builder()240
+ .status(200)241
+ .body(body.as_bytes().to_vec())242
+ .expect("Can't create HTTP response")243
+}244
+245
+#[derive(uniffi::Enum)]246
+pub enum RequestType {247
+ KeysQuery,248
+ KeysClaim,249
+ KeysUpload,250
+ ToDevice,251
+ SignatureUpload,252
+ KeysBackup,253
+ RoomMessage,254
+}255
+256
+#[derive(uniffi::Record)]257
+pub struct DeviceLists {258
+ pub changed: Vec<String>,259
+ pub left: Vec<String>,260
+}261
+262
+impl From<DeviceLists> for RumaDeviceLists {263
+ fn from(d: DeviceLists) -> Self {264
+ assign!(RumaDeviceLists::new(), {265
+ changed: d266
+ .changed267
+ .into_iter()268
+ .filter_map(|u| UserId::parse(u).ok())269
+ .collect(),270
+ left: d271
+ .left272
+ .into_iter()273
+ .filter_map(|u| UserId::parse(u).ok())274
+ .collect(),275
+ })276
+ }277
+}278
+279
+#[derive(uniffi::Record)]280
+pub struct KeysImportResult {281
+ /// The number of room keys that were imported.282
+ pub imported: i64,283
+ /// The total number of room keys that were found in the export.284
+ pub total: i64,285
+ /// The map of keys that were imported.286
+ ///287
+ /// It's a map from room id to a map of the sender key to a list of session288
+ /// ids.289
+ pub keys: HashMap<String, HashMap<String, Vec<String>>>,290
+}291
+292
+pub(crate) enum OwnedResponse {293
+ KeysClaim(KeysClaimResponse),294
+ KeysUpload(KeysUploadResponse),295
+ KeysQuery(KeysQueryResponse),296
+ ToDevice(ToDeviceResponse),297
+ SignatureUpload(SignatureUploadResponse),298
+ KeysBackup(KeysBackupResponse),299
+ RoomMessage(RoomMessageResponse),300
+}301
+302
+impl From<KeysClaimResponse> for OwnedResponse {303
+ fn from(response: KeysClaimResponse) -> Self {304
+ OwnedResponse::KeysClaim(response)305
+ }306
+}307
+308
+impl From<KeysQueryResponse> for OwnedResponse {309
+ fn from(response: KeysQueryResponse) -> Self {310
+ OwnedResponse::KeysQuery(response)311
+ }312
+}313
+314
+impl From<KeysUploadResponse> for OwnedResponse {315
+ fn from(response: KeysUploadResponse) -> Self {316
+ OwnedResponse::KeysUpload(response)317
+ }318
+}319
+320
+impl From<ToDeviceResponse> for OwnedResponse {321
+ fn from(response: ToDeviceResponse) -> Self {322
+ OwnedResponse::ToDevice(response)323
+ }324
+}325
+326
+impl From<SignatureUploadResponse> for OwnedResponse {327
+ fn from(response: SignatureUploadResponse) -> Self {328
+ Self::SignatureUpload(response)329
+ }330
+}331
+332
+impl From<KeysBackupResponse> for OwnedResponse {333
+ fn from(r: KeysBackupResponse) -> Self {334
+ Self::KeysBackup(r)335
+ }336
+}337
+338
+impl From<RoomMessageResponse> for OwnedResponse {339
+ fn from(response: RoomMessageResponse) -> Self {340
+ OwnedResponse::RoomMessage(response)341
+ }342
+}343
+344
+impl<'a> From<&'a OwnedResponse> for AnyIncomingResponse<'a> {345
+ fn from(r: &'a OwnedResponse) -> Self {346
+ match r {347
+ OwnedResponse::KeysClaim(r) => AnyIncomingResponse::KeysClaim(r),348
+ OwnedResponse::KeysQuery(r) => AnyIncomingResponse::KeysQuery(r),349
+ OwnedResponse::KeysUpload(r) => AnyIncomingResponse::KeysUpload(r),350
+ OwnedResponse::ToDevice(r) => AnyIncomingResponse::ToDevice(r),351
+ OwnedResponse::SignatureUpload(r) => AnyIncomingResponse::SignatureUpload(r),352
+ OwnedResponse::KeysBackup(r) => AnyIncomingResponse::KeysBackup(r),353
+ OwnedResponse::RoomMessage(r) => AnyIncomingResponse::RoomMessage(r),354
+ }355
+ }356
+}@@ -0,0 +1,67 @@
1
+use matrix_sdk_crypto::{UserIdentity as SdkUserIdentity, types::CrossSigningKey};2
+3
+use crate::CryptoStoreError;4
+5
+/// Enum representing cross signing identity of our own user or some other6
+/// user.7
+#[derive(uniffi::Enum)]8
+pub enum UserIdentity {9
+ /// Our own user identity.10
+ Own {11
+ /// The unique id of our own user.12
+ user_id: String,13
+ /// Does our own user identity trust our own device.14
+ trusts_our_own_device: bool,15
+ /// The public master key of our identity.16
+ master_key: String,17
+ /// The public user-signing key of our identity.18
+ user_signing_key: String,19
+ /// The public self-signing key of our identity.20
+ self_signing_key: String,21
+ /// True if this identity was verified at some point but is not anymore.22
+ has_verification_violation: bool,23
+ },24
+ /// The user identity of other users.25
+ Other {26
+ /// The unique id of the user.27
+ user_id: String,28
+ /// The public master key of the identity.29
+ master_key: String,30
+ /// The public self-signing key of our identity.31
+ self_signing_key: String,32
+ /// True if this identity was verified at some point but is not anymore.33
+ has_verification_violation: bool,34
+ },35
+}36
+37
+impl UserIdentity {38
+ pub(crate) async fn from_rust(i: SdkUserIdentity) -> Result<Self, CryptoStoreError> {39
+ Ok(match i {40
+ SdkUserIdentity::Own(i) => {41
+ let master: CrossSigningKey = i.master_key().as_ref().to_owned();42
+ let user_signing: CrossSigningKey = i.user_signing_key().as_ref().to_owned();43
+ let self_signing: CrossSigningKey = i.self_signing_key().as_ref().to_owned();44
+45
+ UserIdentity::Own {46
+ user_id: i.user_id().to_string(),47
+ trusts_our_own_device: i.trusts_our_own_device().await?,48
+ master_key: serde_json::to_string(&master)?,49
+ user_signing_key: serde_json::to_string(&user_signing)?,50
+ self_signing_key: serde_json::to_string(&self_signing)?,51
+ has_verification_violation: i.has_verification_violation(),52
+ }53
+ }54
+ SdkUserIdentity::Other(i) => {55
+ let master: CrossSigningKey = i.master_key().as_ref().to_owned();56
+ let self_signing: CrossSigningKey = i.self_signing_key().as_ref().to_owned();57
+58
+ UserIdentity::Other {59
+ user_id: i.user_id().to_string(),60
+ master_key: serde_json::to_string(&master)?,61
+ self_signing_key: serde_json::to_string(&self_signing)?,62
+ has_verification_violation: i.has_verification_violation(),63
+ }64
+ }65
+ })66
+ }67
+}@@ -0,0 +1,807 @@
1
+use std::sync::Arc;2
+3
+use futures_util::{Stream, StreamExt};4
+use matrix_sdk_common::executor::Handle;5
+use matrix_sdk_crypto::{6
+ CancelInfo as RustCancelInfo, QrVerification as InnerQr, QrVerificationState, Sas as InnerSas,7
+ SasState as RustSasState, Verification as InnerVerification,8
+ VerificationRequest as InnerVerificationRequest,9
+ VerificationRequestState as RustVerificationRequestState,10
+ matrix_sdk_qrcode::QrVerificationData,11
+};12
+use ruma::events::key::verification::VerificationMethod;13
+use vodozemac::{base64_decode, base64_encode};14
+15
+use crate::{CryptoStoreError, OutgoingVerificationRequest, SignatureUploadRequest};16
+17
+/// Listener that will be passed over the FFI to report changes to a SAS18
+/// verification.19
+#[matrix_sdk_ffi_macros::export(callback_interface)]20
+pub trait SasListener: Send {21
+ /// The callback that should be called on the Rust side22
+ ///23
+ /// # Arguments24
+ ///25
+ /// * `state` - The current state of the SAS verification.26
+ fn on_change(&self, state: SasState);27
+}28
+29
+/// An Enum describing the state the SAS verification is in.30
+#[derive(uniffi::Enum)]31
+pub enum SasState {32
+ /// The verification has been created, the protocols that should be used33
+ /// have been proposed to the other party.34
+ Created,35
+ /// The verification has been started, the other party proposed the36
+ /// protocols that should be used and that can be accepted.37
+ Started,38
+ /// The verification has been accepted and both sides agreed to a set of39
+ /// protocols that will be used for the verification process.40
+ Accepted,41
+ /// The public keys have been exchanged and the short auth string can be42
+ /// presented to the user.43
+ KeysExchanged {44
+ /// The emojis that represent the short auth string, will be `None` if45
+ /// the emoji SAS method wasn't one of accepted protocols.46
+ emojis: Option<Vec<i32>>,47
+ /// The list of decimals that represent the short auth string.48
+ decimals: Vec<i32>,49
+ },50
+ /// The verification process has been confirmed from our side, we're waiting51
+ /// for the other side to confirm as well.52
+ Confirmed,53
+ /// The verification process has been successfully concluded.54
+ Done,55
+ /// The verification process has been cancelled.56
+ Cancelled {57
+ /// Information about the reason of the cancellation.58
+ cancel_info: CancelInfo,59
+ },60
+}61
+62
+impl From<RustSasState> for SasState {63
+ fn from(s: RustSasState) -> Self {64
+ match s {65
+ RustSasState::Created { .. } => Self::Created,66
+ RustSasState::Started { .. } => Self::Started,67
+ RustSasState::Accepted { .. } => Self::Accepted,68
+ RustSasState::KeysExchanged { emojis, decimals } => Self::KeysExchanged {69
+ emojis: emojis.map(|e| e.indices.map(|i| i as i32).to_vec()),70
+ decimals: [decimals.0.into(), decimals.1.into(), decimals.2.into()].to_vec(),71
+ },72
+ RustSasState::Confirmed => Self::Confirmed,73
+ RustSasState::Done { .. } => Self::Done,74
+ RustSasState::Cancelled(c) => Self::Cancelled { cancel_info: c.into() },75
+ }76
+ }77
+}78
+79
+/// Enum representing the different verification flows we support.80
+#[derive(uniffi::Object)]81
+pub struct Verification {82
+ pub(crate) inner: InnerVerification,83
+ pub(crate) runtime: Handle,84
+}85
+86
+#[matrix_sdk_ffi_macros::export]87
+impl Verification {88
+ /// Try to represent the `Verification` as an `Sas` verification object,89
+ /// returns `None` if the verification is not a `Sas` verification.90
+ pub fn as_sas(&self) -> Option<Arc<Sas>> {91
+ if let InnerVerification::SasV1(sas) = &self.inner {92
+ Some(Sas { inner: sas.clone(), runtime: self.runtime.to_owned() }.into())93
+ } else {94
+ None95
+ }96
+ }97
+98
+ /// Try to represent the `Verification` as an `QrCode` verification object,99
+ /// returns `None` if the verification is not a `QrCode` verification.100
+ pub fn as_qr(&self) -> Option<Arc<QrCode>> {101
+ if let InnerVerification::QrV1(qr) = &self.inner {102
+ Some(QrCode { inner: qr.clone(), runtime: self.runtime.to_owned() }.into())103
+ } else {104
+ None105
+ }106
+ }107
+}108
+109
+/// The `m.sas.v1` verification flow.110
+#[derive(uniffi::Object)]111
+pub struct Sas {112
+ pub(crate) inner: Box<InnerSas>,113
+ pub(crate) runtime: Handle,114
+}115
+116
+#[matrix_sdk_ffi_macros::export]117
+impl Sas {118
+ /// Get the user id of the other side.119
+ pub fn other_user_id(&self) -> String {120
+ self.inner.other_user_id().to_string()121
+ }122
+123
+ /// Get the device ID of the other side.124
+ pub fn other_device_id(&self) -> String {125
+ self.inner.other_device_id().to_string()126
+ }127
+128
+ /// Get the unique ID that identifies this SAS verification flow.129
+ pub fn flow_id(&self) -> String {130
+ self.inner.flow_id().as_str().to_owned()131
+ }132
+133
+ /// Get the room id if the verification is happening inside a room.134
+ pub fn room_id(&self) -> Option<String> {135
+ self.inner.room_id().map(|r| r.to_string())136
+ }137
+138
+ /// Is the SAS flow done.139
+ pub fn is_done(&self) -> bool {140
+ self.inner.is_done()141
+ }142
+143
+ /// Did we initiate the verification flow.144
+ pub fn we_started(&self) -> bool {145
+ self.inner.we_started()146
+ }147
+148
+ /// Accept that we're going forward with the short auth string verification.149
+ pub fn accept(&self) -> Option<OutgoingVerificationRequest> {150
+ self.inner.accept().map(|r| r.into())151
+ }152
+153
+ /// Confirm a verification was successful.154
+ ///155
+ /// This method should be called if a short auth string should be confirmed156
+ /// as matching.157
+ pub fn confirm(&self) -> Result<Option<ConfirmVerificationResult>, CryptoStoreError> {158
+ let (requests, signature_request) = self.runtime.block_on(self.inner.confirm())?;159
+160
+ let requests = requests.into_iter().map(|r| r.into()).collect();161
+162
+ Ok(Some(ConfirmVerificationResult {163
+ requests,164
+ signature_request: signature_request.map(|s| s.into()),165
+ }))166
+ }167
+168
+ /// Cancel the SAS verification using the given cancel code.169
+ ///170
+ /// # Arguments171
+ ///172
+ /// * `cancel_code` - The error code for why the verification was cancelled,173
+ /// manual cancellatio usually happens with `m.user` cancel code. The full174
+ /// list of cancel codes can be found in the [spec]175
+ ///176
+ /// [spec]: https://spec.matrix.org/unstable/client-server-api/#mkeyverificationcancel177
+ pub fn cancel(&self, cancel_code: String) -> Option<OutgoingVerificationRequest> {178
+ self.inner.cancel_with_code(cancel_code.into()).map(|r| r.into())179
+ }180
+181
+ /// Get a list of emoji indices of the emoji representation of the short182
+ /// auth string.183
+ ///184
+ /// *Note*: A SAS verification needs to be started and in the presentable185
+ /// state for this to return the list of emoji indices, otherwise returns186
+ /// `None`.187
+ pub fn get_emoji_indices(&self) -> Option<Vec<i32>> {188
+ self.inner.emoji_index().map(|v| v.iter().map(|i| (*i).into()).collect())189
+ }190
+191
+ /// Get the decimal representation of the short auth string.192
+ ///193
+ /// *Note*: A SAS verification needs to be started and in the presentable194
+ /// state for this to return the list of decimals, otherwise returns195
+ /// `None`.196
+ pub fn get_decimals(&self) -> Option<Vec<i32>> {197
+ self.inner.decimals().map(|v| [v.0.into(), v.1.into(), v.2.into()].to_vec())198
+ }199
+200
+ /// Set a listener for changes in the SAS verification process.201
+ ///202
+ /// The given callback will be called whenever the state changes.203
+ ///204
+ /// This method can be used to react to changes in the state of the205
+ /// verification process, or rather the method can be used to handle206
+ /// each step of the verification process.207
+ ///208
+ /// This method will spawn a tokio task on the Rust side, once we reach the209
+ /// Done or Cancelled state, the task will stop listening for changes.210
+ ///211
+ /// # Flowchart212
+ ///213
+ /// The flow of the verification process is pictured below. Please note214
+ /// that the process can be cancelled at each step of the process.215
+ /// Either side can cancel the process.216
+ ///217
+ /// ```text218
+ /// ┌───────┐219
+ /// │Started│220
+ /// └───┬───┘221
+ /// │222
+ /// ┌────⌄───┐223
+ /// │Accepted│224
+ /// └────┬───┘225
+ /// │226
+ /// ┌───────⌄──────┐227
+ /// │Keys Exchanged│228
+ /// └───────┬──────┘229
+ /// │230
+ /// ________⌄________231
+ /// ╱ ╲ ┌─────────┐232
+ /// ╱ Does the short ╲______│Cancelled│233
+ /// ╲ auth string match ╱ no └─────────┘234
+ /// ╲_________________╱235
+ /// │yes236
+ /// │237
+ /// ┌────⌄────┐238
+ /// │Confirmed│239
+ /// └────┬────┘240
+ /// │241
+ /// ┌───⌄───┐242
+ /// │ Done │243
+ /// └───────┘244
+ /// ```245
+ pub fn set_changes_listener(&self, listener: Box<dyn SasListener>) {246
+ let stream = self.inner.changes();247
+248
+ self.runtime.spawn(Self::changes_listener(stream, listener));249
+ }250
+251
+ /// Get the current state of the SAS verification process.252
+ pub fn state(&self) -> SasState {253
+ self.inner.state().into()254
+ }255
+}256
+257
+impl Sas {258
+ async fn changes_listener(259
+ mut stream: impl Stream<Item = RustSasState> + std::marker::Unpin,260
+ listener: Box<dyn SasListener>,261
+ ) {262
+ while let Some(state) = stream.next().await {263
+ // If we receive a done or a cancelled state we're at the end of our road, we264
+ // break out of the loop to deallocate the stream and finish the265
+ // task.266
+ let should_break =267
+ matches!(state, RustSasState::Done { .. } | RustSasState::Cancelled { .. });268
+269
+ listener.on_change(state.into());270
+271
+ if should_break {272
+ break;273
+ }274
+ }275
+ }276
+}277
+278
+/// Listener that will be passed over the FFI to report changes to a QrCode279
+/// verification.280
+#[matrix_sdk_ffi_macros::export(callback_interface)]281
+pub trait QrCodeListener: Send {282
+ /// The callback that should be called on the Rust side283
+ ///284
+ /// # Arguments285
+ ///286
+ /// * `state` - The current state of the QrCode verification.287
+ fn on_change(&self, state: QrCodeState);288
+}289
+290
+/// An Enum describing the state the QrCode verification is in.291
+#[derive(uniffi::Enum)]292
+pub enum QrCodeState {293
+ /// The QR verification has been started.294
+ Started,295
+ /// The QR verification has been scanned by the other side.296
+ Scanned,297
+ /// The scanning of the QR code has been confirmed by us.298
+ Confirmed,299
+ /// We have successfully scanned the QR code and are able to send a300
+ /// reciprocation event.301
+ Reciprocated,302
+ /// The verification process has been successfully concluded.303
+ Done,304
+ /// The verification process has been cancelled.305
+ Cancelled {306
+ /// Information about the reason of the cancellation.307
+ cancel_info: CancelInfo,308
+ },309
+}310
+311
+impl From<QrVerificationState> for QrCodeState {312
+ fn from(value: QrVerificationState) -> Self {313
+ match value {314
+ QrVerificationState::Started => Self::Started,315
+ QrVerificationState::Scanned => Self::Scanned,316
+ QrVerificationState::Confirmed => Self::Confirmed,317
+ QrVerificationState::Reciprocated => Self::Reciprocated,318
+ QrVerificationState::Done { .. } => Self::Done,319
+ QrVerificationState::Cancelled(c) => Self::Cancelled { cancel_info: c.into() },320
+ }321
+ }322
+}323
+324
+/// The `m.qr_code.scan.v1`, `m.qr_code.show.v1`, and `m.reciprocate.v1`325
+/// verification flow.326
+#[derive(uniffi::Object)]327
+pub struct QrCode {328
+ pub(crate) inner: Box<InnerQr>,329
+ pub(crate) runtime: Handle,330
+}331
+332
+#[matrix_sdk_ffi_macros::export]333
+impl QrCode {334
+ /// Get the user id of the other side.335
+ pub fn other_user_id(&self) -> String {336
+ self.inner.other_user_id().to_string()337
+ }338
+339
+ /// Get the device ID of the other side.340
+ pub fn other_device_id(&self) -> String {341
+ self.inner.other_device_id().to_string()342
+ }343
+344
+ /// Get the unique ID that identifies this QR code verification flow.345
+ pub fn flow_id(&self) -> String {346
+ self.inner.flow_id().as_str().to_owned()347
+ }348
+349
+ /// Get the room id if the verification is happening inside a room.350
+ pub fn room_id(&self) -> Option<String> {351
+ self.inner.room_id().map(|r| r.to_string())352
+ }353
+354
+ /// Is the QR code verification done.355
+ pub fn is_done(&self) -> bool {356
+ self.inner.is_done()357
+ }358
+359
+ /// Has the verification flow been cancelled.360
+ pub fn is_cancelled(&self) -> bool {361
+ self.inner.is_cancelled()362
+ }363
+364
+ /// Did we initiate the verification flow.365
+ pub fn we_started(&self) -> bool {366
+ self.inner.we_started()367
+ }368
+369
+ /// Get the CancelInfo of this QR code verification object.370
+ ///371
+ /// Will be `None` if the flow has not been cancelled.372
+ pub fn cancel_info(&self) -> Option<CancelInfo> {373
+ self.inner.cancel_info().map(|c| c.into())374
+ }375
+376
+ /// Has the QR verification been scanned by the other side.377
+ ///378
+ /// When the verification object is in this state it's required that the379
+ /// user confirms that the other side has scanned the QR code.380
+ pub fn has_been_scanned(&self) -> bool {381
+ self.inner.has_been_scanned()382
+ }383
+384
+ /// Have we successfully scanned the QR code and are able to send a385
+ /// reciprocation event.386
+ pub fn reciprocated(&self) -> bool {387
+ self.inner.reciprocated()388
+ }389
+390
+ /// Cancel the QR code verification using the given cancel code.391
+ ///392
+ /// # Arguments393
+ ///394
+ /// * `cancel_code` - The error code for why the verification was cancelled,395
+ /// manual cancellatio usually happens with `m.user` cancel code. The full396
+ /// list of cancel codes can be found in the [spec]397
+ ///398
+ /// [spec]: https://spec.matrix.org/unstable/client-server-api/#mkeyverificationcancel399
+ pub fn cancel(&self, cancel_code: String) -> Option<OutgoingVerificationRequest> {400
+ self.inner.cancel_with_code(cancel_code.into()).map(|r| r.into())401
+ }402
+403
+ /// Confirm a verification was successful.404
+ ///405
+ /// This method should be called if we want to confirm that the other side406
+ /// has scanned our QR code.407
+ pub fn confirm(&self) -> Option<ConfirmVerificationResult> {408
+ self.inner.confirm_scanning().map(|r| ConfirmVerificationResult {409
+ requests: vec![r.into()],410
+ signature_request: None,411
+ })412
+ }413
+414
+ /// Generate data that should be encoded as a QR code.415
+ ///416
+ /// This method should be called right before a QR code should be displayed,417
+ /// the returned data is base64 encoded (without padding) and needs to be418
+ /// decoded on the other side before it can be put through a QR code419
+ /// generator.420
+ pub fn generate_qr_code(&self) -> Option<String> {421
+ self.inner.to_bytes().map(base64_encode).ok()422
+ }423
+424
+ /// Set a listener for changes in the QrCode verification process.425
+ ///426
+ /// The given callback will be called whenever the state changes.427
+ pub fn set_changes_listener(&self, listener: Box<dyn QrCodeListener>) {428
+ let stream = self.inner.changes();429
+430
+ self.runtime.spawn(Self::changes_listener(stream, listener));431
+ }432
+433
+ /// Get the current state of the QrCode verification process.434
+ pub fn state(&self) -> QrCodeState {435
+ self.inner.state().into()436
+ }437
+}438
+439
+impl QrCode {440
+ async fn changes_listener(441
+ mut stream: impl Stream<Item = QrVerificationState> + std::marker::Unpin,442
+ listener: Box<dyn QrCodeListener>,443
+ ) {444
+ while let Some(state) = stream.next().await {445
+ // If we receive a done or a cancelled state we're at the end of our road, we446
+ // break out of the loop to deallocate the stream and finish the447
+ // task.448
+ let should_break = matches!(449
+ state,450
+ QrVerificationState::Done { .. } | QrVerificationState::Cancelled { .. }451
+ );452
+453
+ listener.on_change(state.into());454
+455
+ if should_break {456
+ break;457
+ }458
+ }459
+ }460
+}461
+462
+/// Information on why a verification flow has been cancelled and by whom.463
+#[derive(uniffi::Record)]464
+pub struct CancelInfo {465
+ /// The textual representation of the cancel reason466
+ pub reason: String,467
+ /// The code describing the cancel reason468
+ pub cancel_code: String,469
+ /// Was the verification flow cancelled by us470
+ pub cancelled_by_us: bool,471
+}472
+473
+impl From<RustCancelInfo> for CancelInfo {474
+ fn from(c: RustCancelInfo) -> Self {475
+ Self {476
+ reason: c.reason().to_owned(),477
+ cancel_code: c.cancel_code().to_string(),478
+ cancelled_by_us: c.cancelled_by_us(),479
+ }480
+ }481
+}482
+483
+/// A result type for starting SAS verifications.484
+#[derive(uniffi::Record)]485
+pub struct StartSasResult {486
+ /// The SAS verification object that got created.487
+ pub sas: Arc<Sas>,488
+ /// The request that needs to be sent out to notify the other side that a489
+ /// SAS verification should start.490
+ pub request: OutgoingVerificationRequest,491
+}492
+493
+/// A result type for scanning QR codes.494
+#[derive(uniffi::Record)]495
+pub struct ScanResult {496
+ /// The QR code verification object that got created.497
+ pub qr: Arc<QrCode>,498
+ /// The request that needs to be sent out to notify the other side that a499
+ /// QR code verification should start.500
+ pub request: OutgoingVerificationRequest,501
+}502
+503
+/// A result type for requesting verifications.504
+#[derive(uniffi::Record)]505
+pub struct RequestVerificationResult {506
+ /// The verification request object that got created.507
+ pub verification: Arc<VerificationRequest>,508
+ /// The request that needs to be sent out to notify the other side that509
+ /// we're requesting verification to begin.510
+ pub request: OutgoingVerificationRequest,511
+}512
+513
+/// A result type for confirming verifications.514
+#[derive(uniffi::Record)]515
+pub struct ConfirmVerificationResult {516
+ /// The requests that needs to be sent out to notify the other side that we517
+ /// confirmed the verification.518
+ pub requests: Vec<OutgoingVerificationRequest>,519
+ /// A request that will upload signatures of the verified device or user, if520
+ /// the verification is completed and we're able to sign devices or users521
+ pub signature_request: Option<SignatureUploadRequest>,522
+}523
+524
+/// Listener that will be passed over the FFI to report changes to a525
+/// verification request.526
+#[matrix_sdk_ffi_macros::export(callback_interface)]527
+pub trait VerificationRequestListener: Send {528
+ /// The callback that should be called on the Rust side529
+ ///530
+ /// # Arguments531
+ ///532
+ /// * `state` - The current state of the verification request.533
+ fn on_change(&self, state: VerificationRequestState);534
+}535
+536
+/// An Enum describing the state the QrCode verification is in.537
+#[derive(uniffi::Enum)]538
+pub enum VerificationRequestState {539
+ /// The verification request was sent540
+ Requested,541
+ /// The verification request is ready to start a verification flow.542
+ Ready {543
+ /// The verification methods supported by the other side.544
+ their_methods: Vec<String>,545
+546
+ /// The verification methods supported by the us.547
+ our_methods: Vec<String>,548
+ },549
+ /// The verification flow that was started with this request has finished.550
+ Done,551
+ /// The verification process has been cancelled.552
+ Cancelled {553
+ /// Information about the reason of the cancellation.554
+ cancel_info: CancelInfo,555
+ },556
+}557
+558
+/// The verificatoin request object which then can transition into some concrete559
+/// verification method560
+#[derive(uniffi::Object)]561
+pub struct VerificationRequest {562
+ pub(crate) inner: InnerVerificationRequest,563
+ pub(crate) runtime: Handle,564
+}565
+566
+#[matrix_sdk_ffi_macros::export]567
+impl VerificationRequest {568
+ /// The id of the other user that is participating in this verification569
+ /// request.570
+ pub fn other_user_id(&self) -> String {571
+ self.inner.other_user().to_string()572
+ }573
+574
+ /// The id of the other device that is participating in this verification.575
+ pub fn other_device_id(&self) -> Option<String> {576
+ self.inner.other_device_id().map(|d| d.to_string())577
+ }578
+579
+ /// Get the unique ID of this verification request580
+ pub fn flow_id(&self) -> String {581
+ self.inner.flow_id().as_str().to_owned()582
+ }583
+584
+ /// Get the room id if the verification is happening inside a room.585
+ pub fn room_id(&self) -> Option<String> {586
+ self.inner.room_id().map(|r| r.to_string())587
+ }588
+589
+ /// Has the verification flow that was started with this request finished.590
+ pub fn is_done(&self) -> bool {591
+ self.inner.is_done()592
+ }593
+594
+ /// Is the verification request ready to start a verification flow.595
+ pub fn is_ready(&self) -> bool {596
+ self.inner.is_ready()597
+ }598
+599
+ /// Did we initiate the verification request600
+ pub fn we_started(&self) -> bool {601
+ self.inner.we_started()602
+ }603
+604
+ /// Has the verification request been answered by another device.605
+ pub fn is_passive(&self) -> bool {606
+ self.inner.is_passive()607
+ }608
+609
+ /// Has the verification flow that been cancelled.610
+ pub fn is_cancelled(&self) -> bool {611
+ self.inner.is_cancelled()612
+ }613
+614
+ /// Get info about the cancellation if the verification request has been615
+ /// cancelled.616
+ pub fn cancel_info(&self) -> Option<CancelInfo> {617
+ self.inner.cancel_info().map(|v| v.into())618
+ }619
+620
+ /// Get the supported verification methods of the other side.621
+ ///622
+ /// Will be present only if the other side requested the verification or if623
+ /// we're in the ready state.624
+ pub fn their_supported_methods(&self) -> OptiDiff truncated at the full-view safety limit.